Harvard CS50. Introduction to Computer Science

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.


  • Lecture 0 - Scratch
  • Lecture 1 - C
  • Lecture 2 - Arrays
  • Lecture 3 - Algorithms
  • Lecture 4 - Memory
  • Lecture 5 - Data Structures
  • Lecture 6 - Python
  • Lecture 7 - SQL
  • Lecture 8 - HTML, CSS, JavaScript
  • Lecture 9 - Flask
  • Lecture 10 - Emoji
  • Lecture 11 - Cybersecurity

Full course is available here:

Want to find a web3 job?

Receive emails of Harvard CS50. Introduction to Computer Science