Computer Science 245

Programming II: Object-Oriented Design
Fall 2010
Thomas VanDrunen



Meeting time: MWF 9:15-10:20 am.
Meeting place: Science 131

Office hours: MWF 1:30-3:30 pm; Th 10:30-11:30 am.
Contact: Sci 163 ; 752-5692; Thomas.VanDrunen@wheaton.edu
http://csnew.wheaton.edu/~tvandrun/cs245


Syllabus
Style and documentation requirements


Final exam: Tuesday, May 3, 1:30 PM


Color codes:
Cyan: Systems and C programming
Red: Algorithms and analysis
Brown: Java programming
Magenta: Software development
Orange: Abstract datatypes (ADTs)
Yellow: Object-oriented design
Moon's dayWoden's dayThor's dayFrigga's day

Jan 10

Introduction to C (McD 1, 3)

Jan 12

C functions (McD 2, 4, 6.2)

Jan 13

Sorting; counting comparisons

pre-lab reading
lab 1

Jan 14

Loop invariants and sorting

Jan 17

NO CLASS

Jan 19

First try at analysis (S pg 851-856)

Jan 20

Instrumentation

pre-lab reading
lab 2

Jan 21

Recursive sorting and analysis

proj 1 Due 1/31

Jan 24

Having a baby

Jan 26

Structs (McD 5); managing a C project

Jan 27

Structs

lab 3

Jan 28

Review basic OOP (S 4)

Jan 31

Review polymorphism; review static members (S 5.1; 8.1; 13.1)

Proj 1 due; Proj 2, due 2/16

Feb 2

Snow

Feb 3

Sorting linked lists (S 15.1)

lab 4

Feb 4

Review Java collections (S 14.1, 16); Javadoc (S 5.4); basic GUI in Java (S 17)

Feb 7

Introdution to ADTs; linked vs array-based

Feb 9

Eclipse; revision control; review

Feb 10

OO design

lab 5

Feb 11

TEST

Feb 14

UML; design goals (S 12.1)
Slide

Feb 16

Abstract classes and class extension (S 7; 8.2)

Proj 2 due

Feb 17

More OO design

Feb 18

Design and refactoring example

Proj 3 assigned

Feb 21

NO CLASS

Feb 23

Nested classes (S 13.(2 &3))

Feb 24

Generics (S 14.2)

Feb 25

Generics

lab 7

Feb 28

Extended for loops; enum types (S pg 370-374, 759-766, 920; pg 386-393)

Mar 2

Stacks and queues (S pg 846-851)

Mar 3

Stacks and queues

pre-lab reading
lab 8

Mar 4

More stacks and queues
Slides

Mar 7

NO CLASS

Mar 9

NO CLASS

Mar 10

NO LAB

Mar 11

NO CLASS

Mar 14

Representing information

proj 4

Mar 16

Pointers

Mar 17

Dynamic allocation (McD 5.4)

Mar 18

C strings (McD 4)

Mar 21

Sets and maps; (S 15.(5&6); 16.2)

proj 5

Mar 23

Bit operations

Mar 24

Bit vectors

pre-lab reading
lab 10

Mar 25

Model of execution

Mar 28

Pseudo-assembly
Review sheet

Mar 30

Review

Mar 31

Writing in pseudo-assembly

lab 11

Apr 1

TEST

Apr 4

Binary trees (S 15.7)

Apr 6

Binary trees

Apr 7

Heaps and priority queues

pre-lab reading
lab 12

Apr 8

Design patterns

Apr 11

State and strategy

project 6, due 4/20

Apr 13

Adaptor and decorator (12.2)

Apr 14

Adaptor pattern

lab 13

Apr 15

Concurrency concepts

Apr 18

Concurrency in Java

Apr 20

Event-driven programming

Apr 21

Concurrency

project 7, due 4/29

Apr 22

NO CLASS

Apr 25

Function call and return

Proj 7 due

Apr 27

Function pointers

Apr 28

Forcing C to be object-oriented

pre-lab reading
lab 14

Apr 29

Review