Fall 2022

CS 42: Principles and Practice of Computer Science

TTh 9:35am–10:50am in SHAN 2475

Schedule

Sunday Monday Tuesday Wednesday Thursday Friday Saturday
08 / 28
08 / 29
due @ 08:00 pm
Welcome survey
08 / 30
class @ 09:35 am
What is Computer Science?
and what's this course all about?
08 / 31
09 / 01
class @ 09:35 am
What is a Computer?
Encodings, DFAs
09 / 02
09 / 03
09 / 04
09 / 05
Labor Day
09 / 06
class @ 09:35 am
Regularity
"Good" DFAs, distinguishability
due @ 11:59 pm
HW 0
DFAs
09 / 07
09 / 08
class @ 09:35 am
Computability
Turing Machines, (un)decidability
09 / 09
09 / 10
09 / 11
09 / 12
due @ 11:59 pm
HW 1
(Ir)regularity
09 / 13
class @ 09:35 am
Combinational Logic
Transistors, gates, circuits
09 / 14
09 / 15
class @ 09:35 am
Sequential Logic
Latches, memory
09 / 16
09 / 17
09 / 18
09 / 19
due @ 11:59 pm
HW 2
Gates, circuits, memory
09 / 20
class @ 09:35 am
Stored-program Computer 1
Registers, RAM, assembly
09 / 21
09 / 22
class @ 09:35 am
Stored-program Computer 2
Function calls, the Stack
09 / 23
09 / 24
09 / 25
09 / 26
due @ 11:59 pm
HW 3
Programming in assembly
09 / 27
class @ 09:35 am
Functional Programming
Racket, referential transparency
09 / 28
09 / 29
class @ 09:35 am
Recursion & Induction
Linked lists
09 / 30
10 / 01
10 / 02
10 / 03
In-class exam @ 11:59 pm
Take-home exam
Covers Aug. 29–Sep. 22
10 / 04
class @ 09:35 am
Higher-order Functions
map, filter, fold
10 / 05
10 / 06
class @ 09:35 am
Analysis 1
Big O, recurrence relations
10 / 07
10 / 08
10 / 09
10 / 10
due @ 11:59 pm
HW 4
Ciphers, higher-order functions
10 / 11
class @ 09:35 am
Branching
Recursive search, binary (search) trees
10 / 12
10 / 13
class @ 09:35 am
Intro to Python
Python, slicing, list comprehensions
10 / 14
10 / 15
Fall Break
10 / 16
Fall Break
10 / 17
Fall Break
10 / 18
Fall Break
No class
10 / 19
10 / 20
class @ 09:35 am
Namespaces
References, memory model
10 / 21
10 / 22
10 / 23
10 / 24
due @ 11:59 pm
HW 5
Recurrence
10 / 25
class @ 09:35 am
Dynamic Programming 1
Memoization & Tabulation
10 / 26
10 / 27
class @ 09:35 am
Dynamic Programming 2
Implementing in Python
10 / 28
10 / 29
10 / 30
10 / 31
due @ 11:59 pm
HW 6
"String theory"
11 / 01
class @ 09:35 am
Analysis 2 & Sorting
Summations
11 / 02
11 / 03
class @ 09:35 am
Object-oriented Programming 1
Objects, classes, members, constructors
11 / 04
11 / 05
11 / 06
11 / 07
In-class exam @ 11:59 pm
Take-home exam
Covers Sep. 27–Nov. 01
11 / 08
class @ 09:35 am
Object-oriented Programming 2
Class attributes,namespaces
11 / 09
11 / 10
class @ 09:35 am
Object-oriented Programming 3
Subclassing, inheritance
11 / 11
11 / 12
11 / 13
11 / 14
due @ 11:59 pm
HW 7
OOP in Python
11 / 15
class @ 09:35 am
Work session
11 / 16
11 / 17
class @ 09:35 am
Projects overview
11 / 18
11 / 19
11 / 20
11 / 21
due @ 11:59 pm
Project milestone 1
11 / 22
class @ 09:35 am
Work session
11 / 23
Thanksgiving
11 / 24
Thanksgiving
No class
11 / 25
Thanksgiving
11 / 26
Thanksgiving
11 / 27
Thanksgiving
11 / 28
11 / 29
class @ 09:35 am
Types 1
Typechecking
11 / 30
12 / 01
class @ 09:35 am
Work session
12 / 02
due @ 11:59 pm
Project milestone 2
12 / 03
12 / 04
12 / 05
12 / 06
class @ 09:35 am
Types 2
Subtypes
12 / 07
12 / 08
class @ 09:35 am
Wrap up
12 / 09
due @ 11:59 pm
Final project
12 / 10
12 / 11
12 / 12
12 / 13
12 / 14
12 / 15
12 / 16
12 / 17