DATA 3301: Introduction to Data Science Fall 2026 · Section 05 · Cal Poly

A single entry point into the rigorous study of data science and machine learning. You will learn to get messy data into a usable shape, describe and visualize it, and build and evaluate models that predict from it. The work is in Python and Jupyter, and the semester is built around a group project you demo to me at the end.

DATA 3301 merges two former quarter courses, DATA 301: Introduction to Data Science and CSC 466: Knowledge Discovery in Data, into one 15-week semester course, so that everyone entering the upper-division machine learning and data science courses arrives with the same background. This is the first time DATA 3301 is being taught, and there are two sections this term with two different instructors; we cover the same core material, but topic order and assignments will differ between us.

The syllabus is the authoritative document for this course. This page is a working index of materials and dates. Where the two disagree, the syllabus wins. Please tell me so I can fix the page.

Prerequisites. Linear algebra (MATH 1151; MATH 244 accepted with a permission code), intro to computing (CSC 1001), and intro to statistics (STAT 1110, STAT 1510, or STAT 3210). The prerequisite list is a fairly strong one, and that is what lets this course cover the material in more depth than a typical first data science course.

What this course is not. It is not a database course (that is CSC 3665). We write queries over data frames in a way that mirrors relational databases, but this is no substitute. It is not a “big data” course either; our datasets are small enough to work with comfortably and rich enough to be interesting. Terabyte-scale work lives in DATA 4401, DATA 4610, DATA 4620, CSC 4667, and CSC 4888.

Office Hours

I highly encourage office hours, for anyone, for any reason. I take students in the order they arrive and try to give everyone at least 10 to 20 minutes.

Day Time Where
Wednesday 2:00pm – 3:00pm 14-228
Thursday 3:00pm – 4:00pm (after class) 14-228

You can always email me or post in Slack if you have a question or want to schedule a specific time to chat. Just say what you would like to talk about. I generally reply within 24 hours on weekdays and 48 on weekends, often faster. I do not check work messages at odd hours, so do not count on me in the last hours before a deadline. Peer-group office hours are welcome: come in together with a shared problem and we will work through it as a group.

Course Materials

Syllabus PDF
Slack Invite TBD. Best place for questions about assignments and course material.
Jupyter Labs Server dev2.csc.calpoly.edu:5000
Submission repository Setup TBD. Assignments are submitted by pushing to your repo.

Texts and references

There is no required textbook. We will actively use the notebook-based textbook Dr. Dennis Sun wrote for DATA 301; the lectures, labs, and notebooks here are based mostly on it but diverge in places.

Dennis Sun, Principles of Data Science Used throughout GitHub
Bing Liu, Web Data Mining (Springer, 2nd ed. 2011) Recommended. Accessible, algorithms-centric coverage of much of this course ISBN 978-3642194597
Zaki & Meira, Data Mining and Analysis (Cambridge, 2014) Recommended. More optimization-centric, and also the DATA 4610 text ISBN 978-0-521-76633-3

Grading

Component Weight Breakdown
Participation 25% Attendance and interaction 5% · in-lecture and in-lab reflections 15% · in-lecture exercises 5%
Labs 20% In-class activities and take-home assignments
Project 15% Proposal 2% · plan and preliminary 3% · completed project 10%
Quizzes 20% Nine in-class, pencil-and-paper quizzes
Final 20% Group project demo and oral exam during finals week

On the grading scale. This course has relatively hard problems, so the traditional 90/80/70 scale does not apply. Historically the A/B cutoff has landed around 80–85% and the B/C cutoff around 67–70%.

Reflections

Lectures and labs may open or close with time to write a reflection, by hand, on paper. Expect about 15 across the term, each worth up to 1% of your grade. Some are group reflections, some have prompts, some are unstructured. All of them are there to make you think about what you just did in lab, on an assignment, or in lecture. They are individual work, and they are the largest part of your participation grade. Miss a class and you can write it in the first class you attend afterward; just reach out.

Quizzes

Nine in-class quizzes, on paper, covering concepts from lecture and material from the lab assignments. Weeks below are tentative and subject to small adjustments. You will always be told in advance. Quizzes cannot be made up, but you can drop at least one missed quiz at the end of the term. The drop applies only to a missed quiz, not a low score, so please stay home if you are sick.

