Computer Science 245

Programming II : Object-Oriented Design
Fall 2007
Thomas VanDrunen



Meeting time: MWF 12:45 - 1:50 pm.
Meeting place: Armerding 123
Lab time: Tu 8:30 - 10:20 pm
Lab place: Armerding 131
Office hours: MWF 3:10-4:10 pm; Tu 10:15-11:45 am, 1:00-3:30 pm.
Contact: 112 Armerding; 752-5692; Thomas.VanDrunen@wheaton.edu


Syllabus: ps pdf


Resources:
Style and documentation requirements
Java API
Lab intro
Lab Unix documentation
How to get in-class code examples and old handouts
Subversion documentation



Final exam: Thursday, Dec 20, 10:30 AM


Moon's dayWoden's dayThor's dayFrigga's day

Aug 27

NO CLASS

Aug 29

Algorithms and analysis. Introduction, review of algorithms, sorting

Aug 30

Counting comparisons
Canceled

Aug 31

Sorting on lists; recursive sort

Sep 3

NO CLASS

Sep 5

Counting comparisons

lab 1, project 1

Sep 6

Linked lists

lab 2

Sep 7

Analysis

Sep 10

Searching

Sep 12

Software development. Revision control; API generation

Sep 13

Instrumentation

lab 3

Sep 14

Good programming practices

Sep 17

Object-oriented programming. Object-oriented review

project 2, due 9/26

Sep 19

Abstract classes and inheritance

Sep 20

Subclassing

lab 4

Sep 21

More inheritance; overriding

Sep 24

Static initializers; final

Sep 26

Pred/prey simulation

Sep 27

Object-oriented design

lab 5

Sep 28

More simulation

Oct 1

UML; aggregation and acquantaince
slide

project 3, due 10/8

Oct 3

Reuse and refactoring

Oct 4

Refactoring

lab 6

Oct 5

Responsibility, coupling, cohesion
slides

Oct 8

Review

Oct 10

TEST

Oct 11

More adventure game

lab 7

Oct 12

Private and inner classes

project 4, due 10/19

Oct 15

Generics

Oct 17

Data structures. Concrete vs abstract data types; linked vs. array-based

Oct 18

Generics

lab 8

Oct 19

Stacks and queues

Oct 22

NO CLASS

Oct 24

Finalizers and String interning

lab 9 project 5, due 10/31

Oct 25

Stacks and queues

lab 10

Oct 26

More stacks and queues
slides

Oct 29

Binary trees

Oct 31

More binary trees

project 6, due 11/9

Nov 1

Heaps and priority queues

lab 11

Nov 2

Traversing binary trees

Nov 5

Design patterns. Review patterns so far

Nov 7

The Strategy pattern

Nov 8

Strategy

lab 12

Nov 9

The State pattern

Nov 12

The Adaptor and Decorator patterns

project 7, due 11/26

Nov 14

Review

Nov 15

Adaptor and Decorator

lab 13

Nov 16

TEST

Nov 19

(Data Structures.) Hash tables

Nov 21

NO CLASS

Nov 22

NO LAB

Nov 23

NO CLASS

Nov 26

Systems. Introduction to C; types, basic I/O, functions, linking

project 8, due 12/12

Nov 28

C: Pointers, dynamic allocation, arrays, structs

Nov 29

Data structures in C

lab 14

Nov 30

C: Strings

Dec 3

Representation of information; C: bit operations

Dec 5

Architecture

Dec 6

Using C bit operations

lab 15

Dec 7

More architecture and systems
language description

Dec 10

Hardware support for function calls

lab 15.5

Dec 12

C: Function pointers

Dec 13

Object-oriented programming in C

lab 16

Dec 14

Review