Monday morning: Programming the
World
Goals: Review HtDP, Introduce image.ss and world.ss teachpacks
- Lecture for Monday
- Lab for Monday am
- Shapes, Images, Animations:
shapes-images-animate.ss
- The Blob world:
blob-world.ss
- Ocean World - one fish, simple graphics:
oceanworld-basic-shapes.ss
- Ocean World - one fish, adding fish-shark interactions:
oceanworld-onefish.ss
- Sample Images:
sample-images.html
Monday afternoon: Designing Programs
Goals: Design Recipe for Data Definitions; Iterative Refinement
-
Lecture for Monday
-
Lab for Monday pm
- Ocean World: Problem Analysis
oceanworld.txt
- Ocean World with a School of Fish, A Complete Game:
oceanworld-many-fish.ss
Tuesday morning: Designing Classes - Data Definitions
Goals: Design Recipe for data definitions in Java
-
Lecture for Tuesday am
-
Lab for Tuesday am
-
Defining Classes of Data: book.java
-
Classes with Containment: book-author.java
-
Unions and Self-referential Data: list-of-books.java
-
Extended Example: company-data.java
Alterate Examples and Lecture Notes:
-
Defining Classes of Data; Classes with Containment: lecture3-data.ss lecture3-data.java
-
Unions and Self-referential Data: lecture3-data-union.java
Tuesday afternoon: Designing Methods
Goals: Designing methods, Understanding method dispatch,
Design Recipe
- Lecture for Tuesday pm - Part 1:
Methods for classes and
containment
- Lecture for Tuesday pm - Part 2:
Methods for unions of
classes
- Lecture for Tuesday pm - Part 3:
Methods for
self-referential class hierarchies
- Lab for Tuesday pm:
pdf html
- Design Recipe:
worksheet
- Simple drawing:
simple-drawing.java
- Extra challenge - designing a mobile:
mobile.java
- Extra challenge - designing a mobile:
mobile-data.java
- Extra challenge - designing a mobile:
mobile-methods.java
Alternative examples collection:
-
Alternative Lecture for
Tuesday pm
-
Methods for Simple Classes: grades-simple.java
-
Methods for Classes with Containment: grades-containment.java
-
Methods for Unions and Self-Referential Data: maze.java
-
Sorting a List of Data: list-sort.java
Wednesday morning: Programming the World
Wednesday afternoon: Designing
Abstractions
Thursday morning: Stateful Programming
Thursday afternoon: Understanding
Equality
Friday morning: Accumulators and Loops Plenary
Session
Friday afternoon: The Big Picture