[CS111 Home Page]
[Syllabus] [Lecture
Notes] [Assignments]
[Programs]
[Documentation]
[Software Installation]
[FAQ]
[CS Dept.]
[CWIS]
CS111 Syllabus--Fall 1999
Last revised September 27, 1999
Week 1: September 6 - 10
Lab:
Lec #1 -- Wednesday, September 8:
- Topics
- administrivia
- big ideas in CS111; divide/conquer/glue, abstraction,
modularity, language
- Optional reading:
- Java: First Contact, Chapter 1.1 - 1.4
Lec #2 -- Friday, September 10
- Topics: Introduction to Java and Object-Oriented Programming
- about Java
- introduction to buggles and BuggleWorld
- contracts
- Optional reading:
- Java: First Contact, Chapter 2.1-2.7, 3 (except 3.12)
- Assignments handed out:
- Problem Set #1: writing simple Java code (Due: Friday,
September 17)
Week 2: September 13 - 17
Lab #1 -- Monday, September 13:
- Introduction to Macintosh
- Editing in Symantec Cafe; projects
- Writing simple Java code; buggles
Lec #3 -- Wednesday, September 15:
Lec #4 -- Friday, September 17:
- Topics: Methods I
- writing methods
- the Java Execution Model
- inheritance
- black box abstraction
- Optional reading:
- Java: First Contact, Chapter 7, Chapter 12.1-12.2
- Assignments handed out:
- Problem Set #2: methods I (Due Friday, September 24)
- Assignments due:
- Problem Set #1: writing simple Java code
Week 3: September 20 - 24
Lab #2 -- Monday, September 20:
- Writing Java methods; buggles
- The Java execution model
- Debugging
- Style
Lec #5 -- Wednesday, September 22:
- Topics: Methods II
- parameters
- scope
- comments
- Optional reading:
- Java: First Contact, Chapter 8 (Except 8.7 and 8.8)
Lec #6 -- Friday, September 24:
- Topics: Methods III.
- methods that return values
- PictureWorld
- Optional reading:
- Java: First Contact, Chapter 8 (Except 8.7 and 8.8)
- Assignments handed out:
- Problem Set #3: writing methods II (Due Friday, October 1)
- Assignments due:
- Problem Set #2: writing methods I
Week 4: September 27 - October 1
Lab #3 -- Monday, September 27:
- More Java methods
- Divide/conquer/glue
- Debugging
Lec #7 -- Wednesday, September 29:
- Topics: Methods IV.
- PictureWorld examples
- primitive data types
- Divide/conquer/glue
- Optional reading:
- Java: First Contact, Chapter 4.2, 4.3 and 4.6, Chapters 6
and 8 (Except 8.7 and 8.8)
Lec #8 -- Friday, October 1:
- Topics: Conditionals I
- boolean expressions
- conditionals
- Optional reading:
- Java: First Contact, Chapter 4
- Assignments handed out:
- Assignments due:
- Problem Set #3: writing methods II
Week 5: October 4 - 8
Lab #4 -- Monday, October 4:
Lec #9 -- Wednesday, October 6:
- Topics: Conditionals II
- Buggle examples
- flow diagrams
- pseudoloops
- a taste of recursion
Lec #10 -- Friday, October 8:
- EXAM # 1 -- In class. Covers material through Methods
IV (Lecture #7) and Problem Set 3.
- Assignments handed out:
- Problem Set #4: conditionals (Due Friday, October 15)
- Assignments due:
Week 6: October 11 - 15
Monday, October 11: No class today. Enjoy your
vacation!
Lab #5 -- Wednesday, October 13: (Wednesday has Monday
schedule this week)
Lec #11 -- Friday, October 15:
- Topics: Recursion I
- recursive buggle methods
- the Java execution model revisited
- Optional reading:
- Java: First Contact, Chapter 18
- Assignments handed out:
- Problem Set #5: writing recursive methods I (Due Friday,
October 22)
- Assignments due:
- Problem Set #4: conditionals
Week 7: October 18 - 22
Lab #6 -- Monday, October 18:
- Recursive Buggle Methods
- Turtleworld
- Simple Turtle Recursion
Lec #12 -- Wednesday, October 20:
- Topics: Recursion II.
- recursive turtle methods
- functions (static methods)
- recursive functions
Lec #13 -- Friday, October 22:
- Topics: Recursion III.
- recursive PictureWorld examples
- recursive Buggle methods that return values
- Assignments handed out:
- Problem Set #6: writing recursive methods II (Due Friday,
October 29)
- Assignments due:
- Problem Set #5: writing recursive methods I
Week 8: October 25 - 29
Lab #7 -- Monday, October 25:
- Recursive methods that return values
Lec #14 -- Wednesday, October 27
- Topics: Lists I
- linked lists
- IntList contract
- box-and-pointer diagrams
- simple list recursion
- Optional reading:
- Java: First Contact, Section 17.1
Lec #15 -- Friday, October 29:
- Topics: Lists II
- more list recursion
- List contract
- strings
- primitive data wrappers and casts (yuk!)
- Assignments handed out:
- Problem Set #7: lists (Due Friday, November 5)
- Assignments due:
- Problem Set #6: writing recursive methods II
Week 9: November 1 - 5
Lab #8 -- Monday, November 1:
Lec #16 -- Wednesday, November 3:
- Topics: Trees I
- binary trees
- IntTree contract
- tree recursion
- Tree contract
- Optional reading:
- Java: First Contact, Section 18.3
Lec #17 -- Friday, November 5:
- Topics: Trees II
- generalized trees
- more tree recursion
- Assignments handed out:
- Exam #2 (take-home) (Due Friday, November 12)
- Assignments due:
Week 10: November 8 - 12
Lab #9 -- Monday, November 8:
Lec #18 -- Wednesday, November 10:
- Topics: Iteration I
- iteration
- state variables
- exit conditions
- tail recursion
- assignment
- while loops
- Optional reading:
- Java: First Contact, Chapter 5
Lec #19 -- Friday, November 12:
- Topics: Iteration II/Data Abstraction
- for loops
- introduction to data abstraction and object implementation
- bank account example
- Assignments handed out:
- Problem Set #8: trees and iteration (Due Friday, November
19)
- Assignments due:
Week 11: November 15 - 19
Lab #10 -- Monday, November 15:
Lec #20 -- Wednesday, November 17:
- Topics: Objects I
- building your own objects
- instance variables
- constructor methods
- object diagrams
- Optional reading:
- Java: First Contact, Chapters 7 and 8
Lec #21 -- Friday, November 19:
- Topics: Objects II
- simple Java graphics
- object examples: KineticWorld
- Optional reading:
- Java: First Contact, Chapters 10, 11, and 16.4--16.6
- Assignments handed out:
- Problem Set #9: objects (Due Friday, December 3)
- Assignments due:
- Problem Set #8: trees and iteration
Week 12: November 22 - 26
Lab #11 -- Monday, November 22:
- Building your own objects
- Java graphics
Lec #22 -- Wednesday, November 24: (Yes, we do expect
you to be in class today!)
- Topics: Objects III
- graphical user interfaces (GUIs)
- Java AWT component hierarchy
- layout
- event model
- Optional reading:
- Java: First Contact, Sections 16.1--16.3
Friday, November 26: Thanksgiving Break - No Class
Week 13: November 29 - December 3
Lab #12 -- Monday, November 29:
- Graphical user interfaces
Lec #23 -- Wednesday, December 1:
- Topics: Objects IV
- more GUI
- putting it all together: TortoiseWorld
Lec #24 -- Friday, December 3:
- Topics: Linear Collections I
- array syntax and semantics
- iterating over arrays
- Optional reading:
- Java: First Contact, Chapter 9
- Assignments handed out:
- Problem Set #10: GUIs/arrays/vectors (Due Friday, December
10)
- Assignments Due:
Week 14: December 6 - 10
Lab #13 -- Monday, December 6:
- Linear Collections
- arrays
- introduction to vectors
Lec #25 -- Wednesday, December 8:
- Topics: Linear Collections II
- Vector contract
- Enumeration contract
- iteration with vectors and enumerations
- Optional reading:
- Java: First Contact, Section 21.1
Lec #26 -- Friday, December 10:
- Topics: Something Interesting!
- Assignments handed out:
- Assignments due:
- Problem Set #10: GUIs/arrays/vectors
End of Classes
Final Exam--Scheduled During Regular Exam Period