CMU 15-112: Syllabus
15-112 will be taught entirely online this semester.
While this will no doubt impact all of us in many ways,
please bear this in mind:
|Unless otherwise stated, all times in all course-related documents and correspondence will be in Pittsburgh time (ET). Note that Autolab in particular may show times in your local time, but our course website uses Pittsburgh-time.|
Previous versions of 15-112/15-110/15-100:
F20, S20, F19, S19, F18, S18, F17, S17, F16, S16, F15, S15, F14, S14, F13, S13, F12, S12, F11, S11, F10, S10, F09, S09, F08, S08, F07
|Description||A technical introduction to the fundamentals of programming with an emphasis on producing clear, robust, and reasonably efficient code using top-down design, informal analysis, and effective testing and debugging. Starting from first principles, we will cover a large subset of the Python programming language, including its standard libraries and programming paradigms. We will also target numerous deployment scenarios, including standalone programs, shell scripts, and web-based applications. This course assumes no prior programming experience. Even so, it is a fast-paced and rigorous preparation for 15-122. Students seeking a more gentle introduction to computer science should consider first taking 15-110. NOTE: students must achieve a C or better in order to use this course to satisfy the pre-requisite for any subsequent Computer Science course.|
At the end of the course, students should be able to:
|See the topic list and schedule here (includes schedule, notes, video mini-lectures, homeworks, quizzes, and tests).|
Note: All office hours are virtual this semester.
Instructor Open Office Hours:
David and Mike will also provide several hours per week each for short private meetings. These will generally be 15-20 minutes long, though longer meetings may be arranged as needed at faculty discretion. You may sign up for up to one private meeting per week as space allows. Sign-up links will be in the 112 Zoom links spreadsheet.
TA Office Hours:
Piazza Virtual Office Hours:
Student Academic Success Center (formerly known as Academic Development) Tutoring:
15-112 can be an intense course, but it becomes much more manageable if you use the course resources well.
These resources include:
Required Textbook: None! But you may find these extra resources helpful:
|Every required software package we use is available for free on the web. This includes:|
|Participation with earnest effort in this course is required and consists of the following activities:
Responsiveness is required. You need to monitor your andrew email and respond to course-related emails promptly, preferably the same day and in any case within a few days.
Also, you must read all Piazza posts carefully. You are responsible for knowing this information, including any changes or additions to policies, deadlines, etc.
Important Note: failure to satisfy these course requirements will result in deductions in your semester grade, up to and including course failure, at the sole discretion of the course faculty.
Midsemester and Semester grades will be assigned using a standard scale, as will each homework, quiz, midterm, term project, and final, as such:
A: 90 - 100
B: 80 - 89
C: 70 - 79
D: 60 - 69
R: 0 - 59
Note that graduate students will be assigned +'s and -'s according to the following scale (generalized across letter grades):
The course instructors may choose to change the scales at their discretion. You are guaranteed that your letter grade will never be lowered as a result of changing scales.
Semester Grade Cap Policy
In all cases, your semester grade is capped at 15 points above the highest score you receive on the course's proctored events -- that is, on your semester quiz average, on midterm1, midterm2, or on the final exam. For example, if your raw semester average is 83, but your highest proctored score is a 57, then your semester score is capped at 72 and you would receive a C as your semester grade.
Alternate Minimum Grading (AMG) Policy
This AMG policy is available to everybody, but is designed specifically for those students who struggle in the first part of the course and then through sustained hard work and dedication manage to elevate their performance in the latter part of the course to a level that merits passing with a C, even if their Standard Grade might be lower than that.
In addition to Standard Grading as described above, we will separately compute your grade using an Alternate Minimum Grading (AMG). Students do not sign up for AMG. Every student will be considered both for Standard Grading and AMG, and their semester grade will be the higher of the two (where the highest grade via AMG is a C).
Your AMG grade is the smaller of your final exam grade and your tp3 (term project) grade, capped at 70. Or, in Python, like so:
amgGrade = min(final, tp3, 70)AMG eligibility depends on demonstrating sustained effort. To qualify for AMG you must meet the course requirements in the previous section. Also:
Solo homeworks are generally due Saturday at 8pm Pittsburgh-time. Homeworks are entirely solo. See the "Academic Integrity" section below for more details. That said, you always have access to extensive help provided by the TA's and course faculty.
It is absolutely critical that you read all instructions for every assignment! While similar, these instructions will change from week to week. If you lose points for not following instructions, you cannot get them back by telling us you didn't see them. We'll point you right back here.
"Bonus" or "Extra Credit" questions are meant to be very challenging. These questions are typically worth very few points, and should be attempted only for the sake of challenging yourself further.
Some assignments may give you a choice between regular problems or "spicy" problems, which are more challenging but (hopefully) very interesting. The assignment instructions will describe which problems you need to do to get 100, but note that (except for questions labeled "Bonus" or "Extra Credit") solving additional spicy/non-spicy problems after you have earned 100 points will not benefit your grade, though you may find the extra practice useful. (So if you solve non-bonus problems worth 110 points, your base score is 100. A 3 point bonus would bring you to 103.)
Programming assignments will be graded based on style (modularity, effective use of data abstraction, readability, commenting, etc.) and functionality (correctness and efficiency of the program on all possible test inputs). Your code should be properly annotated with comments that are well-placed, concise, and informative. Your assignments will be graded by TA's, by automated graders, and at times by the course faculty.
The Term Project will be the last major course activity of the semester. You will design and build a program of your choosing with the guidance of a mentor TA. More information can be found in the Term Project Assignment writeup.
Quizzes will be given most weeks, generally in lecture on Tuesday. Quizzes generally focus on material from the previous week and the previous homework, though any prior material may appear as well.
There will be 2 midterm exams, weighted as indicated above, given in class as noted in the course schedule.
There will be a final exam, weighted as indicated above, during the university-assigned final exam period at the end of the semester. Note that the final exam is optional this semester. Specifically, we will provide a poll that must be completed by all students soon after the last day of classes but before the final exam date, and students wishing to take the final must explicitly fill out the poll and indicate that they will opt-in to taking the final. Students who do not opt-in and submit this poll on time will not take the final, and instead will then have their weighted midterm average count as their final exam score. Students who do opt-in must then sit for the final exam, and whatever score they receive on the final exam counts, even if it is lower than their weighted midterm average (even if they skip the final and thus score 0 on it). Also note that students who do fill out the poll indicating that they do not opt-in, but then still sit for the final exam, will still have the final exam count as usual, though with a large deduction for not opting-in as required.
Quizzes and exams
(and possibly other activities) will be computer-proctored and generally administered in-lecture.
Do not attempt to access any assessments until instructed. Assessments will include specific procedures for you to follow. In addition:
This testing protocol is subject to change. Any instructions given by the faculty or the assessment itself will take precedence.
We begin by choosing to trust each of you individually. Do not be one of the few who loses that trust. If you cheat, expect to be caught, and expect significant consequences. Use common sense and understand these rules.
Generally, examples of academic integrity violations include but are not limited to:
Unless otherwise noted, all homework exercises are solo, meaning that you must not collaborate with anyone in any way. Remember: you always have access to extensive help provided by the TA's and course faculty. We strongly encourage you to use this support!
The term project writeup will allow for certain kinds of productive collaboration. Still, you will only be graded on your truly original contributions. Missing, inaccurate, or misleading citations on any assignment or deliverable may result in an academic integrity violation, regardless of intent.
Assessments (Quizzes and Exams):
Examples of cheating on assessments (Quizzes and Exams) include but are not limited to:
If you are repeating 112, your prior work in this course is treated just as anyone else's work. Consulting or copying your prior homework answers or term project solutions will only hurt your learning, and will be treated as a cheating violation.
Programs are naturally structured, which makes them very easy to compare. Here is a short video demonstrating one of several automated detection methods we use on every assignment. In short: if you copy (or even reference code), including work from prior semesters, we will be able to tell.
Course penalties are decided by the course faculty, and vary based on the severity of the offense. Offenses can be severe even if the assignment/assessment is worth very few points (for example, cheating during a quiz). Possible penalties include:
These rules are meant to convey the spirit of our academic integrity expectations. For example, when we say "do not copy" we always mean visually, verbally, electronically, or in any other way, even if you copy and modify it. We additionally expect you to uphold CMU's more general academic integrity standards. Attempting to exploit technicalities simply reduces our assurance that you fully learned from the mistake. If you are unsure of something, you only need to ask us beforehand. If you do this and strive to understand the intent of this policy and exercise common sense, you have nothing to worry about.
To end this section on a more positive note, you should know that we put a high premium on honesty. If you get into an Academic Integrity situation, then the sooner and more completely you tell the entire truth, by far the better it is for you and for everyone else involved. The bottom line: If you regret a lapse in judgment, it is always better to let us know right away, to come clean and be honest and truthful. You will feel better about it, as will we, and it will probably result in a better outcome for you as well.
Here is this semester's
Extension Request Form.
That said, in general, due to the scale of the class, we cannot give individual extensions on assignments or assessments.
However, there are a few exceptions:
In general, all solo homework is due at the assigned date and time.
However, we understand that life can sometimes get in the way. Therefore, we provide 2 Grace Days for homework assignments. These can be used to submit solo homeworks up to 24 hours late with no penalty.
You may only use one grace day per homework.
You do not submit a request to use a Grace Day -- you simply submit
your homework after the posted deadline, and autolab automatically
counts that as a Grace Day if one is available for you.
We strongly urge you not to use these grace days immediately; try to save them for unforeseen events. Note that grace days may only be used on solo homeworks, and may not be used on quizzes, the term project, or exams.
Important note: if you are out of grace days, then any late submissions to Autolab will receive 0 points.
Additionally, no late/make-up quizzes or exams will be administered, except in the cases covered under the Extensions policy. Approved missed quizzes will be excused; approved missed exams will be taken at the earliest possible date as approved by course faculty.
|Regrade Requests:||We occasionally make mistakes while grading (we're only human!). If you believe that you found a mistake which you would like us to correct, please submit a regrade request using this form. Regrades must be requested within three weeks of the time when the contested grade was released. Note: regrade requests will result in the entire problem being regraded, not just the possibly-incorrectly-graded part.|
|Formatting Errors:||Misformatted homework in general cannot be graded by our autograder, and as such may receive penalties, which can range from -5% to not being accepted at all. Therefore, be sure to submit your homework early (you can submit repeatedly, we only grade the last submission) to be sure you do not have obvious formatting errors. Errors can be detected by checking your Autolab grade and feedback a few seconds after submitting.|
|Recording:||Students may not record audio or video of lectures or recitations or any other faculty-led or TA-led course events without explicit permission in writing from the instructor or the TA in the instructor's absence. Exceptions will be granted in accordance with university guidelines for accessibility concerns, but even then such recordings may not be shared publicly or privately.|
|We gladly accommodate students with disability-related needs (as approved by the Office of Disability Resources (ODR), as explained here). If you are eligible for accommodations, please ensure that the Office of Disability Resources has sent us your Summary of Accommodations Memorandum within the first week or two of class. We will contact you within a few days of receiving this form with any relevant instructions for using your accommodations in 15-112.
At the guidance of the University, we can only provide disability-related accommodations which have been explicitly approved by ODR and are on the most recent Summary of Accommodations Memorandum we have received. If you require accommodations that have not been approved by ODR, you should contact them as soon as possible. Also according to University guidance, we cannot retroactively apply your accommodations if we receive them from ODR later in the semester (for example, a modification on an assignment due before we received official approval of your accommodations).
Extended Time: students who receive Office of Disability Resources (ODR) approved extended-time on assessments will be accommodated by the 15-112 staff. Due to the current pandemic and remote-learning situation, it is unlikely that you will be able to schedule extra-time assessments directly through ODR. Instead, the course faculty will email you with instructions for scheduling your assessments upon receipt of your memorandum. In order to meet the logistical challenges of additional proctoring, we ask that you schedule extra-time assessments with us at least five days in advance. Extra-time assessments must take place on the same day as the in-class assessment unless otherwise approved by the course faculty.
Important: to use extra-time, you must sign up for and attend the extra-time quiz or exam time, and not the normal-duration quiz or exam. You do have the option of attending the normal-duration quiz or exam, but then you will have to complete it in the assigned time (without extra-time). If you are attending lecture during a normal-duration quiz when you plan to take the extended-time quiz, you may either exit the lecture and rejoin once the normal quiz time is done, or you may ask to be placed in a breakout room with anyone else who (for any reason) is not taking the quiz.
We are here to help. If you have any questions or concerns relating to 15-112 and how we can best accommodate you during this unusual semester, please contact the course faculty and we will work together for your success.
|Auditing:||We have found that students who audit 15-112 do not tend to succeed, as they generally cannot dedicate the requisite time and focused discipline to the course. Therefore, auditing will only be allowed in exceptional circumstances, and must be approved by the course instructors first. Rather than auditing, in some cases you may take the course as Pass/Fail instead. This still is not ideal basically for the same reasons, but history suggests that it is a better option in some cases (say, for graduate students who want to learn how to program but already have an over-full load of graduate courses). Note: you may not take the course Pass/Fail if you plan to use 15-112 as a prereq.|
|Waitlist:||If you are on the waitlist, don't panic! Most waitlisted students get into the course eventually. Just be sure to fully participate from day one as though you were enrolled. Attend lecture and recitation, submit the assignments, and stay involved. If you are still not enrolled at the beginning of the third week, contact the course instructors and they will help you find a section with open seats.|
|Diversity:||It is our intent that students from all diverse backgrounds and perspectives be well-served by this course, that students' learning needs be addressed both in and out of class, and that the diversity that students bring to this class be viewed as a resource, strength and benefit. It is our intent to present materials and activities that are respectful of diversity: gender, sexuality, disability, age, socioeconomic status, ethnicity, race, and culture. Your suggestions are encouraged and appreciated. Please let us know ways to improve the effectiveness of the course for you personally or for other students or student groups. In addition, if any of our class meetings conflict with your religious events, please let us know so that we can make arrangements for you.|
We care very much about your well-being and
happiness. Yes, CMU students (and faculty) work hard, sometimes very hard.
But we must keep our balance and always attend to our well-being and happiness.
That comes first, academics follow. So be sure to get enough sleep, eat
right, exercise regularly, and attend to your well-being and happiness.
Here is a list of ideas that might help.
Also, please know that we do care about you and take your well-being seriously. We want to help you learn while minimizing stress. Towards this end, we are working to reduce the workload of the course as much as is possible, while still meeting the learning goals of the course. If you have any ideas or feedback towards reducing the workload or student stress, or improving the course in general, please let us know!
Finally, if you are feeling overly stressed, or anxious, or unhappy about your performance or your general experience in this course: please come talk to us. We will listen. We are here for you and we will try to help.
Addendum: Here is a great summary of many CMU Student Support Services.