CS61A: Structure and Interpretation of Computer Programs
Published:
CS61A: Structure and Interpretation of Computer Programs
Course Website
Course Overview
That was the second computer science course I took after CS50. Different from CS50, CS61A focuses more on the basic principles of programming. From functional programming to object-oriented programming, from data abstraction to interpreters, this course covers a wide range of fundamental concepts in computer science. The primary programming language used in this course is Python, which is known for its simplicity and readability, making it an excellent choice for beginners.
Holding the idea of practicing my English listening ability, I chose to take this course without Chinese subtitles and unluckily I missed a lot critical points. But I did harvest a lot from all the projects and homework assignments. I have to say that the projects in this course are all with high quality.
My Learning Journey
- 2025.7.26 Lecture 1 Computer Science
- 2025.7.28 Lecture 2 Functions
- 2025.7.29 Lecture 3 Control
- 2025.8.14 Lecture 4 Higher Order Functions
- 2025.8.20 Lecture 5 Environments
- 2025.8.21 Lecture 6 Design
- 2025.8.22 Lecture 7 Function Examples
- 2025.8.23 Lecture 8 Recursion
- 2025.8.27 Lecture 9 Tree Recursion
- 2025.8.28 Lecture 10 Containers
- 2025.8.29 Lecture 11 Data Abstraction
- 2025.9.1 Lecture 12 Trees
- 2025.9.1 Lecture 13 Binary Numbers
- 2025.9.2 Lecture 14 Circuits
- 2025.9.2 Lecture 15 Mutable Values
- 2025.9.3 Lecture 16 Mutable Functions
- 2025.9.4 Lecture 17 Iterators
- 2025.9.4 Lecture 18 Objects
- 2025.9.5 Lecture 19 Inheritance
- 2025.9.7 Lecture 20 Representation
- 2025.9.8 Lecture 21 Composition
- 2025.9.9 Lecture 22 Efficiency
- 2025.9.10 Lecture 23 Decomposition
- 2025.9.11 Lecture 24 Data Examples
- 2025.9.11 Lecture 25 Users
- 2025.9.11 Lecture 26 Ethical AI & Data
- 2025.9.12 Lecture 27 Scheme
- 2025.9.13 Lecture 28 Exceptions
- 2025.9.14 Lecture 29 Calculator
- 2025.9.15 Lecture 30 Interpreters
- 2025.9.17 Lecture 31 Declarative Programming
- 2025.9.17 Lecture 32 Tables
- 2025.9.19 Lecture 33 Aggregation
- 2025.9.20 Lecture 34 Databases
- 2025.9.22 Lecture 35 Tail Calls
- 2025.9.23 Lecture 36 Macros
- 2025.9.24 Lecture 37 Final Examples
- 2025.9.24 Lecture 38 Conclusion
- 2025.7.27 Lab 0 Getting Started
- 2025.8.15 Lab 1 Variables & Functions, Control
- 2025.8.20 Lab 2 Higher-Order Functions, Lambda Expressions
- 2025.8.22 Lab 3 Midterm Review
- 2025.8.28 Lab 4 Recursion, Tree Recursion, Python Lists
- 2025.9.1 Lab 5 Data Abstraction, Trees
- 2025.9.2 Lab 6 Nonlocal, Mutability
- 2025.9.5 Lab 7 Iterators, Generators, Object-Oriented Programming
- 2025.9.9 Lab 8 Linked Lists, Trees
- 2025.9.10 Lab 9 Midterm Review
- 2025.9.12 Lab 10 Scheme
- 2025.9.15 Lab 11 Interpreters
- 2025.9.18 Lab 12 SQL
- 2025.9.22 Lab 13 SQL
- 2025.9.23 Lab 14 Final Review
- 2025.7.28 Homework 1 Variables & Functions, Control
- 2025.8.27 Homework 2 Recursion
- 2025.9.2 Homework 3 Trees, Data Abstraction
- 2025.9.4 Homework 4 Nonlocal, Iterators
- 2025.9.8 Homework 5 Object-Oriented Programming, Linked Lists, Trees
- 2025.9.12 Homework 6 Scheme
- 2025.9.14 Homework 7 Scheme Lists
- 2025.9.18 Homework 8 More Scheme
- 2025.9.20 Homework 9 SQL
- 2025.9.24 Homework 10 Finale
- 2025.8.17 Project 1 The Game of Hog
- 2025.8.29 Project 2 CS 61A Autocorrected Typing Software
- 2025.9.7 Project 3 Ants Vs. SomeBees
- 2025.9.16 Project 4 Scheme Interpreter