DS210 Course Overview
Lecture 1: Tuesday, May 19, 2026.
This lecture introduces DS 210: Programming for Data Science, covering course logistics, academic policies, grading structure, and foundational concepts needed for the course.
Overview
This course builds on DS110 (Python for Data Science). That, or an equivalent is a prerequisite.
We will spend the bulk of the course learning Rust, a modern, high-performance and more secure programming language. While running and using Rust, we will cover important foundational concepts and tools for data scientists and programmers:
- Tools
- Shell commands
- Git version control
- Computer architecture and systems
- Overview of CPU architectures and instruction sets
- Memory layouts and memory management
- Basic parallelism and synchronization
- Algorithmic foundations
- Basics of runtime analysis and big O notation
- Basic data structures (vectors, linked-lists, hashmaps) and their uses
Why is it important for data science students to learn these concepts?
- It is important to have a strong technical background in effective programming for your future careers. This includes understanding how the computer works, and how that affects the performance and correctness of your programs.
- You need knowledge of data structures and algorithms and to be able to put that knowledge into clean, concise code to succeed at technical interviews.
- Many upper courses in the CDS curriculum require a good background in the topics we will learn in 210.
- This course and the hands-on programming practice are an opportunity for technical and professional growth.
Consult the syllabus for detailed information about the course objectives.
Summer Format
This is a condensed summer offering of DS 210. A few things to keep in mind:
- Pace: the course covers the same material as the semester-long offering in 6 weeks. Lectures are 2.5 hours long (3 per week) and discussions are 1 hour (2 per week). Expect a significantly higher weekly time commitment than a typical course.
- Individual projects: all 5 mini projects are individual work — no groups.
- One midterm: there is one midterm exam (week 4) and a final exam (week 6).
Question: What have you heard about the course? Is it easy? Hard? What are you most looking forward to or most nervous about?
Course Timeline and Milestones
The course is roughly split into these units:
- Part 1: Foundations (command line, git) & Rust Basics (Weeks 1-2)
- Part 2: Core Rust Concepts. Memory management. Data structures and algorithms. (Weeks 3-4)
- Midterm (~Week 4)
- Part 3: Advanced Rust. Parallelism and concurrency. Data science with Rust. (Weeks 5-6)
- Final exam (Week 6)
Mini projects are generally due on Mondays. Check the deadlines page.
Course Format
Lectures with hands-on exercises and active discussion. Attendance is required.
Discussions will review and reinforce lecture material and provide further opportunities for hands-on practice. We will allocate specific discussion sections for code reviews. Attendance is also required.
Pre-work will be assigned before most lectures to prepare you for in-class activities. These are typically short readings followed by a short quiz.
Mini projects are the key to learning the material in this course and to getting a good grade. There are 5 individual mini projects proceeding at a weekly pace.
Exams: 1 midterm and a cumulative final exam covering the concepts we learn in class.
Full details here.
Course Websites
You have been added to Piazza, we will also add you to Gradescope.
-
Piazza:
- Announcements and additional information
- Questions and discussions
-
Gradescope:
- Mini project submissions
- Gradebook
Grading and Policies
Grade distribution:
- 50% mini projects (5 projects)
- 10% midterm
- 20% final exam
- 20% attendance and participation (lectures, discussions, pre-work, in-class activities)
Important course and grading policies:
- code reviews for mini projects
- late submissions
- We encourage you to not use AI during your mini projects work, but if you must, you need to follow our
AI use policy
- You must report your use of AI and online resources along your submission
- If we judge that you over-relied on AI given what you reported (e.g., during code reviews), we will deduct grades appropriately
- If we judge that you did not honestly report AI use, you will receive a 0 for the mini project and your grade will be capped at a B. A repeat violation is an automatic F.
- Other course policies: exams, collaboration, absences, accommodations.
We are not trying to be strict around AI-use for no reason. Instead, we believe this is necessary to ensure you get proper programming practice and truly learn this material. Given our policies and justification, do you feel like this policy is reasonable? Do you agree with it? Do you feel it is too restrictive?