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: BST/Map + 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: BST/Map + 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: BST/Map + 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: BST/Map + 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: BST/Map + 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: BST/Map + 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: BST/Map + 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: BST/Map + 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: BST/Map + 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




Fall 2020

1058
 Syllabus
Jon Beaumont head shot
Jon Beaumont
Nicole Hamilton head shot
Nicole Hamilton
Sofia Saleem head shot
Sofia Saleem
Christina Keefer head shot
Christina Keefer

Course Staff

Ibrahim Abouarabi head shot Ria Bazaz head shot Cavun Beck head shot Isha Bhatt head shot Natalie Brotherton head shot Claire Burton head shot Simrun Buttar head shot Zachary Carey head shot Ashley Carroll head shot Jennifer Chou head shot Rachel Connolly head shot Alex Erf head shot Mohd Hafiz Hasan head shot Ella Hathaway head shot Daniel Hoekwater head shot Carson Hoffman head shot Ryien Hosseini head shot Jessie Houghton head shot George Jacob head shot Sam Jaehing head shot Alex Jalkanen head shot Arif Jamaluddin head shot Harsh Jhaveri head shot Neil Johari head shot Jon Juett head shot Aditya Koneru 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 Ram Natla head shot Vishal Nayak head shot Noah Pinter head shot Nathan Podolsky head shot Andrew Pospeshil head shot Alex Raistrick head shot Raeed Rasul head shot Natasha Saputra head shot Kaylina Savela head shot Jasper Scheiber head shot Will Soltas head shot Pulak Taneja head shot Bridget Wang head shot Alice Ying head shot Greg Young 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: BST/Map + Piazza Classifier
Day # Lecture Topic Lab Topic Deadline
Mon 31 Aug 1 Introduction and Machine Model No lab
Wed 2 Sep 2 Procedural Abstraction, Testing and Debugging
Mon 7 Sep No class - Labor Day Getting Started
Wed 9 Sep 3 Pointers
Mon 14 Sep 4 Arrays Pointers and Arrays Project 1 due Mon 14 Sep 8pm
Wed 16 Sep 5 Strings, Streams, and IO
Mon 21 Sep 6 Compound Objects Strings and I/O
Wed 23 Sep 7 Abstract Data Types in C
Mon 28 Sep 8 Abstract Data Types in C++ Abstract Data Types Project 2 due Tue 29 Sep 8pm
Wen 30 Sep 9 Derived Classes and Inheritance
Mon 5 Oct 10 Polymorphism Polymorphism
Wed 7 Oct 11 Container ADTs I
Mon 12 Oct 12 Container ADTs II Container ADTs
Wed 14 Oct 13 Memory Models and Dynamic Memory
Mon 19 Oct 14 Managing Dynamic Memory Dynamic Memory Project 3 due Mon 19 Oct 8pm
Wed 21 Oct 15 Midterm Review
Mon 26 Oct No class - Midterm Exam No lab Midterm exam Mon 26 Oct 7:00pm
Wed 28 Oct 16 Deep Copies and The Big Three
Mon 2 Nov 17 Linked Lists Deep Copies & The Big Three
Wed 4 Nov 18 Iterators
Mon 9 Nov 19 Function Objects and Impostor Syndrome Recursion
Wed 11 Nov 20 Recursion
Mon 16 Nov 21 Structural Recursion Functors & Function Pointers Project 4 due Mon 16 Nov 8pm
Wed 18 Nov 22 Problem Solving with Recursion
Mon 23 Nov No class - Thanksgiving No lab
Wed 25 Nov
Mon 30 Nov 23 Exceptions Project 5 Help Project 5 due Fri 4 Dec 8pm
Wed 2 Dec 24 Containers of Pointers
Mon 7 Dec 25 Final Review Final Exam Review
Thu 10 Dec Final Exam Final exam Thu 10 Dec 10:30am




Spring 2020

182
 Syllabus
James Juett head shot
James Juett
John Kloosterman head shot
John Kloosterman

Course Staff

