Graphic by Keith Ohlfs

CS111, Wellesley College, Fall 2000

Course Syllabus
[CS111 Home Page] [Syllabus] [Lecture Notes] [Assignments] [Programs] [Documentation] [Software Installation] [FAQ] [CS Dept.] [CWIS]

CS111 Syllabus--Fall 2000

Last revised November 10, 2000


Week 1: September 4 - 8

Wednesday, September 6:

  • No lab this week

Lec #1 -- Thursday/Friday, September 7/8:

  • Topics
    • Administrivia
    • Big ideas in CS111; divide/conquer/glue, abstraction, modularity, language
  • Assignments:
    • CS111 registration survey (Due: Friday, September 8, 5:00 p.m.)


Week 2: September 11 - 15

Lec #2 -- Monday, September 11:

  • Topics: Introduction to Java and Object-Oriented Programming
    • about Java
    • introduction to buggles and BuggleWorld
    • contracts

Tuesday, September 12:

  • Assignments due:
    • None
  • Assignments handed out:
    • Problem Set #1: Writing simple Java code (Due: Tuesday, September 19)
      Available on the assignments page.

Lab #1 -- Wednesday, September 13:

  • Introduction to Macintosh, FirstClass, Fetch, Nike
  • Introduction to Symantec Cafe and AppletViewer
  • Writing simple Java Code: buggles

Lec #3 -- Thursday/Friday, September 14/15:

  • Topics: Java Syntax
    • expressions
    • statements
    • primitive data types
    • variables
    • comments


Week 3: September 18 - 22

Lec #4 -- Monday, September 18:

  • Topics: Methods I
    • writing methods
    • the Java Execution Model (JEM)
    • inheritance
    • black box abstraction

Tuesday, September 19:

  • Assignments due:
    • Problem Set #1: Writing simple Java code
  • Assignments handed out:
    • Problem Set #2: Methods with parameters (Due Tuesday, September 26)

Lab #2 -- Wednesday, September 20:

  • Writing Java methods
  • Java Execution Model
  • Debugging
  • Style

Lec #5 -- Thursday/Friday, September 21/22:

  • Topics: Methods II
    • parameters
    • scope
    • JEM with parameters


Week 4: September 25 - 29

Lec #6 -- Monday, September 25:

  • Topics: Methods III
    • methods that return values
    • PictureWorld
    • Invocation Trees

Tuesday, September 26:

  • Assignments due:
    • Problem Set #2: writing methods I
  • Assignments handed out:
    • Problem Set #3: writing methods II; Invocation trees (Due Tuesday, October 3)

Lab #3 -- Wednesday, September 27:

  • PictureWorld
  • More Divide/Conquer/Glue
  • Invocation Trees

Lec #7 -- Thursday/Friday, September 28/29:

  • Topics: Methods IV.
    • PictureWorld examples
    • Divide/conquer/glue


Week 5: October 2 - 6

Lec #8 -- Monday, October 2:

  • Topics: Conditionals I
    • boolean expressions
    • conditionals

Tuesday, October 3:

  • Assignments due:
    • Problem Set #3: writing methods II; Invocation trees
  • Assignments handed out:
    • Problem Set 4: Conditionals (Due Tuesday, October 17)

Lab #4 -- Wednesday, October 4:

  • Conditionals

Lec #9 -- Thursday/Friday, October 5/6:

  • EXAM # 1 -- In class. Covers material through Methods IV (Lecture #7) and Problem Set 3.


Week 6: October 9 - 13

Monday/Tuesday, October 9/10:

  • No Class - Happy Fall Break!

Lec #10 -- Wednesday, October 11 (Monday Schedule):

  • Topics: Conditionals II
    • Buggle examples
    • flow diagrams
    • pseudoloops
    • Overriding

Lec #11 -- Thursday/Friday, October 12/13:

  • Topics: Recursion I
    • recursive buggle methods
    • the Java execution model revisited


Week 7: October 16 - 20

Lec #12 -- Monday, October 16:

  • Topics: Recursion II.
    • TurtleWorld
    • Recursive turtle methods

Tuesday, October 17:

  • Assignments due:
    • Problem Set #4: conditionals
  • Assignments handed out:
    • Problem Set #5: writing recursive methods I (Due Tuesday, October 24)

