CIS 1905: Rust Programming (Fall 2025)

Course Details

Welcome to cis1905: Rust! This course is an introduction to the ideas underlying Rust, a new(ish) systems programming language that is gaining ever-increasing adoption in fields ranging from embedded hardware and server applications to data science and computer graphics. Beyond just the syntax and tooling, we'll dive deep into the ideas that make Rust unique, such as ownership, memory-safety, and data-race-free parallel programming. Students will come away not just being able to write Rust code, but with an understanding of the ideas underlying Rust that can be applied when programming in other languages. Additionally, we'll leave some free time at the end of the semester to cover extra topics depending on class interest.

🚨Waitlist Info🚨

Registration is by admission from the waitlist only. We anticipate (nearly) everyone who wants to take the course getting off the waitlist. If you're serious about taking the course, or are at least interested, make sure to come to the first lecture on Tuesday the 26th.

Resources

Syllabus

Course Tools

Rust Quick Links:

Lectures

Lecture is held on Tuesdays from 3:30-5:00 PM in AGH 200.

Post-lecture quizzes (PLQs) are due by 11:59 PM on the Wednesday following the corresponding lecture. 3/5 credit is given for completion, and 2/5 credit for correctness.

DateSectionTopicBook Ch.PLQ
8/26Basics"Why Rust?" and Rust Basics3None
9/2BasicsOwnership4PLQ 2
9/9BasicsStructs, Enums, Errors5,6PLQ 3
9/16BasicsGenerics and Traits10.1, 10.2PLQ 4
9/23BasicsModules Collections, Iterators8PLQ 5
9/30AdvancedLifetimes, Closures10.3, 13PLQ 6
10/7AdvancedSmart Pointers, Trait Objects15PLQ 7
10/14ParallelShared Memory16PLQ 8
10/21ParallelMessage Passing16PLQ 9
10/28UnsafeUnsafe19.1PLQ 10
11/4ParallelAsync RustNoneNone
11/11Flex
11/18AdvancedGuest LectureNone
11/25No Class (Thursday Schedule)
12/2Final Project Presentations
12/9Reading Period
12/16Final Exams

Assignments

Assignments are due 10pm Eastern Time on Fridays. See the syllabus for information about late submissions.

TitleDue Date
Project 0: Warmup9/5
Project 1: Theseus9/19
Project 2: Links10/6
Project 3: Ngram11/3
Final Project Proposal11/10
Final Project12/2

Final Project

The final project is a chance for you to explore a topic of your choosing over a longer time period. Working in groups is encouraged, and every project will be presented to the class during the last lecture. Look out for more information as the semester progresses.

Office Hours

Make sure to check EdStem for office hours announcements (including reschedules and cancellations).

Course Staff

Including Penn emails and ask me anything about...

Paul Biberstein

Paul Biberstein

Instructor

paulbib
Distance running and baking
Alexander Robertson

Alexander Robertson

Instructor

xanrob
Bitcoin and guitar