Natalie Brotherton Claire Burton Carson Hoffman Alex Kim Nishu Kothari Ashvin Kumar Natasha Saputra Bridget Wang

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: BST/Map + Piazza Classifier
Day # Lectures Sessions Labs Deadline
Tue 5 May 1 Introduction and Machine Model
Worksheet
Reading
No lab
Wed 6 May 2 Procedural Abstraction, Testing and Debugging
Worksheet
Reading
Thu 7 May 3 Pointers
Worksheet
Reading
Introduction, Memory Model
Worksheet
Fri 8 May
Mon 11 May 4 Arrays and Pointers
Worksheet
Reading
Project 1 due Mon 11 May 11:59pm
Tue 12 May 5 Strings, Streams, and IO
Worksheet
Reading
Pointers and Arrays
Worksheet
Wed 13 May 6 Compound Objects
Worksheet
Reading
Review
Thu 14 May No Lecture - Assessment Strings and IO
Worksheet
Assessment 1, Lectures 1-4, Thu 14 May
Information
Practice
Fri 15 May
Mon 18 May 7 Abstract Data Types in C
Worksheet
Reading
Add/Drop Deadline, Mon 18 May
Tue 19 May 8 Abstract Data Types in C++
Worksheet
Reading
Structs
Worksheet
Wed 20 May 9 Derived Classes and Inheritance
Worksheet
Reading
Thu 21 May 10 Polymorphism
Worksheet
Reading
Abstract Data Types
Worksheet
Project 2 due, Thu 21 May 11:59pm
Fri 22 May
Mon 25 May No Class - Memorial Day
Tue 26 May 11 Container ADTs I
Worksheet
Reading
Polymorphism
Worksheet
Wed 27 May 12 Container ADTs II
Worksheet
Reading
Review
Thu 28 May No Lecture - Assessment Container ADTs
Worksheet
Assessment 2, Lectures 5-10, Thu 28 May
Fri 29 May
Mon 1 Jun 13 Memory Models and Dynamic Memory
Worksheet
Reading
Tue 2 Jun 14 Managing Dynamic Memory
Worksheet
Reading
Mid-Term Check-In
Worksheet
Wed 3 Jun 15 Deep Copies and The Big Three
Worksheet
Reading
Project 3 due Wed 3 Jun 11:59pm
Thu 4 Jun 16 Linked Lists
Worksheet
Reading
Review Dynamic Memory and The Big Three
Worksheet
Fri 5 Jun Late Add/Drop Deadline, Friday June 5
Mon 8 Jun No Lecture - Assessment Assessment 3, Lectures 11-15, Mon 8 Jun
Tue 9 Jun 17 Iterators
Worksheet
Reading
Linked Lists
Worksheet
Wed 10 Jun 18 Recursion and Tail Recursion
Worksheet
Reading
Thu 11 Jun 19 Structural Recursion
Worksheet
Reading
Recursion
Worksheet
Fri 12 Jun Project 4 due Fri 12 Jun 11:59pm
Mon 15 Jun 20 Function Objects and Impostor Syndrome
Worksheet
Reading
Tue 16 Jun 21 Problem Solving with Recursion
Worksheet
Reading
Structural Recursion and Functors
Worksheet
Wed 17 Jun 22 Exceptions
Worksheet
Reading
Thu 18 Jun 23 Containers of Pointers and What's Next
Worksheet
Reading
Review P5, Maps, and Reflection
Worksheet
Fri 19 Jun Assessment 4, Lectures 16-22, Fri 19 Jun
Mon 22 Jun Project 5 due, Wed 24 Jun 11:59pm




Winter 2020

1238
 Syllabus
Jon Beaumont head shot
Jon Beaumont
Nicole Hamilton head shot
Nicole Hamilton
James Juett head shot
James Juett

Course Staff

