|
|
CS51: Abstraction and Design in Computer Programming
CS51 Course Description
Professors
Radhika Nagpal
Maxwell-Dworkin 235
rad@eecs
http://www.eecs.harvard.edu/~rad/
|
Teaching Fellows
Thomas Carriero, carriero@fas
Anjuli Kannan, akannan@fas
Avi Shinnar, shinnar@eecs
Gideon Wald, gwald@fas
Greg Poulos, gpoulos@fas
Julius Degesys, degesys@fas
Mike Tucker, mtucker@eecs
Prabhas Pokharel, pokharel@fas
Roy Shi, rshi@fas
Ryan Wisnesky, ryan@eecs
Stephen Chang, stchang@fas
Tova Wiener, twiener@fas
Will Phan, phan2@fas
|
Course Description:
This course is about abstraction and design: understanding
how to design large programs to make them clear, readable,
maintainable, efficient and elegant. We will explore how different
types of abstractions and programming models give us the power to
systematically tackle complex problems; ultimately, a programming
language is itself an abstraction that you can design and implement.
Course Information:
Course Website: http://www.fas.harvard.edu/lib51
See course website for section times and office hours
Course Prerequisites:
Computer Science 50 or equivalent programming experience
Course Requirements:
20% Midterm (inclass, closed book)
20% Final (inclass, closed book)
60% Homework Assigments
Course Policies:
5 total late days for the semester
Assignments 2, 3, 7, 8 and 9 will involve working in pairs
For more details see course policy link on the website
Textbooks
All of the textbooks below are required. SICP
is available online however we will be assigning significant reading
from it.
- Abelson and Sussman, Structure and Interpretation of Computer Programs (online at http://www.mitpress.mit.edu/sicp/full-text/book/book.html)
- Lippman, Essential C++
|