Abstraction and Design in Computation — Spring 2017
This course covers abstraction and design in computation. Topics include functional and object-oriented styles of programming, software engineering in the small, and models of computation. The goal is to understand how to design large programs to make them readable, maintainable, efficient, and elegant. The recorded lectures are from the Harvard John A. Paulson School of Engineering and Applied Sciences course Computer Science 51.