Syllabus¶
Note
This is a tentative syllabus and subject to change.
Class webpage: http://bit.ly/capp30121-aut-20
This course is the first in a two-quarter sequence that teaches computational thinking and skills. The course will cover abstraction and decomposition, simple modeling, basic algorithms, and programming in Python. Applications 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 programs to simulate a model of housing segregation, determine the number of machines needed at a polling place, and analyze tweets from presidential debates.
CAPP 30121 is open to students in the MS in Computational Analysis and Public Policy Program and, if there is space available, PhD students.
Undergraduates may register for the companion course CMSC 12100
Course Staff¶
Instructor
Collaborating Instructors
Hannah Morgan
Teaching Assistants
Yue Kuang
Hana Passen
Kenny Shaevel
Graders
Nixon Joshy
Amanda Whaley
Lecture sections¶
Each section will meet with the instructor twice a week. We will use this time for to review extended examples, to work through exercises, and to answer questions.
Pre-recorded lectures will also be posted most weeks.
Section |
Time |
Location |
Instructor |
---|---|---|---|
Section #1 |
WF 1:50pm-2:40pm CT |
JCL 011 |
Rogers |
Section #2 |
WF 4:10pm-5:00pm CT |
JCL 011 |
Rogers |
Section #3 |
WF 8:00am-8:50am CT |
Zoom |
Rogers |
Discussion sections¶
Once a week, each section will meet with a teaching assistant to review the week’s programming assignment, to work through exercises, and to allow students to ask questions.
Section |
Time |
Location |
Instructor |
---|---|---|---|
Section #1 |
M 1:50pm-2:40pm CT |
JCL 011 |
Yue Kuang |
Section #2 |
M 4:10pm-5:00pm CT |
JCL 011 |
Hana Passen |
Section #3
- Discussion #1
- Discussion #2
|
Su 9:00-9:50pm CT
M 9:40-10:30am CT
|
Zoom
Zoom
|
Yue Kuang
Kenny Shaevel
|
Course Structure¶
CAPP 30121 will follow a flipped classroom model, where most content delivery happens via pre-recorded lectures that are usually posted at the start of the week. The class will meets three times a week for more interactive and hands-on activities. In general, each week covers a specific topic, and class meeting times are structured as follows:
Sunday/Monday: Discussion session focused on that week’s programming assignment.
Wednesday: The class meets to work through an ungraded lab related to that week’s topic. Students are given a few minutes to work individually or in small groups on a short exercise, followed by an instructor-led discussion of the solution (each lab involves working through several of these exercises)
Friday: The class meets for a discussion of an extended example and/or general Q&A related to that week’s topic.
All three class meetings will be fairly interactive sessions designed to reinforce what is covered in that week’s pre-recorded lectures.
Graded work includes programming assignments, short untimed exercises (that can be done at any time over the course of a week), more complex timed assessments (where you can start working on a problem at any point during the week, but then have a limited amount of time to submit a solution), and short quizzes in the pre-recorded lectures.
Please see the calendar for more details on what happens on a day to day basis.
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.
In general, programming assignments are released on Saturday/Sunday, and are due on the following Friday. The Monday discussion sessions will be used to provide additional support for these programming assignments.
Please see the Programming Assignment Rubric page for more details on how the programming assignments will be graded.
Short Exercises¶
On weeks 2, 3, 4, 6, 7, and 9, we will post a series of short exercises related to that week’s topic. The goal of these exercises is to provide you with short and focused opportunities to practice the concepts and skills being covered that week.
Exercises are posted on Monday and due on Sunday (except for the Week 9 exercises, which will be due on Friday of Week 10). You can take as much time as needed on each exercise, and just need to submit your solutions before the deadline.
Timed Assessments¶
On weeks 5 and 8, as well as during finals week, we will post a series of more complex cumulative problems. The goal of these problems is to assess your computational thinking skills, and your fluency in programming.
Problems are available on Monday and you can start working on individual problems at any point before the deadline. However, once you access a problem, you will have a limited amount of time to complete it (typically 30 minutes to 2 hours, depending on the complexity of the task; this will be controlled by Gradescope, the platform we use for the timed assessments and the short exercises). Please note that you do not have to do all the problems for that week in one sitting, but you must complete them before the deadline.
Lecture Quizzes¶
The pre-recorded lectures will include very simple quizzes that should be trivial to pass if you pay attention to the videos. The goal of these quizzes is to reward students who watch the pre-recorded lectures in a timely manner, and who pay attention while watching the videos.
To earn the points for a quiz, you must complete the quiz no later than one week after the lecture is posted. Furthermore, if your total score on the quizzes (for the entire quarter) is above 75%, you will get 100% of the points allocated to the lecture quizzes on your final grade. If your total score on the quizzes is below below 75%, you will be awarded a proportional amount of the points.
Practice problems¶
We additionally provide a series of short problems available that you can use for extra practice. You will not submit these problems and they will not be graded. However, if you are struggling with a particular topic in the class, working on practice problems can help you build more fluency in that topic, as well as reinforce your programming skills.
Grading¶
Your final grade will be based on the following:
Programming assignments |
50% |
Short exercises |
15% |
Timed Assessment - Week 5 |
5% |
Timed Assessment - Week 8 |
10% |
Timed Assessment - Final Week |
15% |
Lecture quizzes |
5% |
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).
MS-CAPP students must take this course for a letter grade. PhD students may take the course Pass/Fail and should reach out to the instructor to get information on what is required to earn a Pass.
Late submissions¶
You are allowed to make at most two late submissions on the programming assignments, regardless of whether you worked on those assignments individually or in a pair. Late submissions will be accepted up to 48 hours after the deadline.
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 48 hours after the deadline.
Please note that, while Gradescope does enforce the 48-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 (illness, 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.
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.
Books¶
We will be using a draft of a book that Anne Rogers and Borja Sotomayor are writing for this course. This book will be available electronically for free at the start of the quarter.
Policies¶
Policy on academic honesty¶
We take academic honesty very seriously in this class. Please make sure to read our Academic Honesty page.
Zoom guidelines¶
We will be using Zoom for some parts of this class. We expect your interactions via Zoom to be consistent with an in-person class experience. Respect the people you’re working with. Enter the Zoom meetings muted if possible (unfortunately, it will not be possible if you’re calling in), and unmute to speak. Raise your hand if you’d like to speak. [There’s a “Raise Hand” button on the participant page.] If your background is unusually noisy, use the chat channel instead of unmuting. We strongly encourage you to have your camera on during our Zoom sessions, but we’ll understand if some of you prefer to keep your video off.
Note that you can set your name in your Zoom profile, so you don’t have to go with whatever was assigned. Feel free to include your pronouns in your name (if you do, please include them after your last name).
Some of our Zoom class meetings will be recorded and saved to the cloud to allow students in this class to review the discussion, and especially to allow students who can’t participate the opportunity to benefit from class. We will not make these recordings available to anyone but class participants, we will not make them available after the quarter, and students will not be allowed to save copies. However, we have no way to guarantee that students will follow this policy. If you have FERPA concerns, please mask yourself accordingly, e.g., by turning off video and using an alias.
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¶
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.
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.
COVID-19 Policies¶
UChicago Health Pact¶
All students on campus are required to adhere to the guidelines in the UChicago Health Pact in order to promote a safe environment in the classroom.
Secure face coverings must be worn appropriately at all times while in University buildings
Maintain a distance of 6 feet from others
Do not attend an in-person class if you feel unwell or are experiencing COVID-19 related symptoms
The complete text of the UChicago Health Pact along with additional information about COVID-19 protocols can be found here.
Reporting COVID-19 Exposure or a Confirmed Case¶
If you were potentially exposed to COVID-19 or your COVID-19 test results come back positive, reach out immediately to C19HealthReport@uchicago.edu.
Recording and Deletion Policies for Academic Year 2020-1¶
The Recording and Deletion Policies for the current academic year can be found in the Student Manual under Petitions, Audio & Video Recording on Campus.
Do not record, share, or disseminate any course sessions, videos, transcripts, audio, or chats.
Do not share links for the course to those not currently enrolled.
Any Zoom cloud recordings will be automatically deleted 90 days after the completion of the recording.
Attendance¶
Absent any extraordinary circumstances, we expect students to attend all lectures and discussions. That said, we do not keep track of attendance in this class and no part of your final grade is computed based on your attendance to lectures or discussions.
Students who have been exposed to or who are experiencing symptoms of COVID-19 should contact UChicago Student Wellness immediately to be tested, and reach out to their area Dean of Students to request accommodations for classes until:
At least 10 days have passed since symptoms first appeared and;
At least 3 days (72 hours) have passed since recovery- defined as resolution of fever without the use of fever-reducing medications and improvement in respiratory symptoms (e.g., cough, shortness of breath).