Syllabus - CS50x 2022
Syllabus - CS50x 2022
OpenCourseWare
Donate (https://cs50.harvard.edu/donate)
(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://twitter.com/davidjmalan)
Syllabus
Introduction to the intellectual enterprises of computer science and the art of programming. This course
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
inspired by the arts, humanities, social sciences, and sciences. Course culminates in a final project.
Designed for concentrators and non-concentrators alike, with or without prior programming experience.
Two thirds of CS50 students have never taken CS before. Among the overarching goals of this course are to
inspire students to explore unfamiliar waters, without fear of failure, create an intensive, shared
experience, accessible to all students, and build community among students.
Expectations
Certificates
CS50x is free to take, and you are welcome to submit the course’s ten problem sets and final project for
automated feedback. To be eligible for a verified certificate (https://www.edx.org/verified-certificate) from
edX, however, you must receive a satisfactory score (at least 70%) on each problem you submit as part of
one of the course’s ten problem sets as well as on the course’s final project.
Problems are evaluated along axes of correctness (as determined by a program called check50 ) and style
(as determined by a program called style50 ), with scores ordinarily computed as 3 × correctness + 1 ×
style.
Books
No books are required or recommended for this course. However, you might find the below books of
interest. Realize that free, if not superior, resources can be found on the course’s website.
ISBN 0-321-84268-5
Ron White
ISBN 0-7897-4984-X
Stephen G. Kochan
ISBN 0-321-77641-0
Lectures
Walkthroughs
Integrated into problem sets are “walkthroughs,” videos that offer direction on where to begin and how to
approach problems.
Labs
Labs are programming exercises that prepare you for the week’s problem set.
Problem Sets
Problem sets are programming assignments. CS50x does not have deadlines for problem sets. You are
welcome to work on and submit them at your own pace. To be eligible for a verified certificate from edX,
however, you must submit (and receive a score of at least 70% on) all problem sets and labs by 31
December 2022.
Final Project
The climax of this course is its final project. The final project is your opportunity to take your newfound
savvy with programming out for a spin and develop your very own piece of software. So long as your
project draws upon this course’s lessons, the nature of your project is entirely up to you. You may
implement your project in any language(s). You are welcome to utilize infrastructure other than the CS50
Codespace. All that we ask is that you build something of interest to you, that you solve an actual
problem, that you impact your community, or that you change the world. Strive to create something that
outlives this course.
Inasmuch as software development is rarely a one-person effort, you are allowed an opportunity to
collaborate with one or two classmates for this final project. Needless to say, it is expected that every
student in any such group contribute equally to the design and implementation of that group’s project.
Moreover, it is expected that the scope of a two- or three-person group’s project be, respectively, twice or
thrice that of a typical one-person project. A one-person project, mind you, should entail more time and
effort than is required by each of the course’s problem sets. Although no more than three students may
design and implement a given project, you are welcome to solicit advice from others, so long as you
respect the course’s policy on academic honesty.
CS50x does not have a deadline for the final project. You are welcome to work on and submit it at your
own pace. To be eligible for a verified certificate from edX, however, you must submit (and receive a score
of at least 70% on) it by 31 December 2022.
Academic Honesty