Computer Science 245

Programming II : Object-Oriented Design
Spring 2008
Thomas VanDrunen



Meeting time: MWF 8:00 - 9:05 am.
Meeting place: Armerding 123
Lab time: Th 1:15-3:05 pm
Lab place: Armerding 131
Office hours: MTuWF 3:10-4:10 pm; Th 8:30-11:30 am.
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, May 8, 1:30 pm


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

Jan 14

Algorithms and analysis. Introduction, review of algorithms, sorting

Jan 16

Review of linked lists, sorting on lists

Jan 17

Counting comparisons

lab 1

Jan 18

Recursive sort

proj 1, due 1/30

Jan 21

NO CLASS

Jan 23

Ananlysis

Jan 24

Instrumentation

lab 2

Jan 25

Searching

Jan 28

Software development. Revision control; API generation

Jan 30

Object-oriented programming. Object-oriented review

Jan 31

Object-oriented review

lab 3

Feb 1

(Software Development) Good programming practices

proj 2, due 1/15

Feb 4

Technical difficulties

Feb 6

Abstract classes and inheritance

Feb 7

Subclassing

lab 4

Feb 8

Having a baby...

Feb 11

Static initializers; final

Feb 13

Pred/prey simulation

Feb 14

Object-oriented design

lab 5

Feb 15

More simulation

Feb 18

NO CLASS

Feb 20

UML, aggregation. Reuse and refactoring

Feb 21

Refactoring

lab 6

Feb 22

Responsibility, coupling, cohesion
Slides

Feb 25

Review

Feb 27

TEST

Feb 28

Maintenance

lab 7

Feb 29

Private and inner classes

Mar 3

Generics

Mar 5

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

Mar 6

Generics

lab 8

Mar 7

Stacks and queues

Mar 10

NO CLASS

Mar 12

NO CLASS

Mar 13

NO LAB

Mar 14

NO CLASS

Mar 17

More stacks and queues
slides

proj 4, due 3/26

Mar 19

Binary trees

Mar 20

Stacks and queues

lab 9

Mar 21

NO CLASS

Mar 24

More binary trees

Mar 26

Traversing binary trees

proj 5, due 4/4

Mar 27

Heaps and priority queues

lab 10

Mar 28

Hash tables

Mar 31

Design patterns. Review patterns so far

Apr 2

The Strategy pattern

Apr 3

Strategy

lab 11

Apr 4

The State pattern

proj 6, due 4/16

Apr 7

The Adaptor and Decorator patterns

Apr 9

Review

Apr 10

Adaptor and Decorator

lab 12

Apr 11

TEST

Apr 14

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

proj 7, due 4/30

Apr 16

C: Pointers, dynamic allocation, arrays, structs

Apr 17

Data structures in C

lab 13

Apr 18

C: Strings

Apr 21

Representation of information; C: bit operations

Apr 23

Architecture

Apr 24

Using C bit operations

lab 14

Apr 25

More architecture and systems

Apr 28

Hardware support for function calls

lab 14.5

Apr 30

C: Function pointers

Apr 1

Object-oriented programming in C

lab 15

Apr 2

Review