Quiz Topic Week Date Weight
1Tabular dataWeek 3Tue Sep 82%
2Categorical and numerical dataWeek 4Tue Sep 152%
3VisualizationWeek 5Tue Sep 222%
4Distance and similarity metricsWeek 6Tue Sep 292%
5RegressionWeek 7Tue Oct 62%
6Evaluation of machine learningWeek 8Tue Oct 133%
7Classification IWeek 10Tue Oct 272%
8Classification IIWeek 12Tue Nov 102%
9ClusteringWeek 14Tue Dec 13%

Project

One major project, in three progressive parts, substantially longer and more complex than the lab assignments. It is a group activity and is graded as one. You cannot propose a project as an individual, so be ready to join a group. You will also be asked about your project work in the in-class reflections, so the project feeds your participation grade too.

Part Weight Due Handout Other
Proposal 2% TBD Google Doc 2 pages, plus sketches and figures
Plan and Preliminary 3% TBD Google Doc
Completed Project 10% TBD Google Doc
Ideas and examples PDF

Proposal. A 2-page proposal of your group's idea, guided by a short prompt. Hand-drawn and low-fidelity sketches, figures, and screenshots are highly encouraged and do not count against the 2 pages. You get feedback before you begin any work, and you are graded on how well you communicate your idea, the challenges you expect, and how you will apply course topics.

Plan and preliminary. After feedback, divide the labor across your group and do the preliminary work: gather your dataset(s) and run descriptive statistics. If your working conjectures need revisiting, do that here. You also schedule your finals-week demo slot at this point, from the options I provide. I prioritize scheduling by whichever groups submitted this part earliest and most completely, so turning it in early and complete gets you a better pick of times.

Final Exam

The final is a 20-minute group demo and oral exam with me, scheduled during finals week. These are not in-class presentations. You are graded on the quality of the demo and on how well each member handles my questions.

You set the focus areas in advance, and that choice drives your grade. The more course material you apply in your project and can demonstrate, the better you do. Pick data visualization as a focus, for instance, and you will need to articulate which parts of visualization you considered and how you used those principles, tools, and practices effectively.

Not everyone has to attend, but at least two group members must be present, and the group must agree in advance about who may miss it. Anyone absent submits a hand-written reflection to me instead. If only one person attends, that person is graded on the demo and the rest of the group fails; if nobody attends, the whole group fails the final.

Labs

Labs are the “learn by doing” core of the course: in-class activities plus eight take-home assignments, assigned at the end of Thursday's lecture and due the following Thursday. Many of them feed directly into your project. You are encouraged to work together on labs, but you are graded as an individual and the code you submit must be your own.

Deadlines and commit history. Each assignment is submitted by pushing to your repository by the deadline, and I check commit history and timestamps, so an on-time submission with late commits is not a strategy that works. Late work is accepted with a 5% penalty applied immediately, plus 5% per additional day, capped at 50%. Turning something in late always beats not turning it in, but there is a hard cutoff during finals.

Lab Assigned Due Colab Notebook
Lab 1 Thu Sep 3 (wk 2) Thu Sep 10 (wk 3) Colab
Lab 2 Thu Sep 17 (wk 4) Thu Sep 24 (wk 5) Colab .ipynb
Lab 3 Thu Sep 24 (wk 5) Thu Oct 1 (wk 6) Colab .ipynb
Lab 4 Thu Oct 8 (wk 7) Thu Oct 15 (wk 8) Colab .ipynb
Lab 5 Thu Oct 15 (wk 8) Thu Oct 22 (wk 9) Colab .ipynb
Lab 6 Thu Oct 29 (wk 10) Thu Nov 5 (wk 11) Colab .ipynb
Lab 7 Thu Nov 12 (wk 12) Thu Nov 19 (wk 13) TBD
Lab 8 Thu Nov 19 (wk 13) Thu Dec 3 (wk 14) spans fall break TBD

Schedule

Fifteen weeks, anchored to the quiz schedule in the syllabus. The week structure is settled, but specific dates and some topics are not. The materials linked below are carried over from the DATA 301 quarter version of the course, so expect them to change as the CSC 466 material is added.

Reflections. Lectures and labs may open or close with a hand-written reflection on the work you have been doing: what you tried, what broke, what you changed. These should line up with the commits and code you actually wrote. In-class exercises count toward participation.

