EDUC 260A
Introduction to Programming and Data Management

Promo Video

Fall 2026

This is the first course in a programming/data science sequence designed for students who do not have a programming background and perhaps never thought they would write code. (The second course in the sequence is EDUC 260B: Fundamentals of Programming)

The course has two foundational goals: (1) to develop core skills in "data management," which are important regardless of which programming language you use, and (2) to learn the fundamentals of the R programming language.

Data management consists of acquiring, investigating, cleaning, combining, and manipulating data. Most statistics courses teach you how to analyze data that are ready for analysis. In real research projects, cleaning the data and creating analysis datasets is often more time-consuming than conducting analyses. This course teaches the fundamental data management and data manipulation skills necessary for creating analysis datasets.

Syllabus & Resources

Class materials including the syllabus, class Zoom link, GitHub issues, GitHub teams, and course textbook are linked below.

Lecture Materials

Lecture materials are organized by topic. Materials may include lecture slides (HTML or PDF), the Quarto file used to create the slides (.qmd), and lecture recordings.

HTML
.qmd
Video recordings
HTML
.qmd
Video recordings
HTML
.qmd
Video recordings

Readings & Assignments

Weekly pre-recorded lectures, slides (html/pdf), readings, and problem sets will be posted on the class website a week in advance. Students are expected to work through the asynchronous lecture materials (videos, slides, etc.) and submit the problem set prior to the synchronous class meeting on Friday.

Required readings
Encouraged readings
Problem set files
Required readings
Encouraged readings
Problem set files
Required readings
  • From Into the tidyverse: pipes and dplyr:
    • Section 1: Introduction (1.1, 1.2)
    • Section 2: Investigating data patterns (2.1, 2.2, 2.3)
    • Section 3: Pipes (3.1, 3.2, 3.3, 3.4, 3.5, 3.6)
Encouraged readings
Problem set files
Required readings
Encouraged readings
Problem set files
Required readings
Encouraged readings
Problem set files
Required readings
  • From Attributes and class lecture:
    • Section 1: Introduction
    • Section 2.2: Atomic vs augmented vectors
    • Section 3: Object class
    • Section 4: Class = factor
    • Section 5: Class = labelled
    • Section 6: Comparing class labelled to class factor
Encouraged readings
Problem set files
Required readings
  • From ggplot lecture:
    • Section 1: Introduction
    • Section 2: Concepts
    • Section 3: Creating graphs using ggplot
    • Section 4: Customization
    • Section 5: Exporting plots
    • ggplot cheatsheet:
Problem set files
Required readings
  • From Strings and dates lecture:
    • Section 1: Introduction
    • Section 2: Data structures and types
    • Section 3: String basics
    • Section 4: stringr package
    • Section 5.1-5.2: Dates and times
Encouraged readings
Problem set files
Required readings
  • From Tidy data:
    • Section 1: Introduction
    • Section 2: Data Structure vs. Data semantics
    • Section 3: Tidy vs. untidy data
    • Section 4: Tidying untidy data
    • Section 5: Missing values
Encouraged readings
Required readings
  • From Joining Datasets:
    • Section 1: Introduction
    • Section 2: Keys
    • Section 3: Mutating joins
    • Section 4: Filtering joins
    • Section 5: Appending data
Encouraged readings
Problem set files
Required readings
Encouraged readings
Problem set files

Course Communication

GitHub is an industry-standard platform used by programmers to collaborate on projects. We will use GitHub Issues for course communication and discussion.

You will use GitHub Issues to post questions related to the course material. When opening an Issue, please use a descriptive title and select the appropriate label. If your question needs the attention of an instructor, you may tag @ozanj or @jadassims4. We also encourage students to answer one another’s questions and discuss ideas.
We will post weekly course updates and announcements as GitHub Issues. These posts may include summaries of what we covered, material we did not reach, reminders, and instructions for the next class. Students will be added to the Fall 2026 announcements team so that we can notify the class when a new update is posted.
If you have a personal or private question, you can email the instructor or TA directly. Please note that Jada will not answer problem-set questions submitted after 5:00 p.m. on Thursday. We are also available during office hours or by appointment if there is anything you would like to discuss privately.