
COMPSCI 61A
4 Units
The Structure and Interpretation of Computer Programs
Catalog Course Description
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 Term
1.5 hours of The exchange of opinions or questions on course material per week and 3 hours of Instructor presentation of course materials per week and 6 hours of Outside Work Hours per week and 1.5 hours of Instructional experiences requiring special laboratory equipment and facilities per week.
Summer Term
6 hours of Instructor presentation of course materials per week and 10.5 hours of Outside Work Hours per week and 3 hours of Instructional experiences requiring special laboratory equipment and facilities per week and 3 hours of The exchange of opinions or questions on course material per week.
Spring Term
1.5 hours of The exchange of opinions or questions on course material per week and 3 hours of Instructor presentation of course materials per week and 6 hours of Outside Work Hours per week and 1.5 hours of Instructional experiences requiring special laboratory equipment and facilities per week.