Starts 21 June 2021. Register at A draft of the syllabus is available here.


This course is an intensive introduction to the intellectual enterprises of computer science and the art of programming. It is a fast-moving course that demands a substantial commitment of time and effort for students to be successful. It teaches students how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets are inspired by real-world domains of biology, cryptography, finance, forensics, and gaming. Students can count two of the following three courses—CSCI E-10a, CSCI E-10b, and CSCI S-50—toward a degree. They cannot count all three toward a degree.

First Lecture