Carter Zenke profile picture

Carter Zenke

I create engaging computer science learning experiences for K–12 students and teachers at Hello World CS.

I previously taught at Harvard, where I oversaw educational productions and teaching operations for CS50's 5M+ students, online and on-campus.

👋 Contact me at

📸 Photography by Andrew Markham

CS50's Introduction to Databases with SQL

This is CS50's introduction to databases using a language called SQL. This course picks up where CS50 left off, teaching learners how to create, read, update, and delete data with relational databases, which store data in rows and columns.


Within CS50's communities, many learners expressed an interest in a follow-on course to dive more deeply into databases. This course provides an introduction to databases learners can take before, during, or after CS50.

Learning Outcomes

Per the course's syllabus, among the course's overarching goals are:

  • To equip learners with the tools to use and design modern databases, via which they can efficiently store information, and
  • To support learners in using SQL to build something of meaning to them.

Ultimately, the course provides learners with a foundation in databases that can support learners' further study, work, or play in computer science. The same foundation can also empower them to apply their knowledge to problems in other domains, far beyond computer science alone.

Design Process and Principles

Taking a page from the Understanding by Design (UbD) framework, this course's design process began by defining the learning outcomes above. Design then turned to defining the courses's learning strategies. The strategies the course employs are:

  • Direct instruction, in the form of lectures, to introduce content
  • Reflection, in the form of checks for understanding, to elicit understanding from lectures
  • Peer learning, through sections, to promote hands-on practice with the course's concepts
  • Problem- and scenario-based learning, through problem sets, in which students test their skills in assignments inspired by real-world scenarios

Below is a typical student's path through the course:

flowchart TD A[Watch Lecture] --> B[Complete Check for Understanding] B --> C[Attend Section] C --> D[Submit Problem Set] D --> A

As of March 2024, approximately 50,000 learners have registered via EdX. The experience level of learners varies significantly: approximately 50% of learners have taken 3 or more courses in computer science before enrolling, while approximately 30% have never taken a computer science course before.