Welcome

An introduction to programming using Scratch, a visual programming language via which aspiring programmers can write code by dragging and dropping graphical blocks (that resemble puzzle pieces) instead of typing out text. Used at the start of Harvard College’s introductory course in computer science, CS50, Scratch was designed at MIT’s Media Lab, empowering students with no prior programming experience to design their own animations, games, interactive art, and stories. Using Scratch, this course introduces students to fundamentals of programming, found not only in Scratch itself but in traditional text-based languages (like Java and Python) as well. Topics include: functions, which are instructions that perform tasks; return values, which are results that functions provide; conditions, via which programs can decide whether or not to perform some action; loops, via which programs can take action again and again; variables, via which programs can remember information; and more. Ultimately, this course prepares students for subsequent courses in programming.

Watch an introduction

Scratch is developed by the Lifelong Kindergarten Group at the MIT Media Lab. See scratch.mit.edu.

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 nine weeks of material. For each week, follow this workflow:

flowchart TD
    A[Watch Lecture] --> B[Submit Project]

And then submit the course’s final project.

To submit the course’s projects and final project for feedback, be sure to create an edX account, if you haven’t already. Ask questions along the way via any of the course’s communities!

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. Additionally, we encourage teachers to participate in the CS50 Educator Workshop to learn more about CS50’s curriculum, technology, and pedagogy.