Week Date Topic Lecture Lab
Slides Notebook Discussion Notebook Take-home
1 Tue Aug 25
Thu Aug 27
Introduction, Syllabus, What is Data Science? PDF LN01 Python Notebooks and Google Colab DS01
2 Tue Sep 1
Thu Sep 3
Tabular Data: Data Frames
Complex Queries, Grouping, Aggregation, Joins
TBD LN02
LN03
Operations on Data Frames
Complex queries
DS02
DS03
Lab 1 assigned: Colab (Thurs: Sep 3)
3 Tue Sep 8
Thu Sep 10
Joins and Union
Categorical Variables
Numeric Variables
Categorical Variables (Part 2)
TBD LN04
LN05
LN06
LN07-1
LN07-2
COVID Fatalities
College Scorecard
DS04
DS05
Lab 1 due (Thurs: Sep 10)
Week 3 Tue Sep 8 Quiz 1: Tabular data
4 Tue Sep 15
Thu Sep 17
Relationships between Numeric Variables
Data Visualization
TBD LN08 Multivariate plotting with Matplotlib DS06 Lab 2 assigned: Colab (Thurs: Sep 17)
Week 4 Tue Sep 15 Quiz 2: Categorical and numerical data
5 Tue Sep 22
Thu Sep 24
Distance and Similarity Metrics TBD LN09 Distances in Matplotlib DS07 Lab 2 due (Thurs: Sep 24)
Lab 3 assigned: Colab (Thurs: Sep 24)
Week 5 Tue Sep 22 Quiz 3: Visualization
6 Tue Sep 29
Thu Oct 1
Text Vectorization: Bag of Words, N-Grams
Encoding Categorical Variables, Column Transformers
TF-IDF
TBD LN10
LN11
LN12
Who wrote the Gospels? DS08 Lab 3 due (Thurs: Oct 1)
Week 6 Tue Sep 29 Quiz 4: Distance and similarity metrics
7 Tue Oct 6
Thu Oct 8
Predictive Modeling, Supervised Learning, Regression
Linear Regression
TBD LN13
LN14
Predictive Modeling
Predicting House Prices
DS09
DS10
Lab 4 assigned: Colab (Thurs: Oct 8)
Week 7 Tue Oct 6 Quiz 5: Regression
Week 7 Thu Oct 8 Project: Proposal due
8 Tue Oct 13
Thu Oct 15
Model Evaluation
Model Selection and Hyperparameter Tuning
TBD LN15
LN16
Evaluating House Price Predictions
Grid Search
DS11
DS12
Lab 4 due (Thurs: Oct 15)
Lab 5 assigned: Colab (Thurs: Oct 15)
Week 8 Tue Oct 13 Quiz 6: Evaluation of machine learning
9 Tue Oct 20
Thu Oct 22
Topic TBD Lab 5 due (Thurs: Oct 22)
10 Tue Oct 27
Thu Oct 29
Classification, K-Nearest Neighbors TBD LN17 Handwritten Digit Classification DS13 Lab 6 assigned: Colab (Thurs: Oct 29)
Week 10 Tue Oct 27 Quiz 7: Classification I
Week 10 Thu Oct 29 Project: Plan and Preliminary due · finals-week demo slots scheduled
11 Tue Nov 3
Thu Nov 5
Classification: Logistic Regression, SVMs TBD LN18 Evaluation of Classifiers DS14 Lab 6 due (Thurs: Nov 5)
12 Tue Nov 10
Thu Nov 12
Topic TBD Lab 7 assigned: TBD (Thurs: Nov 12)
Week 12 Tue Nov 10 Quiz 8: Classification II
13 Tue Nov 17
Thu Nov 19
Topic TBD Lab 7 due (Thurs: Nov 19)
Lab 8 assigned: TBD (Thurs: Nov 19)
Between weeks 13 and 14 Tue Nov 24
Thu Nov 26
Fall Break: no class (campus holiday Nov 23–29)
14 Tue Dec 1
Thu Dec 3
Clustering, KMeans Clustering TBD LN19 Clustering (as data compression) DS15 Lab 8 due (Thurs: Dec 3)
Week 14 Tue Dec 1 Quiz 9: Clustering
15 Tue Dec 8
Thu Dec 10
Clustering Evaluation
Course Review
TBD LN20
LN21
Week 15 Thu Dec 10 Project: Completed project due
Finals Mon Dec 14
Fri Dec 18
Final: 20-minute group demo and oral exam, by appointment

Policies

Summarized here for quick reference. The syllabus has the full text of each.

AI-generated content

