|
Here is the tentative schedule of lectures. (Lectures in the future are subject to change, and data will be updated throughout the term.) All sections refer to Introduction to Computer Science by R. Sedgewick and K. Wayne. The textbook Introduction to Programming in Java: An Interdisciplinary Approach contains Chapters 1–4. The remaining chapters are unpublished.
Click here for the reading period schedule.
# | DATE | TOPIC | SLIDES | READINGS | DEMOS |
---|---|---|---|---|---|
1 | 9/12 | Prologue | 1up · 4up | 1 | – |
2 | 9/17 | Introduction to Java | 1up · 4up | 1.1–1.2 | Exchange IntOps LeapYear |
3 | 9/19 | Conditionals and Loops | 1up · 4up | 1.3 | ForLoop TwoSort AbsValue Sqrt Ruler TwoPower TEQif Gambler |
4 | 9/24 | Arrays | 1up · 4up | 1.4 | ArrayCopy DigitCounts CouponCollector DealCards |
5 | 9/26 | Input and Output | 1up · 4up | 1.5 | Average StdInDemo |
6 | 10/1 | Functions and Libraries | 1up · 4up | 2.1–2.2 | Newton Cube Gaussian Perimeter |
7 | 10/3 | Recursion | 1up · 4up | 2.3 | Binary Ruler Recursive Fibonacci Memoized Fib. DP Fib. Change |
8 | 10/8 | Performance | 1up · 4up | 4.1 (book), 9.6(booksite) | ThreeSum |
— 10/10 Written Midterm 1 — | |||||
9 | 10/15 | Abstract Data Types | 1up · 4up | 3.1 | PlayTime |
10 | 10/17 | Creating Data Types | 1up · 4up | 3.2 | Person Watch (with internal calls) Complex |
11 | 10/22 | Von Neumann Machine I | 1up · 4up | 5.1–5.3 (booksite) | X-TOY |
12 | 10/24 | Von Neumann Machine II | 1up · 4up | 5.4–5.5 (booksite) | X-TOY |
13 | 11/5 | Searching and Sorting | 1up · 4up | 4.2 | – |
14 | 11/7 | Stacks and Queues | 1up · 4up | 4.3 | linked-list · iteration |
15 | 11/12 | Symbol Tables | 1up · 4up | 4.4 | inorder traversal |
16 | 11/14 | Programming Languages | 1up · 4up | 3.3 | – |
17 | 11/19 | Theory of Computation | 1up · 4up | 7.1–7.3 (booksite and online chapter**) | DFA |
18 | 11/21 | Universality and Computability | 1up · 4up | 7.4–7.6 (booksite), Harel 1–2 (optional) | Turing machine |
19 | 11/26 | Intractability | 1up · 4up | 7.7 (booksite), Harel 3–5 (optional) | – |
20 | 12/3 | Combinational Circuits | 1up · 4up | online chapter** | – |
21 | 12/5 | Designing a CPU | 1up · 4up | – | Circuits Exercise |
22 | 12/10 | AI | 1up · 4up | – | – |
— 12/12 Written Midterm 2 — |
Advice.
The slides are intended for the lecture presentations;
for reference, read the indicated sections from
Introduction to Programming in Java: An Interdisciplinary Approach.
An effective strategy
is to skim the textbook before the lecture, then read it thoroughly
soon afterwards.
We recommend printing the slides before lecture and
annotating them during lecture.
Online viewing and printing. These lecture slides are suitable for online viewing (one per page) or printing (four per page).
Errata. Here is a list of known errors in the lecture notes and other course materials.
Copyright Robert Sedgewick and
Kevin Wayne.