EECS 280: Programming and Intro Data Structures

The University of Michigan
Course Archive
Looking for the current term?

Fall 2023

1227
 Syllabus
James Juett head shot
James Juett
Amir Kamil head shot
Amir Kamil
Saquib Razak head shot
Saquib Razak
Sofia Saleem head shot
Sofia Saleem

Course Staff

Ibrahim Abouarabi head shot Raiyan Ahmed head shot Faizan Bhagat head shot Jared Diaz head shot Maria Fields head shot Daniel Gorelik head shot Kartikeya Gupta head shot Tea Hajratwala head shot Faranak Hematti head shot Jenna Jaehnig head shot Sam Jaehnig head shot Kedi Jiang head shot Vishnu Kannan head shot Jaewoo Kim head shot Oh Jun Kweon head shot Nicole Lam head shot Parker Mathena head shot Adviti Mishra head shot Viroshan Narayan head shot Allison Okimoto head shot Shweta Pati head shot Michael Peng head shot Wenzhao Qiu head shot Armaan Randhawa head shot Julie Shah head shot Zalan Shah head shot Gurish Sharma head shot Joshua Siegel head shot Ravi Somvanshi head shot Vanessa Su head shot Claire Sun head shot Zhixiang Teoh head shot Ankith Udupa head shot HQ Wang head shot Andy Wang head shot Yu Wang head shot Vincent Wei head shot Norman Wen head shot Emily Yuan head shot Chris Zhang head shot Elaine Zhang head shot Moneeb Zuberi head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: Piazza Classifier
Day Lecture Topic Lab Topic Deadline/Event
Week 1Mon Aug 28 Introduction and Machine Model No Lab
Tue Aug 29
Wed Aug 30 Procedural Abstraction, Testing and Debugging
Thu Aug 31
Fri Sep 1
Week 2Mon Sep 4 No Class - Labor Day 1. Getting Started, IDE Setup
Tue Sep 5 C++ Setup Demo Session
Wed Sep 6 Pointers
Thu Sep 7
Fri Sep 8 Lab Due each Sunday 8pm
Week 3Mon Sep 11 Pointers and Arrays 2. Machine Model, Testing, Unit Testing Framework
Tue Sep 12
Wed Sep 13 Compound Objects Project 1
Due Wed Sep 13 at 8pm
Thu Sep 14
Fri Sep 15
Week 4Mon Sep 18 Strings, Streams, and IO 3. Pointers and Arrays, Detecting Undefined Behavior Add/Drop Deadline Mon Sep 18
Tue Sep 19
Wed Sep 20 Abstract Data Types in C Entry Survey
Due Wed Sep 20 at 8pm
Thu Sep 21
Fri Sep 22
Week 5Mon Sep 25 Abstract Data Types in C++ 4. Strings and IO, Version Control with git
Tue Sep 26
Wed Sep 27 Derived Classes and Inheritance Project 2
Due Wed Sep 27 at 8pm
Thu Sep 28
Fri Sep 29
Week 6Mon Oct 2 Polymorphism 5. Abstract Data Types, Mini-Project
Tue Oct 3
Wed Oct 4 Container ADTs I
Thu Oct 5
Fri Oct 6
Week 7Mon Oct 9 Container ADTs II 6. Inheritance, Polymorphism, Debuggers
Tue Oct 10
Wed Oct 11 Memory Models and Dynamic Memory Project 3 Checkpoint
Due Wed Oct 11 at 8pm
Thu Oct 12
Fri Oct 13
Week 8Mon Oct 16 No Class - Fall Break No Lab Fall Break
Tue Oct 17
Wed Oct 18 Managing Dynamic Memory
Thu Oct 19
Fri Oct 20
Week 9Mon Oct 23 Deep Copies and The Big Three 7. Array-Based Data Structures, Dynamic Memory, Deep Copies
Tue Oct 24 Project 3
Due Tue Oct 24 at 8pm
Wed Oct 25 Linked Lists
Thu Oct 26
Fri Oct 27
Week 10Mon Oct 30 No Class - Midterm Exam No Lab Midterm Exam
Mon Oct 30 at 7-9pm
Tue Oct 31 Alternate Midterm Exam
Tue Oct 31 at 7-9pm
Wed Nov 1 Iterators
Thu Nov 2
Fri Nov 3
Week 11Mon Nov 6 Function Objects and Impostor Syndrome 8. Iterators and Functors
Tue Nov 7
Wed Nov 8 Recursion and Tail Recursion
Thu Nov 9
Fri Nov 10
Week 12Mon Nov 13 Structural Recursion 9. Recursion
Tue Nov 14 Project 4
Due Tue Nov 14 at 8pm
Wed Nov 15 Binary Search Trees and Maps
Thu Nov 16
Fri Nov 17
Week 13Mon Nov 20 No Class No Lab
Tue Nov 21
Wed Nov 22 No Class -Thanksgiving Break Thanksgiving Break
Thu Nov 23
Fri Nov 24
Week 14Mon Nov 27 Exceptions 10. Maps, Exceptions, and Final Exam Review
Tue Nov 28 Project 5 Checkpoint
Due Tue Nov 28 at 8pm
Wed Nov 29 Pathways in Computing Panel Discussion
Thu Nov 30
Fri Dec 1
Week 15Mon Dec 4 No Class No Lab Project 5
Due Mon Dec 4 at 8pm
Tue Dec 5
Wed Dec 6 No Class Exit Survey
Due Wed Dec 6 at 8pm
Thu Dec 7
Fri Dec 8 Final Exam
Fri Dec 8 10:30am-12:30pm
Alternate Final Exam
Fri Dec 8 1:30pm-3:30pm




