EECS 280: Programming and Intro Data Structures

The University of Michigan
Fall 2022
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 4

Time to soar in week 4!

Projects
  • Project 2 has been released! It is due Wed, Sep 28th at 8pm.
  • We're hold a virtual project overview session Mon, Sep 19 at 7-8pm. Details below.
  • Check out our phase 2 tutorials below (labeled "P2"). These are helpful for projects 2 and beyond! We're also covering some of these topics in labs 2 and 3.
Office Hours
  • We now offer both virtual and in-person office hours regularly. Check the schedules below.
Reminders
  • Please submit any exam alternate or accommodation forms if you haven't already.
  • Reminder: Entry Survey due Wednesday, September 21 at 8pm for credit.

Lectures

Jon Beaumont head shot
Jon Beaumont (he/him)
jbbeau@umich.edu
3828 Beyster
MW 1:30pm-3pm
Stamps Auditorium
Office Hours
M/W 3-4 pm
In-Person, 3828 BBB
TBD
Virtual via Zoom
James Juett head shot
James Juett (he/him)
jjuett@umich.edu
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)
ashvink@umich.edu
2717 Beyster
MW 4pm-5:30pm
1210 CHEM
Office Hours
Th 1pm-2:30pm
In-Person, 2717 BBB
TBD
Virtual via Zoom
Sofia Saleem head shot
Sofia Saleem (she/her)
sofias@umich.edu
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)

Assignments
P2 Due Wed, Sep 28 at 8pm
Project 2: Computer Vision
Due Wed, Sep 28 at 8pm
Find links for old assignments in the schedule below.
Labs
Due Wednesdays at 8pm
Lab 04 Due Wed, Sep 28 at 8pm
Strings, I/O, and Structs
Events & Resources
Project 2 Overview

Tips & Tricks for Project 2

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
Piazza
Ask/Answer Questions
Discord
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 eecs280staff@umich.edu.

Grade Calculator Warning! Not yet updated for F22.

%
%
%
%
%
%
%
%

%
%

(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
A

Tutorials

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.
XCode
Feature-rich IDE (macOS only)
Visual Studio
Feature-rich IDE (Windows only)
3. Auxiliary Tools
Makefiles
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
Sanitizers
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
Optional
Advanced/Extra Tutorials

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

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

Calendar

Open calendar in new window

Schedule

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
Wed Nov 2 Iterators Dynamic Memory and Deep Copies
Thu Nov 3
Fri Nov 4
Week 11Mon Nov 7 Function Objects and Impostor Syndrome
Tue Nov 8
Wed Nov 9 Recursion and Tail Recursion Iterators and Functors
Thu Nov 10 Project 4
Due Thu Nov 10 at 8pm
Fri Nov 11
Week 12Mon Nov 14 Structural Recursion
Tue Nov 15
Wed Nov 16 Auto, Maps, Range-Based For Loops Recursion
Thu Nov 17
Fri Nov 18
Week 13Mon Nov 21 TBD
Tue Nov 22
Wed Nov 23 No Class - Thanksgiving Break No Lab Thanksgiving Break
Thu Nov 24
Fri Nov 25
Week 14Mon Nov 28 Exceptions
Tue Nov 29
Wed Nov 30 TBD Final Exam Review and Reflection Project 5 Checkpoint
Due Wed Nov 30 at 8pm
Thu Dec 1
Fri Dec 2
Week 15Mon Dec 5 What's Next?
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

People

Reach us at eecs280staff@umich.edu

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