CS 100: Syllabus

This schedule is tentative and will be updated as necessary.
Last modified: Mon Aug 6 17:46:58 2001

Reading

JV means reading from Java: An Introduction to Computer Science & Programming.
ML means reading from MATLAB Programming for Engineers.

You can skip sections marked as "optional" in the book, unless indicated otherwise here.

Schedule

Date Topics / Due Dates Reading / Lecture Notes

M 6/25 Course policies, introduction to programming
Handouts: Survey, Course info, Exercise 1, Assignment 1
Lecture notes
Honey Cake Recipe
CircleCalculation.java | CircleCalculation.txt
JV: 1.1, 1.2, 1.3 (skim), 1.4 (skip Applets)
T 6/26 Introductory survey due in lecture
Language elements, variables, operators
Basic input and output
Handouts: Exercise 2
Lecture notes
Lecture2.java | Lecture2.txt
Variables as cups
JV: 2.1, 2.3, 2.4
W 6/27 Deadline for summer registration
Operators, booleans, expressions,
statements, conditional processing
Lecture notes
Lecture3.java | Lecture3.txt
Swap.java | Swap.txt
Conditional.java | Conditional.txt
Quiz.java | Quiz.txt
JV: 3.1, 3.2 (only while), 3.4
ML: Chapter 1
H 6/28 Assignment 1 due
Loops
Handouts: Exercise 3
Lecture notes
Lecture4.java | Lecture4.txt
Div3.java | Div3.txt
WhileLoop.java | WhileLoop.txt
JV: rest of 3.2
F 6/29 TA Review
(Kiri out of town)
GCD.java | GCD.txt
JV: 2.2 if you haven't read it yet,
JV: 3.1 (Conditional Operator)
Bring your questions!


M 7/2 Debugging, part 1
Loops
Handouts: Exercise 4, Assignment 2
Lecture notes
Space Invaders Game (try it! written in Java)
SpaceInvadersWhile.java | SpaceInvadersWhile.txt
JV: 3.3
ML: 2.1, 2.2, 2.7, 2.9, 2.10, 4.1, 4.2
T 7/3 Loops and methods
Introduction to Matlab, plotting data
Lecture notes
SpaceInvadersDoWhile.java | SpaceInvadersDoWhile.txt
MirrorNumber.java | MirrorNumber.txt (uses if statements)
MirrorNumberWhile.java | MirrorNumberWhile.txt
MirrorNumberFor.java | MirrorNumberFor.txt
JV: 4.1, skim 5.1 and 5.2
W 7/4 Fourth of July - HOLIDAY (no lecture) None!
H 7/5 Methods, function calls
Matlab: basic tutorial
Lecture notes
Matlab tutorial: matlab1.m | matlab1.txt
Java examples of using Math.random():
random.java | random.txt
Methods.java | Methods.txt
JV: 5.1, 5.2, skim 5.3
F 7/6 Deadline to add classes
Assignment 2 due
TA Review (Ben)
JV: 5.3
ML: 5.1, 5.2
Bring your questions!

M 7/9 Prelim 1
Prelim 1 Solutions/Grading guide
Handouts: Assignment 3
Prelim covers:
Savitch Chapters 1 - 3
Exercises 1 - 4
Assignments 1 and 2
Lectures through 7/3
(no MATLAB, no methods)
T 7/10 A bit more on methods
Scope
OOP: introduction
Handouts: Exercise 5
Lecture notes
Lyrics to Floating, by the Moody Blues
Lyrics with a chorus (method)
mp3 version (educational use only!)
Methods.java | Methods.txt
Same thing without methods: NoMethods.java | NoMethods.txt
TensComplement.java | TensComplement.txt
scope.java | scope.txt
BunchOfGrapesNoObjects.java | BunchOfGrapesNoObjects.txt
BunchOfGrapes.java | BunchOfGrapes.txt
GrapesTester.java | GrapesTester.txt
JV: 1.3, 4.3
W 7/11 Deadline for changing credit/grade option
OOP: designing and using classes, constructors, call/pass by value,
update/accessor methods
Handouts: Exercise 6
Lecture notes
BunchOfGrapes.java | BunchOfGrapes.txt
GrapesTester.java | GrapesTester.txt
Spaceship.java | Spaceship.txt
SpaceshipTester.java | SpaceshipTester.txt
JV: 5.5
H 7/12 OOP: references, encapsulation (public, private, static)
Lecture notes
Spaceship.java | Spaceship.txt
SpaceshipTester.java | SpaceshipTester.txt
JV: 4.2, 5.6
Variables as cups: References
Java is pass by value
F 7/13 Deadline for dropping classes
Assignment 3 due
OOP: method overloading
TA Review (Jay)

