Syllabus

Note

This is a tentative syllabus and subject to change.

This course is the second in a three-quarter sequence that teaches computational thinking and skills to students from a wide-variety of fields. Lectures cover topics in (1) data representation, (2) relational databases, (3) data cleaning and presentation, (4) shell scripting, and (5) data structures, such as graphs, hash tables, and heaps. Applications and datasets from a wide variety of fields serve both as examples in lectures and as the basis for programming assignments. In recent offerings, students have written a course search engine and a system to do speaker identification.

Students will program in Python and do a quarter-long programming project.

Prerequisite: CAPP 30121 or approved equivalent course

Course Staff

Instructor

Teaching Assistants

  • Christine Ibaraki

  • Tarren Peterson

  • Gabriela Palacios Gomez

Graders

  • Tirumala Kaggundi

  • Sabrina Sedovic

Lecture sections

Each section will meet with the instructor for lectures three days a week and with a teaching assistant for a discussion session once a week.

Section

Time

Location

Instructor

Section #1

Tue Thu : 09:30 AM-10:50 AM CT

Zoom (Weeks 1-2), JCL 011 (Weeks 3-9)

Samuels

Section #2

Tue Thu : 12:30 PM-01:50 PM CT

Zoom (Weeks 1-2), JCL 011 (Weeks 3-9)

Samuels

Discussion sections

During discussion sections, students will meet with a teaching assistant to review the week’s programming assignment, to work through exercises, and to have a chance to ask questions.

All discussion sessions for Weeks 1 -2 will meet via Zoom. Please login into Canvas to access the Zoom sessions. This page will be updated with the locations for in-person discussion seesions (Week 3 and on) shortly.

Section

Time

Location

Leader

Discussion Section 1D01

M 4:30pm-5:20pm CT

CSIL 3

Gabriela Palacios Gomez

Discussion Section 1D02

M 5:20pm-6:20pm CT

CSIL 3

Christie Ibaraki

Discussion Section 2D01

M 4:30pm-5:20pm CT

CSIL 4

Christie Ibaraki

Discussion Section 2D02

M 5:30pm-6:20pm CT

CSIL 4

Tarren Peterson

Course Structure

This course is divided into seven modules:

  • M1: Code Structure & Organization

  • M2: Gathering Data for Analysis

  • M3: Storing Data for Analysis

  • M4: Data Cleaning and Wrangling

  • M5: Data Analysis Algorithms & Implementations (Parts 1 - 2)

  • M6: Data Visualization & Automation

  • M7: Advanced Data Structures (Parts 1 - 2)

A module begins with a series of lectures that introduce basic concepts related to that module. Lectures will either come from in-class lectures or via pre-recorded videos that you will watch before or after a lecture. The videos will normally be no longer than 1 hour. Additionally, there will be additional resources (i.e., videos, online readings) that we may provide to supplement what is covered in the lectures.

Next, you will apply the skills you have learned towards solving a more complex problem in a graded Programming Assignment. The Monday discussion sessions are used to provide additional support for these programming assignments.

Please note that most modules will last an entire week from Monday-Friday. However, there are few modules that will spand two weeks. In most weeks you will be working on the programming assignment for one module.

For a detailed calendar, including a list of all the deadlines throughout the quarter, please see the Course Calendar.

Projects

A portion of your grade will be dedicated to completing a quarter-long group project. Details about the project are provided here: Course Project.

Grading

Unlike in CAPP 30121, we will not be using specifications grading for this course. We will use the usual weighted grading scheme.

Your final grade will be based on the following:

Programming assignments (10% each)

50%

Project Deliverables (Total)

50%

  • Project Deliverable #1

2%

  • Project Deliverable #2

3%

  • Project Deliverable #3 (Paper)

10%

  • Project Deliverable #3 (Software)

35%

Grades are not curved in this class or, at least, not in the traditional sense. We use a standard set of grade boundaries:

  • 95-100: A

  • 90-95: A-

  • 85-90: B+

  • 80-85: B

  • 75-80: B-

  • 70-75: C+

  • <70: Dealt on a case-by-case basis

We curve only to the extent we might lower the boundaries for one or more letter grades, depending on the distribution of the raw scores. We will not raise the boundaries in response to the distribution.

So, for example, if you have a total score of 82 in the course, you are guaranteed to get, at least, a B (but may potentially get a higher grade if the boundary for a B+ is lowered).

Students in the CAPP program must take this course for a quality grade.

Students in other programs may take the course pass/fail. A “pass” requires a 60 in the course and an exam score of least 50.

Requests to withdraw must be sent to the instructor.

Late submissions