Kristen Basgall head shot Isha Bhatt head shot Natalie Brotherton head shot Claire Burton head shot Simrun Buttar head shot Allison Candell head shot Ashley Carroll head shot Jiang Chang (CJ) head shot Jennifer Chou head shot David Degazio head shot Karthik Desingh head shot Katie Dillon head shot Alex Erf head shot Mohd Hafiz Hasan head shot Daniel Hoekwater head shot Carson Hoffman head shot Jessie Houghton head shot Jon Juett head shot Brandon Kayes head shot Alex Kim head shot Nishu Kothari head shot Ashvin Kumar head shot Audrey Ladd head shot Katie Lee head shot Noa Levi head shot Michelle Liu head shot Eli Masjedi head shot Aashia Mehta head shot Alec Minchington head shot Eashwar Mohan head shot Mitchell Morrell head shot Ram Natla head shot Noah Pinter head shot Nathan Podolsky head shot Andrew Pospeshil head shot Alex Raistrick head shot Finsam Samson head shot Natasha Saputra head shot Kaylina Savela head shot Celine Schlueter head shot Riley Schnee head shot Ryan Slade head shot Will Soltas head shot Zhiqiang Sui head shot Vaughn Taylor head shot Noah Tutt head shot Aishwarya Unnikrishnan head shot Bridget Wang head shot Alice Wu head shot Greg Young head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: BST/Map + Piazza Classifier
Day # Lecture Topic Lab Topic Deadline
Wed 8 Jan 1 Introduction and Machine Model No lab
Mon 13 Jan 2
Procedural Abstraction, Testing and Debugging
Getting Started
Wed 15 Jan 3 Pointers
Mon 20 Jan No class - MLK Day No lab Project 1 due Tue 21 Jan 8pm
Wed 22 Jan 4 Pointers and Arrays
Mon 27 Jan 5 Strings, Streams, and IO Pointers and Arrays
Wed 29 Jan 6 Compound Objects
Mon 3 Feb 7 Abstract Data Types in C Strings and I/O Project 2 due Fri 7 Feb 8pm
Wed 5 Feb 8 Abstract Data Types in C++
Mon 10 Feb 9 Derived Classes and Inheritance Abstract Data Types
Wed 12 Feb 10 Polymorphism
Mon 17 Feb 11 Container ADTs I Polymorphism
Wed 19 Feb 12 Container ADTs II
Mon 24 Feb 13 Memory Models and Dynamic Memory Container ADTs Project 3 due Fri 28 Feb 8pm
Wed 26 Feb 14 Managing Dynamic Memory
Mon 2 Mar No class - Spring Break No lab
Wed 4 Mar No class - Spring Break
Mon 9 Mar 15 Midterm Review No lab Midterm exam Wed 11 Mar 7:00pm
Wed 11 Mar No class - Midterm Exam
Mon 16 Mar 16 Deep Copies and The Big Three Dynamic Memory
Wed 18 Mar 17 Linked Lists
Mon 23 Mar 18 Iterators Deep Copies & The Big Three
Wed 25 Mar 19 Function Objects and Impostor Syndrome
Mon 30 Mar 20 Recursion Recursion Project 4 due Wed 1 Apr 8pm
Wed 1 Apr 21 Structural Recursion
Mon 6 Apr 22 Problem Solving with Recursion Functors
Wed 8 Apr 23 Exceptions
Mon 13 Apr 24 Containers of Pointers Final Exam Review
Wed 15 Apr 25 Final Review
Mon 20 Apr TBA No lab Project 5 due Tue 21 Apr 8pm
Mon 27 Apr Final Exam Final exam Mon 27 Apr 10:30am




Fall 2019

1038
 Syllabus
Jon Beaumont head shot
Jon Beaumont
Kevin Fu head shot
Kevin Fu
Nicole Hamilton head shot
Nicole Hamilton
Sofia Saleem head shot
Sofia Saleem

Course Staff

