CS111 Summer 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
TUE 5/19 Course Administration
Introduction: Computer, Programming, Java
Lab 0: Set up lab accounts
1.1
THU 5/21 Introduction to Java Programming
Procedural Decomposition
Simple Input and Output
1.2, 1.3, 1.4 HelloWorld.java
ProceduralDecomposition.java
THU 5/21 Lab 1: Intro to Eclipse,
Understanding Programming Errors
HW1: Standard Output (due 5/26)
Date Topics Readings Examples Assignment
TUE 5/26 Data Types and Variables
Repetition with Definite Loop
2.1, 2.2, 2.3, 2.4 DataTypesAndVariables.java
Arithmetic.java
FunWithCasts.java
DefiniteLoops.java
BottlesOfBeer.java
Factorial.java
TUE 5/26 Lab 2: Variables and Definte Loop HW2: Computing with Numbers (due 5/29)
THU 5/28 QUIZ 1
Overview of Vector Graphics
Using the Java Graphics API
3G.1, 3G.2 UsingMethods.java
Drawing.java [some starter code]
Drawing.java [example from class]
THU 5/28 Lab 3: Using classes from the API (Graphics) HW 3: Using the Graphics API (due 6/1)
FRI 5/29 Method Parameters
Using Objects from the Java API
3.1, 3.2, 3.3, 3.4 Drawing.java [updated]
InputFromKeyboard.java
MoreCounting.java
Date Topics Readings Examples Assignment
MON 6/1 Expressions and Selection
Selection: some special cases
4.1, 4.2, 4.3 LogicalExpressions.java
Grading.java
MaxOf3Ints.java
ComparingFloatingPoint.java
GuessAName.java
ComparingObjects.java
MON 6/1 Lab 4: Expressions and control statements HW4: Selection (due 6/4)
TUE 6/2 QUIZ 2
Repetition with indefinite loop
5.1, 5.2, 5.3, 5.4 Average01.java [for loop]
Average02.java [while loop: counting]
Average03.java [while loop: interactive]
Average04.java [while loop: sentinel]
YesOrNo.java
BusyLoop.java
StringConcatMethod.java
THU 6/4 Text Processing
ValidatingUserInput.java
Average05.java [with validation]
Average06.java [do-while loop]
CountTo10.java
StringExamples.java
Substitute.java
THU 6/4 Lab 5: Repetition HW5: Repetition (due 6/8)
Date Topics Readings Examples Assignment
MON 6/8 Single Dimensional Arrays 7.1, 7.2, 7.3 IntroArrays.java
ReadFromFile.java
LetterCounts.java
MON 6/8 Lab 6: Single Dimension Arrays HW6: Arrays (due 6/11)
TUE 6/9 QUIZ 3
Multi-Dimensional Arrays
User Defined Classes: Introduction
- object state and behavior
7.4
8.1, 8.2, 8.3
CopyingArrays.java
ForEachLoop.java
ArrayOfObjects.java
Die.java
TestingDie.java
THU 6/11 User Defined Classes: Constructors and Methods 8.4, 8.5, 8.6. 8.7 Die.java [updated!]
TestingDie.java [updated!]
THU 6/11 Lab 7: User Defined Classes HW 7: User Defined Class (due 6/15)
Date Topics Readings Examples Assignment
MON 6/15 QUIZ 4
Inheritance and Polymorphism:
- Hierarchies
- Class extension
9.1, 9.2, 9.3 PlayingGames.java
MON 6/15 Lab 8: Inheritance & Polymorphism HW8: Inheritance/Polymorphism (due 6/18)
TUE 6/16 Multi-Dimensional Arrays
Computer Games
Discuss Final Game Project
7.4
9.4, 9.5
PlayingGames.java [updated]
MultiDimArrays.java
HistoryOfVideoGames.mp4 {movie}
Game Project (due 6/25)
THU 6/18 Inheritance and Polymorphism:
- Abstract classes and Interfaces
Case Study: Java Exceptions

Recursion (overview and discussion)

12.1, 12.2 AnimalKingdom.java
RecursionExamples.java
THU 6/18 Lab 9: Recursion
Lab 9: Multi-dimensional Arrays
HW9: Multi-dimensional Arrays (due 6/19)
HW10: Recursion (OPTIONAL) (due 6/22)
Date Topics Readings Examples Assignment
MON 6/22 QUIZ 5
Algorithm Analysis: Searching
Algorithm Analysis: Sorting
13.1, 13.2 ScrabbleDictionary.java
MON 6/22 Lab10: Help with Game Project
TUE 6/23 Help with Game Project
Review/Q&A for Exam
THU 6/25 Final Exam in class (2 hours)
THU 6/25 Lab Exam