You are expected to
- submit ten problem sets,
- submit eight labs, and
- submit a final project.
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 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.
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.
Hacker’s Delight, Second Edition
Henry S. Warren Jr.
Pearson Education, 2013
How Computers Work, Tenth Edition
Que Publishing, 2014
Programming in C, Fourth Edition
Stephen G. Kochan
Pearson Education, 2015
The course’s lectures introduce each week’s concepts.
Integrated into problem sets are “walkthroughs,” videos that offer direction on where to begin and how to approach problems.
Labs are programming exercises that prepare you for the week’s problem set.
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.
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.
Please see Academic Honesty for guidelines.