Spring 2023

104
 Syllabus
Saquib Razak head shot
Saquib Razak

Course Staff

Ibrahim Abouarabi head shot Maria Fields head shot Téa Hajratwala head shot Viroshan Narayan head shot Anish Nyayachavadi head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: Piazza Classifier
Week 1
May 2 - 5

01 Introduction and Machine Model

02 Procedural Abstraction, Testing and Debugging

03 Pointers

No Lab

01 Getting Started

Week 2
May 8 - 12

04 Pointers and Arrays

05 Compound Objects

06 Strings, Streams, and IO

07 Abstract Data Types in C

02 Machine Model, Testing, Unit Testing Framework

03 Pointers and Arrays, Detecting undefined behavior

Project 1
Tue May 9
Week 3
May 15 - 19

08 Abstract Data Types in C++

09 Derived Classes and Inheritance

10 Polymorphism

11 Container ADTs I

04 Strings and IO

05 Project 3 Intro

Project 2
Wed May 17
Week 4
May 22 - 26

12 Container ADTs II

13 Memory Models and Dynamic Memory

Exam Review

Exam

06 Polymorphism

No Lab

Exam
Thu May 25
Week 5
May 29 - June 2

No Class - Memorial Day

14 Managing Dynamic Memory

15 Deep Copies and The Big Three

16 LinkedLists

07 Container ADTs

08 Dynamic Memory & Deep Copies

Project 3
Thur June 1
Week 6
June 5 - 9

17 Iterators

18 Recursion and Tail Recursion

19 Structural Recursion

20 Binary Search Trees and Maps

09 Iterators

10 Recursion

Project 4
Fri June 9
Week 7
June 12 - 16

21 Function Pointers

22 Function Objects and Imposter Syndrome

23 Exceptions

No Class

11 Functors and Maps

12 Final Exam Review (optional)

Week 8
Jun 19

13 No Class (Last day of classes)

Project 5
Mon June 19

Final Exam
Fri June 23, 4pm

Alternate
TBD





Winter 2023

1374
 Syllabus
Andrew DeOrio head shot
Andrew DeOrio
James Juett head shot
James Juett
Saquib Razak head shot
Saquib Razak
Sofia Saleem head shot
Sofia Saleem

Course Staff

Fizza Ahmed head shot Raiyan Ahmed head shot Alex Bismuth head shot Taylor Chapman head shot Maria Fields head shot Kartikeya Gupta head shot Daniel Gorelik head shot Téa Hajratwala head shot Faranak Hematti head shot Chimmuanya Iheanyi-Igwe head shot Jenna Jaehnig head shot Kedi Jiang head shot Aman Khalid head shot Alec Korotney head shot Ashvin Kumar head shot Oh Jun Kweon head shot Richa Laddha head shot Justin Liu head shot Leheng Lu head shot Iman Malik head shot Evan Marcus head shot Parker Mathena head shot Adviti Mishra head shot Mustafa Miyaziwala head shot Viroshan Narayan head shot Anish Nyayachavadi head shot Ashish Patel head shot Shweta Pati head shot Michael Peng head shot Wenzhao Qiu head shot Parth Raut head shot Akshaya Ravikumar head shot Yusuf Sbeih head shot Sebastian Schab head shot Omid Shahidi head shot Joshua Siegel head shot Ann Stone head shot Claire Sun head shot Nishika Uppula head shot Rithi Vaithyanathan head shot Mia Vuckovic head shot Yu Wang head shot Vincent Wei head shot Kevin Wang head shot Qinjuan Xie head shot Bright Xu head shot Emily Yuan head shot Chris Zhang head shot Elaine Zhang head shot Joyce Zhou head shot Kami Ziolkowski head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: Piazza Classifier
Week 1
Jan 2 - Jan 5

