CS111 Spring 2009
This is a tentative schedule, subject to adjustment as the term evolves.
The official version is the one posted to http://www.cs.bu.edu/courses/cs111/.
Check often for updates, examples, assignments, labs, etc.

Date Topics Readings Examples Assignment
MON 6/29 Course Administration
Introduction: Computer, Programming, Java
Lab 0: Set up lab accounts
1.1
TUE 6/30 Introduction to Java Programming
Procedural Decomposition
Simple Input and Output
1.2, 1.3, 1.4 HelloWorld.java
ProceduralDecomposition.java
Concatenation.java
TUE 6/30 Lab 1: Intro to Eclipse,
Understanding Programming Errors
HW1: Standard Output (due 7/3)
THU 7/2 Data Types and Variables
Repetition with Definite Loop
2.1, 2.2, 2.3, 2.4 DataTypesAndVariables.java
Arithmetic.java
FunWithCasting.javaa
BottlesOfBeer.java
DefiniteLoops.java
AccumulatorExamples.java
THU 7/2 Lab 2: Variables and Definte Loop HW2: Computing with Numbers (due 7/7)
Date Topics Readings Examples Assignment
MON 7/6 QUIZ 1
Overview of Vector Graphics
Using the Java Graphics API
3G.1, 3G.2 HigherMath.java
Drawing.java [starter code]
Drawing.java [my example from class]
MON 7/6 Lab 3: Using classes from the API (Graphics) HW 3: Using the Graphics API (due 7/10)
TUE 7/7 Method Parameters
Using Objects from the Java API
3.1, 3.2, 3.3, 3.4 Drawing.java [updated]
InputFromKeyboard.java
THU 7/9 Expressions and Selection
Selection: some special cases
4.1, 4.2, 4.3 LogicalExpressions.java
DecisionMaking.java
MinOf3Ints.java
FloatingPoint.java
ComparingObjects.java
THU 7/9 Lab 4: Expressions and control statements HW4: Selection (due 7/14)
Date Topics Readings Examples Assignment
MON 7/13 QUIZ 2
Repetition with indefinite loop
5.1, 5.2, 5.3, 5.4 ComparingObjects.java
PercentFormatExample.java
Average01.java
Average02.java
Average03.java
Average04.java
MON 7/13 Lab 5: Repetition HW5: Repetition (due 7/17)
TUE 7/14 Text Processing
File Processing
YesOrNo.java
BusyLoop.java
ValidatingUserInput.java
StringExamples.java
Replacement.java
THU 7/16 NO LECTURE
Lab/Homework help during lecture time
THU 7/16 NO LAB MEETING
Date Topics Readings Examples Assignment
MON 7/20 QUIZ 3
Single Dimensional Arrays
7.1, 7.2, 7.3 IntroArrays.java
ArrayPractice.java
WordCounts.java
MON 7/20 Lab 6: Single Dimension Arrays ArrayOperations.java
CopyingArrays.java
ForEachLoop.java
ArraysOfObjects.java
Die.java [provider side]
DieTester.java [client side]
HW 6: Arrays (due 7/24)
TUE 7/21 User Defined Classes: Introduction
- object state and behavior
8.1, 8.2, 8.3 Die.java [provider side]
DieTester.java [client side]
THU 7/23 User Defined Classes: Constructors and Methods 8.4, 8.5, 8.6. 8.7 Die.java [provider side]
DieTester.java [client side]
THU 7/23 Lab 7: User Defined Classes HW 7: User Defined Class (due 7/28)
Date Topics Readings Examples Assignment
MON 7/27 QUIZ 4
Inheritance and Polymorphism
9.1, 9.2, 9.3 PlayingGames.java
HW8: Inheritance/Polymorphism (due 7/30)
MON 7/27 Lab 8: Inheritance & Polymorphism
TUE 7/28 Multi-Dimensional Arrays
Computer Games
Final Game Project
7.4
9.4, 9.5
MultiDimArrays.java
RaggedArrays.java
Game Project (due 8/6)
THU 7/30 Abstract Classes and Interfaces
Recursion (overview and discussion)
12.1, 12.2
THU 7/30 Lab 9: Multi-Dimensional Arrays/Game RecursionExamples.java
HW9: Multi-Dimensional Arrays (due 7/31)
HW10: Recursion (optional) (due 8/3)
Date Topics Readings Examples Assignment
MON 8/3 QUIZ 5
Algorithm Analysis: Searching
Algorithm Analysis: Sorting
13.1, 13.2 ScrabbleDictionary.java
MON 8/3 Lab10: Help with Game Project
TUE 8/4 Off-topic Discussion
Help with Game Project
Review/Q&A for Exam
MessageBoxExample.java
THU 8/6 Final Exam in class (2 hours)
THU 8/6 Lab Exam