DS 1002: Programming for Data Science Fall 2026

Instructor: Dr. Yeonbin Son (yeonbin@virginia.edu), Office Hours: Mo 11:30 AM – 1:00 PM, Office 430.
IA (DS1002-001): Lydia Lee (yzg7bf@virginia.edu), Office Hours: Tu|Th 12:30 – 1:30 PM, Office 301A.
IA (DS1002-002): Karina Mehta (has8ez@virginia.edu), Office Hours: Tu 2:00 – 4:00 PM, Office 301A.
Class Time:  DS1002-001 Mo|We 2:00 – 3:15 PM
DS1002-002 Mo|We 3:30 – 4:45 PM (ET).
Main | Course Information | Schedule | Course Components | Course Policies | Resources

Basic Course Information


Course Description:

This course provides an introduction to programming concepts and techniques essential for data science, with an emphasis on computational thinking, the data science pipeline, and AI-assisted programming. Students will build a strong foundation in Python, the most widely used programming language in data science, and learn to use Jupyter Notebooks and VS Code as their development environment.

The course covers key programming constructs, data structures, and non-linear control flow using loops and conditionals. Students will develop skills in debugging, tracing, and writing programs while employing both functional and object-oriented programming strategies, and will learn to structure code across files, work with external libraries, and handle exceptions.

Building on these foundations, students will use NumPy and pandas to represent, clean, transform, and analyze data, and use Matplotlib to explore and visualize datasets. The course then introduces the basic machine learning pipeline, covering simple regression and classification models, and closes with a unit on using generative AI tools responsibly to assist with writing, debugging, and documenting code.

By the end of the course, students will be able to assess the computational solvability of data science problems and build a complete, small-scale data analysis project, from data collection through cleaning, exploratory analysis, visualization, and a basic predictive model, culminating in a semester-long project delivered as a final presentation. This course is designed for beginners and those seeking to strengthen their foundational programming skills for data science.

Although the course covers a wide range of topics, students are expected to spend considerable time outside of class practicing and solidifying their understanding.

Learning Outcomes:

By the end of the semester, you will be able to:

  1. Understand and explain the importance of programming and computational thinking for data science.
  2. Interpret and use one of the most common programming environments for Data Science: VS Code.
  3. Describe, identify, and use key programming constructs and data structures in Python.
  4. Interpret and debug simple programs in Python.
  5. Apply the data science pipeline to load, clean, analyze, and visualize data using NumPy, pandas, Matplotlib, and more.
  6. Trace and code non-linear control flow in a program using loops and conditionals.
  7. Analyze code using functional and object-oriented programming strategies in Python.
  8. Represent data using simple and complex types to perform basic data manipulation and cleaning in Python.
  9. Apply AI-assisted programming techniques to refine, test, and debug code, while critically evaluating and improving AI-generated output.
  10. Assess when a problem is solvable using computational techniques and build a basic data analysis and machine learning workflow (including simple regression and classification) in Python.

Prerequisites:

None.

Required Software:
  • Python — the main programming language for this course. Install it directly from python.org: download the latest version, run the installer, and follow the setup wizard.
  • Visual Studio Code (VS Code) — the main editor used to write and run Python code. A lightweight but powerful IDE with syntax highlighting, debugging, extensions, and an integrated terminal.
  • UV — the package and environment manager used to install and organize libraries (NumPy, pandas, Matplotlib, etc.) throughout the course. A fast, modern alternative to pip/Conda.
Textbook:

No required textbook. Optional resources students are encouraged to reference:

Schedule


Disclaimer: The instructor reserves the right to modify the course schedule and topics as necessary. Refer to the Canvas calendar tool for specific dates and deadlines; all due dates will be reflected in Canvas.