01 Introduction and Machine Model

No Lab
Week 2
Jan 9 - 12

02 Procedural Abstraction, Testing, and Debugging

03 Pointers

01 IDE Setup
Week 3
Jan 16 - 20

No lecture - MLK Day

04 Arrays

02 Machine Model, Testing, Unit Testing Framework Project 1
Wed Jan 18
Week 4
Jan 23 - 27

05 Compound Objects

06 Strings, Streams, and IO

03 Pointers and Arrays, Detecting Undefined Behavior Entry survey
Wed Jan 25
Week 5
Jan 30 - Feb 3

07 Abstract Data Types in C

08 Abstract Data Types in C++

04 Strings and IO Project 2
Fri Feb 3
Week 6
Feb 6 - 10

09 Derived Classes and Inheritance

10 Polymorphism

05 Project 3 Intro
Week 7
Feb 13 - 17

11 Container ADTs and Generic Programming

12 Container ADT Interfaces and Invariants

06 Polymorphism Project 3 Checkpoint CANCELLED
Fri Feb 17
Week 8
Feb 20 - 24

13 Memory Models and Dynamic Memory

14 Managing Dynamic Memory

07 Container ADTs Project 3
Fri Feb 24

Spring Break

Week 9
Mar 6 - 10

No lecture

No lecture

No Lab

Midterm Exam
Wed Mar 8, 7:00pm

Alternate
Thu Mar 9, 7:00pm

Week 10
Mar 13 - 17

15 Deep Copies and The Big Three

16 Linked Lists

08 Dynamic Memory and Deep Copies
Week 11
Mar 20 - 24

17 Iterators

18 Recursion

09 Iterators
Week 12
Mar 27 - 31

19 Structural Recursion

20 Binary Search trees and Maps

10 Recursion Project 4
Wed Mar 29
Week 13
Apr 3 - 7

21 Function Objects and Imposter Syndrome

22 Exceptions

11 Final Exam Review and Reflection
Week 14
Apr 10 - 14

Panel Sessions

No lecture

No Lab
Week 15
Apr 17 - 21

No lecture

No Lab

Project 5
Tue Apr 18

Exit Survey
Thu Apr 20

Final Exam
Mon Apr 24, 10:30am

Alternate
Mon Apr 24, 1:30pm





Fall 2022

1126
 Syllabus
Jon Beaumont head shot
Jon Beaumont
James Juett head shot
James Juett
Ashvin Kumar head shot
Ashvin Kumar
Sofia Saleem head shot
Sofia Saleem

Course Staff

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

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: Piazza Classifier
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 No Lecture 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 No Lecture
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




Spring 2022

139
 Syllabus
James Juett head shot
James Juett
Jule Schatz head shot
Jule Schatz

Course Staff

