|
David J. Malan, Instructor
Introduction to the intellectual enterprises of computer sciences. Algorithms: design, implementation, analysis. Software development: abstraction, encapsulations, data structures, debugging, testing. Architecture of computers: low-level data representation, instructions processing. Computer Systems: programming languages, compilers, operating systems, databases. Computers in the real world: networks, websites, security, forensics, cryptography. This course teaches students how to think more carefully and how to solve problems more effectively. Problem sets involve extensive programming in C as well as PHP and JavaScript. These lectures were filmed in Sanders Theatre in Memorial Hall. Notes were taken by Anjuli Kannan '09 and Andrew Sellergren '08. If you have questions or would like to discuss the material with others, you may want to join the Google Group at right. Sections (otherwise known as "recitations" or "precepts" at other universities) supplement lectures. Videos of Fall 2008's sections are not available (except for one "supersection" in Week 10 led by Keito Uchiyama '11), but videos of Fall 2009's sections are. In order to accommodate students with different backgrounds, some problem sets are released in two editions: a standard edition intended for most students and a "Hacker Edition" intended for some students. Both editions essentially cover the same material. But the Hacker Edition typically presents that material from a more technical angle and poses more sophisticated questions. Most standard editions, though, are accompanied by code "walkthroughs" during which students receive direction on where to begin and how to approach the problem set. Led by Keito Uchiyama '11, these walkthroughs were filmed in Northwest Science Labs. If you have questions or would like to discuss the material with others, you may want to join the Google Group at right. And if you'd like to implement these problem sets, you'll likely want to download the CS50 Appliance.Below are quizzes; other answers may be possible. Reviews were led by Batool Ali '10, Alex Chang '10, Jesse Cohen '10, Aaron Oehlschlaeger '11, Zeina Oweis '10, Ken Parreno '11, and Keito Uchiyama '11. If you have questions or would like to discuss the material with others, you may want to join the Google Group at right. Seminars cover material beyond the scope of the course. Fall 2007's seminars and Fall 2009's seminars are also available. |
Download and install the latest version of Adobe Flash Player to see videos here.
Computer Science 50 (otherwise known as CS50) is Harvard College's introductory course for majors and non-majors alike, a one-semester amalgam of courses generally known as CS1 and CS2 taught mostly in C. Even if you are not a student at Harvard, you are welcome to "take" this course via cs50.tv by following along via the Internet. (The course's own website is at www.cs50.net.) Available at left are videos of lectures, sections (aka "recitations" or "precepts"), and seminars along with PDFs of all handouts. Also available at left are the course's problem sets and quizzes. If you have questions or would like to discuss the material with others, do join the course's Google Group. The problem sets do assume that you have access to nice.fas.harvard.edu and cloud.cs50.net (servers on which Harvard students have accounts). But coming very soon to cs50.tv (by February 2010) is a downloadable virtual machine (for Linux, Mac OS, and Windows) that you can use to complete all of the problem sets on your own computer. Stay tuned! If you're a teacher, you are welcome to adopt or adapt these materials for your own course, per the license. If you'd like to take this course for real (on Harvard's campus or via the Internet) in order to receive feedback on work, grades, and a transcript, the course will next be offered through Harvard Extension School (as "Computer Science E-52") in Fall 2010. You can register online starting in August 2010. Special thanks to Chris Thayer and Harvard Extension School for the course's videos and to Cansu Aydede '11, Fall 2008's heads. djm
For The CS50 Blog "on the intellectual enterprises of computer science and the art of programming," head to blog.cs50.net. Copyright © 2008 – 2010, David J. Malan This course's content is licensed by David J. Malan under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License, which means that you are not only welcome to watch, listen to, download, and/or read this content,
Have a question about the course (even if you're not a student at Harvard)? Want to field questions from others? Join cs50-discuss, the course's Google Group! So that folks (like you!) tuning into this course via Introduction to Computer Science I have a place to turn with questions, we've created a Google Group called cs50-discuss, which is like a message board and mailing list rolled into one. (If unfamiliar with Google Groups, you can take the tour.) Once you've joined, you'll be able to email the group at cs50-discuss@googlegroups.com and browse past discussions at http://groups.google.com/group/cs50-discuss/topics. Do add yourself to the guestmap too! |