aalok thakkar: introduction to computer science

spring 2025: cs-1102-1

"Induction is a Computer" - Subhashis Banerjee

Course Outline and Lectures:


The following is a tentative outline for the classes, lectures, and assignments for the course:

Module 1: Algorithmic Thinking

Lecture 1: Introduction, Logistics, and Course Outline
Lecture 2: Computation before Computers
Lecture 3: It's Turtles all the Way Down
Lecture 4: A Picture is Worth a Hundred Lines of Code

Module 2: Functional Model of Computation

Lecture 5: Programs as Functions
Lecture 6: Variables and Types
Lecture 7: It's Recursion all the Way Down
Lecture 8: My First Calculator
Lecture 9: The Cost of Computation
Lecture 10: Lists in OCaml
Lecture 11: The Principle of Mathematical Induction
Lecture 12: Map, Filter, Fold

Module 3: Imperative Model of Computation

Lecture 13: Programs as Procedures
Lecture 14: Iteration is Tail Recursion
Lecture 15: A Lot of Loop Invariants
Lecture 16: Functions and Scope
Lecture 17: Arrays and Lists in Python
Lecture 18: Three Algorithms for Sorting
Lecture 19: My Second (and Faster) Calculator

Module 4: Introduction To ...

Lecture 20: Information Theory and Cryptography
Lecture 21: Programming Language Theory
Lecture 22: Relational Databases and Querying
Lecture 23: Numerical Algorithms
Lecture 24: Data-Driven Modelling
Lecture 25: Learning, Inference, and Intelligence