Computer Science with Applications 1¶
Class webpage: http://bit.ly/cmsc12100-aut-18
This course is the first in a three-quarter sequence that teaches computational thinking and skills to students in the sciences, mathematics, economics, etc. 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.
Placement into MATH 15100 or completion of MATH 13100, or instructor’s consent, is a prerequisite for taking this course.
Course Staff¶
Instructors
Teaching Assistants
- Mark Cohen
- Lydia Filipe
- Abi Hunter
- Can Liu
- Claude Richoux
Lecture times and locations¶
Lecture Section #1 | MWF 9:30am-10:20am | Rosenwald Hall 015 | Sotomayor |
Lecture Section #2 | MWF 11:30am-12:20pm | Stuart Hall 104 | Ur |
Lecture Section #3 | MWF 1:30pm-2:20pm | Rosenwald Hall 015 | Krishnan |
Lecture Section #4 | MWF 10:30am-11:20am | Pick Hall 022 | Black |
Discussion times and locations¶
Note: There are no discussion sessions on the first week of the quarter.
Monday 4:00-5:20pm | Discussion #1 | Cobb 110 | Filipe |
Monday 4:00-5:20pm | Discussion #2 | Cobb 202 | Cohen |
Monday 5:30-6:50pm | Discussion #3 | Cobb 202 | Liu |
Monday 5:30-6:50pm | Discussion #4 | Cobb 110 | Hunter |
Tuesday 2:30-3:50pm | Discussion #5 | Cobb 402 | Filipe |
Tuesday 2:30-3:50pm | Discussion #6 | Cobb 219 | Cohen |
Monday 5:30-6:50pm | Discussion #7 | Social Sciences 107 | Richoux |
Course Structure¶
The class meets three times a week for lectures, and once a week for a discussion session. Graded work includes programming assignments and exams. Additionally, we provide ungraded labs and practice problems throughout the quarter.
Please see the calendar for more details on what is covered in each lecture.
Programming assignments¶
We will be assigning seven 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/Tuesday discussion sessions are 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.
Exams¶
We will be giving evening exams on Monday, October 29th from 7:00pm-9:00pm and Monday, December 10th from 7:00pm-9:00pm. If you have an unavoidable scheduling conflict at those times, please inform your instructor as soon as possible.
Labs¶
The class does not have lab sessions, but we will provide you with lab assignments that you can do on your own time (either on your computer or in a computer lab). These lab assignments are not graded and do not have to be handed in, but we strongly encourage you to work through them, as they supplement what is covered in the lectures, and provide a good hands-on introduction to the concepts needed in that week’s programming assignment.
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 you to evaluate a piece of code by hand (we refer to these as “be a computer” problems). 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 exams.
Grading¶
Your final grade will be based on the following:
Programming assignments | 60% |
Exam 1 (Oct 29, 2018, 7-9pm) | 20% |
Exam 2 (Dec 10, 2018, 7-9pm) | 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).
If you want to take the course pass/fail, a “pass” requires a 60 in the course and the average score of both exams must be at least 50 (i.e., if you get a 35 on the first exam, you will need to get at least a 65 on the second exam to pass, assuming your overall score on the class is at least 60) If you accrue more than 60 points, but the average on your exams is less than 50, you will not be allowed to take a “P” in the class, and will instead have to take a quality grade.
Instructions on how to 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 your College advisor, not to your 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, 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.
Books¶
We will be using a draft of a book that Anne Rogers and Borja Sotomayor are writing for 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.
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.
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. If you need accommodations due to a disability you will also need to contact Student Disability Services at 773-702-6000, or disabilities@uchicago.edu