Natalie Brotherton head shot Claire Burton head shot Simrun Buttar head shot Ashley Carroll head shot Jiang Chang (CJ) head shot Jennifer Chou head shot Rachel Connolly head shot David Degazio head shot Karthik Desingh head shot Katie Dillon head shot Mohd Hafiz Hasan head shot Jessie Houghton head shot Brandon Kayes head shot Nishu Kothari head shot Sarah Kwon head shot Audrey Ladd head shot Jaya Lekshmi head shot Anthony Liang head shot Nicholas Mariam head shot Alec Minchington head shot Ram Natla head shot Nathan Podolsky head shot Andrew Pospeshil head shot Natasha Saputra head shot Kaylina Savela head shot Celine Schlueter head shot Riley Schnee head shot Ryan Slade head shot Zhiqiang Sui head shot Vaughn Taylor head shot Alice Wu head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: BST/Map + Piazza Classifier
Day # Lecture Topic Lab Topic Deadline
Wed Sep 4 1 Introduction and Machine Model No lab
Mon Sep 9 2
Procedural Abstraction, Testing and Debugging
Getting Started
Wed Sep 11 3 Pointers
Mon Sep 16 4 Pointers and Arrays Pointers and Arrays Project 1 due
Tue Sep 17 8 pm
Wed Sep 18 5 Strings, Streams, and IO
Mon Sep 23 6 Compound Objects Strings and IO
Wed Sep 25 7 Abstract Data Types in C
Mon Sep 30 8 Abstract Data Types in C++ Abstract Data Types Project 2 due
Fri Oct 4 8 pm
Wed Oct 2 9 Derived Classes and Inheritance
Mon Oct 7 10 Polymorphism Polymorphism
Wed Oct 9 11 Container ADTs I
Mon Oct 14 No class - Fall Break No lab
Wed Oct 16 12 Container ADTs II
Mon Oct 21 13 Memory Models and Dynamic Memory Container ADTs Project 3 due
Fri Oct 25 8 pm
Wed Oct 23 14 Managing Dynamic Memory
Mon Oct 28 15 Midterm Review No lab Midterm exam
Wed Oct 30 7:00 pm
Wed Oct 30 No Class - Midterm Exam
Mon Nov 4 16 Deep Copies and The Big Three Dynamic Memory
Wed Nov 6 17 Linked Lists
Mon Nov 11 18 Iterators Deep Copies
Wed Nov 13 19 Function Objects and Impostor Syndrome
Mon Nov 18 20 Recursion and Tail Recursion Recursion Project 4 due
Wed Nov 20 8 pm
Wed Nov 20 21 Structural Recursion
Mon Nov 25 22 Problem Solving with Recursion Functors & Function Pointers
Wed Nov 27 No Class - Thanksgiving
Mon Dec 2 23 Exceptions Final Exam Review Project 5 due
Tue Dec 10 8 pm
Wed Dec 4 24 Containers of Pointers
Mon Dec 9 Final Review No lab
Wed Dec 11 TBA
Tue Dec 17 Final Exam No lab Final exam
Tue Dec 17 10:30 am




Spring 2019

130
 Syllabus
James Juett head shot
James Juett
John Kloosterman head shot
John Kloosterman

Course Staff

