Skip to main content

SICP Overview (Tracker)

Fortitudine vincimus
Through endurance, we conquer

Book

Structure and Interpretation of Computer Programs

  • 2nd Edition, 1996
  • ISBN 10: 0262510871

Courseware

Berkeley 61A Lecture Series

Downloading mit-scheme for mac

brew install mit-scheme

I also tried installing the racket language and environment as it has the sicp version of scheme. Which is a subset of scheme fifth revision of scheme R5RS. This is also having issues with the first and last string functions. I will go with this for now as it says sicp.

Useful course notes uploaded to github

The source of the above providing stucture

My process for learning SICP with 61A

  1. Read the section of the book and take notes
  2. Reread notes and make sure they make sense, rewrite if needed
  3. Write up flashcards for that section
  4. Watch the lectures and take notes
  5. Reread notes and make sure they make sense, rewrite if needed
  6. Write up flashcards for that section
  7. Do a project based on that section
  8. Do the homework
  9. Go through my notes page and make sure it's good

Tracker

Week 1, Section 1 - Functional Programming
  • Functional programming - Reading (SICP Section 1.1)
    • read and take notes
    • exercises
    • reviewed notes & create flashcards
  • Functional programming - Video lecture 1
    • reviewed notes
    • flashcards
    • pluralizer
  • Functional programming - Video lecture 2
    • reviewed notes
    • flashcards
    • Create the Buzz game
    • Create a pig latin generator
  • Functional programming - Homework
    • Check answers and add feedback
  • Personal projects
Week 2, Section 2
  • Higher-order procedures - Reading (SICP Section 1.3)
    • reviewed notes
    • exercises
    • flashcards
  • Higher-order procedures - Video lecture 3
    • reviewed notes
    • flashcards
    • project
  • Higher-order procedures - Video lecture 4
    • reviewed notes
    • flashcards
    • project
  • Higher-order procedures - Homework
    • Check answers and add feedback
  • Personal project
Week 3, Section 3
    1. Recursion and iteration - Reading (SICP Section 1.2 - 1.2.4)
    1. Recursion and iteration - Video lecture 7
    1. Recursion and iteration - Video lecture 8
    1. Recursion and iteration - Homework
  • Project 1 - Twenty-One
    1. Data abstraction - Reading (SICP Sections 2.1 and 2.2.1)
    1. Data abstraction - Video lecture 9
    1. Data abstraction - Video lecture 10
    1. Data abstraction - Video lecture 11
    1. Data abstraction - Homework
  • Exam - Midterm 1
    1. Hierarchical data/Scheme interpreter - Reading (SICP 2.2.2, 2.2.3, 2. 3.1, 2.- [ ] 3.3)
    1. Hierarchical data/Scheme interpreter - Video lecture 12
    1. Hierarchical data/Scheme interpreter - Video lecture 13
    1. Hierarchical data/Scheme interpreter - Video lecture 14
    1. Hierarchical data/Scheme interpreter - Homework
  • Project 2 - A Picture Language (SICP section 2.2.4)
    1. Generic operators - Reading (SICP 2.4, 2.5 - 2.5.2)
    1. Generic operators - Video lecture 16
    1. Generic operators - Video lecture 17
    1. Generic operators - Homework
    1. Object-oriented programming - Reading (OOP above-the-line view in course - [ ] reader)
    1. Object-oriented programming - Lecture 18
    1. Object-oriented programming - Lecture 19
    1. Object-oriented programming - Lecture 20
    1. Object-oriented programming - Homework
  • Exam - Midterm 2
    1. Assignment, state, environments - Reading (SICP 3.1, 3.2)
    1. Assignment and state - Lecture 21
    1. Environments - Lecture 22
    1. Environments - Lecture 23
    1. Assignment, state, environments - Homework
  • [-] Project 3a
    1. Mutable data, vectors - Reading (SICP 3.3.1-3)
    1. Mutable data - Lecture 24
    1. Mutable data - Lecture 25
    1. Vectors - Lecture 26
    1. Mutable data, vectors - Homework
  • [-] Project 3b
    1. Client/server, concurrency - Reading (SICP 3.4)
    1. Client/server - Lecture 30
    1. Concurrency - Lecture 31
    1. Concurrency - Lecture 32
    1. Client/server, concurrency - Homework
    1. Streams, Therac-25 - Reading (SICP 3.5.1-3, 3.5.5, Therac-25 paper)
    1. Streams - Lecture 33
    1. Streams - Lecture 34
    1. Therac-25 - Lecture 35
    1. Streams, Therac-25 - Homework
  • [-] Exam - Midterm 3
    1. Metacircular evaluation, mapreduce - Reading (SICP 4.1.1–6)
    1. Metacircular evaluation - Lecture 36
    1. Mapreduce - Lecture 37
    1. Metacircular evaluation, mapreduce - Homework
    1. Mapreduce, analyzing, lazy evals - Reading (SICP 4.1.7, 4.2)
    1. Mapreduce - Lecture 38
    1. Analyzing, lazy evals - Lecture 39
    1. Mapreduce, analyzing, lazy evals - Homework
  • Project 4a
    1. Logic programming - Reading (SICP 4.4.1-3)
    1. Logic programming - Lecture 40
    1. Review - Lecture 41
  • Project 4b
  • Final