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.
Units
4
Prerequisites
Mathematics 1A (may be taken concurrently); programming experience equivalent to that gained from a score of 3 or above on the Advanced Placement Computer Science A course
Website
https://inst.eecs.berkeley.edu/~cs61a/sp19/
Programming Languages
-
Python
-
SQL
-
Scheme
Projects
-
Project 1: The Game of Hog
-
Project 2: Yelp Maps
-
Project 3: Ants Vs. SomeBees
-
Project 4: Scheme Interpreter