EECS 280: Programming and Intro Data Structures

The University of Michigan
Spring 2024
Looking for Winter 2024 or Fall 2024?

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

Week 2 Announcements
  • Project 2 is out! It's due Wed May 22 at 8pm. If you're retaking the course, please note the project has changed slightly from previous terms, and you'll need new starter files.
  • Join our P2 overivew on Wed May 15 at 8pm via Zoom . We'll post a recording after.
  • We suggest checking out the Assertions Guide and Sanitizers Tutorial for project 2.

  • If you're on the waitlist, don't worry. We'll add additional seats as needed.
  • Please direct questions on prerequisites, overrides, or the diagnostic project to CSE UG Advising (ugadmin@eecs.umich.edu). Course faculty are not involved in these processes.
Lectures
Live, In-Person  
Saquib Razak
MT 12pm-1:30pm
1670 BBB (North)
James Juett
WTh 12pm-1:30pm
1670 BBB (North)
Lecs 100 and 200 meet together.
Supplemental Materials
Assignments
Project 2: Seam Carving
Due Wed, May 22 at 8pm
Labs
Lab 3: Pointers and Arrays, Detecting Undefined Behavior

Due Fri, May 17 at 8pm
Entry Survey
Due Tue, May 21 at 8pm
Get Help & Connect
Office Hours

See schedule in calendar below.

Virtual OH queue:  Join

In-Person OH held in BBB Atrium.

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/Event
Week 1Mon May 6
Tue May 7 Introduction and Machine Model No Lab
Wed May 8 Procedural Abstraction, Testing and Debugging Setup Walkthrough Sessions
Windows Mac
Thu May 9 Pointers 1. Getting Started, IDE Setup
Fri May 10
Week 2Mon May 13 Arrays
Tue May 14 const, Structs, and C-Style ADTs 2. Machine Model, Testing, Unit Testing Framework Project 1
Due Tue May 14 at 8pm
Wed May 15 Streams and I/O
Thu May 16 C-Style Strings 3. Pointers and Arrays, Detecting Undefined Behavior
Fri May 17
Week 3Mon May 20 Abstract Data Types in C++ Add/Drop Deadline
Mon May 20
Tue May 21 Derived Classes and Inheritance 4. Strings and IO, Version Control with git Entry Survey
Due Tue May 21 at 8pm
Wed May 22 Polymorphism Project 2
Due Wed May 22 at 8pm
Thu May 23 Container ADTs I 5. Abstract Data Types, Mini-Project
Fri May 24
Week 4Mon May 27 No Class - Memorial Day
Tue May 28 Container ADTs II 6. Inheritance, Polymorphism, Debuggers
Wed May 29 Memory Models and Dynamic Memory
Thu May 30 Managing Dynamic Memory 7. Containers, Array-Based Data Structures
Fri May 31
Week 5Mon Jun 3 Deep Copies and The Big Three Project 3
Due Mon Jun 3 at 8pm
Tue Jun 4 Midterm Exam Review No Lab
Wed Jun 5 No Lecture - Midterm Exam Midterm Exam
Wed Jun 5 at 12-2pm
Thu Jun 6 Linked Lists 8. Dynamic Memory, Deep Copies
Fri Jun 7
Week 6Mon Jun 10 Iterators
Tue Jun 11 Functors and Impostor Syndrome 9. Iterators and Functors
Wed Jun 12 Recursion and Tail Recursion
Thu Jun 13 Structural Recursion 10. Recursion
Fri Jun 14 Project 4
Due Fri Jun 14 at 8pm
Week 7Mon Jun 17 Binary Search Trees and Maps
Tue Jun 18 Exceptions 11. Maps, Final Exam Review
Wed Jun 19 No Class - Juneteenth
Thu Jun 20 Final Exam Review No Lab
Fri Jun 21
Week 8Mon Jun 24 No Class Project 5
Due Mon Jun 24 at 8pm
Tue Jun 25 Exit Survey
Due Tue Jun 25 at 8pm
Wed Jun 26
Thu Jun 27 Final Exam
Thu Jun 27 8am-10am
Fri Jun 28

People

Faculty

James Juett head shot
James Juett
he/him

jjuett@umich.edu

Saquib Razak head shot
Saquib Razak
 

razak@umich.edu

IAs and GSIs

Raiyan Ahmed head shot
Raiyan Ahmed
she/her
Maria Fields head shot
Maria Fields
she/her
Tea Hajratwala head shot
Téa Hajratwala
she/her
Jenna Jaehnig head shot
Jenna Jaehnig
she/her
Allison Okimoto head shot
Allison Okimoto
she/her
Alan Sun head shot
Alan Sun
he/him