Harvard CS 109A: Data Science 1: Introduction to Data Science
CS 109A, cross-listed as Stat 109A, is the first half of Harvard's data science sequence: data wrangling, exploratory analysis, regression, classification, and model evaluation in Python. Past course materials are published openly on the teaching team's site, giving it a large self-study audience beyond enrolled students.
Fennie is independent and not affiliated with Harvard University. This is an unofficial study guide.
What makes it hard
The course sits at the junction of programming, statistics, and judgment. Homeworks demand clean pandas code, correct inference, and sensible modeling decisions all at once. Students with only one of those legs (strong coders weak on stats, or vice versa) feel the missing leg on every assignment.
What you'll cover
- • Data wrangling with Python and pandas
- • Exploratory data analysis and visualization
- • Linear and logistic regression
- • Model selection and regularization
- • Classification and k-NN
- • Cross-validation and model evaluation
The CS 109A study guide
How to study for Harvard CS 109A, step by step.
- 1
Audit both legs: Python and statistics
CS 109A assumes CS50-level programming and Stat 100-level statistics, and homeworks punish whichever one is weaker. Identify your weak leg in week one and put deliberate practice there.
- 2
Rebuild the lab notebooks from scratch
Running provided notebooks feels like learning and isn't. After each lab, recreate the analysis in a blank notebook from the raw data, since that's the skill homeworks actually grade.
- 3
Narrate every modeling decision
State why this model, why these features, why this validation split, one sentence per choice. The graders reward reasoning, and the habit catches errors before they propagate.
- 4
Keep a personal log of pandas and sklearn gotchas
Index alignment, data leakage, fit-versus-transform: the same handful of traps cost points all semester. Recording each one once prevents paying for it twice.
Today
Today's CS 109A plan
What a Fennie Daily Plan looks like for CS 109A. Yours is built from your own syllabus and adapts every day to your deadlines and progress.
First plan free, no card required. Fennie is independent and unaffiliated with your school.
FAQ
Is CS 109A hard?
It's demanding through breadth, with programming, statistics, and modeling judgment in every homework. Students solid in Python and intro statistics find the workload heavy but fair.
What's the difference between CS 109A and Stat 110?
Stat 110 is probability theory; CS 109A is applied data science, meaning wrangling, regression, and machine learning practice in Python. Stat 110 is recommended background, not a substitute.
Can I self-study CS 109A online?
Yes. Past offerings publish lectures, labs, and homework notebooks openly. Work the homeworks honestly rather than reading the solutions; the judgment is built by doing.
More Harvard courses
CS50: Introduction to Computer Science
CS50 is Harvard's famous intro to computer science, taught by David Malan. Through CS50x on edX, it is almost certainly the most-taken and most-searched college course in the world. It moves from C through data structures, memory, and algorithms to Python, SQL, and web development, ending with a final project.
CS 51: Abstraction and Design in Computation
CS 51 is the standard course after CS50 for Harvard CS concentrators, teaching functional programming in OCaml alongside design principles: abstraction, modularity, and multiple programming paradigms. It's where students go from making code work to making it well-designed.
CS 124: Data Structures and Algorithms
CS 124 is Harvard's algorithms course, covering divide and conquer, greedy algorithms, dynamic programming, graph algorithms, hashing, and NP-completeness. It combines rigorous analysis with programming assignments, and it's a core theory requirement for CS concentrators and a known interview-prep powerhouse.
CS 61: Systems Programming and Machine Organization
CS 61 is Harvard's systems programming course, covering C and C++, assembly, memory, caching, process control, and concurrency. It's one of the two standard follow-ons to CS50 for CS concentrators. Its course site publishes lecture notes and problem sets publicly, so it also draws self-learners looking for a systems sequel to CS50.