Julia Aoun head shot Q Cong head shot Maria Fields head shot  Zachary Goldston head shot Gurish Sharma head shot Kami Ziolkowski head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: Piazza Classifier
Day Lecture Topic Lab Topic Deadline
Week 1Mon May 2
Tue May 3 1. Introduction and Machine Model Getting Started
Wed May 4 2. Procedural Abstraction, Testing and Debugging
Thu May 5 3. Pointers Machine Model, Testing, IDE Setup
Fri May 6
Week 2Mon May 9 4. Pointers and Arrays
Tue May 10 5. Strings, Streams, and IO Pointers and Arrays Project 1
Due Tue May 10 at 8pm
Wed May 11 6. Compound Objects
Thu May 12 7. Abstract Data Types in C Strings and IO
Fri May 13
Week 3Mon May 16 8. Abstract Data Types in C++ Add/Drop Deadline, Mon May 16
Tue May 17 9. Derived Classes and Inheritance Abstract Data Types Project 2
Due Tue May 17 at 8pm
Wed May 18 Euchre Social (optional) Entry Survey
Due Wed May 18 at 8pm
Thu May 19 10. Polymorphism Polymorphism
Fri May 20
Week 4Mon May 23 11. Container ADTs I
Tue May 24 12. Container ADTs II Extra OH
Wed May 25 13. Memory Models and Dynamic Memory
Thu May 26 14. Managing Dynamic Memory Container ADTs
Fri May 27 Project 3
Due Fri May 27 at 8pm
Week 5Mon May 30 No Class - Memorial Day
Tue May 31 15. Deep Copies and The Big Three No Lab
Wed Jun 1 No Class - Midterm Exam Midterm Exam
Wed Jun 1 at 7-9pm
Thu Jun 2 16. Linked Lists Dynamic Memory & Deep Copies
Fri Jun 3
Week 6Mon Jun 6 17. Iterators
Tue Jun 7 18. Recursion and Tail Recursion Extra OH
Wed Jun 8 19. Structural Recursion
Thu Jun 9 20. Function Objects and Impostor Syndrome Recursion Project 4
Due Thur Jun 9 at 8pm
Fri Jun 10
Week 7Mon Jun 13 21. Auto, Maps, Range-Based For Loops
Tue Jun 14 22. Exceptions Iterators and Functors
Wed Jun 15 23. Containers of Pointers and What's Next
Thu Jun 16 No Lecture Final Exam Review
Fri Jun 17
Week 8Mon Jun 20 Special Topics (Optional!) Project 5
Due Mon Jun 20 at 8pm
Tue Jun 21
Wed Jun 22
Thu Jun 23 Final Exam
Thu Jun 23 at 4-6pm
Fri Jun 24 Alternate Final Exam
Fri Jun 24 at 8-10am




Winter 2022

1345
 Syllabus
Jon Beaumont head shot
Jon Beaumont
Ashley Carroll head shot
Ashley Carroll
James Juett head shot
James Juett
Sofia Saleem head shot
Sofia Saleem

Course Staff

