EECS 280: Programming and Intro Data Structures

The University of Michigan
Fall 2022
Looking for Winter 2023? Looking for previous terms?

Computer science fundamentals, with programming in C++. Build an image processing program, a game of Euchre, a web backend, and a machine learning algorithm.   Syllabus

Announcements - Week 13

Throw self-doubt in the latrine, it's week 13!

  • There will be no labs starting Tuesday, November 22. Labs will resume on Monday, November 28, and this will be the last lab.
  • There will be no lecture on Wednesday, November 23, due to Thanksgiving break.
Office Hours
  • Office hours are cancelled starting Tuesday, November 22. You may continue to post on Piazza if you have questions about the project
Have a good Thanksgiving break!


Jon Beaumont head shot
Jon Beaumont (he/him)
3828 Beyster
MW 1:30pm-3pm
Stamps Auditorium
Office Hours
M/W 3-4 pm
In-Person, 3828 BBB
Virtual via Zoom
James Juett head shot
James Juett (he/him)
2641 Beyster
MW 10:30am-12pm
1571 GGBL
MW 12pm-1:30pm
1571 GGBL
Asynchronous Lectures
A self-paced, asynchronous lecture option.
Covers the same material. Details and Links
Office Hours
M/W 2:30-3:30pm
In-Person, 2641 BBB
T/Th 4-5pm
Virtual via Zoom
Ashvin Kumar head shot
Ashvin Kumar (he/him)
2717 Beyster
MW 4pm-5:30pm
1210 CHEM
Office Hours
Th 1pm-2:30pm
In-Person, 2717 BBB
Virtual via Zoom
Sofia Saleem head shot
Sofia Saleem (she/her)
3917 Beyster
MW 4:30pm-6pm
1013 DOW
Asynchronous Lectures
A self-paced, asynchronous lecture option.
Covers the same material. Details and Links
Office Hours
T/Th 9:30-10:30am
Virtual via Zoom

This Week   Times listed in Ann Arbor local time (ET)

Project 5: Machine Learning
Checkpoint: Wed, Nov 30 at 8pm
Full Project: Fri, Dec 9 at 8pm
Chkpt AG Full AG

Find links for old assignments in the schedule below.
Lab 10 Due Tue, Nov 22 at 8pm
Events & Resources

Project 5 Overview

Tips & Tricks for Project 5

November 16, 2022 at 7:30pm
Get Help & Connect
Connect 1-on-1 with an IA or GSI to plan for your 280 experience.
Virtual Office Hours   Sign Up
Mon 2-8pm
Tue 2-6pm
Wed 2-8pm
Thu 2-8pm
Fri 2-5:30pm
In-Person Office Hours
Course Forums
Ask/Answer Questions
Informal Discussion

Administrative Requests

Please use the forms linked below to make administrative requests. For other matters not covered by a form, you can reach us at

Grade Calculator



(Enter your curved exam scores, not the raw ones.)

Overall Percent

Weighted Project Average
below the threshold to earn C or better (details)

Weighted Exam Average
below the threshold to earn C or better (details)

Final Grade


Supports Project 1 and beyond

Get your computer set up for C++ development and EECS 280 projects.

1. Command Line Tools
Windows Setup
Basic setup on Windows
macOS Setup
Basic setup on macOS
2. C++ Dev Environment (Choose one)
VS Code (recommended)
A versatile, cross-platform editor.
Feature-rich IDE (macOS only)
Visual Studio
Feature-rich IDE (Windows only)
3. Auxiliary Tools
Recipes for compiling code
CAEN Linux
Remote connect to a
UM Linux environment
Supports Project 2 and beyond
Phase 2 Tutorials

Best practices and additional tools for coding and debugging. indicates practice in lab.

Write Tests 3
Unit Test Framework
A framework with special
assertions for unit testing
Catch Bugs 3
Detect undefined behavior
Code Style
280 Style Guide
Learn best practices
AG Style Checks
Run the same style checks as the AG
Version Control 2
Git Tutorial
Track changes to your code like a pro
Advanced/Extra Tutorials

Additional editors and tools you might be interested in. Not required.

Text Editors
Highly customizable text editor,
works from the command line
Command-Line Debuggers
Command-line debugger for Linux
Command-line debugger for macOS


Open calendar in new window