Handouts: Assignment 4
Mandelbrot.java | Complex.java
JV: 5.4

M 7/16 Abstraction and encapsulation
this
Graphics, part 1: Basic figures
Handouts: Exercise 7
Lecture notes
Madeleine.java | Madeleine.txt
MadeleineColor.java | MadeleineColor.txt
JV: 15.1, 15.2, 15.3
T 7/17 Arrays: introduction, motivation
Arrays: primitive types, creating, storing, retrieving
arrays of objects
Handouts: Exercise 8
Lecture notes
Array of a base type: ArrayOfTemperatures.java | ArrayOfTemperatures.txt
Array of objects: Spaceship2000.java | Spaceship2000.txt
JV: 6.1, 8.1
W 7/18 Debugging, part 2
Exceptions
Arrays: primitive types, creating, storing, retrieving, initializer lists
Matlab: matrices and useful operations on them
Lecture notes
ExceptionDemo.java | ExceptionDemo.txt
PrimeNumbersSoln.java | PrimeNumbersSoln.txt
aot.m | aot.txt
JV: 6.2
ML: 2.3, 2.4, 2.5, 2.7, 2.9
H 7/19 Assignment 4 due
TA Review (The Consultant Cohort)
JV: 9.1, 9.2 (text files only)
Bring your questions!
F 7/20 Prelim 2
Prelim 2 Solutions/Grading guide
Handouts: Project 1, excerpt from "The Code Book", and Exercise 9
Prelim covers:
Savitch Chapters 4, 5, 6.1, 6.2, 8.1, and 15
assigned readings from Chapman Ch. 2
Exercises 5 - 8
Assignments 3 and 4
Lectures from 7/5 through 7/18

M 7/23 Encryption
Arrays: multidimensional arrays
Handouts: Exercise 10
Lecture notes
InterestTable.java | InterestTable.txt
JV: 6.5 (skip Ragged Arrays)
T 7/24 File I/O
Arrays: searching and sorting
Handouts: Exercise 11
Lecture notes
TextFileInputDemo.java | TextFileInputDemo.txt
TextFileOutputDemo.java | TextFileOutputDemo.txt
Searching.java | Searching.txt
SearchingDemo.java | SearchingDemo.txt
SelectionSort.java | SelectionSort.txt
SelectionSortDemo.java | SelectionSortDemo.txt
JV: 6.3, 6.4
W 7/25 Graphics, part 2: GUIs, Swing Lecture notes
ButtonDemo.java | ButtonDemo.txt
WindowDestroyer.java | WindowDestroyer.txt
JV: 12.1, 12.2, 12.3, 12.5 (p. 812-823)
H 7/26 Project 1 due
Inheritance: software reuse, sub/super classes,
constructors, method overriding
Handouts: Exercise 12
Lecture notes
Inherit1.java | Inherit1.txt
Inherit2.java | Inherit2.txt
Tree.java | Tree.txt
Conifer.java | Conifer.txt
Deciduous.java | Deciduous.txt
Forest.java | Forest.txt
JV: 7.1, 7.2 (p. 469-471)
F 7/27 TA Review (Hongjie)
Handouts: Project 2
Lecture notes (ppt)
Matrix.java
Student. java
SortStudent.java
Inherit.java

M 7/30 Project 2
Inheritance: this(),
inheriting public members, variable shadowing
Handouts: Exercise 13
Lecture notes
Problem1.java | Problem1.txt
Inherit3.java | Inherit3.txt
JV: 7.2 (incl. Subtle Point)
T 7/31 Interfaces,
Pass by value,
Inheritance: public/private/protected/default
Handouts: Exercise 14
Lecture notes
Pass1.java | Pass1.txt
Pass2.java | Pass2.txt
Pass3.java | Pass3.txt
JV: 5.7, 7.3
W 8/1 Inheritance: Object class, polymorphism,
design
Lecture notes
Builtin.java | Builtin.txt
Banana.java | Banana.txt
Strawberry.java | Strawberry.txt
Fruit.java | Fruit.txt
Banana2.java | Banana2.txt
Strawberry2.java | Strawberry2.txt
JV: 7.2, 7.3
H 8/2 Project 2 due
Linked Lists!
Handouts: Exercise 15
Lecture notes
CardLinkedList.java | CardLinkedList.txt
JV: 10.2
F 8/3 The A la Carte Final Review,
course summary
Our Review Questions
Feel free to bring your own questions!
For more practice,
see the examples on the Spring 2001 CS 100 site
Also, see the Makeup Prelim
and the Solutions (pictures omitted).

T 8/7 Final Exam
8:00 - 10:00 a.m., Upson B17
Final topics


Comments or suggestions? Mail Hongjie Yang, hy63@cornell.edu.