Title: CS187 Programming with Data Structures 1' Introduction
1CS187 Programming with Data Structures1.
Introduction
- Oliver Brock
- UMass Amherst
- Spring 2009
2The Team
Oliver Brock
Dirk Ruiken
office hour times and locations will be posted on
the class web site
3Grading
- 6-8 Programming Assignments 40
- OWL Exercises 10
- Midterm 20
- Final 30
- You need to get a C or better on the final to
pass the class!
4Other Important Things
- Course Web Pagehttp//twiki-edlab.cs.umass.edu/bi
n/view/Oli187/WebHome - Course Bulletin Board (for all questions
off-campus username/password cs187/cS187Ob)http
//bb-edlab.cs.umass.edu/cs187_S09 - Late Policy (see Web site)
- Honesty Policy (see Web site)
- Collaboration (see Web site)
- Submitting your assignments (see Web site)
- EdLab
5Personal Identifier
- Random string consisting of small caps letters
and numbers (a-z0-9)4 - for example a1b2c3d4
- dont get funny! dont expose your name! dont
use your student ID or SSN! - please email your name, student ID, and
identifier to TA
6Textbook
- Data Structures Objects, Abstraction, and
Design Using Java (Version 5.0) by Elliot B.
Koffman and Paul A. T. Wolfgang. John Wiley and
Sons, 2005. ISBN 0-471-69264-6
7Content
- Objects
- Abstraction
- Data Structures
- Design
- and the like
8(No Transcript)
9(No Transcript)
10This is the most important class of the
undergraduate curriculum
anonymous instructors opinion
11Case Study 1 Internet Startup
12Case Study 2 Research
13Case Study 3 Getting Through College
14Important Lessons
15What Do Computer Scientists Do?
16What Do Writers Do?
17What Do Architects Do?
18Planning a House
19Views Architectural Drawings
20Implementation
21Who is the Computer Scientist?
22Skills A lot of them
23Same Deal Car
24Computer Scientists say
- I can just sit down and start programming.
- I know exactly what Im doing.
- I dont make bugs.
- the code is self-documenting.
- I can fix any bug.
25Conclusion
We have to do MUCH more than typing and debugging
code.
Yet, coding is what you will be tested on!
Well, not quite...
26First Understand the Process
27What Do We Do? Revisited.
Required Skills
Available Tools (so far)
28Software Life Cycle
29Spiral Software Life Cycle
30Views UML pictures of code
Sequence Diagram
Object Model
Use Case
31Requirements Use Cases
32Design Abstraction
33Abstraction is Everywhere!
34Why Abstraction/Interfaces?
- Makes things easier
- You do not need to know everything
- Other people can help or take advantage
- Permits franchising
What does this mean for software?
35Design Data Structures
- Data Structure
- organize data
- allow access to data
- allow changes
- In other words
- data (members)
- operations on that data (methods)
- How can we represent such a thing?
36(No Transcript)
37Abstraction of Objects
38Classes and Objects
39Design How Do We Find Objects?
40Design
From Goodrich Tamassia (1st edition) , p. 10
41Please Remember!
- Know your trade!
- Software Life Cylce
- Tools for each step
- This class teaches you an important tool data
structures and algorithms - Design is important!
- Abstraction is your friend!
- Think, then code!
42Finally What CS 187 is about
- Learn some important data structures
- How to access Javas provided classes
- How to implement them
- How to evaluate them
- How to decide when to use them
- Develop an object-oriented philosophy
- Deepen general facility in programming
- Learn to use Java
43The REAL Goal
Data structure A systematic way of organizing
and accessing data Algorithm A step-by-step
procedure for performing some task in a finite
amount of time
44What you need to succeed in CS187
- Come to class
- Go to the discussion section
- Go to office hours
- Read the assigned reading
- Do the programming exercises properly!
- Think, then code!
- Test smart, test often, test thoroughly
45Salient Characteristics of Java
- platform independent the same program can run on
any correctly implemented Java system - Java is object-oriented
- Structured in terms of classes, which group data
with operations on that data - Can construct new classes by extending existing
ones - Java designed as
- A core language plus
- A rich collection of commonly available packages
- Java can be embedded in Web pages
46Java processing and execution
- Java source code in text files
- class.java
- Java source code compiler
- produces Java byte code
- one file per class
- class.class
- Java virtual machine (JVM)
- Loads and executes class files
- May compile them to native code
47Assigned Reading
- Read Chapter 1
- Read Appendix A B
- Case Study Telephone Directory
- Supplemental Material
- Check out the Java code, but running it is not
required
48Getting Java and IDE
- Java http//www.java.com/getjava (V1.6)
- Eclipse http//www.eclipse.org
- DrJava http//drjava.org (only with Java 1.5)
- there are many other IDEs, I recommend
EclipseTo get Java 1.5 (older
version)http//java.sun.com/javase/downloads/ind
ex_jdk5.jsp