Ibrahim Abouarabi head shot Fizza Ahmed head shot Zaynab Alsaedy head shot Julia Aoun head shot Clarissa May Babila head shot Zach Carey head shot Q Cong head shot Alex Daines head shot Alex ElHamahmy head shot Maria Fields head shot Abigail Fox head shot  Zachary Goldston head shot Unser Hashsham head shot Jessica Houghton head shot Chimmuanya Iheanyi-Igwe head shot Sam Jaehnig head shot Arif Jamaluddin head shot Rushil Kasetty head shot Brandon Kayes head shot Nishu Kothari head shot Ashvin Kumar head shot Neha Kumar head shot Daniel Liu head shot Justin Liu head shot Michelle Liu head shot Leheng Lu head shot Lizzy Lu head shot Joe Macek head shot Mariam Mahmoud head shot Iman Malik head shot Kaily Metzhead shot Rajeev Nag head shot Vishal Nayak head shot Hannah Niswander head shot Ashish Patel head shot Shweta Pati head shot Michael Peng head shot Wenzhao Qiu head shot Divya Ramamoorthy head shot Akshaya Ravikumar head shot Anwesha Sarangi head shot Natasha Saputra head shot Sebastian Schab head shot Gabriel Severance head shot Omid Shahidi head shot Gurish Sharma head shot Stella Shi head shot Joshua Siegel head shot Will Soltas head shot Ann Stone head shot Claire Sun head shot Pulak Taneja head shot James Weng head shot Qinjuan Xie head shot Bright Xu head shot Chris Zhang head shot Kami Ziolkowski head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: Piazza Classifier
Day Lecture Topic Lab Topic Deadline
Week 1Mon Jan 3 No Lab
Tue Jan 4
Wed Jan 5 1. Introduction and Machine Model
Thu Jan 6
Fri Jan 7
Week 2Mon Jan 10 2. Procedural Abstraction, Testing and Debugging
Lab due Sun 8pm
1. Getting Started
Solution
Tue Jan 11
Wed Jan 12 3. Pointers
Thu Jan 13
Fri Jan 14
Week 3Mon Jan 17 No Lecture - MLK Day No Lab
Tue Jan 18
Wed Jan 19 4. Pointers and Arrays Project 1
Due Wed Jan 19 at 8pm
Computing CARES: Resume & Interview Workshop
Wed, Jan 19 6-7:30pm REMOTE
Thu Jan 20
Fri Jan 21
Week 4Mon Jan 24 5. Const, Compound Objects
Lab due Sun 8pm
2. Pointers and Arrays
Solution
P2 Overview Session
Mon, Jan 24 7pm REMOTE Slides Recording
Tue Jan 25 Add/Drop Deadline, Tue Jan 25
Wed Jan 26 6. Strings, Streams, and IO Entry Survey
Due Wed Jan 26 at 8pm
Thu Jan 27
Fri Jan 28
Week 5Mon Jan 31 7. Abstract Data Types in C
Lab due Sun 8pm
3. Strings and IO
Structs and C-Style ADTs
Solution
Tue Feb 1
Wed Feb 2 8. Abstract Data Types in C++
Thu Feb 3
Fri Feb 4 Project 2
Due Fri Feb 4 at 8pm
Week 6Mon Feb 7 9. Derived Classes and Inheritance
Lab due Sun 8pm
4. Classes
C++ Style ADTs
Solution
Tue Feb 8 P3 Overview Session
Tue, Feb 8th 7-8pm REMOTE Slides Recording
Wed Feb 9 10. Polymorphism
Thu Feb 10
Fri Feb 11
Sat Feb 12 Euchre Social
Sat, Feb 12 from 12-1:30pm
Mason Hall 1427-1469 Slides
Week 7Mon Feb 14 11. Container ADTs I
Lab due Sun 8pm
5. Polymorphism
Solution
Tue Feb 15
Wed Feb 16 12. Container ADTs II Computing CARES: Study Tips and Social with GEECS
Wed, Feb 16 6-8pm in BBB 1690
Thu Feb 17 Midterm Review Session
Thu, Feb 17 8-10pm
Recording WKST
Fri Feb 18 Project 3 Checkpoint
Due Fri Feb 18 at 8pm
Week 8Mon Feb 21 13. Memory Models and Dynamic Memory No Lab
Tue Feb 22
Wed Feb 23 No Lecture - Midterm Exam Midterm Exam
Wed Feb 23rd at 7-9pm
Thu Feb 24 Alternate Midterm Exam
Thu Feb 24 at 7-9pm
Fri Feb 25
Week 9Mon Feb 28 Spring Break
Tue Mar 1
Wed Mar 2
Thu Mar 3
Fri Mar 4
Week 10Mon Mar 7 14. Managing Dynamic Memory
Lab due Sun 8pm
6. Container ADTs
Solution
Tue Mar 8
Wed Mar 9 15. Deep Copies and The Big Three Computing CARES: How To Be An EECS IA
Wed, Mar 9 6-8pm in BBB 1670
Thu Mar 10
Fri Mar 11
Week 11Mon Mar 14 16. Linked Lists
Lab due Sun 8pm
7. Dynamic Memory and Deep Copies
Solution
Project 3
Due Mon Mar 14 at 8pm
Tue Mar 15 CSE Undergraduate Town Hall
Tue, Mar 15 6:30-8pm Remote
Wed Mar 16 17. Iterators P4 Overview Session
Wed, Mar 16 7pm REMOTE Recording Slides
Thu Mar 17
Fri Mar 18
Week 12Mon Mar 21 18. Recursion and Tail Recursion No Lab
Tue Mar 22
Wed Mar 23 19. Structural Recursion
Thu Mar 24
Fri Mar 25 Project 4
Due Fri Mar 25 at 8pm
Week 13Mon Mar 28 20. Function Objects and Impostor Syndrome
Lab due Sun 8pm
8. Recursion
Solution
Tue Mar 29
Wed Mar 30 21. Auto, Maps, Range-Based For Loops Computing CARES: Different Avenues in Tech
Wed, Mar 30 6-8pm
REMOTE
Thu Mar 31
Fri Apr 1
Week 14Mon Apr 4 22. Exceptions
Lab due Sun 8pm
9. Iterators and Functors
Solution
Tue Apr 5
Wed Apr 6 Catch-up Lecture - as needed
Thu Apr 7
Fri Apr 8 Project 5 Checkpoint
Due Fri Apr 8 at 8pm
Week 15Mon Apr 11 23. Containers of Pointers and What's Next
Lab due Sun 8pm
10. Final Exam Review and Reflection
Solution
Tue Apr 12
Wed Apr 13 Office Hours in Lecture Halls
Thu Apr 14
Fri Apr 15
Week 16Mon Apr 18 No Lecture No Lab
Tue Apr 19 Project 5
Due Tue Apr 19 at 8pm
Final Exam Review Session
Tue, Apr 19 8-10pm REMOTE
WKST Slides
Recording
Wed Apr 20
Thu Apr 21 Exit Survey Part 1 Part 2
Due Thu Apr 21 at 8pm
Fri Apr 22 Final Exam
Fri Apr 22 at 10:30am-12:30pm
Alternate Final Exam
Fri Apr 22 at 1:30pm-3:30pm




