Graphic by Keith Ohlfs 

No Labs this week!
Lec#1 Tuesday, September 2 
Introduction to CS111  

Topics:  

 


Big Ideas 

Reading: 
Macintosh
Fundamentals 



Lec#2 Thursday, September 4 
The Web and Web Pages  

Topics: 
More Big Ideas 


The Internet and the WorldWide Web 


Introduction to HTML 

Assignment: 
PreLab #1 (due in Lab #1, September 8/9) 

Reading: 
Using
Nike 



Lab#1 Monday, September 8 
Building Your Own Web Page  

Topics: 
Macintosh Overview 


Symantec Cafe Editor 


Fetch 


HTML Practice 

Due Today:  

Assignment 
Lab Assignment #1 (Home Page) (due 6pm, Thursday, September 11) 
Lec#3 Tuesday, September 9 
HTML as a Language  

Topics: 
Interpreters 


The Structure of HTML Programs 

Reading: 
programming.java, Chapter 1 
Lec#4 Thursday, September 11 
Applets  

Topics: 
HTML wrapup: tables & forms 


Applets as BlackBox Abstractions 

 


Implementing a simple Applet in Java 

Due Today: 
Lab Assignment #1 

Assignments: 
Prelab #2
(Applets) (due in Lab #2, September 15/16) 

Reading: 
programming.java, Chapter 2 
Lab#2 Monday, September 15 
Building An Applet  

Topics: 
Viewing Applets: Netscape, Applet Viewer 


Symantec Cafe Projects 


Compiling a Project 


Errors/Debugging 


Simple Java Graphics 

Assignment 
Lab Assignment #2 (Faces) (due 6pm, Thursday, September 18) 
Lec#5 Tuesday, September 16 
Object Oriented Programming  

Topics: 
Review: Projects, Compilation, Execution 


Introduction to ObjectOriented Programming 


Java Graphics 


Building a House 
Lec#8 Thursday, September 18 
Abstraction 1  

Topics: 
Wrapup: Invoking Applets 


BlackBox Abstraction: Contracts/APIs 


Capturing Patterns: Naming 

Due Today:  

Assignments: 
Problem Set #2
(Something Fishy) (due 6pm, Monday Sept. 29) 
Lab#3 Monday, September 22 
Naming  

Topics: 


Due Today: 
Prelab #2 (Applets) (extension), Prelab#3 (Debugging) 

Assignment: 
Lec#7 Tuesday, September 23 
Abstraction 2  

Topics: 
Naming Review 


Capturing Patterns: Methods 

Reading: 
programming.java, Sections 5.15.4 
Lec#8 Thursday, September 25 
Java Execution Model  

Topics:  

 

Due Today:  

Assignment: 
Prelab #4 (Arches) (due in lab, Sept. 29/30) 
Lab#4 Monday, September 29 
Methods  

Topics: 


Due Today:  

Assignment: 
Lab Assignment #4 (Castles) (due 6pm, Thursday, October 22) 
Lec#9 Tuesday, September 30 
Divide and Conquer via Methods  

Topics: 
Using methods to solve problems 


Patchwork quilt example. 
Lec#10 Thursday, October 2 
HodgePodge  

Topics: 
Nested Tables in HTML (from PS1) 


PS3 Explanation 


Debugging/System.out.println 


Arithmetic in Java 

Due Today:  

Assignment: 
Problem Set #3
(Quilts) (due 6pm, Tuesday, October 7) 
Lab#5 Monday, October 6 
Exam 1 Review  

Topics: 


Due Today: 
Lec#11 Tuesday, October 7 
Objects: Classes  

Topics: 
Handling variables in the Java Execution Model 


Statements vs. Expressions 


Classes 


Constructors 

Due Today:  

Announcement: 
Exam 1 Review Sessions will be held Tuesday Oct. 7 and Wednesday Oct. 8 from 68pm in E111 
Lec#12 Tuesday, October 9 
Exam 1 (in class) 
No Labs or Tuesday Lecture this week! (Fall Break)
No Tuesday lecture this week!
Lec#13 Thursday, October 16 
BuggleWorld  

Topics: 
Buggle contract 


Observers vs. Mutators 


Object diagrams 


Simple Inheritance 

Assignment: 
Prelab #6 (Buggles) (due in lab, Oct. 20/21) 
Lab#6 Monday, October 20 
Buggleworld/Conditionals  

Topics: 
Practice with Buggles 


Conditionals 

Due Today:  

Assignment: 
Lab Assignment #6 (Conditionals) (due 6pm, Thursday, October 23) 
Lec#14 Tuesday, October 21 
Conditionals  

Topics: 
Overriding inherited methods (visit example) 


Conditionals 


Flow Charts 


Nested Conditionals 

Reading: 
programming.java, pp. 181187 (boolean operators) 


programming.java, pp. 216225 (if statements) 


Computing Concepts with Java, Chapter 4 (Decisions) 
Lec#15 Thursday, October 23 
Recursion 1  

Topics: 
Conditional wrapup: boolean operators (and, or, not) 


Rulebased motion (Snaker example) 


Introduction to recursion (fd example) 

Due Today:  

Assignment: 
Prelab #7 (Recursion) (due in lab, Oct. 27/28) 

Reading: 
Computing Concepts with Java, Section 5.14 (Recursion) 
Lab#7 Monday, October 27 
Recursion  

Topics: 
Recursion 

Due Today:  

Assignments: 
Lab Assigment #7
(Recursion) (due 6pm, Thursday, November 30) 
Lec#16 Tuesday, October 28 
Recursion 2  

Topics: 
Problem Set 4: FollowWorld and Find World 


Multiple ways to decompose fd. 


Using recursion to simplify Snaker 


Methods that return booleans 
Lec#17 Thursday, October 30 
Recursion 3/Iteration 1  

Topics: 
Tail recursion and iteration: while 


Retriever example 


Recursive Methods that return values 


Patchwork quilts revisited 

Due Today:  

Assignment: 
Problem Set #5 (due 6pm, Saturday November 8) 

Announcement 
There is no Prelab#8 
Lab#8 Monday, November 3 
Recursion/Iteration  

Topics: 
Lab#8 Lab: You do not have to turn this in. 

Announcement 
There is no Prelab #8 

Due Yesterday: 
Problem Set #4 (Bagging Bagels) (due 11:59pm, Sunday, November 2) 
Lec#18 Tuesday, November 4 
Recursion 4  

Topics: 
Turtle Graphics examples 


Towers of Hanoi 

Reading: 
programming.java, Section 5.4 (Assignments and Statements) 


Computing Concepts with Java Essentials: Chapter 6 (Iteration) 
Lec#19 Thursday, November 6 
Iteration  

Topics: 
Numerical Recursion 


Iteration 


while and for loops 


assignment 


loop invariants 

Due Saturday:  

Assignment: 
Problem Set #6 (due 6pm, Thursday November 6) 

Reading: 

Lab#9 Monday, November 10 
Exam 2 Review  

Topics 
Lab#9 Lab: You do not have to turn this in. 

Announcement 
There is no Prelab #9! 
Lec#20 Tuesday, November 11 
Lecture Cancelled  

Topics: 

Lec#21 Thursday, November 13 
Instance Variables  

Topics: 
Fibonacci Function: Recursion vs. Iteration 


Using instance variables to count bagels 

Due Today:  

Examination: 
Exam 2 (takehome) (due 6pm, Sunday, November 23) 

Reading: 

Lab#10 Monday, November 17 
Objects With State: Kinetic World  

Topics: 
Lab#10 Lab: You do not have to turn this in. 

Announcment 
There is no Prelab #10 
Lec#22 Tuesday, November 18 
Data Abstraction 1  

Topics: 
Instance Variables 


Hiding representations: Private vs. Public 


Vector example 
Lec#23 Thursday, November 20 
Data Abstraction 2  

Topics: 
Multiple representations 


Interoperability between representations. 


Vector example continued 

Due 6pm on Sunday: 
Exam 2 

Assignment: 


Reading: 

Lab#11 Monday, November 24 
User Interfaces  

Topics: 


Announcements: 
There is no Prelab #11 
Lec#24 Tuesday, November 25 
Arrays 1  

Topics: 


Assignment: 
Problem Set #7 (due Monday, December 8 ) 

Reading: 

Lab#12 Monday, December 1 
Arrays  

Topics: 

Lec#25 Tuesday, December 2 
Arrays 2  

Topics: 


Reading: 

Lec#22 Thursday, December 4 
What can be Computed?  

Topics: 




Lab#13 Monday, December 1 
Final Exam Review Sessions  

Topics: 


Due Today: 
Problem Set #7 
Reading Period
Final Exam Period