Lectures

The lectures for this course are available here as studio-produced videos for you to watch at your own pace. Though, each lecture has a due date; you are responsible for its contents in precept after that date. We recommend skimming the required reading before watching the lecture, then reading it thoroughly soon after.

# DUE READING LECTURE SLIDES
0 9/14,
9/15
1.1 Prologue 1pp · 4pp
1 9/19,
9/20
1.2 Introduction to Java 1pp · 4pp
2 9/21,
9/22
1.3 Conditionals & Loops 1pp · 4pp
3 9/26,
9/27
1.4 Arrays 1pp · 4pp
4 9/28,
9/29
1.5 Input & Output 1pp · 4pp
5 10/3,
10/4
2.1–2.2 Functions & Libraries 1pp · 4pp
6 10/5,
10/6
2.3 Recursion 1pp · 4pp
7 10/10,
10/11
6.1–6.2 A Computing Machine 1pp · 4pp
8 10/12,
10/13
6.3–6.4 von Neumann Machines 1pp · 4pp
SPRING BREAK
9 10/24,
10/25
3.1 Using Data Types 1pp · 4pp
10 10/26,
10/27
3.2–3.3 Creating Data Types 1pp · 4pp
FALL BREAK
11 11/7,
11/8
4.1 Performance 1pp · 4pp
12 11/9,
11/10
4.2 Searching and Sorting 1pp · 4pp
13 11/14,
11/15
4.3 Stacks and Queues 1pp · 4pp
14 11/16,
11/17
4.4 Symbol Tables 1pp · 4pp
THANKSGIVING
15 11/28,
11/29
5.1 Theory of Computing 1pp · 4pp
16 11/30,
12/1
5.2–5.4 Universality and Computability 1pp · 4pp
17 12/5,
12/6
5.5 Intractability 1pp · 4pp
18 12/7,
12/8
7.1–7.3 Combinational Circuits 1pp · 4pp
19 12/12,
12/13
7.4–7.5 Central Processing Unit 1pp · 4pp
20 12/14,
12/15
Programming Languages 1pp · 4pp