Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

DS210 Course Overview

Lecture 1: Wednesday, January 21, 2026

This lecture introduces DS 210 A1: 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, linkedlists, 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 curiculumn require a good background in the topics we will learn in 210.
  • This course and the handson programming practice are an opportunity for technical and professional growth.

Consult the syllabus for detailed information about the course objectives.

New This Semester

We've made some significant changes to the course based on observations and course evaluations.

  1. Homework/mini projects: more and larger mini projects that focus on re-enforcing the systems and algorithmic concepts from class and give you more experience with interemediately complex programs.
  2. Code review sessions: to provide you with feedback about your code, mimic industry code review processes, and ensure you carry out the work yourself rather than outsource your work and thinking to AI.
  3. Less emphasis on exams: the exams will focus on the concepts we learn in the course and less on pen-and-paper coding, as well as a smaller portion of your overall grade.

Question: What have you heard about the course? Is it easy? Hard? Do these changes above align with your impressions?

Course Timeline and Milestones

The course is roughly split into these units:

  • Part 1: Foundations (command line, git) & Rust Basics (Weeks 1-3)
  • Part 2: Core Rust Concepts (Weeks 4-5)
  • Midterm 1 (~Week 5)
  • Part 3: Memory management and data structures. (Weeks 6-10)
  • Midterm 2 (~Week 10)
  • Part 4: Advanced Rust. Parallelism and Concurrency. (~Weeks 11-13)
  • Part 5: Data Science & Rust in Practice (~Weeks 14-15)
  • Final exam during exam week

Additionally, the course will have weekly homework and miniprojects, usually 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.

Homeworks and Mini projects are the key to learning the material in this course and to getting a good grade. They will proceed at a weekly pace. The first 3 homeworks are smaller, individual assignments to help you get familiar with the basics. The 4 mini projects are longer, group assignments to help you practice writing more complex code.

Exams 2 midterms 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:

    • Homework
    • Gradebook

Grading and Policies

Grade distribution:

  • 40% homework and mini projects
  • 15% attendance (lectures and disucssion sections)
  • 15% final exam
  • 10% mid term 1
  • 10% mid term 2
  • 10% participation, pre-work, and in class activities

Important course and grading policies:

  • code reviews for mini projects
  • corrections and resubmissions 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-relayed on AI given what you reported (e.g., during code reviews), we will deduct grades appropriately
    • If we judge that you did not honeslty report AI use, you will receive a 0 for the mini project. A repeat violation is an automatic F.
  • Other course policies: exams, collaboration, abscenses, 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?