CMU 15-112: Syllabus
Previous versions of 15-112/15-110/15-100:
F19, S19, F18, S18, F17, S17, F16, S16, F15, S15, F14, S14, F13, S13, F12, M12, S12, F11, S11, F10, S10, F09, APEA-09, S09, F08, APEA-08, 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).|
Instructor Office Hours:
Piazza Virtual Office Hours:
Piazza is monitored by TA's daily at all (reasonable) hours of the day.
When posting on Piazza, remember to make your post private! Public posts by students are not allowed.
Scheduled weekly by recitation TA's.
Academic Development Walk-in Tutoring:
This is a great resource provided not by 15-112 but rather by Academic Development in support of 15-112.
We will attempt to keep this calendar current, however, you should always rely on Piazza for the most recent updates.
*Friday HW Recitation :
Some Friday recitations may be optional but will provide hints and suggestions for solving homework problems due the next day.
You are required to attend either your assigned Wednesday recitation or the Spicy recitation. The Spicy section will cover more advanced topics, and is meant to provide more of a challenge to students who are already very comfortable with the core material. You may also attend both!
15-112 can be an intense course, but it becomes much more manageable if you use the course resources well.
These resources include:
|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:
Any material covered in lecture, in recitation, in assigned readings, or in homework assignments may be included in any future homework assignment, quiz, or exam.
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 10 points above the highest score you receive on the course's proctored events -- that is, on your semester quiz average, on midterm1, on midterm2, or on the final exam. For example, if your raw semester average is 83, but your highest proctored score is a 65, then your semester score is capped at 75 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).
To compute your Alternate Minimum Grade, first use the following to compute your raw score:
Unlike the Standard Grade, effort is heavily factored into your AMG score. To qualify for AMG you must put forth sustained effort, which means meeting the following requirements:
Writing Session exercises are released with the rest of their unit on Thursdays. These exercises are designed to help you learn the current unit's material well, so that you have a solid foundation heading into the solo homework. You may work collaboratively on these exercises. You will sit for a timed and proctored Writing Session in your assigned lecture on the following Thursday (one week after the material is released). Within the allotted time, you will solve a selected subset of the assigned exercises (or similar exercises) without access to any notes or other supports, and you must use the 15-112 browser-based testing environment. This means you must bring a laptop to lecture with network connectivity and a full battery. (See below for information on in-class browser-based testing.)
Some units may require you to submit your practice solutions before the proctored writing session, so read all instructions carefully. While you may collaborate on writing session problems, we expect you to write and submit your practice solutions by yourself and without any external resources. This will best prepare you for the proctored event.
Homeworks are released with the rest of their unit on Thursdays and are due the next Saturday at 8pm (9 days later). These can contain a mix of coding exercises (reading, debugging, and writing code) and written exercises. They generally assess the material taught in their unit, and can require a significant time investment. We strongly encourage you to start the homeworks as soon as you have mastered the material for the unit's Writing Session.
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.
We are experimenting with different assignment formats, so it is absolutely critical that you read all instructions for every assignment! Based on feedback from prior semesters, we want to allow you to choose the 'spiciness' of your assignments, i.e. you may choose to solve larger, more challenging problems instead of multiple smaller problems that you may be less interested in, or you may choose many smaller problems to increase your understanding of core concepts if you do not feel ready for the larger, more complex ones. Each assignment may have special instructions, but here are some details:
We encourage you to do the spicy problems if you are able! When assigning final letter grades at the end of the semester, we will consider all edge cases, and we will be more likely to move you to the next letter if we see you have regularly completed the spicy problems. Completing more challenging problems will also increase your chances of being hired as a 112 TA!
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.
Optional HW review sessions will be held after the due date, on Sunday and Monday. These TA-led sessions will demonstrate the solutions to a selection of the homework problems, which will be useful if you struggled with the material or want to understand a potentially better solution to a tricky problem. Sessions 1 and 2 (at 6pm Sunday and Monday) will focus on mild and medium difficulty problems. Section 3 (at 8pm Monday) will focus on the challenging ("spicy") problems.
Anyone may attend HW review sessions, but you may not make additional submissions after you attend (i.e. you can't attend on Sunday and then use a grace day to make a new submission). If you do not score 100 on the homework (including the bonus), attending one of these sessions will return half of the point difference, for a maximum of 25 returned points. For example, if your homework score is a 60 and you attend one of these sessions, you will receive (100 - 60) / 2 = 20 points, which brings your score to 80. Or, if your homework score is a 10, attending the session will give you the maximum 25 points, bringing your score to a 35. (Note that you cannot get more points for attending multiple sessions.) In order to receive credit, you may not be late, you must stay for the entire duration (about 1.5 hours but this may vary slightly), you must pay attention, and you may not use or look at your laptop or your phone at any point unless explicitly instructed. If you are seen with either, you will be required to leave. Additionally, discussing or sharing solutions with anyone who has not submitted the assignment will be treated as a serious academic integrity violation.
The Term Project will take place over three weeks at the end 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 for most units, generally in lecture on Tuesday. Quizzes generally focus on material from the previous unit and the previous homework, though any prior material may appear as well. Some quizzes may have a paper portion to be completed first, but most problems will be given in the browser-based testing environment if possible.
There will be two midterm exams, weighted as indicated above, given in class as noted in the course schedule.
There will be a standard 3-hour final exam, weighted as indicated above, during the final exam period at the end of the semester.
Quizzes and writing sessions (and possibly other activities) will be computer-based and administered in-class. This means it is your responsibility to bring a working laptop with a fully-charged battery and a working wifi connection to each lecture. Your laptop must have the Chrome browser installed and must be able to run on battery for at least one hour (but ideally two or three). If you do not have regular access to a laptop, you must email the professors at least 24 hours before the assessment and we will determine an appropriate accommodation.
Do not attempt to access any assessments until instructed. Once you begin the assessment, obey the following rules:
If we determine that you are deliberately attempting to access something outside of the testing environment, we will treat this as an academic integrity violation.
If you forget, lose, or break your laptop or you realize before you begin that it will not last until the end of the assessment, you may opt to make up the assessment in office hours later that same day, but you may only do this once across the entire semester. Otherwise, you may opt to take a paper version of the assessment. Bear in mind that taking the assessment on paper may put you at a significant disadvantage, however, because you will not be able to run your code. You will have to check for errors and ensure that your code passes the test cases by hand. Your code will be graded just as rigorously, so it is much better to write it in the testing environment. Also, if you begin taking the assessment and your computer runs out of batteries or otherwise becomes unusable, you will be given the paper version and will need to complete all unsubmitted problems within the time limit.
This testing protocol is new for this semester, and subject to change. Any instructions given by the faculty or the assessment itself will take precedence.
Unless otherwise noted, all homework exercises are solo, meaning that you must not collaborate with anyone in any way. Examples of cheating on homework include:
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 has its own policy, allowing for certain kids of productive collaboration basically so long as it is carefully and properly cited and otherwise follows the rules as clearly described in the term project writeup. Still, you will only be graded on your original contributions, and those must be truly and entirely yours.
Assessments (Writing Sessions, Quizzes, and Exams):
Examples of cheating on assessments (Writing Sessions, Quizzes, and Exams) include:
If you are repeating 112, your prior work in this course is treated just as anyone else's work -- that is, you may not consult it. This is to promote the best possible learning, and using your prior homework answers or term project solutions will only hurt in that regard, and so is entirely disallowed. This will be treated as a cheating violation.
Programs are naturally structured, which makes them much easier to compare than handwritten work or typed essays. We run an automated plagiarism detection system on all assignments to detect copied code. Here is a short video demonstrating one of several detection methods we use. In short: if you copy code, including work from prior semesters, we will be able to tell. Don't copy code!
Penalties are decided by the course faculty, and can vary based on the severity of the offense. Possible penalties include:
An assignment or assessment that has received a penalty is not eligible to be half-weighted or dropped. Penalties may also be accompanied by a letter to the Dean of Student Affairs, again at the faculty's discretion. This can lead to additional university-level penalties, such as being suspended or expelled.
To end this section on a more positive note, you should know that we put a high premium on honesty. Of course, it's by far the best to always be honest and not have an Academic Integrity violation in the first place. That said, if you do 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 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 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 grade 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 homeworks, and may not be used on writing sessions, quizzes, 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 writing sessions, quizzes, or exams will be administered, except in the cases covered under the Extensions policy. Approved missed quizzes will be excused; approved missed writing sessions or 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.|
|Electronics:||Research has shown that devices can greatly detract from student learning. Therefore, unless otherwise noted or without explicit permission from the instructors or TA's, students may not use phones, laptops, or other electronic devices in lecture, recitation, lab, or any other faculty-led or TA-led course events. You may still take notes during lecture, of course, but do so with pen and paper. This policy is meant to help all students focus, as electronic devices are distracting not only for the user, but also for the students surrounding them.|
|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 special needs (as approved by the Office of Disability Resources (ODR), as explained here). If you are eligible for accommodations, please deliver the appropriate form to the instructors in the first two weeks of the semester. If you need to acquire the form, contact Catherine Getchell, Director of Disability Resources.
Extended Time: students who receive Office of Disability Resources (ODR) approved extended-time on assessments will need to request proctoring from the ODR for each quiz and exam. The course instructors will send you a list of examination days at the beginning of the semester so that you can request proctoring in bulk. Extra-time assessments must take place on the same day as the in-class assessment.
Important: to use extended-time, you must attend the Office of Disability Resources (ODR) proctored quiz or exam 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 extended-time). If you are in lecture during a normal-duration quiz when you plan to take the extended-time quiz, you may remain in the room and work quietly on other materials (without electronics), or you may leave the room for the duration of the quiz.
|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.|
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.