Computer Science with Applications 2

Class webpage:

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, (5) data structures, such as graphs, hash tables, and heaps, and (6) recursion. 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 group programming project.

Prerequisite: CAPP 30121

Course Staff


  • Anne Rogers
  • Lamont Samuels

Teaching Assistants

  • Kavon Farvardin
  • Emma Nechamkin

Lecture times and locations

Lecture, Section 1 MWF 9:30-10:20am Ry 276
Lecture, Section 2 MWF 9:30-10:20am Hinds 101
Lab 1 M 3:30-4:50pm CSIL #3
Lab 2 M 3:30-4:50pm CSIL #4
Lab 3 M 5:00-6:20pm CSIL #3
Lab 4 M 5:00-6:20pm CSIL #4

Course Structure

The class meets three times a week for lectures, and once a week for a lab session. Graded work includes programming assignments, a midterm exam, and end-of-quarter group project. Additionally, we provide practice problems for some topics.

Please see the calendar for more details on what is covered in each lecture.

Programming assignments

We will be assigning six programming assignments. You will be allowed to work in pairs in some of these assignments. See the calendar for details.

Programming assignment deadlines will alternate between Fridays and Wednesday. Please see the calendar for details.

The labs are used to provide additional support for these programming assignments.


We will be giving one evening exam on Monday, February 11th from 7:00pm-9:00pm. This exam will be held in JCL 390. If you have an unavoidable scheduling conflict at those times, please inform your instructor as soon as possible.


We will perdiocally publish labs that will be intended to help you build skills that are needed for the programming assignments (for example, recursion) or that are discussed in class, but not covered by any specific assignment (for example, regular expressions). These labs will not be graded.

The class will have weekly lab sections. The labs will provide an opportunity to get help with programming assignments and labs.


We will be assigning a final group project. We will be holding a poster session for the group projects on March 15th from 7 to 9pm in JCL 390.

Practice problems

We will periodically make a set of short problems available to you to test your knowledge of the material we are covering in class. Some of these problems will be of the “be a computer” variety and will require you to evaluate a piece of code by hand. Others will require you to write code. We will be using a system named Kattis to help you test your solutions to the latter type of problems.

You will not submit these problems and they will not be graded. They will, however, help test your knowledge of the material needed to do the programming assignments and will be good practice for the exam.


Your final grade will be based on the following:

Programming assignments 60%
Midterm Exam (Feb 11, 7-9pm) 20%
Group Project 20%

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 MS-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.

Instructions for how non-MS-CAPP students can request to take the class pass/fail will be sent closer to the end of the quarter. Please do not send your instructor such requests until we have posted instructions on how to do so.

Requests to withdraw must be sent to the instructor.

Late submissions

All students may use up to two 24-hour extensions for the programming assignments during the quarter. These extensions are all-or-nothing: you cannot use a portion of an extension and have the rest “carry over” to another extension. If extraordinary circumstances (illness, family emergency, etc.) prevent a student from meeting a deadline, the student must inform their instructor before the deadline.


We will be using a draft of a book that Anne Rogers and Borja Sotomayor are writing for part this course. The book is available in both HTML and PDF format. Note that you will be asked for your CNetID and password to gain access to these files.

We will post readings for topics not covered in Rogers and Sotomayor on Piazza.

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 share 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.

Disability statement

If there are circumstances that make our learning environment and activities difficult, please let us know. We will maintain the confidentiality of any such discussions. If you need accommodations due to a disability you will also need to contact Student Disability Services at 773-702-6000, or