UC Berkeley CS61A is a course about general programming techniques, primarily using Python 3, switching to Scheme and SQL in the latter of the course. There is a list of what I learned from this course, for your reference.
With Python:
- High-Order Function
- Environment Diagram, a helper to trace name bindings
- Original Data Abstraction Idea without OOP concept
- Mutable Values & Functions, Non-local Assignment
- Polymorphic Functions in Python, e.g. __repr__, __str__
- Iterator and Build-in Functions for Iteration, e.g. map, filter, zip, etc.
With Scheme:
- Scheme Lists
- Generating Code with Quote & Quasiquote
- Dynamic Scope
- Tail Calls
- Macros
- Structure of Scheme Interpreter, and implement one in project 4.
With SQL:
- Concept of Declarative Languages
- Basic Operation, including Table and Aggregation
- Database Connection with Python and Sqlite.
I'm using Fall 2020 edition of CS61A. Some details of the materials in different semesters are not the same, but the cores of them are identical.
For the 3rd project Ants, I refer to the Spring 2022 version for a provided comprehensive GUI, which is not accessible in the Fall 2020 version. Upd: Project Ants in Spring 2022 is much harder than it in Fall 2020 QAQ!
For the 4th project, where a scheme interpreter is created, I choose to complete the Challenge Version Normal Version. I'll leave the Challenge Version, which is quite hard to start from scratch in a few days, for the purpose of reviewing.
Other unofficial CS61A repo for reference. Notice: DO NOT look at other's code unless you've finished the problem.
I'm here to take this course mainly for 2 reasons.
- Review Python 3 from a new angle, i.e. functional programming.
- Complete SICP learning, which I gave up in last summer break.
I hope to complete this course quickly, namely less than 1 week 10 days.
Upd: I basically complete the course by 0731 ww.
Date | PPT | Hw | Lab | Proj | Time |
---|---|---|---|---|---|
0724 | 01-02 | 01 | 00 | 1.5h | |
0725 | 03-05 | 01-02 | 2.5h | ||
0726 | 06-12 | 02-03 | 04 | hog | 5.5h |
0727 | 12-21 | 04 | 05-06 | 5h | |
0728 | 22-24 | 07-08 | cats | 4h | |
0729 | ants | 4h | |||
0730 | 27-30 | 06-07 | 10-11 | 3h | |
0731 | 31-34 | 12-13 | scheme | 6.5h | |
0801 | 35-37 | 2h |