Lecture 1: January 8, 2007

Find the max number in a list

Lecture 2: January 10, 2007

Data Definition in Scheme and Java

Lecture 3: January 11, 2007

Data Definition for unions of data

Lecture 4: January 17, 2007


Data Definition for self-referential unions of data

Lecture 5: January 18, 2007

Designing methods for simple classes and classes with containment

Lecture 6: January 22, 2007

Designing methods for unions

Lecture 7: January 24, 2007

Designing methods for self-referential unions

Lecture 8: January 25, 2007

More methods for self-referential unions

Lecture 9: January 29, 2007

Understanding mutually-referential unions

Lecture 10: January 31, 2007

Managing mutually-referential unions

Lecture 11: February 1, 2007

Designing methods with accumulators

Lecture 12: February 5, 2007

Comparing Union Objects for Equality; Abstracting over common fields and methods

Lecture 13: February 7, 2007

Lifting methods to the abstract class or a super class

Lecture 14: February 8, 2007

Deriving subclasses; overriding methods.

Lecture 15: February 12, 2007

Designing constructors; overloading constructors and methods.

Lectures 16-17: February 14-15, 2007

Circularly referential data; Methods for circularly referential data.

Lecture 18: February 21, 2007

Assuring integrity of data; Information hiding.

Lecture 19: February 22, 2007

Touching the Void

The need for mutation.

Lecture 20: February 26, 2007

Understanding mutation

Mutating the contents of a list.

Lecture 21: February 28, 2007

Abstracting over the datatype

Abstracting over the datatype.

Lecture 22: March 1, 2007

Abstracting over the behavior

Abstracting over the behavior.

Lecture 23: March 12, 2007

Abstracting over Traversals - Part 1

Abstracting over traversals - Part 1.

Lecture 24: March 14, 2007

Abstracting over datatype: Generics

Abstracting over datatype: Generics.

Lecture 25: March 15, 2007

Abstracting over traversals: Part 2

Abstracting over traversals: Part 2.

Lecture 26: March 19, 2007

ArrayList: Direct access data structure

ArrayList: Direct access data structure.

Code for this lecture.

Lecture 27: March 21, 2007

From Accumulators to Java Loops

From Accumulators to Java Loops.

Code for this lecture.

Lecture 28: March 22, 2007

Java Loops; Mutation: Selection Sort

Java Loops; Mutation: Selection Sort.

Code for this lecture.

Lecture 29: March 28, 2007

Exploring Java Collections Framework; Iterator

Exploring Java Collections Framework; Iterator.

Lecture 30: March 29, 2007

Exploring Data Structures: Stacks and Queues

Exploring Data Structures: Stacks and Queues.

Code for this lecture.

Lecture 31: March 30, 2007

Data Organization and Algorithm Complexity

Data Organization and Algorithm Complexity.

Lecture 32: April 2, 2007

Key-Based Data Organization: Hash Map

Key-Based Data Organization: Hash Map.

Lecture 32: April 4, 2007

BigOh and Sorting Algorithms

BigOh and Sorting Algorithms.