Week | Tuesday | Thursday | Assignment | ||
---|---|---|---|---|---|
0 | 09 / 04 |
What is Computer Science?and what's this course all about? |
09 / 06 |
What is a computer?Encodings, DFAs |
|
1 | 09 / 11 |
RegularityNFAs, proofs |
09 / 13 |
ComputabilityTurning Machines, (un)decidability |
|
2 | 09 / 18 |
Combinational logicTransistors, gates, circuits |
09 / 20 |
Sequential logicLatches, memory |
|
3 | 09 / 25 |
Stored-program computer IRegisters, RAM, assembly |
09 / 27 |
Stored-program computer IIFunction calls, the Stack |
|
4 | 10 / 02 |
Functional programmingRacket, referential transparency |
10 / 04 |
Recursion and inductionLinked lists |
|
5 | 10 / 09 |
Higher-order functionsmap, filter, reduce |
10 / 11 |
Recursive strategies, analysis"Use it or lose it", Big O |
|
6 | 10 / 16 |
Analyzing recursionBig O, recurrence relations |
10 / 18 |
TreesBinary trees, binary search trees |
|
7 | 10 / 23 |
Fall Break(no class) |
10 / 25 |
Imperative programmingPython, references, namespaces |
|
8 | 10 / 30 |
Sequence processingSlicing, list comprehensions |
11 / 01 |
Optimization IDynamic programming with memoization |
|
9 | 11 / 06 |
Optimization IIDynamic programming with tabulation |
11 / 08 |
Analyzing loopsSummations, optimization wrapup |
|
10 | 11 / 13 |
Object-oriented Programming IObjects, classes, members, constructors |
11 / 15 |
Object-oriented Programming IISpecial methods, subclassing |
|
11 | 11 / 20 |
SortingSorting algorithms, theoretical & empirical analysis |
11 / 22 |
Thanksgiving(no class) |
|
12 | 11 / 27 |
Intro to Java (no class)Static types, objects & references |
11 / 29 |
Object-oriented designInterfaces, subtyping |
|
13 | 12 / 04 |
Subtyping, GraphsSubtyping, substitutability, graph definitions |
12 / 06 |
Graphs: ImplementationGraph encodings, maps |
|
14 | 12 / 11 |
Review |
12 / 13 |
Wrap-upWhat is computation? |
|