You are allowed to make at most two late submissions on the programming assignments. You cannot use extensions on your module quizzes and/or project related submissions. Late submissions will be accepted up to 24 hours after the deadline. You are allowed to double up on your late submissions.

No credit will be given for late submissions after you have used up your two allowed late submissions.

No credit will be given for any submission made 24 hours after the deadline.

Please note that, while Gradescope does enforce the 24-hour limit on late submissions and will clearly flag late submissions with a red “LATE” label, it does not enforce our specific limit of two late submissions. It is your responsibility to keep track of how many late submissions you have made so far, and to ensure you don’t make more than two late submissions.

If extraordinary circumstances (medical and family emergency etc.) prevent a student from meeting a deadline, we may grant additional extensions on a case-by-case basis. Whenever possible, the student must inform their instructor of these extraordinary circumstances before the deadline.

Please note that having a heavy workload in a given week does not qualify as an extraordinary circumstance. The purpose of the two extensions is precisely to give you some flexibility in weeks when you are busier than usual.

Regrades

We sometimes make mistakes, and are happy to review any incorrect grading decision.

However, please note that we will only consider regrade requests where a grader made an actual mistake (e.g., they took points off claiming you didn’t do something, when you actually did do it and the grader maybe missed that when reading over your submission). We will not consider regrade requests that ask for point penalties to be reduced, or try to argue that we should not be taking points off for a given issue in your code.

For example, suppose you receive a penalty that says “-2 points: Function X did not check that parameter Y is greater than zero”. If function X in your code did perform this check, and the grader missed this fact (and erroneously applied that penalty), you can submit a regrade request asking us to review this decision. We ask that you keep these requests brief and to the point: no more than 1-2 paragraphs identifying the exact penalty and the reasons you believe it was applied erroneously, including references to specific parts of your code (e.g., “I did check the value of the parameter in line 107”). Focus on laying out the facts, and nothing else.

On the other hand, let’s say you received the “Function X did not check that parameter Y is greater than zero” penalty, and function X in your code did not perform this check. In this case, you cannot submit a regrade request arguing that this is not something for which we should deduct points, or that the point deduction should be lower. Please note that all penalties are explicitly approved by an instructor (graders have no discretion to come up with penalties on their own and, if they took points off for something, it is because they were directed to do so by the instructors).

Please note that, while you may request a regrade for a specific issue, an instructor may do a full regrade of your submission if they feel there are other issues with the grading of your submission. This can result in you ending up with a lower score on the assignment.

Steps to Submit a Regrade Request

  1. Read over the above section to make sure your request will not be denied.

  2. All regrades must be submitted on Gradescope. Do not write on Ed asking for a regrade request. However, you can on Ed notify the instructor(s) that you submitted a regrade request on Gradescope.

  3. Finally, it is also your responsibility to make these requests in a timely manner. Requests for regrades must be submitted no later than one week after a graded piece of work is returned to you. After that time, we will not consider any requests for regrades, regardless of whether the regrade request is reasonable and justified.

Please allow time for the course staff to review your regrade request. We cannot provide a specific timeframe when your request will be handled. We are on a tight schedule grading other assignments but your request will be reviewed before the end of the quarter.

Books

Unlike CAPP 30121, we do not have a dedicated textbook for this course. This course covers various data-related topics that are not covered in a single textbook. However, we will provide supplementary materials whenever possible to help clarify most topics.

Policies

Policy on academic honesty

We take academic honesty very seriously in this class. Please make sure to read our Academic Honesty page.

Diversity statement

The University of Chicago is committed to diversity and rigorous inquiry that arises from multiple perspectives. We concur with that commitment and also believe that we have the highest quality interactions and can creatively solve more problems when we recognize and celebrate our diversity. We thus expect to maintain a productive learning environment based upon open communication, mutual respect, and non-discrimination. We view the diversity that students bring to this class as a resource, strength and benefit. It is our intent to present materials and activities that are respectful of diversity: gender, sexuality, disability, socioeconomic status, ethnicity, race, religious background, and immigration status. Any suggestions as to how to further such a positive and open environment in the class will be appreciated and given serious consideration.

If you have a preferred name different from what appears on the class roster, or preferred gender pronouns you would like us to use, please let us know.

Disability statement

The University of Chicago is committed to ensuring equitable access to our academic programs and services.

MS-CAPP students who need to request formal accommodations due to a disability should follow the Harris Accommodations Process. PhD students should contact their program administrator for information about how to request formal accommodations.

Timely notifications are required in order to ensure that your accommodations can be implemented. Please meet with me to discuss your access needs in this class after you have completed the procedures for requesting accommodations.