Fall 2021

1074
 Syllabus
Jon Beaumont head shot
Jon Beaumont
James Juett head shot
James Juett
Somayeh Molaei head shot
Somayeh Molaei
Sofia Saleem head shot
Sofia Saleem

Course Staff

Ibrahim Abouarabi head shot Fizza Ahmed head shot Zaynab Alsaedy head shot Julia Aoun head shot Natalie Brotherton head shot Zach Carey head shot Alex ElHamahmy head shot Abigail Fox head shot Unser Hashsham head shot Ella Hathaway head shot Jessica Houghton head shot Chimmuanya Iheanyi-Igwe head shot George Jacob head shot Sam Jaehnig head shot Arif Jamaluddin head shot Rushil Kasetty head shot Michael Kaufmann head shot Nishu Kothari head shot Ashvin Kumar head shot Lizzy Lu head shot Joe Macek head shot Mariam Mahmoud head shot Kaily Metzhead shot Alec Minchington head shot Rajeev Nag head shot Jonah Nan head shot Vishal Nayak head shot Hannah Niswander head shot Ashish Patel head shot Wenzhao Qiu head shot Akshaya Ravikumar head shot Natasha Saputra head shot Sebastian Schab head shot Jasper Scheiber head shot Gabriel Severance head shot Gurish Sharma head shot Tejas Shete head shot Stella Shi head shot Joshua Siegel head shot Will Soltas head shot Ann Stone head shot Pulak Taneja head shot Jennifer Tran head shot Connor Turco head shot Bridget Wang head shot Bright Xu head shot Emily Zamora head shot Kami Ziolkowski head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: Piazza Classifier
Day Day Lecture Topic Lab Topic Deadline
Week 1Mon Aug 30 Tue Aug 31 Introduction and Machine Model No Lab
Wed Sep 1 Thu Sep 2 Procedural Abstraction, Testing and Debugging
Fri Sep 3
Week 2Mon Sep 6 Tue Sep 7 No Lecture Labor Day
Wed Sep 8 Thu Sep 9 Pointers Intro to Lab, Memory Model
Fri Sep 10
Week 3Mon Sep 13 Tue Sep 14 Pointers and Arrays Debugging Session
Wed Sep 15 Thu Sep 16 Strings, Streams, and IO Pointers and Arrays
Fri Sep 17 Proj 1 Due Fri Sep 17 at 8pm
Week 4Mon Sep 20 Tue Sep 21 Compound Objects Mon Sep 20 Add/Drop Deadline
Wed Sep 22 Thu Sep 23 Abstract Data Types in C Strings and IO Entry Survey Due Wed Sep 22 at 8pm
Fri Sep 24
Week 5Mon Sep 27 Tue Sep 28 Abstract Data Types in C++
Wed Sep 29 Thu Sep 30 Derived Classes and Inheritance Abstract Data Types
Fri Oct 1 Proj 2 Due Fri Oct 1 at 8pm
Walkthrough
Week 6Mon Oct 4 Tue Oct 5 Polymorphism Computing CARES:
How to become an EECS IA Panel
Recording
Wed Oct 6 Thu Oct 7 Container ADTs I Polymorphism "Git Smart" with Profs. Juett and Beaumont
Recording
Fri Oct 8 Project 3 Euchre Social
Week 7Mon Oct 11 Tue Oct 12 Container ADTs II P3 Walkthrough
Wed Oct 13 Thu Oct 14 Memory Models and Dynamic Memory No Lab
Fri Oct 15
Week 8Mon Oct 18 Tue Oct 19 No Lecture Fall Break
Wed Oct 20 Thu Oct 21 Managing Dynamic Memory Container ADTs
Fri Oct 22 Proj 3 Due Fri Oct 22 at 8pm
Week 9Mon Oct 25 Tue Oct 26 Linked Lists Midterm Review Session
Wed Oct 27 Thu Oct 28 No Lecture No Lab Midterm Exam Wed Oct 27 at 7pm-9pm
Alternate Exam Thu Oct 28 at 7pm-9pm
Fri Oct 29
Week 10Mon Nov 1 Tue Nov 2 Deep Copies and The Big Three
Wed Nov 3 Thu Nov 4 Iterators Dynamic Memory and Deep Copies Computing CARES "Undergraduate Research" Panel
Piazza @ 2785
Fri Nov 5
Week 11Mon Nov 8 Tue Nov 9 Function Objects and Impostor Syndrome
Wed Nov 10 Thu Nov 11 Recursion and Tail Recursion Iterators and Functors
Fri Nov 12 Proj 4 Due Fri Nov 12 at 8pm
Week 12Mon Nov 15 Tue Nov 16 Structural Recursion Computing CARES "Internship" Panel
Piazza @3208 RSVP
Wed Nov 17 Thu Nov 18 Problem Solving with Recursion Recursion Project 5 Overview Session
Fri Nov 19
Week 13Mon Nov 22 Tue Nov 23 No Lecture
Wed Nov 24 Thu Nov 25 No Lecture No Lab Thanksgiving Break
Fri Nov 26
Week 14Mon Nov 29 Tue Nov 30 Exceptions
Wed Dec 1 Thu Dec 2 Juett, Beaumont, Saleem: No Lecture
Molaei: TBD
Final Exam Review and Reflection
Fri Dec 3
Week 15Mon Dec 6 Tue Dec 7 Containers of Pointers and What's Next
Wed Dec 8 Thu Dec 9 No Lecture Final Exam Review Session
Fri Dec 10 Proj 5 Due Fri Dec 10 at 8pm
Mon Dec 13 Exit Survey Due Mon Dec 13 at 8pm Computing CARES Exit Survery
Tue Dec 14 Final Exam Tues Dec 14 at 10:30am-12:30pm
Alternate Exam Tues Dec 14 at 1:30pm-3:30pm




