Zoom Meetings

CS50 occasionally holds live lectures and sections that anyone on the internet is welcome to attend or watch, whether taking any of CS50’s courses or not!

For any Zoom meeting you attend, please take care to

  • participate from a quiet office or similar space (and not from a bed, car, hammock, plane, or train), and
  • participate with your camera turned on, using horizontal (not vertical) video.

If unable to accommodate these norms some week, please watch the live stream or recording at youtube.com/cs50 instead.

CS50x Workshop on AI

2024-04-25T13:30:00-04:00/2024-04-25T15:30:00-04:00

A workshop in two parts for CS50x students, teachers, and alumni. First, a look at how CS50 has incorporated artificial intelligence (AI), including its new-and-improved rubber duck debugger, and how it has impacted the course already. 🦆 Then, a hands-on introduction to implementing your own AI-based chatbot using OpenAI’s APIs, maybe a duck or even a cat!

In Summer 2023, we developed and integrated a suite of AI-based software tools into CS50 at Harvard University. These tools were initially available to approximately 70 summer students, then to thousands of students online, and finally to several hundred on campus during Fall 2023. Per the course’s own policy, we encouraged students to use these course-specific tools and limited the use of commercial AI software such as ChatGPT, GitHub Copilot, and the new Bing. Our goal was to approximate a 1:1 teacher-to-student ratio through software, thereby equipping students with a pedagogically-minded subject-matter expert by their side at all times, designed to guide students toward solutions rather than offer them outright. The tools were received positively by students, who noted that they felt like they had “a personal tutor.” Our findings suggest that integrating AI thoughtfully into educational settings enhances the learning experience by providing continuous, customized support and enabling human educators to address more complex pedagogical issues. In this paper, we detail how AI tools have augmented teaching and learning in CS50, specifically in explaining code snippets, improving code style, and accurately responding to curricular and administrative queries on the course’s discussion forum. Additionally, we present our methodological approach, implementation details, and guidance for those considering using these tools or AI generally in education.

Teaching CS50 with AI

A look at how CS50 has incorporated artificial intelligence (AI), including its new-and-improved rubber duck debugger, and how it has impacted the course already. 🦆

Implementing the CS50 Duck with OpenAI’s APIs

A hands-on introduction to implementing your own AI-based chatbot using OpenAI’s APIs, maybe a duck or even a cat!

CS50R

CS50’s team is in the process of filming a brand-new course, CS50’s Introduction to Programming with R, designed to supplement CS50 itself for students at Harvard College and Harvard Extension School:

An introduction to programming using a language called R, a popular language for statistical computing and graphics in data science and other domains. Learn to use RStudio, a popular integrated development environment (IDE). Learn to represent real-world data with vectors, matrices, arrays, lists, and data frames. Filter data with conditions, via which you can analyze subsets of data. Apply functions and loops, via which you can manipulate and summarize data sets. Write functions to modularize code and raise exceptions when something goes wrong. Tidy data with R’s tidyverse and create colorful visualizations with R’s grammar of graphics. By course’s end, learn to package, test, and share R code for others to use. Assignments inspired by real-world data sets.

Recall that CS50 itself, also known as CS50x, is an Introduction to Computer Science. You can take this new course on R before CS50x, during CS50x, or after CS50x. But for an introduction to computer science itself, you should still take CS50x!

Starting July 2024, CS50’s Introduction to Programming with R will be freely available to anyone online via edX at cs50.edx.org/r and via OpenCourseWare at cs50.harvard.edu/r.

You’re welcome to attend one, some, or all of the live lectures below! Space is limited, so please forgive if a Zoom Meeting fills up! You’re welcome to watch live via YouTube instead.

Schedule

Dress Rehearsal

2024-01-23T13:00:00-05:00/2024-01-23T16:00:00-05:00

A live lecture rehearsal on various topics within the course. Odds are we’ll start and stop a few times to fix things: so consider it an opportunity to see behind the scenes a bit!

Lecture 1 Representing Data

2024-01-30T13:00:00-05:00/2024-01-30T16:00:00-05:00

R. RStudio. Arithmetic. Storage Modes. Objects. Navigation. Vectors. Vector Arithmetic. Matrices. Arrays. Lists. Data Frames. Factors. Reading Data. Writing Data.

Lecture 2 Transforming Data

2024-02-02T13:00:00-05:00/2024-02-02T16:00:00-05:00

Logicals. Logical Operators. Logical Expressions. Logical Vectors. Subsets. Conditionals: if, else, ifelse, switch.

Lecture 3 Applying Functions

2024-02-09T13:00:00-05:00/2024-02-09T16:00:00-05:00

Defining Functions. Arguments. Return Values. Loops: while, for, repeat. Implicit Loops: apply and family.

