The schedule is subject to change.

Week Monday Wednesday Friday

No Assigned Reading
Lecturing: Eric

April 3rd

Course overview
Meet Karel the Robot
Slides (pdf)

Read: Sections 1.1-1.3
Lecturing: Eric

April 5th

Simple Karel Programs
Control structures in Karel

Read: Sections 1.4-1.5
Lecturing: Jerry

April 7th

Problem-solving in Karel
Problem Decomposition
The idea of an algorithm

Read: Sections: 2.1-2.4
Lecturing: Eric

April 10th

Programming by example
Variables and values
Arithmetic expressions

Read: Sections 2.5-2.6
Lecturing: Jerry

April 12th

Strings and concatenation
Simple graphics

Read: Sections 3.1-3.5
Lecturing: Eric

April 14th

Control statements
Boolean data

Read: Sections 4.1-4.2
Lecturing: Eric

April 17th

Arguments and Parameters
Random numbers

Read: Sections 4.3-4.4
Lecturing: Jerry

April 19th

The mechanics of functions

Read: Sections 5.1-5.4
Lecturing: Jerry

April 21st

First-class functions
Event-driven programming
Responding to mouse events

Read: Section 5.5
Lecturing: Jerry

April 24th

Simple animations

Read: Section 5.6
Lecturing: Eric

April 26th

The GArc class
The GPolygon class
The GCompound class

Read: Section 6.1
Lecturing: Eric

April 28th

Binary representation
Representing characters

Read: Sections 6.2-6.3
Lecturing: Eric

May 1st

JavaScript's String class
Common string patterns
The GLabel class

Read: Section 6.4
Lecturing: Jerry

May 3rd

Problem-solving with strings
String applications

Read: Section 6.5
Lecturing: Eric

May 5th


Lecturing: Eric

May 8th

Debugging Strategies

Read: Sections 7.1-7.2
Lecturing: Eric

May 10th

Simple arrays and files

Read: Section 7.3
Lecturing: Jerry

May 12th

Using arrays for tabulation

Read: Sections 7.4-7.5
Lecturing: Jerry

May 15th

Multidimensional arrays
Pixel arrays
The GImage class

Read: Sections 8.1-8.2
Lecturing: Jerry

May 17th

Objects as aggregates

Read: Sections 8.3-8.5
Lecturing: Eric

May 19th

JavaScript and OOP
Libraries and interfaces
Defining classes and methods

Read: Section 8.6
Lecturing: Jerry

May 22nd

Objects as maps

Read: Section 8.7
Lecturing: Eric

May 24th

Large-scale data structures
Data-driven programs

Read: Adventure handout
Lecturing: Eric

May 26th

Overview of Adventure!