This course is an 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 development. Languages include C, PHP, and JavaScript plus SQL, 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 E-50—toward a degree. They cannot count all three toward a degree. The recorded lectures are from the Harvard John A. Paulson School of Engineering and Applied Sciences course Computer Science 50.

Meet The Author

David J. Malan

David J. Malan

Gordon McKay Professor of the Practice of Computer Science, Harvard University

David Malan received his bachelor's, master's, and doctorate in computer science from Harvard University, where his research focused on the detection of patterns in large datasets. He teaches Harvard College's introductory computer science course and holds an appointment as the Gordon McKay Professor of the Practice of Computer Science in the School of Engineering and Applied Sciences. He was awarded the Petra T. Shattuck Excellence in Teaching Award in 2007. He also serves as chief information officer for Mindset Media.

While in graduate school, he founded two startups: Crimson Tutors and Diskaster. Malan also worked part-time for the Middlesex District Attorney's Office as a forensic investigator. And, on the side, he volunteered as an EMT-B for MIT-EMS. He continues to volunteer as an EMT-B for the American Red Cross.


  • PhD Harvard University

Course Provided By

Back To Top