Harvard

CS50 Introduction to Computer Science

Explore computer science through programming exercises and a final project. Suitable for learners with or without previous programming experience.

Harvard CS50x cover with a laptop displaying code and conceptual algorithm, data structure and programming cards.

A useful programming foundation starts with understanding a problem before choosing a language. CS50’s Introduction to Computer Science gives you that foundation through Harvard’s free lectures, programming assignments and an independent final project. You explore why an algorithm works, how information is represented and what makes code understandable as well as correct.

The course suits a first-time programmer who wants a broad starting point, or a self-taught learner who wants to revisit the ideas beneath familiar tools. Its progression from C to Python and web technologies lets you connect low-level details with applications you can build and explain.

Course at a glance

Provider Harvard
Platform CS50 OpenCourseWare
Level Beginner
Language English
Format Self-paced course with practical assignments
Structure 11 weeks of material; your completion time will vary
Prerequisites No previous programming experience required
Free access Lessons, required coursework and the stated free CS50 certificate route
Recognition Free CS50 certificate after the required scores; no accredited academic credit

What you’ll learn

  • Break a problem into steps and express a solution using variables, conditions, loops and functions.
  • Compare algorithms and choose data structures for storing and finding information.
  • Explore memory and the behavior of programs written in C.
  • Use Python and SQL to work with programs and structured data.
  • Connect HTML, CSS, JavaScript and Flask in introductory web development.

Rather than treating each language as a separate subject, the course gives you opportunities to recognise recurring patterns. The same underlying problem may become easier to express in a different language once you understand the decisions involved.

Skills you’ll gain

  • Computational thinking
  • C programming
  • Python fundamentals
  • Algorithms
  • Data structures
  • SQL
  • Web fundamentals

From first program to your own project

The early material uses Scratch before moving into C, arrays, algorithms, memory and data structures. Later units introduce Python, relational data and the web. Lectures provide the explanation; the problem sets make you use it. The syllabus expects ten problem sets and a final project, so watching the videos is only part of the experience.

The final project allows you to choose software that draws on the course. You can work in a language of your choice and use infrastructure beyond the course’s coding environment. A command-line utility, a small web application or another focused piece of software can become a way to connect your interests with the concepts you have studied.

You also explain the project through a demonstration and written documentation. This makes the capstone more than a running program: it asks you to communicate what you built and how its parts fit together.

Study with the tools supplied for the course

The OpenCourseWare lessons and assignment instructions are available without a tuition payment. The course links to its browser-based VS Code environment at cs50.dev, which uses a free GitHub account. CS50 also documents a local setup, and the syllabus does not require buying books. For assignment feedback and the free certificate route, create a free edX account and follow the free or audit registration option.

Use the CS50 environment linked from the course rather than purchasing a general cloud workspace. Keep copies of your work and follow the current setup instructions if you change computers. The free learning route does not require a paid certificate, paid subscription or trial.

Build understanding one problem at a time

Give the assignments room in your schedule. Before coding, describe the input, the expected output and one small example you can check yourself. When a program fails, investigate a single behavior before changing several parts at once. These are optional study habits, not extra course requirements.

For the final project, choose one useful task before adding features. A small program you can explain is a stronger learning checkpoint than a large collection of code you cannot maintain. Follow the academic honesty policy and use the course’s permitted help channels.

Free certificate requirements

A free CS50 certificate is available after you submit the required work and earn at least 70% on each problem set and the final project. Check your gradebook and the current course deadline when planning submissions. The free certificate recognises self-study completion; it is not an accredited Harvard academic award.

Enroll Now

Frequently asked questions

Can I start without coding experience?

Yes. CS50x welcomes learners without prior programming experience. It still involves substantial practice, so allow time to work through the assignments.

Is eleven weeks a fixed completion deadline?

No. Eleven weeks describes the material. You can study at your own pace, while following the current overall submission deadline shown by the course.

Do I need to pay for the free CS50 certificate?

No. Follow the free registration route and meet the required assignment scores. Simply watching the lectures does not qualify.

Share this course

Questions & discussion

Share a useful question or correction. Comments appear after moderation. Please avoid personal or sensitive information.

Add to the discussion

Your email address will not be published. Required fields are marked *