EECS 280: Programming and Intro Data Structures

The University of Michigan
Winter 2027
Looking for Fall 2026?

Computer science fundamentals, with programming in C++. Build a statistical analysis tool, an image processing program, a Euchre card game, a machine learning algorithm, and a text editor. Analyze and implement foundational data structures. Syllabus

Welcome to EECS 280 Winter 2027!

We're glad you're here.

  • Attend any lecture section or watch the recordings, regardless of your registered section (flex policy).
    • Exception: Section 002, designed for transfer students, requires attendance at the MW 1:30pm lecture (details).
  • Attendance is required at your registered lab section.
    • No lab first week of class.
  • If you're on the waitlist, don't worry. We'll add additional seats as needed.
  • Please direct questions on prerequisites or overrides to CSE UG Advising (ugadmin@eecs.umich.edu).

Schedule

Day Lecture Lab Deadline
Week 1
Jan 13 - 15

01 Course Introduction, Intro to C++

No lab
Week 2
Jan 18 - 22

No lecture - MLK Day

02 Types and Control Structures

00 Computer Setup
Week 3
Jan 25 - 29

03 Procedural Abstraction

04 Machine Model, Part 1

01 Intro to Lab, C++ Fundamentals, Pragmatics
Week 4
Feb 1 - 5

05 Machine Model, Part 2

06 const, Structs, and C-Style ADTs

02 Machine Model, Pointers/References, Call Stack, UTF Tutorial

Project 1 Mon 8pm P1 spec

Entry Survey Wed 8pm

Add/Drop deadline Tue Feb 2

Week 5
Feb 8 - 12

07 Streams and I/O

08 Abstract Data Types in C++

03 C-style ADTs, Streams and I/O, Assertions+UB Tutorial
Week 6
Feb 15 - 19

09 Derived Classes and Inheritance

10 Polymorphism

04 Classes, C++ ADTs, Mini-Project Project 2 Mon 8pm
Week 7
Feb 22 - 26

11 Arrays, Pointer Arithmetic, C-Style Strings

12 Array-Based Data Structures, Time Complexity

05 Inheritance, Polymorphism, Debugging Tutorial Project 3 Checkpoint Mon 8pm
Week 8
Mar 1 - 5

13 Sorted Data Structures, Templates

14 Containers and Iterators

06 Array-Based Data Structures Project 3 Fri 8pm
Mar 8 - 12

Spring Break

Week 9
Mar 15 - 19

No lecture

15 Memory Models and Dynamic Memory

No lab

Midterm Tue Mar 16 7pm

Alternate Wed Mar 17 7pm

Week 10
Mar 22 - 26

16 RAII and Growable Containers

17 Deep Copies and The Big Three

07 Containers, Iterators Withdraw and Pass/Fail deadline Fri Mar 26
Week 11
Mar 29 - Apr 2

18 Linked Lists

19 Iterators

08 Dynamic Memory, Deep Copies Project 4 Fri 8pm
Week 12
Apr 5 - 9

20 Functors and Impostor Syndrome

21 Recursion and Tail Recursion

09 Linked Lists, Functors
Week 13
Apr 12 - 16

22 Structural Recursion

23 Binary Search Trees, Sets, and Maps

10 Recursion, Trees Project 5 Fri 8pm
Week 14
Apr 19 - 23

24 Error Handling and Exceptions

No lecture

11 Exceptions and Review Project 6 Fri 8pm
Week 15
Apr 26 - 27

No lecture

No lab Exit Survey Tue 8pm
Exam Week

Final Exam Fri Apr 30 10:30am

Alternate Fri Apr 30 1:30pm

People

Instructors

Andrew DeOrio head shot
Andrew DeOrio

awdeorio@umich.edu | he/him

John Kloosterman head shot
John Kloosterman

jklooste@umich.edu | he/him

Wayne Wang head shot
Wayne Wang

wswang@umich.edu | he/him