Programming assignments are due before the beginning of class on Monday of the week listed. Quizzes and homeworks will also be assigned weekly; see the Assignments section for details.

In case you are curious, this page is set up to remember what checkboxes you click provided you access this page from the same browser and computer (and don't clear your browser cache). So, check off assignments as you do them to keep track of what you've done!

Week Dates zyBook Feild Guide / Topics Lab Projects/exams
1 Jan. 23, 25, 27 Ch. 1 Basics,
Lab 0
2 Jan. 30, Feb. 1, 3 Ch. 2 Variables,
Lab 1
3 Feb. 6, 8, 10 Ch. 3 Branching Lab 2
4 Feb. 13, 15, 17 Ch. 4 Loops Lab 3
Feb. 20 No class—Presidents day
5 Feb. 22, 24 Ch. 5,
Ch. 6
Arrays Lab 4 PA1
6 Feb 27, Mar. 1, 3 Lab 5 Exam 1 on Fri. 3/3
7 Mar. 6, 8, 10 Ch. 7 Functions Lab 6
Mar. 13–17 No classes—Spring break
8 Mar. 20, 22, 24 Lab 7
9 Mar 27, 29, 31 Ch. 8,
Ch. 9
Structs and classes Lab 8 PA2
10 Apr. 3, 5, 7 Lab 9 Exam 2 on Fri, 4/7
11 Apr. 10, 12, 14 Ch. 10 File IO Lab 10
Apr. 17 No class—Patriots day
12 Apr. 19, 21 Searching and
Lab 11
13 Apr. 24, 26, 28 Python Lab 12 PA3
14 May 1, 3, 5 Review Lab 13
May 8 Final Exam in LSB 128, 10:15am—12:15pm
(Back to top)



Most Mondays will begin with a short quiz based on the homework and material from the previous week. Paper notes may be used, but no electronic resources. Not all quizzes will necessarily be graded.


Each ZyBook chapter contains two types of interactive activities: participation activities and challenge activities. You should complete the participation activities as you read the material, and this should be done before the first lecture on the material (generally before Monday's class of the week the material is listed for). The purpose of the challenge activities is to demonstrate that you understand the chapter and lecture content and will generally be due before the first class of the next topic.


Labs are short assignments that should only take a couple hours and are done in pairs. In general, attending and engaging in lab will earn you full points.

Programming Assignments

Programming assignments are larger assignments you do out of the classroom on your own (not with other students, not from sources found on the Internet). Each page linked to below has pointers to where submissions should be uploaded and the rubrics that will be used to grade them.

(Back to top)


Code style

There are many ways to write and format the same code. In the zyBook readings, a particular set of rules are followed, which can be seen in their style guidelines here. While this largely overlaps with the conventions I use in class (which are outlined in my style guidelines), there is one major difference: the zyBook authors start function names with upper case letters, while I use lowercase. Please use follow my conventions on programming assignments and exams.


(Back to top)