Class Schedule
Week Date Topic Activity
1 Wed, 8/26 Course Overview
2 Mon, 8/31 Python Programming ICA 1
2 Wed, 9/2 Python Programming Lab 1
3 Mon, 9/7 Python Fundamentals ICA 2
3 Wed, 9/9 Python Fundamentals Lab 2
4 Mon, 9/14 Structuring Code ICA 3
4 Wed, 9/16 Structuring Code Lab 3
5 Mon, 9/21 NumPy ICA 4
5 Wed, 9/23 NumPy Lab 4
6 Mon, 9/28 Pandas ICA 5
6 Wed, 9/30 Pandas Lab 5
7 Mon, 10/5 No class – Reading Days
7 Wed, 10/7 Pandas ICA 6
8 Mon, 10/12 Pandas Lab 6
8 Wed, 10/14 Review Day
9 Mon, 10/19 Midterm Exam
9 Wed, 10/21 Project – Progress Check-in
10 Mon, 10/26 Matplotlib ICA 7
10 Wed, 10/28 Matplotlib Lab 7
11 Mon, 11/2 Machine Learning (1) – Regression ICA 8
11 Wed, 11/4 Machine Learning (1) – Regression Lab 8
12 Mon, 11/9 Machine Learning (1) – Regression ICA 9
12 Wed, 11/11 Machine Learning (2) – Classification ICA 10
13 Mon, 11/16 Machine Learning (2) – Classification Lab 9
13 Wed, 11/18 Machine Learning (2) – Classification Lab 10
14 Mon, 11/23 AI for Programming ICA 11
14 Wed, 11/25 No class – Thanksgiving
15 Mon, 11/30 AI for Programming Lab 11
15 Wed, 12/2 Project – Final Presentation
16 Mon, 12/7 Project – Final Presentation

Course Components


In-Class Activities (ICA):

Due most Mondays, in class. ICAs aim to enhance your understanding of presented concepts. You must be present and engaged in class to earn ICA credit; ICAs will not be collected after the due date. The lowest ICA is dropped.

Lab Assignments:

Due most Wednesdays, in class. Labs should be your own work, though you may collaborate on ideas. There are 11 labs across the semester, and the lowest is dropped. Late labs lose 10% of the total grade per day (11:59 p.m. cutoff), and are marked as 0 points after five days late. Make sure to submit the correct file — incorrect files are subject to the Late Work Policy.

Midterm Exam:

Due 10/19/2026 (Week 9). Covers material from Weeks 1–8. Format and review materials will be announced in class and posted to Canvas ahead of time.

Semester-Long Project:

A project you build and extend over the course of the semester, covering data collection/definition, preprocessing with pandas, exploratory data analysis and visualization with Matplotlib, a simple machine learning model, and a short reflection on your use of AI coding tools. You'll share an informal, low-stakes progress check in Week 9 (10/21). Your graded deliverable is the final presentation, split across Weeks 15 and 16 (12/2 and 12/7) to accommodate all project teams. Presentation date will be assigned by random draw, but attendance is mandatory on both days regardless of your assigned presentation date.

Grading:

Grade Scale:

The standing of a student in each course is indicated by one of the following grades, per the SDS Grading Policies: A+, A, A-; B+, B, B-; C+, C, C-; D+, D, D-; F.

Letter Grade Upper bound Lower bound
A+ 100 98
A 97.999 93
A- 92.999 90
B+ 89.999 87
B 86.999 83
B- 82.999 80
C+ 79.999 77
C 76.999 73
C- 72.999 70
D+ 69.999 67
D 66.999 63
D- 62.999 60
F 59.999 0

Course Policies


Expectations:

The expectation is that all in-class activities, labs, and the semester-long project will be submitted on time, by the due date and time/time zone indicated in Canvas. Submitting your work on time ensures you learn pre-requisite skills and concepts and that you are prepared to learn the next set of skills.

Late Work Policy:

We recognize that life can get busy and you may occasionally miss a deadline. To provide some flexibility for particularly busy weeks or weeks with conflicts, you may skip one Lab assignment and one ICA with no penalty; the missed submission will simply be excluded when your grade is calculated. Beyond these waivers, any additional missed or late submissions will receive a zero. However, if something comes up, please don't hesitate to reach out — my door is always open.

Falling behind can have serious consequences. Assignments and learning activities prepare you to complete subsequent assignments, and continual lateness will impact your workload over the term and may prevent you from catching up. If you do fall behind, you should always complete the earlier assignments first.

All work must be completed by the end of the semester regardless of extensions/grace period. Work submitted after the last day of the semester will not be considered in the computation of the final grade.

Extenuating Circumstances:

If you need help, are falling behind and struggling to catch up, or if extenuating circumstances arise, the sooner you reach out for help, the more options there are to help and support you. Please contact Heather Corley, Student Success Advisor, at hcorley@virginia.edu, if you are experiencing extenuating circumstances.

Accessing Grades and Feedback in Canvas:

All assignment grades will be posted in Canvas. Most assignments will be graded within two weeks of submission. Detailed feedback on assignments will be provided, where you can view instructor and IA comments. Once grading is complete, scores will automatically sync to the Canvas gradebook.

Class Attendance:

This is an in-person course. We do not take formal attendance. However, your participation grade comes from in-class activities and labs that happen in most classes. You must be present and engaged to earn these points; late arrivals may miss activity credit. Make-ups are only available for university-approved reasons with advance notice (or as soon as practicable) and must be completed within one week. Bring your laptop, contribute respectfully, and be ready to collaborate.

