title | date | export |
---|---|---|
DS 3023 Foundations of Data Science Syllabus |
01/09/2025 |
pdf |
A digital version of syllabus: https://novavolunteer.github.io/MLBook/readme
- Brian Wright, Ph.D., Office: TBD
- Email: brianwright@virginia.edu
- TA: Marco Gutierrez Chavez
- Email: sgw3fy@virginia.edu
- Class Location: School of Data Science Building
Brian's Office Hours: In person in my office SDS Building 434 or Virtual on Discord - Monday 1-3pm
TA office hours: Marco Gutierrez Chavez - Tues/Thurs 1:15 - 3:15 pm
Course Materials: Foundations of Machine Learning Repo
Subject Area and Catalog Number: Data Science, DS 3021
Year, Term and Time: 2025, Spring, T/Th
Class Title: Foundations of Machine Learning
Level: Undergraduate
Credit Type: Grade (A-F)
What is Data Science, why is it becoming so important and what is needed to be successful in this field? We will explore these questions throughout the course through a variety of topics with data always at the center. In all things, we focus on creative thinking, not blind implementation. If you cannot answer why you are doing something, not only will you discover no new knowledge but you will also create new problems versus solving them.
The course centers on lab-based work and employs a team-based pedagogy, meaning much of the work in the course can and should be completed in collaboration with your classmates. Though very applied, we also include theoretical content and will have discussion sessions depending on the topic for any given week.
I am also aware that students come from different backgrounds and have a variety of skill sets that they bring to the class. There will be plenty of opportunities for those that would like to take advantage of extra discussions during office hours, TA support sessions, and team-based work that is designed in such a way that we can all learn from each other.
Throughout the course, we will endeavor to “live the life of a data scientist” allowing you to not only be directly taught but gain a sense of what it would be like to be working as a data scientist. You’ll be asked to discover new knowledge and share it with your peers and learn how to use the larger ecosystem of data science to your benefit.
Machine Learning is incredibly broad and dynamic field. The topics below are designed to reinforce this perspective and help you understand the field’s core tenements and what is demanded from practicing data scientists. The key is for you to gain a sense of the scope Machine Learning, what is needed to contribute to the community, and feel comfortable incorporating these techniques into your work moving forward. Specific learning objectives are below:
Gain experience working in teams to solve Data driven problems with ML tools
Be able to describe the field of Machine Learning
Articulate the advantages and disadvantages of selected ML approaches
Be able to select appropriate ML models given problems and data types
Understand the importance of and methods for evaluating ML models
Gain experience working with and supporting teammates
Have some fun along the way :)
The course will move rather quickly and can be demanding at times. However, if we all work together to support each other you’ll be amazed how much you learn at the end of the semester!
On any given week, the course will require reviewing short video lectures and completing readings prior to coming to class. These lectures and readings will then be implemented in the lab portion of the course which will be conducted during the scheduled class period. Lab sessions will include a variety of activities but mostly be centered on team-oriented ML assignments. .
Quizzes (15%) – Short occasional (8ish) quizzes, will be auto-graded,
so you will get instant feedback. In order to ensure we are all meeting
the learning objectives from week to week. You will be allowed as many
chances to complete the quiz as needed, they will be open note,
but students are to work independently.
Labs (60%) – On most weeks we will have in-class labs/assignments. These
are designed to allow you to practice the skills being presented in class.
While they should be submitted individually you are encouraged to work with
your peers as much of the best learning can come from your each other.
You'll create stand-alone Juypter notebooks to be evaluated by the course TA.
Final projects (25%) – The course will culminate in a final project that
will involve working with a dataset of your choice, giving a presentation,
submitting well-annotated code to include summary information in report form.
This is an open-ended project designed to allow groups to choose a topic of
interest from the semester to explore deeper and share with the class. Students
will be expected to build the project using github and develop a free standing
website built with one of the tools presented in class (GitHub.io or MYST Book)
VS Code + Dev Container (Docker) - You'll need to have the software loaded and ready to go day one, but we will help if needed.
Github - Almost all course materials (will post on Canvas as needed)
Canvas - Submission of assignments and class-wide communications
Discord - Low latency comms for groups and class.
Discord Invite Click - Use this for team communications, quick updates and helpful tips throughout the semester. It is a nice way to build community. :)
Overview for Install Miniconda and VS Code
The materials below are essentially a starter Machine Learning Library. I will use all of these references at difference points during the class and most are low cost options. Unfortunately, the main book for the class Python Machine Learning with Pytorch and Scikit-Learn is not free (if you need help paying let me know and the School/I will take of it). Everything else is either free or can be found for around 15 dollars. There's also references to Python style guides and tutorials.
- A. Foundations of ML: Supplemental Book
- B. Evaluating Machine Learning Models – O’Reilly Digital via UVA Library
- C. Python Machine Learning with PyTorch and Scikit-Learn, 4th Edition
- D. Mathematics for Machine Learning Free PDF Version
- E. Machine Learning Engineering Low Cost
- F. Python Style Guide
- G. Machine Learning Crash Course
- H. Jen Huck!..a human resource Jen is the Data Science Librarian and a amazing resource for the class!
- I. Python Data Science Handbook - Free in UVA O'REILLy Database
***NOTE: depending on student interest, the syllabus can be adjusted to accommodate additional topics
Week | Theme | Topics | Lab | Reading/Repo (Prior to Class) |
---|---|---|---|---|
Week 1 | What is this “Machine Learning" you speak of? + Experimental Thinking | Synchronous: Short Lab | ||
Week 2 | What is ML + Data Science Lifecycle | Language of ML + Analytical Plan | - Group Case Study | A. What is ML + Data Science Lifecycle |
Week 3 | Getting back up to "coding speed" | Language of ML | Pandas Practice Lab | C. Chpt 1 |
Week 4 | Introduction to ML Concepts I | Data Preparation | ML Concepts | C. Chapt 4 |
Week 5 | Introduction to ML Concepts II | Data Preparation: Linear Regression |
Repo | C. Chpt. 9 |
Week 6 | Introduction to ML Concepts III | Machine Learning Process: kNN |
C. pages 98-103 | |
Week 7 | Introduction to ML Concepts IV | kNN + Evaluation | Evaluation Lab | All of B. and C. Chpt. 6 |
Week 8 | Supervised Classification | Logistic Regression | ||
Week 9 | Sampling Methods and How Bootstrap + Cross-Validation solves all the problems | |||
Week 10 | Nature's Perfect ML analogy: Trees Part I | Classification: Decisions Trees + Calibration |
Decision Trees | TBD and G. Chapter 14.1-14.3 |
Week 11 | Nature's Perfect ML analogy: Trees Part II | Regression: Decision Trees |
[Predicting Income for Big Brother] | F. Chapter 5 and G. Chapter 8 |
Week 12 | Unsupervised: kMeans | Let's gather together, but separately | NBA Scout for the worst team in the league | |
Week 13 | Unsupervised: PCA | Feature Engineering | TBD | |
Week 14 | Topic Exploration | Ensemble Methods Random Forest |
TBD | |
Week 15 | Final Project Prep | Final Project Overview | ||
Week 16 | Final Project | Final Project Overview |
Grading Policies: Courses carrying a Data Science subject area use the following grading system: A, A-; B+, B, B-; C+, C, C-; D+, D, D-; F. The symbol W is used when a student officially drops a course before its completion or if the student withdraws from an academic program of the University.
Grading Scale:
- 93-100 A
- 90-92 A-
- 87-89 B+
- 83-86 B
- 80-82 B-
- 77-79 C+
- 73-76 C
- 70-72 C-
- 60-70 D
- <60 F
University of Virginia Honor System: All work should be pledged in the spirit of the Honor System at the University of Virginia. The instructor will indicate which assignments and activities are to be done individually and which permit collaboration. The following pledge should be written out at the end of all quizzes, examinations, individual assignments, and papers: “I pledge that I have neither given nor received help on this examination (quiz, assignment, etc.)”. The pledge must be signed by the student. For more information, visit www.virginia.edu/honor.
Special Needs: The University of Virginia accommodates students with disabilities. Any SCPS student with a disability who needs accommodation (e.g., in arrangements for seating, extended time for examinations, or note-taking, etc.), should contact the Student Disability Access Center (SDAC) and provide them with appropriate medical or psychological documentation of his/her condition. Once accommodations are approved, just follow up with me concerning any logistics and implementation of accommodations. Please try to make accommodations for test-taking at least 14 business days in advance of the date of the test(s). Students with disabilities are encouraged to contact the SDAC: 434-243-5180/Voice, 434-465-6579/Video Phone, 434-243-5188/Fax. Further policies and statements are available at www.virginia.edu/studenthealth/sdac/sdac.html
Technical Support Contacts
Login/Password: scpshelpdesk@virginia.edu
UVaCollab: collab-support@virginia.edu
BbCollaborate Support: http://www.tinyurl.com/uvabbc