[CS111 Home Page]
[Syllabus] [Lecture
Notes] [Assignments]
[Programs]
[Documentation]
[Software Installation]
[FAQ]
[CS Dept.]
[CWIS]
CS111 Syllabus--Spring 2000
Last revised March 22, 2000
Week 1: January 24 - 28
Lab:
Lec #1 -- Thursday, January 27:
- Topics
- Administrivia
- Big ideas in CS111; divide/conquer/glue, abstraction,
modularity, language
- Assignments out:
- CS111 registration survey (Due: Friday, January 28, noon)
Friday, January 28:
- Assignments due:
- CS111 registration survey (due at Noon)
- Assignments handed out:
- Problem Set #0: Getting started with Macs, Symantec Cafe, etc.
Week 2: January 31 - February 4
Lab #1 -- Monday, January 31:
- Introduction to Macintosh
- FirstClass, Fetch, Nike
- Introduction to Symantec
Lec #2 -- Tuesday, February 1
- Topics: Introduction to Java and Object-Oriented Programming
- about Java
- introduction to buggles and BuggleWorld
- contracts
Lec #3 -- Thursday, February 3:
- Topics: Methods I
- writing methods
- the Java Execution Model (JEM)
- inheritance
- black box abstraction
Friday, February 4
- Assignments due: None
- Assignments handed out:
- Problem Set #1: writing simple Java code, Methods (Due: Friday,
February 11)
Week 3: February 7 - 11
Lab #2 -- Monday, February 7:
- Writing simple Java Code: buggles
- Writing Methods
- Debugging
- Style
Lec #4 -- Tuesday, February 8:
- Topics: Methods II
- parameters
- scope
- JEM with parameters
Lec #5 -- Thursday, February 10:
- Topics: Methods III.
- methods that return values
- PictureWorld
- Invocation Trees
Friday, February 11:
- Assignments due:
- Problem Set #1: writing simple Java code; Methods
- Assignments handed out:
- Problem Set #2: Methods with parameters (Due Friday, February 18)
Week 4: February 14 - 18
Lab #3 -- Monday, February 14:
- Java methods
- Java Execution Model
- Debugging
Lec #6 -- Tuesday, February 15:
- Topics: Java Syntax
- expressions
- statements
- primitive data types
- variables
- comments
Lec #7 -- Thursday, February 17:
- Topics: Methods IV.
- PictureWorld examples
- Divide/conquer/glue
Friday, February 18:
- Assignments handed out:
- Problem Set #3: writing methods II; Invocation trees (Due Monday, February 28)
- Assignments due:
- Problem Set #2: writing methods I
Week 5: February 21 - 25
Monday, February 21:
- No Class: Happy President's day!
Lec #8 -- Tuesday, February 22:
- Topics: Conditionals I
- boolean expressions
- conditionals
Lab #4 -- Wednesday, February 23 (Monday Schedule):
- PictureWorld
- More Divide/Conquer/Glue
- Invocation Trees
Lec #9 -- Thursday, February 24:
- Topics: Conditionals II
- Buggle examples
- flow diagrams
- pseudoloops
Friday, February 25:
- Assignments handed out:
- Problem Set 4: Conditionals/Recursion (Due Friday, March 10)
Week 6: February 28 - March 3
Lab #5 -- Monday, February 28:
- Conditionals
- Assignments due:
- Problem Set #3: writing methods II
Lec #10 -- Tuesday, February 29:
- Topics: Recursion I
- recursive buggle methods
- Turtles (and recursion)
- the Java execution model revisited
Lec #11 -- Thursday, March 2:
- EXAM # 1 -- In class. Covers material through Methods
IV (Lecture #7) and Problem Set 3.
- Assignments due:
- Assignments handed out:
Week 7: March 6 - 10
Lab #6 -- Monday, March 6:
Lec #12 -- Tuesday, March 7:
- Topics: Recursion II.
- TurtleWorld
- recursive turtle methods
- Functions (static methods)
- Recursive functions.
- TurtleWorld/PictureWorld Contest out.
Lec #13 --Thursday, March 9:
- Topics: Recursion III.
- recursive PictureWorld examples
- recursive Buggle methods that return values
Friday, March 10:
- Assignments due:
- Problem Set #4: conditionals and recursion
- Assignments handed out:
- Problem Set #5: writing recursive methods II (Due Friday,
March 17)
Week 8: March 13 - 17
Lab #7 -- Monday, March 13:
- Recursive methods that return values
Lec #14 -- Tuesday, March 14:
- Topics: Lists I
- linked lists
- IntList contract
- box-and-pointer diagrams
- simple list recursion
Lec #15 --Thursday, March 16:
- Topics: Lists II
- more list recursion
- List contract
- strings
- primitive data wrappers and casts
Friday, March 17:
- Assignments due:
- Problem Set #5: writing recursive methods II
- Assignments handed out:
- Problem Set #6: Lists (Due Friday,
March 31)
March 20 - 24: Spring Break!
Week 9: March 27 - 31
Lab #8 -- Monday, March 27:
Lec #16 -- Tuesday, March 28:
- Topics: Iteration I
- iteration
- state variables
- exit conditions
- tail recursion
- while loops
- assignment
Lec #17 -- Thursday, March 30:
- Topics: Iteration II
- while loops
- for loops
- Nested for loops
- Looping and lists
Friday, March 31:
- Assignments due:
- Assignments handed out:
- Problem Set #7: Iteration (Due Friday, April 7)
Week 10: April 3 - 7
Lab #9 -- Monday, April 3:
Lec #18 -- Tuesday, April 4:
- Topics: Linear Collections I
- array syntax and semantics
- iterating over arrays
Lec #19 -- Thursday, April 6:
- Topics: Linear Collections II
- Vector contract
- Enumeration contract
- iteration with vectors and enumerations
Friday, April 9:
- Assignments due:
- Problem Set #7: Iteration
- Assignments handed out:
- Exam #2 (take-home) (Due Friday, April 14)
Covers material through Iteration II (Lecture #17) and Problem Set 7.
Week 11: April 10 - 14
Lab #10 -- Monday, April 10:
Lec #20 -- Tuesday, April 11:
- Topics: Objects I
- building your own objects
- instance variables
- constructor methods
- object diagrams
- bank account example
Lec #21-- Thursday, April 13:
- Topics: Objects II
- simple Java graphics
- object examples: TurtleWorld
Friday, April 14:
- Assignments due:
- Assignments handed out:
- Problem Set #8: Arrays, Vectors, Objects, AnimationWorld (Due Friday, April 28)
Week 12: April 17 - 22
Monday, April 17:
Lec #22 -- Tuesday, April 18:
- Topics: Objects III
- Animation World
- Animation contest out.
Lab #11 -- Thursday, April 20 (Monday Schedule):
- Building your own objects
- Data Abstraction
- Java graphics
Friday, April 21:
- Assignments due:
- Good Friday: Nothing due!
- Assignments handed out:
Week 13: April 24 - 28
Lab #12 -- Monday, April 24:
- AnimationWorld
- Inheritance
Lec #23 -- Tuesday, April 25:
- Topics: Lists III
- Lists of Lists
- IntListList contract
Lec #24 -- Thursday, April 27:
- Topics: GUI I
- Java AWT component hierarchy
- layout
Friday, April 28:
- Assignments Due:
- Problem Set #8: Arrays, Vectors, Objects, AnimationWorld
- Assignments handed out:
- Problem Set #9: Lists of Lists, GUI Layout (Due Friday, May 5)
Week 14: May 1 - 5
Lab #13 -- Monday, May 1:
- Lists of Lists
- GUI Layout
Tuesday, May 2:
- No Class: Ruhlman Conference.
- Animation Contest Entries due.
Lec #25 -- Thursday, May 4:
- Topics: GUI II
- event model
- applet life cycle
- GUI's and inheritance
Lec #26 -- Friday, May 5:
- Topics: Something Interesting!
- Assignments handed out:
- None. Final Exam Review available.
- Assignments due:
- Problem Set #9: Lists of Lists, GUI Layout
End of Classes
Final Exam--Scheduled During Regular Exam Period