Lab #5 -- Wednesday, October 18:

  • Recursion
  • Recursive JEM

Lec #13 --Thursday/Friday, October 19/20:

  • Topics: Recursion III.
    • Recursive methods that return values


Week 8: October 23 - 27

Lec #14 -- Monday, October 23:

  • Topics: Recursion IV.
    • Functions (static methods)
    • Recursive functions
    • Classic recursion examples

Tuesday, October 24:

  • Assignments due:
    • Problem Set #5: writing recursive methods I
  • Assignments handed out:
    • Problem Set #6: writing recursive methods II (Due Tuesday, October 31)

Lab #6 -- Wednesday, October 25:

  • Recursive methods that return values

Lec #15 --Thursday/Friday, October 26/27:

  • Topics: Lists I
    • linked lists
    • IntList contract
    • box-and-pointer diagrams
    • simple list recursion


Week 9: October 30 - November 3

Lec #16 -- Monday, October 30:

  • Topics: Lists II
    • more list recursion
    • List contract
    • strings
    • primitive data wrappers and casts

Tuesday, October 31:

  • Assignments due:
    • Problem Set #6: writing recursive methods II
  • Assignments handed out:
    • Problem Set #7: Lists (Due Tuesday, November 7)

Lab #7 -- Wednesday, November 1:

  • Lists

Lec #17 -- Thursday/Friday, November 2/3:

  • Topics: Iteration I
    • iteration
    • state variables
    • exit conditions
    • tail recursion
    • while loops
    • assignment


Week 10: November 6 - 10

Lec #18 -- Monday, November 6:

  • Topics: Iteration II
    • while loops
    • for loops
    • Nested for loops
    • Looping and lists

Tuesday, November 7:

  • Assignments due:
    • Problem Set #7: Lists
  • Assignments handed out:
    • Problem Set #8: Iteration (Due Tuesday, November 14)

Lab #8 -- Wednesday, November 8:

  • Iteration

Lec #19 -- Thursday/Friday, November 9/10:

  • Topics: Linear Collections I
    • array syntax and semantics
    • introduction to iterating over arrays


Week 11: November 13 - 17

Lec #20 -- Monday, November 13:

  • Topics: Linear Collections II
    • more iterating over arrays
    • vector contract

Tuesday, November 14:

  • Assignments due:
    • Problem Set #8: Iteration

Lab #9 -- Wednesday, November 15:

  • Arrays
  • Vectors

Lec #21-- Thursday/Friday, November 16/17:

  • Topics: Linear Collections III
    • Enumerations
    • Iteration with vectors


Week 12: November 20 - 24

Lec #22 -- Monday, November 20:

  • EXAM # 2 -- In class. Covers material through Iteration II (Lecture #18) and Problem Set 8.

Tuesday, November 21:

  • Assignments due:
    • None
  • Assignments handed out:
    • None

Wednesday, November 22:

  • No lab this week

Thursday/Friday, November 23/24:

  • No Class - Happy Thanksgiving!


Week 13: November 27 - December 1

Lec #23 -- Monday, November 27:

  • Objects I
    • building your own objects
    • instance variables
    • constructor methods
    • object diagrams

Tuesday, November 28:

  • Assignments due:
    • None
  • Assignments handed out:
    • Problem Set #9: Arrays, Vectors and Objects (Due Tuesday, December 5)

Lab #10 -- Wednesday, November 29:

  • Building your own objects
  • Data Abstraction
  • Java graphics

Lec #24 -- Thursday/Friday, November 30/December 1:

  • Topics: Objects II
    • simple Java graphics
    • object examples: TurtleWorld
    • Inheritance


Week 14: December 4 - 8

Lec #25 -- Monday, December 4:

  • Topics: GUI I
    • Java AWT component hierarchy
    • layout

Tuesday, December 5:

  • Assignments due:
    • Problem Set #9: Arrays, Vectors and Objects
  • Assignments handed out:
    • None

Lab #11 -- Wednesday, December 6:

  • GUI Layout

Lec #26 -- Thursday/Friday, December 7/8:

  • Topics: GUI II
    • event model
    • applet life cycle
    • GUI's and inheritance


End of Classes

Final Exam--Scheduled During Regular Exam Period