Communication and Student Response Time:

Communication happens only through Piazza or email. Piazza is preferred, since email may be missed — if you post a question there, the instructor or IA will respond as soon as possible. Asking questions on Piazza, in front of others, promotes discussion and reduces the need to repeat answers. Questions containing personal information should be emailed instead, and when emailing, please put [DS1002] at the very front of the subject line. The sooner you inform the instructor of any problem that may affect your attendance or performance, the better the chance of solving it together.

Academic Integrity: Collaboration and Cheating:

Cheating tends to happen at higher rates in introductory programming-based courses because students get frustrated when their code won't run, because of the feeling that there is only one correct way to write the code, and because of how easy it is to copy and paste a few lines of someone else's code. Cheating also happens at higher rates during high pressure situations, such as a course like this one taught on a rigid timeframe.

Although every student is responsible for their own lab reports, you may chat and Zoom with one another to work together on labs. In general, the difference between collaboration and cheating comes down to intent: cheating is trying to circumvent the learning process, while collaboration is trying to help yourself and your classmates learn the material more deeply.

Examples of cheating:

  • Directly copying someone else's text word for word, copying text from GenAI.
  • Sharing/showing code for the purpose of circumventing the learning process (e.g., letting someone copy code because they are running up against the deadline).
  • Asking for help without doing anything to try to solve the problem first; asking someone to do the work for you.
  • Using AI-powered autocomplete or inline code-generation features built into the editor (e.g., GitHub Copilot, VS Code's AI code completion) that write code automatically as you type or from comments.

Things that are okay:

  • Sharing/showing individual lines of code for the purpose of teaching/explaining or helping someone understand the material.
  • Debugging together (only possible if both people have already written their own code, otherwise there's nothing to debug).
  • Sharing strategies, external texts, blogs, and other resources for completing problems on the lab assignments.
  • Deliberately using an external AI chat tool (e.g., ChatGPT, Claude) as taught in the AI for Programming unit — writing a specification first, then verifying the AI-generated code — is not cheating in that context.

Please promise on your honor to not share code or quiz answers. Cheating means that you do not give yourself the opportunity to master the skills to start working with data in Python. If you are stressed out about the intensity of the course, please message the instructor and work together to get back on track.

SDS Guidelines on AI Tools and Assistance:

The use of generative AI tools and foundation models (i.e., ChatGPT, Claude Code, Gemini, and similar tools) is permitted with the following activities, in accordance with the stated guidelines, at no penalty:

  • Brainstorming and refining your ideas;
  • Fine tuning your research questions;
  • Finding information on your topic; and
  • Checking grammar and style.

Students are responsible for:

  • Acknowledging that large language models tend to produce incorrect facts and fake citations.
  • Acknowledging that code generation models may produce inaccurate outputs.
  • Acknowledging that image generation models can occasionally produce highly offensive content.
  • Taking responsibility for any inaccurate, biased, offensive, or otherwise unethical content submitted, regardless of origin (student-generated or from a foundation model).
  • Properly citing the contribution of the foundation model or other AI tools in submitted material.
  • The entirety of any information they submit, based on an AI query or AI assistance.

The use of generative AI tools is NOT permitted for:

  • During the ICAs and labs.
  • Completing group work assigned to a student, unless it is mutually agreed upon that they may utilize the tool.
  • Writing a draft of a writing assignment.
  • Writing entire sentences, paragraphs or papers to complete class assignments.

Students may be penalized for:

  • Using a foundation model without including an acknowledgement.
  • Improperly citing the use of work by other human beings or the submission of work by other human beings as that of the student.
  • Violating intellectual property laws.
  • Submitting materials containing misinformation or unethical content.

The usage of AI tools must be properly cited to stay within university policies on academic honesty. Failure to adhere to these guidelines will result in a failing grade on the assignment or exam (a zero) and may be an honor code violation depending on the context (to be determined at the instructor's discretion). Having said all these disclaimers, the use of foundation models is encouraged, as it may make it possible for you to submit assignments with higher quality, in less time.

Technical Support:

Additional Resources


Student Success Advisor:

Student Success Advisor Heather Corley serves as your academic advisor for the duration of your matriculation. Heather provides orientation and clarity on degree requirements, degree planning, course enrollment, transfer credit, institutional policies, and SIS/Stellic, and can connect you with resources across Grounds. Email hcorley@virginia.edu with questions or log into Stellic to make an appointment.

Office of Student Affairs:

The Office of Student Affairs provides resources to help you be authentic, healthy, successful, and engaged. If you need support resources related to student success or personal well-being, please reach out at SDSStudentAffairs@virginia.edu. The Student Affairs Community Portal contains resources and information about career, engagement opportunities, funding, and more.

Career Services:

The School of Data Science Career Services Team provides opportunities to learn, connect, and grow. Complete your profile and career interests, explore the Data Analytics Resource Card, or make an appointment with Career Services by using your UVA email to log into Stellic.

Python Support Hours:

Need a Python refresher or looking to upgrade your coding skills? Stop by Python support hours with Ali Rivera for refreshers on the basics and/or help troubleshooting. All content is posted on the Python Support Hours GitHub.

Undergraduate / Graduate Record:

Visit the University Record for policies and information about academic regulations, academic standing, financial assistance, and grades.

University Email Policy:

Students are expected to activate and then check their official UVA email addresses on a frequent and consistent basis to remain informed of University communications, as certain communications may be time sensitive. Students who fail to check their email on a regular basis are responsible for any resulting consequences.

Academic Integrity and University of Virginia Honor System:

The School of Data Science relies upon and cherishes its community of trust. We firmly endorse, uphold, and embrace the University's Honor principle that students will not lie, cheat, or steal, nor shall they tolerate those who do. Students are expected to be familiar with the university honor code, including the section on academic fraud.

All work should be pledged in the spirit of the Honor System of the University of Virginia. The instructor will indicate which assignments and activities are to be done individually and which permit collaboration. Students who submit exams electronically acknowledge the Honor Pledge by agreeing to the following statement: "On my honor, I have neither given nor received aid on this examination, nor did I have prior knowledge of its contents."

Course Evaluations:

Student feedback is critical to the school, the instructor, and future students. Students are expected to complete anonymous and confidential course evaluations in a timely manner for each course at the end of each term.

Discrimination, Harassment, and Retaliation:

UVA prohibits discrimination and harassment based on age, color, disability, family medical or genetic information, gender identity or expression, marital status, military status (which includes active duty service members, reserve service members, and dependents), national or ethnic origin, political affiliation, pregnancy (including childbirth and related conditions), race, religion, sex, sexual orientation, veteran status. UVA policy also prohibits retaliation. All faculty and TAs are also responsible employees for disclosures or reports of potential discrimination, harassment, and retaliation.

Disability and Pregnancy Accommodations:

If you anticipate or experience any barriers to learning in this course, please discuss your concerns with the instructor. If you have a disability, or think you may have a disability, contact the Student Disability Access Center ("SDAC") to request reasonable accommodation(s) for this course through their website. If you have accommodations through SDAC, send the instructor your Faculty Notification Letter as soon as possible and meet to develop an implementation plan together.

Students may be entitled to reasonable accommodations for pregnancy, childbirth, or related medical issues. Please contact SDAC for additional information. Pregnant and parenting students are encouraged to contact SDAC or EOCR to discuss plans and ensure ongoing access to their academic courses and program.

Religious Academic Accommodations:

UVA provides reasonable accommodations when a student's sincerely held religious beliefs or observances conflict with academic requirements. Students who wish to request an academic accommodation for a religious observance should submit their request to the instructor by email as far in advance as possible.

If you have questions or concerns about your request, you may contact EOCR at UVAEOCR@virginia.edu or 434-924-3200. Please note that receiving an accommodation does not relieve you of your responsibility to complete any coursework you miss as a result of the accommodation.

Reporting an Incident:

Just Report It is the University's online system for reporting sexual and gender-based harassment and violence, discrimination, harassment, and retaliation, hazing, Clery Act compliance, interference with speech rights, youth protection, and preventing/addressing threats or acts of violence. You may access Confidential Resources if you wish to discuss a concern or incident without reporting to the University.

Student Mental Health and Wellbeing:

The University of Virginia is committed to advancing the mental health and wellbeing of its students. Residential MSDS students may access the School of Data Science Embedded Psychotherapist Beth Holt Wright, LCSW, by scheduling online through the Healthy Hoos Portal, emailing mdj7wf@virginia.edu, or calling CAPS at 434-243-5150 (notify the receptionist that you are enrolled in the School of Data Science). If you or someone you know is feeling overwhelmed, depressed, and/or in need of support, contact the CAPS Care Managers at CAPSCareMgrs@virginia.edu. For help finding a community therapist, visit the Community Referrals page through CAPS.

Additional Resources:

The School of Data Science Office of Student Affairs can help find resources for students experiencing Emergency Needs. Contact them at sdsstudentaffairs@virginia.edu.