Computer Science 245

Programming II : Object-Oriented Design
Spring 2010
Thomas VanDrunen



Meeting time: MWF 9:15-10:20 am.
Meeting place: Armerding 123
Lab time: Th 1:15-3:05pm
Lab place: Armerding 131
Office hours: MWF 3:15-4:45 pm; Th 9:00-11:30 am.
Contact: 112 Armerding; 752-5692; Thomas.VanDrunen@wheaton.edu
http://csnew.wheaton.edu/~tvandrun/cs245

Syllabus


Resources:
Style and documentation requirements
Java API
Subversion documentation



Final exam: Wednesday, May 5, 8:00 am


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

Jan 11

Algorithms and analysis.
Introduction and a review of sorting

Jan 13

Review of recursion; review of linked lists

Jan 14

Counting comparisons

Pre-lab reading
lab 1

Jan 15

A first try at analysis

proj 1 Due 1/27

Jan 18

NO CLASS

Jan 20

More analysis; searching

Jan 21

Instrumentation

Pre-lab reading
lab 2

Jan 22

Software development.
Eclipse; revision control

Jan 25

Software life-cycle; JUnit

Jan 27

Object-Oriented Programming.
Review of classes, objects, interfaces, and polymorphism

Jan 28

Subclassing

lab 3

Jan 29

Class extension; overriding

proj 2 Due 2/10

Feb 1

Class implementation details

Feb 3

Simulation example

Feb 4

OO design

lab 4

Feb 5

OO design principles
Slides

Feb 8

Refactoring

Feb 10

For-each loop; enum types

Feb 11

Refactoring

lab 5

Feb 12

Nested classes

Feb 15

NO CLASS

Feb 17

Review
Practice test

Feb 18

More work on the adventure game

proj 3 Due 3/1

Feb 19

TEST

Feb 22

Generics

Feb 24

More generics

Feb 25

Generics

Pre-lab reading
lab 7

Feb 26

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

proj 4 Due 3/5

Mar 1

Stack and queues
Slides

Mar 3

Binary trees

Mar 4

Stacks and queues

Pre-lab reading
lab 8

Mar 5

More binary trees

Mar 8

NO CLASS

Mar 10

NO CLASS

Mar 11

NO LAB

Mar 12

NO CLASS

Mar 15

Finishing binary trees

proj 5 Due 3/23

Mar 17

Hash tables

Mar 18

Heaps and priority queues

Pre-lab reading
lab 9

Mar 19

Event-driven and concurrent programming
Introducing threads

Mar 22

Concurrency and threads

Mar 24

Concurrent algorithms

Mar 25

NO LAB

Mar 26

Event-driven programming

Mar 29

Design patterns.
Intro to design patterns

Mar 31

State and strategy

proj 6 Due 4/14

Apr 1

Strategy

lab 10

Apr 2

NO CLASS

Apr 5

Adaptor and decorator

Apr 7

Review
Review sheet

Apr 8

Adaptor and decorator

lab 11

Apr 9

TEST

Apr 12

Systems.
Intro to C

Apr 14

Structs and arrays; pointers and dynamic allocation of memory

proj 7 Due 4/28

Apr 15

Structs and dynamic memory

lab 12

Apr 16

Strings

Apr 19

Computer memory

Apr 21

Bit operations

Apr 22

Playing with bits

Pre-lab reading
lab 13

Apr 23

Computer architecture
pseudo-assembly language

Apr 26

More computer architecture

Apr 28

Function pointers

Apr 29

Making C object-oriented

Pre-lab reading
lab 14

Apr 30

Review
Practice final