Appearance
CS61A: Structure and Interpretation of Computer Programs (SICP)
Course Overview
University: UC Berkeley
Course Code: CS 61A
Instructor: John DeNero
Status: Not Started
Progress: 0/34 lectures
A legendary course that teaches you to think deeply about computation. Goes far beyond syntax to explore the fundamental concepts of computer science.
Resources
🌐 Course Website
📺 Video Lectures
📚 Textbook: Composing Programs
📖 Original SICP Book
Key Topics
- Functional programming
- Higher-order functions
- Recursion and recursive data structures
- Data abstraction
- Object-oriented programming
- Interpreters and programming languages
- Streams and lazy evaluation
- Metalinguistic abstraction
Why This Matters
This isn't just another programming course. SICP fundamentally changes how you think about computation. You'll learn:
- Abstraction: How to manage complexity
- Recursion: A powerful problem-solving technique
- Interpretation: How programming languages actually work
- Functional thinking: A different paradigm from imperative programming
Learning Goals
By the end of this course, you should be able to:
- Think recursively and use recursion effectively
- Design and implement abstract data types
- Understand how interpreters work
- Write programs in multiple paradigms (functional, OOP)
- Build your own simple programming language interpreter
Study Plan
Estimated Time: 7-10 hours/week for 14 weeks
- Lectures: ~3 hours/week
- Labs: ~2 hours/week
- Homework/Projects: ~4-5 hours/week
- Reading: ~1 hour/week
Daily Notes
Week 1: Functions
- [ ] Lecture 1: Computer Science
- [ ] Lecture 2: Functions
- [ ] Lab 0
- [ ] HW 1
Week 2: Control
- [ ] Lecture 3: Control
- [ ] Lecture 4: Higher-Order Functions
- [ ] Lab 1
- [ ] HW 2
Projects
Project 1: Hog
Coming soon
Project 2: Cats
Coming soon
Project 3: Ants
Coming soon
Project 4: Scheme Interpreter
Coming soon
Key Concepts
Key Takeaways
← Previous: Calculus 1 | [← Back to Fall Quarter](Online Studying/CS - Stanford, MIT, Berkley/Year 1/Fall Quarter/index)