EECS 280: Programming and Intro Data Structures

The University of Michigan EECS 280 Spring 2025 Looking for next Fall 2025? Or Winter 2025?

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

Week 2 Announcements
  • Project 2 is released. It's due Wednesday, May 21st at 11:59pm.
  • In addition to the project specification, check out our P2 Overview video.

Lectures
Live, In-Person  
James Juett
MTWTh 12-1:30pm
1010 DOW (North)
Asynchronous Lectures
James Juett
Self-paced, interactive
 Available Online
Lecture Notes
Textbook-style coverage.
Assignments
Project 2: Image Processing
Due Wed, May 21 at 11:59pm
Labs
Due 11:59pm the day after lab
Get Help & Connect
Staff Office Hours   Join
See calendar below for schedule.
Professor Office Hours
See calendar below for schedule.
Looking for old links? Check the Schedule below.

Calendar   Open in Google Calendar Add to My Calendar

Schedule   Printable Version

Day Lecture Topic Lab Topic Deadline
Week 1Mon May 5
Tue May 6 1. Course Introduction, Intro to C++ (Optional) Computer Setup Sessions Setup Walkthrough Sessions
Wed May 7 2. Types, Control Structures, and Procedural Abstraction
Thu May 8 3. Machine Model, Part 1 1. Intro to Lab, C++ Fundamentals, Pragmatics
Fri May 9
Week 2Mon May 12 4. Machine Model, Part 2
Tue May 13 5. const, Structs, and C-Style ADTs 2. Machine Model, Pointers/References, Call Stack, UTF Tutorial Project 1
Due Tue May 13 at 11:59pm
Wed May 14 6. Streams and I/O
Thu May 15 7. Abstract Data Types in C++ 3. C-style ADTs, Streams and I/O, Assertions+UB Tutorial
Fri May 16
Week 3Mon May 19 8. Derived Classes and Inheritance Add/Drop Deadline
Mon May 19
Tue May 20 9. Polymorphism 4. Classes, C++ ADTs, Mini-Project
Wed May 21 10. Arrays, Pointer Arithmetic, C-Style Strings Project 2
Due Wed, May 21 at 11:59pm
Thu May 22 11. Array-Based Data Structures, Time Complexity 5. Inheritance, Polymorphism, Debugging Tutorial
Fri May 23
Week 4Mon May 26 No Class - Memorial Day
Tue May 27 12. Sorted Data Structures, Templates 6. Array-Based Data Structures Project 3 Checkpoint
Due Tue, May 27 at 11:59pm
Wed May 28 13. Program Design and Debugging
Thu May 29 Midterm Exam In Class No Lab Midterm Exam
Thu May 29, 12-2pm
Fri May 30
Week 5Mon Jun 2 14. Containers and Iterators
Tue Jun 3 15. Memory Models and Dynamic Memory No Lab Project 3
Due Tue, Jun 3 at 11:59pm
Wed Jun 4 16. Managing Dynamic Memory
Thu Jun 5 17. Deep Copies and The Big Three 7. Containers, Iterators
Fri Jun 6
Week 6Mon Jun 9 18. Linked Lists Project 4
Due Mon Jun 9 at 11:59pm
Tue Jun 10 19. Iterators 8. Dynamic Memory, Deep Copies
Wed Jun 11 20. Functors and Impostor Syndrome
Thu Jun 12 21. Recursion and Tail Recursion 9. Linked Lists, Functors
Fri Jun 13 Late Add/Drop and Late Pass/Fail Deadline
Fri Jun 13
Week 7Mon Jun 16 22. Structural Recursion Project 5
Due Mon, Jun 16 at 11:59pm
Tue Jun 17 23. Binary Search trees, Sets, and Maps 10. Recursion, Trees
Wed Jun 18 24. Error Handling and Exceptions
Thu Jun 19 No Class - Junteenth No Lab
Fri Jun 20 Project 6
Due Fri, Jun 20 at 11:59pm
Week 8Mon Jun 23 Final Exam
Mon Jun 23, 8am-10am
Tue Jun 24
Wed Jun 25
Thu Jun 26
Fri Jun 27

People

Faculty

James Juett head shot
James Juett
he/him

jjuett@umich.edu

IAs and GSIs

Kyle Fick head shot
Kyle Fick
he/him
Katelyn Ha head shot
Katelyn Ha
she/her
Ishan Kumar head shot
Ishan Kumar