How to use RStudio

If you’d like to try writing some R code during the lecture, you can:

  1. Install R for your operating system from cran.rstudio.com.
  2. Install RStudio Desktop from posit.co/download/rstudio-desktop.

Or you can use Visual Studio Code for CS50 at cs50.dev, in which CS50 has pre-installed RStudio Server:

  1. Sign up for a (free) GitHub account, if you don’t have one already, at github.com/signup.
  2. Log into cs50.dev with that account.
  3. Run update50 in your terminal window.
  4. Run rstudio in your terminal window and click Open in Browser when prompted.

Do consider CS50’s installation of RStudio Server to be in “beta,” as it might still be a bit buggy. Please report any bugs to sysadmins@cs50.harvard.edu!

Lecture 4 Tidying Data

2024-02-16T13:00:00-05:00/2024-02-16T16:00:00-05:00

Packages. tidyverse. dplyr: select, filter, arrange, distinct, group_by, summarize. Pipe Operator. tidyr. Tidy Data. Normalizing. stringr. Cleaning Strings.

How to use RStudio

If you’d like to try writing some R code during the lecture, you can:

  1. Install R for your operating system from cran.rstudio.com.
  2. Install RStudio Desktop from posit.co/download/rstudio-desktop.

Or you can use Visual Studio Code for CS50 at cs50.dev, in which CS50 has pre-installed RStudio Server:

  1. Sign up for a (free) GitHub account, if you don’t have one already, at github.com/signup.
  2. Log into cs50.dev with that account.
  3. Run update50 in your terminal window.
  4. Run rstudio in your terminal window and click Open in Browser when prompted.

Do consider CS50’s installation of RStudio Server to be in “beta,” as it might still be a bit buggy. Please report any bugs to sysadmins@cs50.harvard.edu!

Lecture 5 Visualizing Data

2024-02-20T13:00:00-05:00/2024-02-20T16:00:00-05:00

Plots. Grammar of Graphics. ggplot.

How to use RStudio

If you’d like to try writing some R code during the lecture, you can:

  1. Install R for your operating system from cran.rstudio.com.
  2. Install RStudio Desktop from posit.co/download/rstudio-desktop.

Or you can use Visual Studio Code for CS50 at cs50.dev, in which CS50 has pre-installed RStudio Server:

  1. Sign up for a (free) GitHub account, if you don’t have one already, at github.com/signup.
  2. Log into cs50.dev with that account.
  3. Run update50 in your terminal window.
  4. Run rstudio in your terminal window and click Open in Browser when prompted.

Do consider CS50’s installation of RStudio Server to be in “beta,” as it might still be a bit buggy. Please report any bugs to sysadmins@cs50.harvard.edu!

Lecture 6 Testing Programs

2024-02-23T13:00:00-05:00/2024-02-23T16:00:00-05:00

Exceptions. Unit Tests. testthat. Test-Driven Development. Behavior-Driven Development

How to use RStudio

If you’d like to try writing some R code during the lecture, you can:

  1. Install R for your operating system from cran.rstudio.com.
  2. Install RStudio Desktop from posit.co/download/rstudio-desktop.

Or you can use Visual Studio Code for CS50 at cs50.dev, in which CS50 has pre-installed RStudio Server:

  1. Sign up for a (free) GitHub account, if you don’t have one already, at github.com/signup.
  2. Log into cs50.dev with that account.
  3. Run update50 in your terminal window.
  4. Run rstudio in your terminal window and click Open in Browser when prompted.

Do consider CS50’s installation of RStudio Server to be in “beta,” as it might still be a bit buggy. Please report any bugs to sysadmins@cs50.harvard.edu!

Lecture 7 Packaging Programs

2024-02-27T13:00:00-05:00/2024-02-27T16:00:00-05:00

Packages. Package Structure. Licensing. Unit Testing. Writing Functions. Documenting Functions. Markup Languages. Building Packages. Distributing Packages.

How to use RStudio

If you’d like to try writing some R code during the lecture, you can:

  1. Install R for your operating system from cran.rstudio.com.
  2. Install RStudio Desktop from posit.co/download/rstudio-desktop.

Or you can use Visual Studio Code for CS50 at cs50.dev, in which CS50 has pre-installed RStudio Server:

  1. Sign up for a (free) GitHub account, if you don’t have one already, at github.com/signup.
  2. Log into cs50.dev with that account.
  3. Run update50 in your terminal window.
  4. Run rstudio in your terminal window and click Open in Browser when prompted.

Do consider CS50’s installation of RStudio Server to be in “beta,” as it might still be a bit buggy. Please report any bugs to sysadmins@cs50.harvard.edu!