Claire Burton head shot Carolyn Busch head shot Rahul Gangwani head shot Alec Minchington head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: Web Backend P5: BST/Map + Piazza Classifier
Day # Lecture Topic Lab Topic Deadline
Tue 7 May 1 Introduction and Machine Model No lab
Wed 8 May 2
Procedural Abstraction, Testing and Debugging
Getting Started
Thu 10 May 3 Pointers
Mon 13 May 4 Pointers and Arrays Pointers and Arrays Project 1 due
Mon 13 May 8pm
Tue 14 May 5 Strings, Streams, and IO
Wed 15 May 6 Compound Objects Strings and IO
Thu 16 May 7 Abstract Data Types in C
Mon 20 May 8 Abstract Data Types in C++ Abstract Data Types Project 2 due
Tue 21 May 8pm
Tue 21 May 9 Derived Classes and Inheritance
Wed 22 May 10 Polymorphism Polymorphism
Thu 23 May 11 Container ADTs I
Mon 27 May No class - Memorial Day No lab
Tue 28 May 12 Container ADTs II Container ADTs
Wed 29 May 13 Midterm Review Project 3 due
Fri 31 May 8pm
Thu 30 May 14 Memory Models and Dynamic Memory Midterm Exam Review
Mon 3 June 15 Managing Dynamic Memory Midterm exam
Tue 4 June 6pm
Tue 4 June No Class - Midterm Exam No lab
Wed 5 June 16 Deep Copies and The Big Three Dynamic Memory
Thu 6 June 17 Linked Lists
Mon 10 Jun 18 Iterators Deep Copies
Tue 11 Jun 19 Function Objects and Impostor Syndrome
Wed 12 Jun 20 Recursion and Tail Recursion Functors & Function Pointers Project 4 due
Thu 13 Jun 8pm
Thu 13 Jun 21 Structural Recursion
Mon 17 Jun 22 Problem Solving with Recursion Recursion
Tue 18 Jun 23 Exceptions
Wed 19 Jun 24 Containers of Pointers Final Exam Review Project 5 due
Mon 24 Jun 8pm
Thu 20 Jun 25 Final Review
Mon 24-26 Jun No class No lab Final exam
Thu 27 Jun 8am
Thu 27 Jun Final Exam




Winter 2019

1046
 Syllabus
Nicole Hamilton head shot
Nicole Hamilton
James Juett head shot
James Juett
Amir Kamil head shot
Amir Kamil
Jeff Ringenberg head shot
Jeff Ringenberg

Course Staff

Ayush Chowdhary head shot Rahul Gangwani head shot Mohd Hafiz Hasan head shot Zhiqiang Sui head shot Kristen Basgall head shot Claire Burton head shot Eric Chen head shot Jennifer Chou head shot Brian Chu head shot Marta Clanton head shot David Degazio head shot Katie Dillon head shot Christina Fosheim-Hoag head shot Jack Good head shot Tali Gorokhovsky head shot Ruizhe Huang head shot Brandon Kayes head shot Sarah Kwon head shot Audrey Ladd head shot Noa Levi head shot Anthony Liang head shot Rana Makki head shot Alec Minchington head shot Mitchell Morrell head shot Ram Natla head shot Makarand Parigi head shot Nathan Podolsky head shot Andrew Pospeshil head shot Celine Schlueter head shot Elise Shanholtz head shot Ryan Slade head shot Vaughn Taylor head shot Shawn Wanless head shot Alice Wu head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: RPN Calculator P5: BST/Map + Piazza Classifier
Day # Lecture Topic Lab Topic Deadline
Wed 9 Jan 1 Introduction and Machine Model No lab
Mon 14 Jan 2
Procedural Abstraction, Testing and Debugging
Getting Started
Wed 16 Jan 3 Pointers
Mon 21 Jan No class - MLK Day No lab Project 1 due Tue 22 Jan 8pm
Wed 23 Jan 4 Pointers and Arrays
Mon 28 Jan 5 Strings, Streams, and IO Pointers and Arrays
Wed 30 Jan No class - Too cold
Mon 4 Feb 6 Compound Objects Strings and IO
Wed 6 Feb 7 Abstract Data Types in C
Mon 11 Feb 8 Abstract Data Types in C++ Abstract Data Types Project 2 due Mon 11 Feb 8pm
Wed 13 Feb 9 Derived Classes and Inheritance
Mon 18 Feb 10 Polymorphism Polymorphism
Wed 20 Feb 11 Container ADTs I
Mon 25 Feb 12 Container ADTs II Container ADTs Project 3 due Thu 28 Feb 8pm
Wed 27 Feb 13 Memory Models and Dynamic Memory
Mon 4 Mar No class - Spring Break No lab
Wed 6 Mar No class - Spring Break
Mon 11 Mar 14 Managing Dynamic Memory No lab Midterm exam Wed 13 Mar 7:00pm
Wed 13 Mar No class - Midterm Exam
Mon 18 Mar 16 Deep Copies and The Big Three Dynamic Memory
Wed 20 Mar 17 Linked Lists
Mon 25 Mar 18 Iterators Deep Copies
Wed 27 Mar 19 Function Objects and Impostor Syndrome
Mon 1 Apr 20 Recursion and Tail Recursion Recursion Project 4 due Tue 2 Apr 8pm
Wed 3 Apr 21 Structural Recursion
Mon 8 Apr 22 Problem Solving with Recursion Functors & Function Pointers
Wed 10 Apr 23 Exceptions
Mon 15 Apr 24 Containers of Pointers Final Exam Review Project 5 due Fri 19 Apr 8pm
Wed 17 Apr 25 Final Review
Mon 22 Apr No class No lab Final exam Fri 26 Apr 10:30am
Fri 26 Apr Final Exam




