|
COMP 212: Intermediate Programming
Fall 2001
UNDER CONSTRUCTION!!
|
COMP 212 introduces students to object-oriented program design and the
fundamental algorithms and data structures of imperative programming.
All programming assignments are done in the Java programming language.
Several programming projects of moderate size will
help students to learn
- how to design object-oriented programs using design patterns;
- how to choose appropriate data structures and algorithms that
strike a balance between logical simplicity and performance; and
- how to write programs in stream-oriented and event-oriented style.
The exercises will involve common data structures such as lists, stacks,
queues, search trees, syntax trees, and hash tables, and will use
algorithms for sorting, searching, and graph traversal. Some
exercises will involve writing programs driven by a graphics user
interface (GUI).
This semester's notes are listed as they become available:
- 17 Jan:
Course overview
(PS,
PDF)
- 19 Jan:
Object-oriented programming introduction,
Pizza example
(PS,
PDF)
- 22 Jan:
Java introduction,
Pizza example
(PS,
PDF)
and Handout
(PS,
PDF)
- 24 Jan:
Java Classes
(PS,
PDF)
- 26 Jan:
Java exceptions
(PS,
PDF)
- 29 Jan:
Polymorphism, The Union Pattern, Scheme-like Lists
(PS,
PDF)
- 31 Jan:
Scheme-like Lists (cont.), The Singleton Pattern
(PS,
PDF)
- 1 Feb:
The Composite Pattern, Polynomials
(PS,
PDF)
- 5 Feb:
The Visitor Pattern
(PS,
PDF)
- 7 Feb:
Interfaces
(PS,
PDF)
- 9 Feb:
The State Pattern
(PS,
PDF)
and Handout
(PS,
PDF)
- 12 Feb:
The State Pattern (cont.), Hangman Program
(PS,
PDF)
and Handouts
(PS,
PDF)
(PS,
PDF)
- 14 Feb:
The LRStruct Implementation
(PS),
Handout
(PS), and
Code
- 16 Feb:
The Container Interface, the LRSContainer Implementation
(PS,
PDF)
and Handout
(PS,
PDF)
- 19 Feb:
Nested and Inner Classes
(PS,
PDF)
- 21 Feb:
Java's GUI Library: Swing and
Handout
- 23 Feb:
Anonymous Inner Classes, an Updated LRSContainer Implementation
(PS,
PDF)
and Code
- 26 Feb:
Arrays
(PS,
PDF)
- 28 Feb:
Arrays (cont.)
(PS,
PDF)
- 2 Mar:
An Array-based Container
(PS,
PDF)
- 12 Mar:
Double-dispatch
(PS,
PDF)
and Handout
(PS,
PDF)
- 14 Mar:
Big-Oh
(PS,
PDF)
- 16 Mar:
Stacks and Queues, Array-based Queues
(PS,
PDF),
Handout
(PS,
PDF) and
Code
- 19 Mar:
Array-based Queues (cont.) and Circular Lists
(PS,
PDF)
and Code
- 21 Mar:
Circular Lists (cont.)
(PS,
PDF)
- 23 Mar:
An Array-based Ordered Container, Binary Search
(PS,
PDF) and
Code
- 26 Mar:
Binary Search (cont.), Interpolation Search and the Template Pattern
(PS,
PDF)
- 28 Mar:
Selection Sort and Insertion Sort
(PS,
PDF) and
Code
- 30 Mar:
Merge Sort and Quick Sort
(PS,
PDF)
- 2 Apr:
Heap Sort and Heaps
(PS,
PDF)
- 4 Apr:
Analysis of Heap Creation's Running Time and Priority Queues
(PS,
PDF)
- 6 Apr:
Binary Trees
(PS,
PDF) and
Code
- 9 Apr:
Binary Search Trees
(PS,
PDF) and
Code
- 11 Apr:
Game Trees and the Min-Max Algorithm
(PS,
PDF)
- 16 Apr:
Rotations and Treaps
(PS,
PDF)
- 18 Apr:
2-3-4 Trees
(PS,
PDF) and
Code
- 20 Apr:
Implementing 2-3-4 Trees: Red-Black Trees
(PS,
PDF)
- 23 Apr:
Hash Functions and Hash Tables
(PS,
PDF)
- 25 Apr:
Discuss Exam #2
- 27 Apr:
Hash Functions and Hash Tables (cont.)
(PS,
PDF) and
Code
Some previous semesters' notes:
Dr. Cartwright's TeachJava notes
(PS,
HTML)
Free viewers for
PS,
PDF.
Assignments & Exams