Week 1 |
21 Jan
|
23 Jan
Getting started
|
24 Jan
|
25 Jan
Programming in the small with Java
|
Week 2 |
28 Jan
Getting started with Java development
Due:
Quiz 1
|
30 Jan
|
31 Jan
Due:
Assignment 1: Classical encryption
|
1 Feb
Objects and classes
|
Week 3 |
4 Feb
Unit testing and debugging
Due:
Quiz 2
|
6 Feb
Object semantics
|
7 Feb
Due:
Assignment 2: Speed reader
|
8 Feb
Interfaces and subtype polymorphism
|
Week 4 |
11 Feb
Parametric polymorphism
Due:
Quiz 3
|
13 Feb
Pause for Breath
|
14 Feb
Due:
Assignment 3: Explorations in object-oriented design
|
15 Feb
Inheritance
|
Week 5 |
18 Feb
List ADTs
Due:
Quiz 4
|
20 Feb
Linear structures
|
21 Feb
Due:
Assignment 4: Artificial Life
|
22 Feb
Array-based linear structures
|
Week 6 |
25 Feb
Iterators
Due:
Quiz 5
|
27 Feb
Analyzing algorithms
|
28 Feb
|
1 Mar
Analyzing algorithms, continued
|
Week 7 |
4 Mar
Analyzing recursive algorithms
Due:
Assignment 5: Blockchains
|
6 Mar
Anonymous functions
|
7 Mar
|
8 Mar
Searching
|
Week 8 |
11 Mar
Loop invariants
Due:
Quiz 7
|
13 Mar
Sorting
|
14 Mar
Due:
Exam 1: ADTs, Algorithms, and Object-Oriented Design
|
15 Mar
Merge sort
|
Spring Break |
Week 9 |
1 Apr
Quicksort
|
3 Apr
Pause for breath
Due:
Quiz 8
|
4 Apr
Due:
Assignment 6: Complexity analysis
|
5 Apr
Pause for breath
|
Week 10 |
8 Apr
Array-based lists
Due:
Quiz 9
|
10 Apr
Doubly-linked lists
|
11 Apr
Due:
Makeup Exam 1: ADTs, Algorithms, and Object-Oriented Design
|
12 Apr
The Map ADT
|
Week 11 |
15 Apr
Trees and tree traversal
Due:
Quiz 10
|
17 Apr
Binary search trees I
|
18 Apr
Due:
Assignment 7: The sounds of sorting
|
19 Apr
Binary search trees II
|
Week 12 |
22 Apr
Hash tables
Due:
Quiz 11
|
24 Apr
Probing in hash tables
|
25 Apr
Due:
Assignment 8
|
26 Apr
Chaining in hash tables
|
Week 13 |
29 Apr
Priority queues, heaps, and heap sort
Due:
Quiz 12
|
1 May
The Graph ADT
|
2 May
Due:
Exam 2: Trees and other linked structures
|
3 May
Traversing graphs
|
Week 14 |
6 May
Minimum spanning trees
Due:
Quiz 13
|
8 May
Shortest paths in graphs
|
9 May
Due:
Assignment 9
|
10 May
Wrapup
|
Finals Week |
13 May
|
15 May
|
16 May
|
17 May
|