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 carter@helloworldcs.org.

đź“¸ Photography by Andrew Markham

This is CS50's introduction to programming using a language called R. Designed especially for learners interested in statistical computing and data science, this course takes learners from knowing nothing about programming to packaging R programs and sharing them with the world.

Many of CS50's learners have expressed an interest in data science and statistical computing. R is a popular programming language for working in those fields. This course is for learners hoping to work in data science and statisticsâ€”particularly learners who are new to programming in general.

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

- To equip learners with the tools to use and design R programs, via which they can efficiently analyze data, and
- To support learners in using R to build something of meaning to them.

Ultimately, the course provides learners with a foundation in R programming 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.

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

This course is still under construction!