You are on page 1of 3

This is CS50

CS50’s Introduction to Computer Science

OpenCourseWare

Donate  (https://cs50.harvard.edu/donate)

David J. Malan (https://cs.harvard.edu/malan/)


malan@harvard.edu
 (https://www.clubhouse.com/@davidjmalan)  (https://www.facebook.com/dmalan) 
(https://github.com/dmalan)  (https://www.instagram.com/davidjmalan/) 
(https://www.linkedin.com/in/malan/)  (https://orcid.org/0000-0001-5338-2522) 
(https://www.quora.com/profile/David-J-Malan)  (https://www.reddit.com/user/davidjmalan) 
(https://www.tiktok.com/@davidjmalan)  (https://davidjmalan.t.me/) 
(https://twitter.com/davidjmalan)

Welcome
This is CS50, Harvard University’s introduction to the intellectual enterprises of computer science and the art
of programming, for concentrators and non-concentrators alike, with or without prior programming
experience. (Two thirds of CS50 students have never taken CS before.) This course teaches you how to solve
problems, both with and without code, with an emphasis on correctness, design, and style. Topics include
computational thinking, abstraction, algorithms, data structures, and computer science more generally.
Problem sets inspired by the arts, humanities, social sciences, and sciences. More than teach you how to
program in one language, this course teaches you how to program fundamentally and how to teach yourself
new languages ultimately. The course starts with a traditional but omnipresent language called C that
underlies today’s newer languages, via which you’ll learn not only about functions, variables, conditionals,
loops, and more, but also about how computers themselves work underneath the hood, memory and all. The
course then transitions to Python, a higher-level language that you’ll understand all the more because of C.
Toward term’s end, the course introduces SQL, via which you can store data in databases, along with HTML,
CSS, and JavaScript, via which you can create web and mobile apps alike. Course culminates in a final project.

Watch an introduction
How to Take this Course
Even if you are not a student at Harvard, you are welcome to “take” this course for free via this
OpenCourseWare by working your way through the course’s eleven weeks of material. If you’d like to submit
the course’s problem sets and final project for feedback, be sure to create an edX account
(https://courses.edx.org/register), if you haven’t already. Ask questions along the way via any of the course’s
communities!

 If interested in a verified certificate (https://www.edx.org/verified-certificate) from edX


(https://www.edx.org/), enroll at cs50.edx.org (https://cs50.edx.org/) instead.
 If interested in a professional certificate (https://www.edx.org/professional-certificate) from edX
(https://www.edx.org/)
 in web development, enroll at cs50.edx.org/programs/web (https://cs50.edx.org/programs/web)
instead.
 in artificial intelligence, enroll at cs50.edx.org/programs/ai (https://cs50.edx.org/programs/ai)
instead.
 in game development, enroll at cs50.edx.org/programs/games
(https://cs50.edx.org/programs/games) instead.
 If interested in transfer credit and accreditation (https://extension.harvard.edu/for-students/student-
policies-conduct/transfer-credits-accreditation/) from Harvard Extension School
(https://www.extension.harvard.edu/), register at web.dce.harvard.edu/extension/csci/e/50
(https://web.dce.harvard.edu/extension/csci/e/50) instead.
 If interested in transfer credit and accreditation (https://summer.harvard.edu/academic-opportunities-
support/policies-and-regulations/academic-policies/transfer-credit-accreditation/) from Harvard
Summer School (https://www.summer.harvard.edu/), register at web.dce.harvard.edu/summer/csci/s/50
(https://web.dce.harvard.edu/summer/csci/s/50) instead.

How to Teach this Course


If you are a teacher, you are welcome to adopt or adapt these materials for your own course, per the license.

You might also like