Day Lecture Topic Lab Topic Deadline
Week 1Mon Aug 29 Introduction and Machine Model Getting Started, Intro Pragmatics Demo
Tue Aug 30
Wed Aug 31 Procedural Abstraction, Testing and Debugging
Thu Sep 1
Fri Sep 2
Week 2Mon Sep 5 No Class - Labor Day
Tue Sep 6
Wed Sep 7 Pointers Machine Model, Testing, IDE Setup, Version Control
Thu Sep 8
Fri Sep 9
Week 3Mon Sep 12 Pointers and Arrays
Tue Sep 13
Wed Sep 14 Compound Objects Pointers and Arrays Project 1
Due Wed Sep 14 at 8pm
Thu Sep 15
Fri Sep 16
Week 4Mon Sep 19 Strings, Streams, and IO Add/Drop Deadline, Mon Sep 19
Tue Sep 20
Wed Sep 21 Abstract Data Types in C Strings and IO Entry Survey
Due Wed Sep 21 at 8pm
Thu Sep 22
Fri Sep 23
Week 5Mon Sep 26 Abstract Data Types in C++
Tue Sep 27
Wed Sep 28 Derived Classes and Inheritance Abstract Data Types Project 2
Due Wed Sep 28 at 8pm
Thu Sep 29
Fri Sep 30
Week 6Mon Oct 3 Polymorphism
Tue Oct 4
Wed Oct 5 Container ADTs I Polymorphism
Thu Oct 6
Fri Oct 7
Week 7Mon Oct 10 Container ADTs II Project 3 Checkpoint
Due Mon Oct 10 at 8pm
Tue Oct 11
Wed Oct 12 Memory Models and Dynamic Memory No Lab
Thu Oct 13
Fri Oct 14
Week 8Mon Oct 17 No Class - Fall Break Fall break
Tue Oct 18
Wed Oct 19 Managing Dynamic Memory Container ADTs
Thu Oct 20
Fri Oct 21 Project 3
Due Fri Oct 21 at 8pm
Week 9Mon Oct 24 Deep Copies and The Big Three
Tue Oct 25
Wed Oct 26 No Class - Midterm Exam No Lab Midterm Exam
Wed Oct 26 at 7-9pm
Thu Oct 27 Alternate Midterm Exam
Thu Oct 27 at 7-9pm
Fri Oct 28
Week 10Mon Oct 31 Linked Lists
Tue Nov 1 Dynamic Memory and Deep Copies
Wed Nov 2 Iterators
Thu Nov 3
Fri Nov 4
Week 11Mon Nov 7 Function Objects and Impostor Syndrome
Tue Nov 8 Iterators and Functors
Wed Nov 9 Recursion and Tail Recursion
Thu Nov 10
Fri Nov 11
Week 12 Sun Nov 13 Project 4
Due Sun Nov 13 at 8pm
Mon Nov 14 Structural Recursion
Tue Nov 15 Recursion
Wed Nov 16 Auto, Maps, Range-Based For Loops
Thu Nov 17
Fri Nov 18
Week 13Mon Nov 21 Student Panel
Tue Nov 22 No Lab
Wed Nov 23 No Class - Thanksgiving Break Thanksgiving Break
Thu Nov 24
Fri Nov 25
Week 14Mon Nov 28 Exceptions Final Exam Review and Reflection
Tue Nov 29
Wed Nov 30 TBD Project 5 Checkpoint
Due Wed Nov 30 at 8pm
Thu Dec 1
Fri Dec 2
Week 15Mon Dec 5 What's Next? No Lab
Tue Dec 6
Wed Dec 7 TBD
Thu Dec 8
Fri Dec 9 Project 5
Due Fri Dec 9 at 8pm
Week 16Mon Dec 12
Tue Dec 13 Exit Survey
Due Tue Dec 13 at 8pm
Wed Dec 14 Final Exam
Wed Dec 14 at 10:30am-12:30pm
Alternate Final Exam
Wed Dec 14 at 1:30pm-3:30pm
Thu Dec 15
Fri Dec 16


Reach us at

Ibrahim Abouarabi head shot
Ibrahim Abouarabi
Fizza Ahmed head shot
Fizza Ahmed
Raiyan Ahmed head shot
Raiyan Ahmed
Julia Aoun head shot
Julia Aoun
Taylor Chapman head shot
Taylor Chapman
Tyler Ditmars head shot
Tyler Ditmars
Maria Fields head shot
Maria Fields
 Zachary Goldston head shot
Zachary Goldston
Daniel Gorelik head shot
Daniel Gorelik
Chimmuanya Iheanyi-Igwe head shot
Chimmuanya Iheanyi-Igwe
Sam Jaehnig head shot
Sam Jaehnig
Aman Khalid head shot
Aman Khalid
Alec Korotney head shot
Alec Korotney
Neha Kumar head shot
Neha Kumar
Justin Liu head shot
Justin Liu
Michelle Liu head shot
Michelle Liu
Leheng Lu head shot
Leheng Lu
Lizzy Lu head shot
Lizzy Lu
Iman Malik head shot
Iman Malik
Parker Mathena head shot
Parker Mathena
Kaily Metz head shot
Kaily Metz
Adviti Mishra head shot
Adviti Mishra
Viroshan Narayan head shot
Viroshan Narayan
Ashish Patel head shot
Ashish Patel
Shweta Pati head shot
Shweta Pati
Michael Peng head shot
Michael Peng
Wenzhao Qiu head shot
Wenzhao Qiu
Akshaya Ravikumar head shot
Akshaya Ravikumar
Sebastian Schab head shot
Sebastian Schab
Gurish Sharma head shot
Gurish Sharma
Joshua Siegel head shot
Joshua Siegel
Ann Stone head shot
Ann Stone
Claire Sun head shot
Claire Sun
Nishika Uppula head shot
Nishika Uppula
Mia Vuckovic head shot
Mia Vuckovic
Emily Yuan head shot
Kevin Wang
Qinjuan Xie head shot
Qinjuan Xie
Bright Xu head shot
Bright Xu
Emily Yuan head shot
Emily Yuan
Chris Zhang head shot
Chris Zhang
Elaine Zhang head shot
Elaine Zhang
Kami Ziolkowski head shot
Kami Ziolkowski