All students registered by Tuesday, 21 January are sent a Gradescope registration invitation to the email on record on their Brightspace account. If you did not receive the email or would like to use a different account, fill out the form on Brightspace. Include on the form that you not receive a Gradescope invitation, your preferred email, and your EmpID. We will manually generate an invitation. As a default, we use your name as it appears in Brightspace/CUNYFirst (to update CUNYFirst, see changing your personal information). If you prefer a different name for Gradescope, include it, and we will update the Gradescope registration.
See Programming Assignments page for a list of the coding exercises for the class.
Each week, you are expected to work through the associated Online Lab. Target dates for completing these are included. There is no deadline for completing these, but the programming assignments, quizzes and coding reviews are based on the information in the lab.
Lab 0: Setting Up.
Target date: Monday, January 27.
Learning Objective: to set up tools for the semester and to read through the syllabus.
Lab 1: First Program & Turtles.
Target date: Friday, January 31.
Learning Objective: to write short programs involving output and the turtle library and submit those to the Gradescope.
Lab 2: Strings & Loops.
Target date: Friday, February 7.
Learning Objective: to input and manipulate strings, as well as looping through lists and strings.
Lab 3: Representing Colors & Manipulating Images.
Target date: Friday, February 21.
Learning Objective: to use the three different formats for colors (name, RGB & hexadecimal) and manipulate images using standard libraries.
Lab 4: Getting Input & Decisions.
Target date: Friday, February 28.
Learning Objective: to use decisions to manipulate images and lists (list comprehension) as well as get user input.
Lab 5: Logical Expressions & Circuits.
Target date: Friday, March 7.
Learning Objective: to translate between logical expressions and circuits, as well as understand binary numbers.
Lab 6: Pandas & Github.
Target date: Friday, March 14.
Learning Objective: to use the pandas library to read in CSV files, manipulate columns, and plot data, as well as be familiar with GitHub.
Lab 7: NYC OpenData & Functions.
Target date: Friday, March 21.
Learning Objective: to obtain and analyze NYC OpenData using pandas and to write stand-alone programs with functions.
Each week, there will be a paper quiz on the lecture notes, reading, submitted programs, and online lab exercises.
There will also be weekly walk-throughs ("code reviews") where you explain one of the programs you wrote for homework 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.
Unless otherwise noted, all quizzes and code reviews are in-person in 1001G HN. There is up to 10% extra credit for completing the quiz and code review by the target date.
Week: | Start Date: | Target Date: (For Extra Credit) | End Date: | Quiz Topics: | Code Review Topics: |
---|---|---|---|---|---|
#0 | Friday, January 24 | None | Monday, February 3 | Quiz 0: On Brightspace: covers syllabus | None |
#1 | Thursday, January 30 | Monday, February 3 | Wednesday, February 5 | Quiz 1: Turtles and Loops: Focuses on turtle commands and for-loops. Use Lab 1 to study. | Code Review 1: Using Turtle Library (Programs 2, 3, or 5) |
#2 | Thursday, February 6 | Thursday, February 13 | Tuesday, February 18 | Quiz 2: Looping through strings and using ASCII values; Unix commands: files & directories; see Lab 2. Quiz includes ASCII chart for reference | Code Review 2: String Methods (Programs 6 & 7) |
#3 | Wednesday, February 19 | Thursday, February 20 | Monday, February 24 | Quiz 3: Color formats, slicing, and Unix commands from Lab 2 and Lab 3. | Code Review 3: Definite Loops (Programs 11, 13, & 14) |
#4 | Tuesday, February 25 | Thursday, February 27 | Monday, March 3 | Quiz 4: Inputting, decisions, & list comprehensions. See Lab 4. | Code Review 4: Getting Input & Decisions (Programs 17, 18, 20) |
#5 | Tuesday, March 4 | Thursday, March 6 | Monday, March 10 | Quiz 5: Converting between binary, decimal, and hexadecimal; Logical Circuits. See Lecture 2 & 5 and Lab 5. | Code Review 5: Logical Expressions & Circuits (Programs 22, 23, 25) |
#6 | Tuesday, March 11 | Thursday, March 13 | Monday, March 17 | Quiz 6: Manipulating CSV files with Pandas (Lab 6) and Unix paths (Lab 4 and Lab 5) | Code Review 6: Pandas (Programs 27, 30) |
#7 | Tuesday, March 18 | Thursday, March 20 | Monday, March 24 | Quiz 7: Functions, Shell Scripts, Python's zip (see Lab 6 and Lab 7). | Code Review 7: Decisions (Programs 31, 32, 33, 34) |
#8 | Tuesday, March 25 | Thursday, March 27 | Tuesday, April 1 | Quiz 8: Dictionaries | Code Review 8: Dictionaries |
#9 | Wednesday, April 2 | Thursday, April 3 | Monday, April 7 | Quiz 9: | Code Review 9: Functions |
#10 | Tuesday, April 8 | Thursday, April 10 | Monday, April 21 | Quiz 10: | Code Review 10: Indefinite Loops |
#11 | Tuesday, April 22 | Thursday, April 24 | Monday, April 28 | Quiz 11: | Code Review 11: |
#12 | Tuesday, April 29 | Thursday, May 1 | Monday, May 5 | Quiz 12: | Code Review 12: |
#13 | Tuesday, May 6 | Thursday, May 8 | Monday, May 12 | Quiz 13: | Code Review 13: |
The final exam is required. It is comprehensive, covering all the material of the course.
On the day of the exam, there will be two parts to fill out:
Both the seat slip and the final exam must be submitted.
The final exam has 10 questions, each worth 10 points. The best way to study is to work through the problems we have done throughout the semester. The questions are very similar to the programming assignments, quizzes, examples from lecture, labs, and the reading.
On the last lecture, Tuesday, 13 May, we will have a mock final exam. It will be similar to the actual final exam, except that the time will be shorter, since lecture is 1 and 15 minutes while the final exam is 2 hours. An answer key will be available later that afternoon.
Below are the past exams, along with answer keys. To study for the final exam, choose a past exam and work through it as if you were taking the exam but allow yourself 1 hour (instead of the 2 hours for the real exam). When done, check your answers with the answer key, adjust your note sheet for topics and key ideas that would be useful, and repeat.