Spring 2021

146
 Syllabus
James Juett head shot
James Juett
Note: Lectures from this term are no longer available via Runestone.

Course Staff

Claire Burton head shot Ashley Carroll head shot Alex ElHamahmy head shot Sam Jaehnig head shot Lizzy Lu head shot Natasha Saputra head shot Jennifer Tran head shot Kami Ziolkowski head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: Piazza Classifier
Day # Lecture Lab Events/Deadlines
Tue May 4 1 Introduction and Machine Model No lab
Wed May 5 2 Procedural Abstraction, Testing, and Debugging
Thu May 6 3 Pointers Getting Started
Fri May 7
Mon May 10 4 Arrays and Pointers
Tue May 11 5 Strings, Streams, and IO Pointers and Arrays P1 due Tue May 11
Wed May 12 6 Compound Objects IDE Tips/Tricks Project 2 Overview
Thu May 13 7 Abstract Data Types in C Strings and IO
Fri May 14
Mon May 17 8 Abstract Data Types in C++ Add/drop deadline
Tue May 18 9 Derived Classes and Inheritance Abstract Data Types Project 2 due Tue May 18
Wed May 19 10 Polymorphism Euchre Social Project 3 Overview
Thu May 20 11 Container ADTs I Polymorphism
Fri May 21
Mon May 24 Program Design Demo Recording Part 2 Code Files
Tue May 25 12 Container ADTs II euchre.cpp and Midterm Review
Wed May 26 13 Memory Models and Dynamic Memory
Thu May 27 14 Managing Dynamic Memory Container ADTs
Fri May 28 Project 3 due Fri May 28
Mon May 31 No Class - Memorial Day
Tue Jun 1 15 Linked Lists No Lab
Wed Jun 2 No Class - Midterm Exam Midterm 7pm
Wed Jun 2
Review Session
Thu Jun 3 16 Deep Copies Linked Structures
Fri Jun 4
Mon Jun 7 17 Iterators Project 4 Overview Review Session
Tue Jun 8 18 Recursion and Tail Recursion Dynamic Memory & Deep Copies
Wed Jun 9 19 Structural Recursion Project 4 due Wed Jun 9
Thu Jun 10 20 Functors and Impostor Syndrome Recursion
Fri Jun 11
Mon Jun 14 No Lecture
Tue Jun 15 21 Maps, auto, and Range-Based Loops Iterators and Functors Project 5 Overview Videos
Wed Jun 16 22 Error Handling and Exceptions
Thu Jun 17 23 Containers of Pointers and What's Next? Final Exam Review and Reflection
Fri Jun 18
Mon Jun 21 No Lecture Project 5 due Mon Jun 21
Tue Jun 22
Wed Jun 23
Thu Jun 24 Final 8am
Thu Jun 24 Review Session