My approach as an instructor is informed by harm reduction. That strategy comes from activists and health officials during the HIV/AIDS epidemic: telling people that using needles was morally bad produced more shame, and therefore more secrecy. When people use dangerous things in secret, it is far harder to get help when they need it. So I take a shame-free approach here. My problem as an educator is that I have to tell you honestly about the downsides of AI for learning without scaring you away from talking to me when you need help.

Generative AI is strongly not encouraged, but it is not forbidden on take-home assignments. The condition is disclosure. Every use of generative AI on take-home work must be explicitly disclosed, both in the text of any report you submit and in comments on any code cell or code block produced with its assistance. Failing to disclose is an academic integrity violation.

Generative AI is permitted Generative AI is prohibited
Lab assignments (take-home only, not in-class activities)
Project-related assignments
Participation, including reflections on your project and lab work
In-lab notebooks and activities
Quizzes (pencil and paper)
The final (a demo and group oral exam)

Only 25% of your grade could be determined by generative AI. And there is strong research showing that high performance paired with little time spent on homework correlates strongly with poor quiz and exam scores. The quizzes and the final are the true evaluations in this course. They test both your understanding and your ability to articulate your own contributions in concrete terms. Generative AI, while technically allowed on take-home work, will likely work against your grade overall.

Students who do better in today's educational landscape, and in professional environments, are the ones who are deeply literate in what AI is, how it works, and where it fails, and who have real humility and real expertise of their own. The idea of a 10x or 100x boost from generative AI means little if your starting value is zero. Zero times 100 is still zero. You need fundamentals, ideally deep specialization, for these tools to compound anything. My goal is to help you build that expertise first.

Collaboration

Talk, share ideas, help each other. Just make sure you are learning and applying the material yourself.

All of this is fair game: helping each other with syntax and runtime errors, finding (but not fixing) a bug after someone has tried themselves first, debugging methods, general programming techniques, relevant algorithms and data structures, and the ethics and bigger-picture issues of the work. Exchanging code in any form is not, nor is using solutions from previous offerings, from the internet, from GitHub, or from a paid “tutor.” If you are unsure where a line is, ask me.

Late work

There are times when coursework and life outside it combine into something unbearable. I understand, and you need not apologize for it. Some of the assessments are structured to account for that automatically: you can drop at least one missed quiz, reflections can be made up in the next class you attend, and late assignments are accepted with a 5% immediate penalty plus 5% per additional day, capped at 50%. Contact me as soon as you are able for anything these do not cover.

Accessibility

My research area is accessibility, I work extensively with people with disabilities, and I am open about living with disabilities myself. That means two things. First, I am more than happy to accommodate you, and by asking you help me improve my teaching, pacing, and materials. Reach out directly, by email or in office hours, and tell me what you need.

Second, it is heavily in your favor to also work with the Disability Resource Center and get formal accommodations wherever possible. I am happy to work with you, but will every professor be? Applying for accommodations takes some executive function if you are not used to it, but it is worth setting up in case you need it. The DRC exists to get you what you need and to require professors to do the work they should be doing. If you want help with any of this, including navigating higher education with a disability, let me know. I was a Section 504 kid in high school and have been through these hoops in undergrad, grad school, and at work. I want you to succeed and to feel fully included here.

Personal well-being

If coursework and non-academic obligations combine into a seemingly unbearable situation, your work may suffer and you may decide not to finish something by its posted date. I understand, and you do not need to apologize. Do not get discouraged. Contact me as soon as you can. I am here to help; just ask.

If you or someone you know is having difficulty accessing enough healthy food or stable housing, campus has free and effective resources. Visit basicneeds.calpoly.edu.

Learning environment

Every person deserves respect, every question deserves an answer, and we work together toward improved understanding. The old adage says to ask because others may have the same question. But you do not need some imagined quorum to validate your question or your request for help. Having a question is sufficient. You belong here, and your participation is not only welcomed but encouraged.

Failure is part of learning. The material here is difficult, and for students who have mostly learned in environments where they excelled, that can be intimidating, disorienting, and isolating. Engaging with your peers, asking questions, and coming to see me are the basic ingredients for getting through it. Students who have friends in a class are statistically more likely to finish it and to earn higher grades, so be friendly and respectful to others. Make friends. And if you feel ahead: that is a great reason to connect with your peers. Come to office hours as a group.

Access to and support within computing education is a matter of social justice. Computing touches nearly every part of most lives in this society and many others; it should not be practiced or defined by only a small, mostly homogeneous group. The field is better when it includes and actively supports a diversity of practitioners, because that diversity of experience and of cultural and personal values gives greater perspective on which problems are worth solving.