Each week, there will be a paper quiz on the lecture notes, reading, submitted programs, and online lab exercises.

Code Review

There will also be weekly walk-throughs ("code reviews") where you explain one of the programs you wrote to a teaching assistant. Code reviews are integral to software design and development: explaining your coding decisions and convincing another it works correctly leads to improvements in the design and lessens unexpected behaviors and errors.


The quizzes focus on the topics below and often include one or two review questions.

Quiz: Deadline: Quiz Topics: Code Review Topics:
#1Monday, 13 September Academic Integrity Policy (certify that you have read and understood it) and introductory survey. Code Review 1: Code Review Demo (come find out how to do it!) due 9/20
#2Monday, 20 September Turtles and Loops: Focuses on the turtle and for-loops covered in notes from Lecture 1 and Lab 1.
#3Monday, 27 September Strings, Loops and Unix: Focuses on concepts covered in Lab 2 such as string, input and range functions, as well as the Unix commands introduced there. Code Review 2: Explain variations on a turtle program (Programs 2-5)
Strings and loops (Programs 6,8,9,13) due 10/4
#4Monday, 4 October Indexing, Slicing, Colors & Unix: Focuses on concepts covered in Lecture3 and Lab 3, such as the use of colors with turtles, hexadecimal number representation, indexing and slicing, numpy arrays and images as well as the Unix commands introduced there.
#5Friday, 8 October Decisions and Unix:This quiz has questions about if statements and Unix commands from Lab 4 and the notes from Lecture 4.
Code Review 3: Explain how characters are stored (e.g. chr() and ord()), string methods, and looping through strings (Program 10)
Explain RGB-color channels used for turtles and images with numpy (Programs 18,20,21,22) due 10/18
#6Monday, 18 October Logical expressions, circuits & Unix: Focuses on concepts covered in Lecture5 and Lab 5, such as Logical expressions and circuits and the translation between them, as well as Unix commands for absolute path. See Question #3 on old finals for examples.
#7Monday, 25 October Pandas & Unix: Focuses on concepts from Lecture 6 and Lab 6 (for Padas, more problems available on old finals: at least one of #6 and #7 on each exam) Code Review 4: Explain if-statements (Programs 17,19,20,23)
Demonstrate programs using pandas dataframe. (Programs 27, 30-32) due 11/1
#8Monday, 1 November Function parameters and tracing functions,SeeQuestion #4 (tracing function calls) on old finals. Fill in the program: see Question #7 (write complete program following comments) on old finals.
#9Monday, 8 November Function tracing and Pandas: Focuses on concepts from Lecture 8 and Lab 8. Code Review 5: Functions & More Pandas (Programs 34,37,)
Functions (Programs 35,38,39) due 11/15
#10Monday, 15 November Folium & Top-down Design: The top-down design question comes from the example covered in Lab 8 as well as Question #5 (design) on old finals. For the Folium question, see Lab 9 and the notes from Lecture 9.
#11Monday, 22 November Indefinite Loops & Simulations: See the notes from Lectures 9 & 10 and Lab 10 for examples of indefinite loops and the random library. Code Review 6: Folium (Programs 43,45)
While loops (Programs 46, 47, 49) due 11/29
#12Monday, 29 November MIPS & Shell Commands: Focuses on concepts from Lecture 11 and Lab 11. For sample MIPS questions, see Question #8 on old finals.
#13Monday, 6 December Simple C++ Programs: Focuses on concepts from Lecture 12 and Lab 12. For sample C++ questions, see Question #9 on old finals. Code Review 7: C++ (Programs 55, 58, 60) due 12/13
#14Monday, 13 December End of semester survey.