Winter 2021

1204
 Syllabus
Jon Beaumont head shot
Jon Beaumont
Andrew DeOrio head shot
Andrew DeOrio
James Juett head shot
James Juett

Course Staff

Rithik Aggarwal head shot Zaynab Alsaedy head shot Sameer Barretto head shot Cavun Beck head shot Isha Bhatt head shot Natalie Brotherton head shot Simrun Buttar head shot Zach Carey head shot Ashley Carroll head shot Rachel Connolly head shot Abigail Fox head shot Hafiz Hasan head shot Ella Hathaway head shot Alexis Honzik head shot Ryien Hosseini head shot Jessica Houghton head shot George Jacob head shot Sam Jaehnig head shot Arif Jamaluddin head shot Neil Johari head shot Jon Juett head shot Alec Korotney head shot Nishu Kothari head shot Ashvin Kumar head shot Katie Lee head shot Michelle Liu head shot Joe Macek head shot Mariam Mahmoud head shot Jared Miller head shot Ram Natla head shot Vishal Nayak head shot Zach Papanastasopoulous head shot Makarand Parigi head shot Noah Pinter head shot Nathan Podolsky head shot Andrew Pospeshil head shot Raeed Rasul head shot Anish Ravipati head shot Natasha Saputra head shot Kaylina Savela head shot Jasper Scheiber head shot Spencer Semple head shot Vanita Sharma head shot Tejas Shete head shot Will Soltas head shot Pulak Taneja head shot Jennifer Tran head shot Connor Turco head shot Bridget Wang head shot Alice Ying head shot Kami Ziolkowski head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: Piazza Classifier
Day # Lecture Lab Deadline
Wed 20 Jan 1 Introduction and Machine Model No lab
Mon 25 Jan 2 Procedural Abstraction, Testing, and Debugging
Introduction to Lab Pods, Memory Model
Wed 27 Jan 3 Pointers
Mon 1 Feb 4 Arrays
Arrays and Pointers
Project 1: 8pm
Thu 4 Feb
Spec
Wed 3 Feb 5 Strings, Streams, and IO
Mon 8 Feb 6 Compound Objects
Strings and I/O
Wed 10 Feb 7 Abstract Data Types in C
Mon 15 Feb 8 Abstract Data Types in C++
ADTs
Project 2: 8pm
Wed 17 Feb
Spec
Wed 17 Feb 9 Derived Classes and Inheritance
Mon 22 Feb 10 Polymorphism No lab (well-being day)
Wed 24 Feb No class (well-being day)
Mon 1 Mar 11 Container ADTs and Generic Programming
Polymorphism
Wed 3 Mar 12 Container ADT Interfaces and Invariants
Mon 8 Mar 13 Memory Models and Dynamic Memory
Container ADTs
Project 3: 8pm
Tue 9 Mar
Spec
Wed 10 Mar 14 Managing Dynamic Memory
Mon 15 Mar No class No lab
Midterm: 7pm
Tue 16 Mar

Alternate: 8am
Wed 17 Mar
Wed 17 Mar No class
Mon 22 Mar 15 Deep Copies and The Big Three Dynamic memory Canceled
Wed 24 Mar No class (well-being day)
Mon 29 Mar 16 Linked Lists
Dynamic Memory & The Big Three
Wed 31 Mar 17 Iterators
Mon 5 Apr 18 Recursion
Recursion
Project 4: 8pm
Tue 6 Apr
Spec
Wed 7 Apr 19 Structural Recursion
Mon 12 Apr 20 Binary Search Trees and Maps (P5 Examples)
P5, Maps, and Reflection
Wed 14 Apr 21 Function Objects and Imposter Syndrome
Mon 19 Apr 22 Exceptions (optional) No lab
Project 5: 8pm
Tue 20 Apr
Spec
Wed 21 Apr No class (study day)
Mon 26 Apr Final Exam
Final: 7pm
Mon 26 Apr
Tue 27 Apr Alternate Final Exam (details)
Alternate: 8am
Tue 27 Apr