Tentative Class Schedule – CSC 205 03F

Title / Topics / Reading / Assignments/Quizzes / Projects
1 / Intro / Course setup: goals & approach
OOA-OOD-OOP
Java types
Primitive
Reference (or object) / Syllabus
Main 1.1 (pp2-6)
Lab 1 / Objects, (multi-dim) arrays, package, javadoc
Testing
2 / Review I / Programming process, env. & styles Arrays
Control constructs / Reading: Main
1.1 (pp7-12 )
1.3
3 / Review II / Class definition
Using objects
Java objects: toString, equals / Main
2.1-2.2
4 / Vector / Vector as an ADT
Comparison of Vector & array
Wrapper classes / King 13.2-3 / Project 1: personnel (King p481, project 3)
Lab 2 / Vector & StringTokenizer
I/O / King 13.6
5 / Subclassing / Concepts: generalization/specialization
Syntax: adding specifics / King 11.1-2
6 / Polymorphism / Overriding
Casting: widening/narrowing (or up/down) / King 11.3-4
7 / Object type / Clone & exceptions / Main 2.4 (pp79-88) / Quiz 1: java objects & subclassing (9/5)
Lab 3 / Overriding
Casting
Cloning
Exceptions
8 / Abstraction / Abstract classes (partially abstract)
Interface (purely abstract) / King 11.69
9 / Design & review / Pre-, post-conditions, invariant
Recap / Main p9 & 32
10 / Test 1 / Java objects
Subclassing & polymorphism
Vector & (multi-dim) arrays / (9/12)
11 / A simple GUI / AWT review: drawing images
Adding a button to a Frame
Adding an event listener
MVC** / King 12.1-3 / Project 2: calculator
Lab 4 / Crazy shapes
12 / Layout mgr. / Layout
Panels
Multiple listeners / King 12.5-6
13 / Various AWT components / Examples / King 12.7-8
14 / Case study / GUI w/ multiple states
Story boarding / Note
Lab 5 / Layout
Components
Event handling
15 / Bag ADT / ADT concepts
Spec
Design / Main 3.2 (pp111-124)
16 / Bag ADT - II / Programming
Testing
Analysis / Main 3.2 (pp125-140) / Project 3: polynomial (Main p163, project 8)
17 / List nodes / Nodes
Head, tail
Manipulating nodes / Main 4.1-2
Lab 6 / Comparison: array vs. ADT (ArrayList)
18 / Linked list / Basic ADT ops / Main 4.3 / Quiz 2: AWT & ADT
19 / Implementation
20 / More on lists / Doubly linked list
Recap / Main 4.6
Lab 7 / Linked lists
21 / Test 2 / AWT
ADT
Linked lists
22 / Recursion concepts / Main 8.1 / Project 4: 8 queens
23 / Recursive prog. / Maze / Main 8.2 (pp409-418)
Lab 8 / Recursion
24 / Stack / Intro
Stack applications / Main 6.1-2
25 / Stack impl. / Implementation
Complex apps / Main 6.3-4
26 / Queue apps / Intro
Queue apps / Main 7.1-2
Lab 9 / Stacks
27 / Queue impl. / Implementation / Main 7.3
28 / Runtime / Big-O notation
Algorithm analysis / Main 1.2
29 / Java collections / Review of Vector & Set
Iterator
Maps / Main 5.5 & 5.7 / Quiz 3
Recursion
Stack & queue / Project 5: student course management (Main p296 project 4)
Lab 10 / Queue & other Java Collection classes
30 / Programming issues / Bag ADT With an iterator
Testing / Main 5.6 & more
31 / Catch-up
32 / Test 3 / Recursion
Stack & queue
Runtime
Java Collection API
33 / Tree concepts / Binary trees
Array representation
Note representation / Main 9.1-2
Lab 11 / Tree essentials
34 / Tree nodes / Binary tree node by example / Main 9.3
35 / Tree traversal / Pre-order
In-order
Post-order / Main 9.4 / Project 6: animal guessing (Main p547 project 4)
36 / Binary search tree / The rules
Operations & implementation / Main 9.5
Lab 12 / BST implementations
37 / Time analysis / BST w/ iterator
Recursion
Runtime for BST / Main 9.5 (p494) & 10.4 (p540)
38 / Applet / Swing basics
DefaultMutableTreeNode
JTree
JApplet / Main 10.3
39 / Thread / Note / Quiz 4
Tree, time analysis, applet
Lab 13 / Applet & multi-threading
40 / Programming issues / GUI
Recursion / Note
41 / Review
42 / Test 4 / Tree concepts & representations
BST operations
Time analysis
Swing (JApplet) & multi-threading
43 / Wrap-up
Lab 14 / jar & deploying apps/applets
AP test / Programming in Java / Use the last lab session
Final