This course is an intensive introduction to the intellectual enterprises of computer science and the art of programming. 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 programming. Languages include C, Python, and SQL plus HTML, CSS, and JavaScript. Problem sets are inspired by the arts, humanities, social sciences, and sciences. The course culminates in a final project. Students can count two of the following three courses—CSCI E-10a, CSCI E-10b, and CSCI E-50—toward a degree. They may not count all three toward a degree.

Register at starting 9 November 2020.

Register at


The recorded lectures are from the Harvard John A. Paulson School of Engineering and Applied Sciences course Computer Science 50 (CS50). This course is also available, for noncredit, as OpenCourseWare at

First Lecture