Unless otherwise noted, all homework and programming assignments are due by the beginning of class on the day listed. Labs are listed on the day lab is held; all labs from a given week are due by the beginning of class on Thursday.

Jan. 27, 29 Design and pseudo coding Ch. 1 Lab1 HW1
Feb. 3, 5 Basics, Variables, and IO Ch. 2+3 Lab2 PA1.1 Quiz 1; HW2
Feb. 10, 12 Branching Ch. 4 Quiz 2; HW3; PA1.2
Feb. 17, 19 Loops Ch. 5 Lab3 Quiz 3; HW4 PA1.3
Feb. 24, 26 No Class Exam 1
Mar. 3, 5 Functions Ch. 6 Lab4 PA2.1 Quiz 4; HW5
Mar. 10, 12 Functions Ch. 6 Lab5 PA2.2 Quiz 5; HW6
Mar. 14–22 No class—Spring break
Mar. 24, 26 Classes and Structs Ch. 7 Lab6 PA2.3 Quiz 6; HW7
Mar. 31, Apr. 2 1D Arrays Ch. 8 Lab7 PA3.1 Exam 2
Apr. 7, 9 Multi-dimensional arrays Ch. 8 Lab8 PA3.2 Quiz 7; HW8
Apr. 14, 16 Searching and sorting Ch. 9 Lab9 PA4.1 Quiz 8; HW9
Apr. 21, 23 Python Ch. 10 Lab10 PA4.2 Quiz 9; HW10
Apr. 28, 30 Review Lab11 PA4.3 Exam 3
May 4 No class PA4.4
May 11 Final Exam—10:15–12:15 in LSB 212 (note: that's a different room than usual)
(Back to top)



Most weeks, there will be a homework due before the start of class on Thursday. This usually will cover material from the readings.


Labs are short assignments that should only take a couple hours. If you do not finish a lab during the lab period, you need to complete it before the start of Thursday's class. Labs cannot be made up. Not all labs will necessarily be graded.

Programming Assignments

Programming assignments are larger assignments you do out of the classroom. Each is composed of two or more milestones. For the most part, there is a milestone due every week before the start of lab on Tuesday. Not all milestones will necessarily be graded. Each page has pointers to where submissions should be uploaded and the rubrics that will be used to grade them.

(Back to top)


(Back to top)