everything.study
COMPSCI 61A

The Structure and Interpretation of Computer Programs

4 credits · Undergraduate

An introduction to programming and computer science focused on abstraction techniques as means to manage program complexity. Techniques include procedural abstraction; control abstraction using recursion, higher-order functions, generators, and streams; data abstraction using interfaces, objects, classes, and generic operators; and language abstraction using interpreters and macros. The course exposes students to programming paradigms, including functional, object-oriented, and declarative approaches. It includes an introduction to asymptotic analysis of algorithms. There are several significant programming projects.

Fall 2026

Topics

  • Getting Started
  • Elements Of Programming
  • Defining New Functions
  • Designing Functions
  • Control
  • Higher Order Functions
  • Recursive Functions
  • Data
  • Sequences
  • Compound Data
  • Mutable Data
  • Object Oriented Programming
  • Lazy Evaluation
  • Efficiency
  • Interpreting Computer Programs
  • Functional Programming
  • Gleam Functions And Control
  • Gleam Lists And Data
  • Parse
  • Eval

Readings

Prerequisites & course information

{'preRequisiteCourse': '1144961', 'concurrentPrerequisit': False}; {'preRequisiteCourse': '1144962', 'concurrentPrerequisit': False}

Sources