Computer Science 245

Programming II: Object-Oriented Design
Fall 2010
Thomas VanDrunen



Meeting time: MWF 8:00-9:05 am.
Meeting place: Science 131

Office hours: MWF 9:15-10:20 pm; Tu 2:15-3:45; Th 9:00-11:30 am.
Contact: Sci 163 ; 752-5692; Thomas.VanDrunen@wheaton.edu
http://csnew.wheaton.edu/~tvandrun/cs245


Syllabus



Final exam: Tuesday, Dec 14, 8:00 am


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

Aug 23

NO CLASS

Aug 25

Analysis. Introduction to C

Aug 26

C basics and sorting

Lab 1

Aug 27

Sorting; loop invariants

Aug 30

First try at analysis

Sept 1

More analysis

Sept 2

Instrumentation

Lab 2
Project 1 due 9/10

Sept 3

Recursion and analysis

Sept 6

NO CLASS

Sept 8

The C pre-processor, makefiles, revision control

Sept 9

Managing a C project

Lab 3

Sept 10

Object-oriented programming I. Review of classes and objects

Sept 13

Review of polymorphism

Project 2 due 9/22

Sept 15

Review of Java collections

Sept 16

Practicing OO

Lab 4

Sept 17

Review of linked-lists

Sept 20

More linked lists

Sept 22

UML, design concepts
slide

project 3

Sept 23

Object-oriented design

Lab 5

Sept 24

Abstract classes and class extension

Sept 27

Refactoring; the Factory method pattern

Sept 29

More design and refactoring examples

Sept 30

Refactoring

Oct 1

Managing a Java project; overriding and other class extension details

Oct 4

Enum types; extended for loops

proj 4 Due 10/15

Oct 6

The singleton pattern; nested classes

Oct 7

String interning; finalizers

Lab 7

Oct 8

Generics

Oct 11

More generics

Oct 13

Concurrency. Introduction and concepts

Oct 14

Generics

Lab 8

Oct 15

Concurrency in Java

Oct 18

NO CLASS

Oct 20

The actor model; pipe and filter

Oct 21

Concurrency

Lab 9

Oct 22

Event-driven programming

Project 5 Due 10/27

Oct 25

More event-driven programming

Oct 27

Computer memory. Binary representation and arithmetic; bit operations

Oct 29

Playing with bits

pre-lab reading
Lab 10

Oct 29

Memory layout and structs; pointers

Nov 1

Pointer practice

Nov 3

Dynamic allocation

Project 6 Due 11/11

Nov 4

Dynamic allocation

Lab 11

Nov 5

Data structures. Abstract data types; linked vs array implementation

Nov 8

Stacks and queues

Nov 10

More stacks and queues

Nov 11

Implementing stacks and queues

Lab 12
Project 7 Due 11/23

Nov 12

Binary search tress

Nov 15

More BSTs

Nov 17

Sets; hashing

Nov 18

Heaps and priority queues

pre-lab reading
lab 13

Nov 19

Systems. Machine code

Nov 22

Practicing with pseudo-assembly

Nov 24

NO CLASS

Nov 25

NO LAB

Nov 26

NO CLASS

Nov 29

Function call and return

Project 8

Dec 1

Function pointers

Dec 2

Forcing C to be OO


lab 14

Dec 3

Design patterns. Introduction to design patterns

Dec 6

State and strategy

Dec 8

Adaptor and decorator

Dec 9

Patterns


lab 15

Dec 10

Review