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

Lecture 1 - Welcome: what this course is, and why Rust

The number 210 drawn as a grid of memory cells, sitting on three stacked layers

What today will look like

  • Screen-free space

Agenda

  • What is this course, and why Rust?
  • Why are you taking it?
  • Who we are, and how the class runs
  • Grading, projects, and exams
  • Syllabus review activity

Everything in 210 is in the service of (at least one of):

  1. Code development skills - tools and best practices
  2. Programming in Rust
  3. Systems concepts (memory, performance, types)
  4. Data structures and algorithms (to be continued in DS 320)

Why coding development skills matter

  • Often never taught explicitly, can be tricky to self-teach
  • Vitally important in "the real world", when you'll need to:
    • Get out of a "detached head" state without losing your head
    • Collaborate with others on code across space and time
    • Work on massive codebases and data warehouses
  • The more AI takes over the coding part, the more the layer around it matters

Why Systems Programming Matters

Knowing enough to answer

  • Why is my code slow?
  • Why is my app crashing?
  • Why did we get hacked?

Or better yet... not having to answer those questions as often!

Why data structures and algorithms?

Knowing enough to answer

  • Why is my model producing weird results?
  • Is there a smarter way to do this than brute-force?
  • How is this ever going to scale?

And inventing whole net new ways of working with data.

Also -

  • Technical interviews
  • Intellectual joy

Why are we doing this in Rust?

  • A second language
  • A compiled language
  • A systems programming language
  • A modern language
  • An increasingly popular language

But why are YOU taking it?

Why students said they are taking DS210. Required for my major is the top primary reason at 63 percent, followed closely by data structures and algorithms at 54 percent and internship preparation at 50 percent.

I just want to say - I hear you. Here's my job...

Logistics

What have you heard about the course?






New(ish) Course Changes

  1. Local dev and focus on development skills
  2. Mastery vs coverage
  3. In-class activities in every lecture
  4. Close alignment between lectures, projects, and exams
  5. Three exams and code reviews to measure learning w/o AI policing
  6. Data structures and algs integrated, not tacked on

Why the shift to "active learning"?

  • A meta-analysis of 225 studies found students in traditional lecture courses are 1.5 times more likely to fail compared to active learning environments.
  • Active learning produces consistent effect sizes of 0.47-0.49 standard deviations, or half a letter grade improvement.
  • Active learning reduces achievement gaps between underrepresented and majority students by 33-45%.

Our Teaching Staff

  • Instructor: Lauren Wheelock
  • Course assistants: Kesar Narayan, Lingjie Su
  • A discussion TAs: Matt Morris (A2), Gabriel Burr (A3, A4)
  • B discussion TAs: Emir Tali (B2), Kristen Bestavros (B3), Nia Naresh Kumar (B4)

Two things to know about me...

  1. I am your advocate.
  • It's us against the material
  • No gotchas
  • Lots of practice and review in class
  • Please share feedback
  • I want to know who you are (coffee chats!)
  • If you are struggling, please reach out early so we can help
  1. I have high expectations for you.
  • Grading on an absolute scale (I try not to curve)
  • Less weight on autograders, more on exams and code review
  • When you're here, you're HERE (no laptops, activities, cold calling, print-outs)
  • We will practice being uncomfortable and not knowing
  • You CAN learn this stuff!

What this means for grading

50% exams: 15% midterm 1, 15% midterm 2, 20% final

20% active engagement: 15% in-class activities, 5% pre-work and surveys

15% code reviews: 5% each, three projects

15% autograded work: 5% each, three projects

Another way to look at it

35% is about EFFORT: participation, pre-work, coding to pass tests

65% is about MASTERY: exams and code reviews

Half of every project is a conversation

The code review is worth as much as every automated test combined.

Working code you can't explain, in this era, isn't worth much.

We'll share more and help you prepare as we go.

Attendance runs in three periods

  • Period 1: Lectures 1-12, Discussions 1-3
  • Period 2: Lectures 13-27, Discussions 4 and 7
  • Period 3: Lectures 29-40, Discussions 9 and 11 and the skew-week

You can miss up to two lectures or one discussion per period for "free" - no need to explain or email me.

We use a bunch of tools for this: activity sheets, Gradescope tasks, cold-calling, headcounts

Exam dates, so you can check for conflicts

Midterm 1Friday, October 9in class, your own section
Midterm 2Friday, November 6in class, your own section
FinalMonday, December 14, 12:00-2:00pmCGS 505, both sections together

Please check your finals schedule this week

The full finals schedule for all courses is published.

Look for two things:

  1. A direct conflict, two exams at the same time
  2. Three exams in a 24-hour window

If you find #1 or if 210 is the middle exam for #2 tell me (or your other instructors) ASAP.

Lectures

Mondays, Wednesdays, Fridays here in 871 Commonwealth Ave, CGS 505

  • A1: 11:15am - 12:05pm
  • B1: 12:20pm - 1:10pm

Lecture content will be the same, but you must attend the lecture you're registered for.

Discussion Sections

Section A - Wednesdays, 871 Commonwealth Ave CGS 525

  • A2: 1:25 - 2:15pm, Matt
  • A3: 2:30 - 3:20pm, Gabriel
  • A4: 3:35 - 4:25pm, Gabriel

Section B - Tuesdays

  • B2: 11:00 - 11:50am, MCS B31, Emir
  • B3: 12:30 - 1:20pm, MCS B31, Kristen
  • B4: 2:00 - 2:50pm, CDS 164, Nia

Section B discussions only run 50 min, underfilling the official slot, EXCEPT on code review days

You will:

  • Get technical support and project help
  • Attend code reviews and exam corrections
  • Review material and get extra practice for exams

Discussions count towards attendance/participation and you must attend your assigned one.

Syllabus Review Activity

Instructions

In groups of 2-3, spend time answering the worksheet questions on paper.

Please turn in one sheet per group that includes all your names

Wrap up

Any questions from the activity you want to ask before Friday?

By Friday

Please fill out the intro survey linked in the email if you haven't so I can get to know you.

Your first pre-lecture task is due at 11am Friday.

Bring your laptop and come prepared to work with the shell next class!