EECS 280: Programming and Intro Data Structures

The University of Michigan
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 Fall 2026!

We're glad you're here. Here's what you need to know for the start of the term:

  • Lecture begins Mon, Aug 31.
    Sections 001 - 004 Flexible Lecture Policy
    Engage with any regular live or asynchronous lectures. Participation is optionally graded.
    Section 005 Registration + Attendance Required
    Designed for Transfer Students. Attending MW 12-1:30pm lecture is required for credit.
  • Labs begin on Tue, Sep 8. Attendance at your registered lab section is required.
  • We'll host a C++ setup walkthrough via Zoom during our 1st week. Details and Links
  • Complete the Setup Tutorial on your own computer to get ready for EECS 280 projects. You can do this now or after attending a setup walkthrough session.
  • Feel free to ask questions on or say hi on our Discord server!

  • If you're on the waitlist for your lab, please switch to an open section.
  • Please direct questions on registration, prerequisites, or the diagnostic project to CSE UG Advising (ugadmin@eecs.umich.edu). Course faculty are not involved in these processes.
Lectures
Sections 001-004  
James Juett
MW 10:30am-12pm
1571 GGBL (North)
Amir Kamil
MW 12pm-1:30pm
220 CHRYS (North)
James Juett Amir Kamil
MW 2:30pm-4pm
UMMA AUD
Section 005  
John Kloosterman
MW 12pm-1:30pm
1680 IOE
Asynchronous Lectures
James Juett
Before 11:59pm
 Available Online
Lecture Notes
Textbook-style coverage.
Assignments
Project 1: Statistics
Due Fri, Sep 18 at 8pm
Entry Survey
Due Wed, Sep 23 at 8pm
Take the Survey
Labs
Labs start on Tue Sep 8

Get Help & Connect
Staff Office Hours   Join
Office hours start Wed, Sep 2. Schedule coming soon!
In-person and virtual office hours are listed in the calendar below.
Professor Office Hours
See calendar below for details.

Calendar   Open in Google Calendar Add to My Calendar

Schedule   Printable Version

Day Lecture Topic Lab Topic Deadline
Week 1Mon Aug 31 1. Course Introduction, Intro to C++ No Lab
Tue Sep 1
Wed Sep 2 2. Types and Control Structures
Thu Sep 3
Fri Sep 4
Week 2Mon Sep 7 No Class - Labor Day 1. Intro to Lab, C++ Fundamentals, Pragmatics
Tue Sep 8
Wed Sep 9 3. Procedural Abstraction
Thu Sep 10
Fri Sep 11
Week 3Mon Sep 14 4. Machine Model, Part 1 2. Machine Model, Pointers/References, Call Stack, UTF Tutorial
Tue Sep 15
Wed Sep 16 5. Machine Model, Part 2
Thu Sep 17
Fri Sep 18 Project 1
Due Fri Sep 18 at 8pm
Week 4Mon Sep 21 6. const, Structs, and C-Style ADTs 3. C-style ADTs, Streams and I/O, Assertions+UB Tutorial Add/Drop Deadline
Mon Sep 21
Tue Sep 22
Wed Sep 23 7. Streams and I/O Entry Survey
Due Wed Sep 23 at 8pm
Take the Survey
Thu Sep 24
Fri Sep 25
Week 5Mon Sep 28 8. Abstract Data Types in C++ 4. Classes, C++ ADTs, Mini-Project
Tue Sep 29
Wed Sep 30 9. Derived Classes and Inheritance
Thu Oct 1
Fri Oct 2 Project 2
Due Fri Oct 2 at 8pm
Week 6Mon Oct 5 10. Polymorphism 5. Inheritance, Polymorphism, Debugging Tutorial
Tue Oct 6
Wed Oct 7 11. Arrays, Pointer Arithmetic, C-Style Strings
Thu Oct 8
Fri Oct 9
Week 7Mon Oct 12 12. Array-Based Data Structures, Time Complexity 6. Array-Based Data Structures
Tue Oct 13
Wed Oct 14 13. Sorted Data Structures, Templates Project 3 Checkpoint
Due Wed Oct 14 at 8pm
Thu Oct 15
Fri Oct 16
Week 8Mon Oct 19 No Class - Fall Break No Lab
Tue Oct 20
Wed Oct 21 14. Containers and Iterators
Thu Oct 22
Fri Oct 23
Week 9Mon Oct 26 15. Memory Models and Dynamic Memory 7. Containers, Iterators
Tue Oct 27
Wed Oct 28 16. RAII and Growable Containers Project 3
Due Wed Oct 28 at 8pm
Thu Oct 29
Fri Oct 30
Week 10Mon Nov 2 No Class - Midterm Exam No Lab Midterm Exam
Mon Nov 2, 7-9pm
Tue Nov 3 Alternate Midterm Exam
Tue Nov 3, 7-9pm
Wed Nov 4 17. Deep Copies and The Big Three
Thu Nov 5
Fri Nov 6 Withdraw Deadline, Pass/Fail Deadline
Fri Nov 6
Week 11Mon Nov 9 18. Linked Lists 8. Dynamic Memory, Deep Copies
Tue Nov 10
Wed Nov 11 19. Iterators
Thu Nov 12
Fri Nov 13
Week 12Mon Nov 16 20. Functors and Impostor Syndrome 9. Linked Lists, Functors
Tue Nov 17 Project 4
Due Tue Nov 17 at 8pm
Wed Nov 18 21. Recursion and Tail Recursion
Thu Nov 19
Fri Nov 20
Week 13Mon Nov 23 22. Structural Recursion No Lab
Tue Nov 24
Wed Nov 25 No Class - Thanksgiving Break
Thu Nov 26
Fri Nov 27
Week 14Mon Nov 30 23. Binary Search trees, Sets, and Maps 10. Recursion, Trees
Tue Dec 1
Wed Dec 2 24. Error Handling and Exceptions
Thu Dec 3 Project 5
Due Thu Dec 3 at 8pm
Fri Dec 4
Week 15Mon Dec 7 No Class 11. Exceptions and Review
Tue Dec 8
Wed Dec 9 No Class
Thu Dec 10
Fri Dec 11 Project 6
Due Fri Dec 11 at 8pm

Exit Survey
Due Fri Dec 11 at 8pm
Take the Survey
Week 16Mon Dec 14 No Class No Lab Final Exam
Mon Dec 14, 10:30am-12:30pm
Alternate Final Exam
Mon Dec 14, 1:30pm-3:30pm
Tue Dec 15
Wed Dec 16
Thu Dec 17
Fri Dec 18

People

Faculty

James Juett head shot
James Juett
he/him

jjuett@umich.edu

Amir Kamil head shot
Amir Kamil
he/him

akamil@umich.edu

John Kloosterman head shot
John Kloosterman

jklooste@umich.edu | he/him

IAs and GSIs

Coming soon!