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.
- Instructor Frank Elavsky, PhD (Cal Poly page)
- Email felavsky@calpoly.edu
- Office 14-228
- Slack Invite to be sent via Canvas
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 | |
|---|---|
| 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 |
|---|---|---|---|---|
| 1 | Tabular data | Week 3 | Tue Sep 8 | 2% |
| 2 | Categorical and numerical data | Week 4 | Tue Sep 15 | 2% |
| 3 | Visualization | Week 5 | Tue Sep 22 | 2% |
| 4 | Distance and similarity metrics | Week 6 | Tue Sep 29 | 2% |
| 5 | Regression | Week 7 | Tue Oct 6 | 2% |
| 6 | Evaluation of machine learning | Week 8 | Tue Oct 13 | 3% |
| 7 | Classification I | Week 10 | Tue Oct 27 | 2% |
| 8 | Classification II | Week 12 | Tue Nov 10 | 2% |
| 9 | Clustering | Week 14 | Tue Dec 1 | 3% |
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 |
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? | 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.
- Labs are collaborative to work on, but graded individually. The code you submit must be your own.
- The project is a group activity with a shared grade.
- The final demo is a group activity that also includes individual evaluation, based on how each member demonstrates their understanding of the work overall and of their own contribution.
- Reflections and quizzes are entirely individual.
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.