Fall 2018

904
 Syllabus
Andrew DeOrio head shot
Andrew DeOrio
Nicole Hamilton head shot
Nicole Hamilton
James Juett head shot
James Juett

Course Staff

Ayush Chowdhary head shot Rahul Gangwani head shot Pavani Majety head shot Preet Patel head shot Zhiqiang Sui head shot Zhefan Ye head shot Omar Al-Ejel head shot Kristen Basgall head shot Carolyn Busch head shot Caressa Chan head shot Brian Chu head shot David Degazio head shot Christina Fosheim-Hoag head shot Melissa George head shot Jack Good head shot Tali Gorokhovsky head shot Esther Gu head shot Alice Huang head shot Brandon Kayes head shot Sarah Kwon head shot Audrey Ladd head shot Noa Levi head shot Anthony Liang head shot Gabriel Matute head shot Rachel Menge head shot Mitchell Morrell head shot Makarand Parigi head shot Elise Shanholtz head shot Vaughn Taylor head shot

Links

Canvas   Piazza Gradescope Autograder Labs Files

Projects

P1: Stats P2: Seam Carving P3: Euchre P4: RPN Calculator P5: BST/Map + Piazza Classifier
Day # Lecture Topic Lab Topic Deadline
Wed 5 Sep 1 Introduction and Machine Model No lab
Mon 10 Sep 2 Procedural Abstraction, Testing and Debugging Getting Started
Wed 12 Sep 3 Pointers
Mon 17 Sep 4 Pointers and Arrays Pointers and Arrays Project 1 due Tue 18 Sep 8pm
Wed 19 Sep 5 Strings, Streams, and IO
Mon 24 Sep 6 Compound Objects Strings and IO
Wed 26 Sep 7 Abstract Data Types in C
Mon 1 Oct 8 Abstract Data Types in C++ Abstract Data Types Project 2 due Fri 5 Oct 8pm
Wed 3 Oct 9 Derived Classes and Inheritance
Mon 8 Oct 10 Polymorphism Polymorphism
Wed 10 Oct 11 Container ADTs I
Mon 15 Oct No class - Fall Break No lab
Wed 17 Oct 12 Container ADTs II
Mon 22 Oct 13 Memory Models and Dynamic Memory Container ADTs Project 3 due Fri 26 Oct 8pm
Wed 24 Oct 14 Managing Dynamic Memory
Mon 29 Oct 15 Midterm Review No lab Midterm exam Wed 31 Oct 7:00pm
Wed 31 Oct No class - Midterm Exam
Mon 5 Nov 16 Deep Copies and The Big Three Dynamic Memory
Wed 7 Nov 17 Linked Lists
Mon 12 Nov 18 Iterators Deep Copies
Wed 14 Nov 19 Function Objects and Impostor Syndrome
Mon 19 Nov 20 Recursion and Tail Recursion No lab Project 4 due Mon 19 Nov 8pm
Wed 21 Nov 21 Structural Recursion
Mon 26 Nov 22 Problem Solving with Recursion Functors & Function Pointers
Wed 28 Nov 23 Exceptions
Mon 3 Dec 24 Containers of Pointers Recursion Project 5 due Fri 7 Dec 8pm
Wed 5 Dec 25 Final Review
Mon 10 Dec Cancelled No lab Final exam Fri 14 Dec 10:30am
Fri 14 Dec Final Exam