CMU 15-112: Syllabus
Fall 2019

   
Previous
Versions:
Previous versions of 15-112/15-110/15-100:
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.
Learning Objectives At the end of the course, students should be able to:
  • Write clear, robust, and efficient code in Python using:
    • sequential, conditional, and loop statements
    • strings, lists, tuples, sets, and dictionaries
    • objects and classes
    • recursive approaches
    • graphics and interaction
  • Develop programs to effectively solve medium-sized tasks by:
    • employing modular, top-down design in program construction
    • demonstrating an effective programming style based on established standards, practices, and guidelines
    • proactively creating and writing test cases to test and debug code
    • applying computational problem-solving skills to new problems, especially in the student's home academic discipline
    • explaining and analyzing the efficiency of algorithms, particularly by predicting the Big-O running time of small pieces of code
  • Design and write a substantial (500-1500 line) program in Python with minimal guidance
Topic List
and Schedule
See the topic list and schedule here (includes schedule, notes, video mini-lectures, homeworks, quizzes, and tests).
Office Hours:

Instructor Office Hours:
     David Kosbie (koz): GHC 5001, Tue/Thu 12:30pm to 2:30pm
     Mike Taylor (mdtaylor): GHC 4126, Wed/Fri, 12:30pm to 2:30pm

Head TA Office Hours:
     Austin Schick (aschick) and Kyle Chin (kdchin): by appointment

Associate Head TA Office Hours:
     Kyra Balenzano (kbalenza) and Sarah Wenger (swenger): by appointment

TA Office Hours (Until Midterm2 / Before TP Season):

Mon Tue Wed Thu Fri Sat Sun
5-8pm 6-8pm 6-10pm 6-10pm 6-9pm 2-8pm 2-5pm
GHC 5th Floor Teaching Commons (and/or nearby clusters)

TA Office Hours (After Midterm2 / During TP Season):
Mon Tue Wed Thu Fri Sat Sun
5-8pm 6-9pm 5-8pm 6-9pm 5-8pm 12-6pm 12-6pm
GHC 5th Floor Teaching Commons (and/or nearby clusters)

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.

Large-Group Sessions:
Quiz Review HW Solution Session Content Review Advanced Topic Lecture Advanced Topic Reprise
Sun 8-9:30pm Mon 8-9:30pm Tue 7-8:30pm Thu 6:30-8:30pm Fri 4:30-6:30pm
HOA 160* DH 2315 POS 153 POS 153 WEH 5421
*To find HOA 160: go in the front entrance to Posner and up the stairs, pass the 15(x) classrooms, turn right at the construction, and go down the hall until you see HOA 160 on the right. It's a big room with chalkboards!

Small-Group Sessions:
     Scheduled weekly by recitation TA's.

Homework Booster Sessions:
Time Room Notes
Fri 7:00pm - 9:00pmHOA 160For those with approved Sat. conflicts only
Sat 11:00am - 1:00pmPOS 152
Sat 1:00pm - 3:00pmPOS 152
Sun 12:00pm - 2:00pmPOS 151For those using extensions/grace days only

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.
  • Donner Reading Room: TBD
  • Mudge Reading Room: TBD
Schedule
of Classes:
(*): Friday Writing Sessions:
Wednesday recitations meet in the rooms listed below. All Friday writing sessions, however, meet in the Gates 5th floor clusters. You are required to attend during your scheduled time, but may attend in any of the three cluster rooms unless directed otherwise by faculty or staff.

  Days Lecturer / TA's Time Room
Lecture 1 TR David Kosbie (koz) 10:30am - 11:50am DH 2210
    Section A W/F* Katherine (katheriy) and Ryan L. (ryanliu) and Maya (mvkrishn) 9:30am - 10:20am WEH 4709
    Section B W/F* Christina (cdi) and Vivian (viviansu) and Prithvi (pokade) 10:30am - 11:20am DH 2122
    Section C W/F* Elena (eswecker) and Andrew (andrewh1) and Skylar (skylarm) 11:30am - 12:20pm DH 2105
    Section D W/F* AJ (adruck) and Amelia (zkuang) and David (kachunc) 12:30pm - 1:20pm WEH 5302
    Section E W/F* Joyce (joycewu) and Evan T. (eftippin) and Young (youngwo1) 1:30pm - 2:20pm SH 222
    Section F W/F* Jenny (jifengy) and Cheryl (cherylc) and Niki (nmurikin) 2:30pm - 3:20pm PH A18A
    Section G W/F* Esther (estherj) and Evan Z. (ezeng) and Grace C. (gcui) 3:30pm - 4:20pm WEH 5302
    Section H W/F* Ryan S. (rastentz) and Dom (djohnsto) and Omisa (ojinsi) 4:30pm - 5:20pm WEH 5320
    Section I/R W/F* Udit (uar) and Mira (mmookerj) and Yeolanda (sidaih) 5:30pm - 6:20pm SH 214
Lecture 2 TR Mike Taylor (mdtaylor) 3:00pm - 4:20pm DH 2210
    Section J W/F* Christine (christi4) and Nathan (njlove) 9:30am - 10:20am PH A22
    Section K W/F* Mina (mnowrooz) and Asad (asadalis) and Ping-Ya (pingyac) 10:30am - 11:20am WEH 5310
    Section L W/F* Z (zaq) and Grace K. (haeunk) 11:30am - 12:20pm WEH 5310
    Section M W/F* Edward (elucero) and David (kachunc) 12:30pm - 1:20pm DH 2105
    Section N W/F* Matt (ymkong) and Dina (drazek) 1:30pm - 2:20pm PH 126A
    Section O W/F* Gabriela (gtellez) and Zixin (zsha) 2:30pm - 3:20pm DH 2105
    Section P W/F* Katja (kbrackel) and Mihika (mbairath) 3:30pm - 4:20pm DH 2122
    Section Q W/F* Lisanne (ldegroot) and Jesse (jessec1) 4:30pm - 5:20pm WEH 5312
    Section R W/F* See Section I/R above 5:30pm - 6:20pm
Course
Resources:
15-112 can be an intense course, but it becomes much more manageable if you use the course resources well. These resources include:
  • Course Notes: The course notes (on the schedule page) are full of useful information and examples that can help you approach the assignments! When you don't understand a concept, try reading the notes and watching the associated videos first.
  • TA and Faculty Office Hours: Office hours let you ask questions to TA's and professors directly, and can help you understand concepts and debug programs that you're struggling with alone. Past students swear by office hours as the resource that most helped them pass the course! You can even hang out at office hours if you don't already have a question! When you do have a question, make sure to be prepared to ask it as efficiently as possible- during busy hours, to provide the fairest help to the most students, TA's can only spend five minutes with each student.
  • OH Queue: Use the OH Queue to sign up for help at TA's office hours!.
  • Piazza: Piazza can be used to ask quick questions and receive quick responses without attending office hours in person. Questions on Piazza should be specific and include all needed information (so if your code has an error you don't understand, include the code and the error message). Note that we do not make student posts on Piazza public; please only post private questions to the instructors.
  • Large-Group Sessions: TA's run large-group sessions to provide more structured review for quizzes and lecture material. These are offered weekly at a regular time (see schedule above) and include:
    • Content / Lecture Reviews on Tuesdays
    • Optional Advanced Topic Lectures on Thursdays
    • HW Booster Sessions on Fridays and Saturdays
    • Quiz Reviews on Sundays
    • HW Solution Sessions on Mondays
  • Small-Group Sessions: Recitation TA's offer small-group sessions to go over personalized material with groups of 2-6 students. These sessions are excellent for students who are struggling and need more individual attention. Contact your recitation TA's for details or to sign up.
  • Tutoring: Academic Development offers walk-in tutoring for 15-112. This is a good resource for students who want one-on-one tutoring outside of the course.
External
Resources:
Required
Software:
Every required software package we use is available for free on the web. This includes:
  • Python version 3.x (3.6 or later), which can be freely downloaded from python.org.
  • We may also use Brython, which is a version of Python that runs in web browsers.
  • We will also use one or more free IDE's (code editors) and other free software packages.
Course
Requirements:
Participation with earnest effort in this course is required and consists of the following activities:
  • Attending and participating in all the lectures, recitations, and labs.
  • Carefully reading the course notes and other assigned readings.
  • Thoughtfully completing the homework assignments and the term project with earnest effort.
  • Taking all the quizzes, midterms, and final.
Attendance is required (if not always strictly recorded). Repeated failure to attend lectures or recitations may result in a lowered semester grade regardless of your numeric average. You will be responsible for all materials presented in lectures and recitations. You should not expect that all lecture or recitation materials will be given to you in written form (including the online class notes we provide). Note that missed quizzes and exams may not be made up in general (though certain exceptions are permitted -- see the relevant sections below).

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.
Grading:
 Course Component   Weight   Notes 
Quizzes 10%Lowest quiz grade is half-weighted.
Homeworks 22.5%Lowest homework grade is half-weighted.
Writing Sessions 7.5%Lowest writing session grade is half-weighted.
Midterm Exams 20%Lowest midterm grade is half-weighted.
Term Project 20%
Final Exam 20%

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):
   B-: [80-83)
   B:  [83-87)
   B+: [87-90)

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:
 AMG CourseComponent  Weight 
Final Exam 40%
Best Midterm Exam 20%
Best 5 Quizzes 10%
Best 5 Solo Homeworks 10%
Best 5 Writing Sessions 5%
Term Project 15%

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:
  • You cannot miss multiple lectures/recitations
  • You cannot miss multiple assignments or quizzes
  • You cannot violate the Collaboration Policy
Assigned
Work:
Writing Sessions:
Writing Session exercises are released no later than Tuesdays before lecture. These exercises are designed to help you learn the current week's material well, so that you have a solid foundation heading into the solo homework. You may work collaboratively on these exercises. There is nothing to submit, either. Instead, you will sit for a timed and proctored Writing Session in your assigned lab on Friday. In this time, you will solve a selected subset of the assigned exercises (or similar exercises) without access to any notes or other supports, though you will have access to a Python IDE and an autograder.

Homeworks:
Homeworks are released on Tuesdays before lecture and are due on Saturdays at 8pm. These can contain a mix of coding exercises (reading, debugging, and writing code) and written exercises. They generally assess the material taught the week they are released, and take several hours to complete. We strongly encourage you to start the homeworks early, as soon as you have mastered the material for the week'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.

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.

Term Project:
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.
Homework
Booster
Sessions:
15-112 is and will remain a rigorous and challenging course. However, we are always seeking ways for you to achieve rigor and excellence while minimizing your time-on-task and stress. To that end, we are providing optional HW Booster Sessions this semester.

The goal of a Hw Booster Session is to give you a boost, to help you converge towards understanding and completing the hw, but only after you have invested considerable time, energy, and earnest focused effort on the hw.

Hw Booster Session Structure:
  • Hw Booster Sessions are late in the hw cycle, mostly on Saturday, with a session on Friday for those who have reasonable conflicts with all the Saturday sessions. We will take a somewhat broader view of "reasonable" here than what would qualify for a homework extension, but still, we expect you to try to make a Saturday session if reasonably possible and we will review Friday session requests.
  • Part 1: Discussion
    For the first 30 minutes (or so) of each session, the TA's will discuss the hw exercises at a high level, providing very helpful hints. This may be enough help for some of you. Note: you may take handwritten notes during this discussion, though you may not use any electronic devices during any part of the Hw Booster Session.
  • Part 2: Detailed Help
    For the next 90 minutes (or so) of each session, the TA's will provide detailed help, including actually solving some or all of the exercises. Note: you absolutely may not take any notes (handwritten or otherwise) during this part. This way, you still have to understand the presented solutions well enough to recreate them yourself afterwards.
To attend a Hw Booster Session:
  • You must first invest at least 4 hours of earnest focused effort on the hw. In addition, you must make at least one submission to Autolab that demonstrates thoughtful work on each problem prior to the start of the session. This can include working code, non-working code, or if need be just thoughtful comments describing your approach, things you've tried, or questions you have, etc. The professors and TA's may audit these initial submissions from time to time, and your 4 hours of focused effort must be evident in your code and comments.
    • Note: claiming you did 4 hours of earnest focused effort (or attending a Hw Booster Session, which implicitly makes that claim) without in fact doing so is a major Academic Integrity violation. Please be honest and give the hw your thoughtful time first. It's the only way you will learn this material well.
  • You should sign up using an online form. Space is limited, and only students with a reservation are guaranteed to have a seat. Walk-ins are allowed, but not until 5 minutes before the start of the session, and only if a seat is available (no standing-room-only).
  • Check-in for students with reservations will begin 5 minutes before the start time for the session, or earlier if the room is open. Once all students with reservations are checked in, the TA's will begin checking in walk-ins. The session will start promptly at the scheduled time. Once the TA concludes check-ins, you may no longer enter. This is strictly enforced with no exceptions, as we cannot pause the session to check you in.
  • You must bring your physical plastic andrew ID card, and you must present it to the TA as you enter. No exceptions.
  • You must not have attended another Hw Booster Session for that hw. You can attend at most one Hw Booster Session per week.
  • Note: If you sign up for a booster session seat and cannot attend, you must cancel your reservation one hour (or more) prior to the start time or you will be disallowed from making future reservations (though you could still attend as a walk-in, if space is available).
While attending a Hw Booster Session:
  • You must not use electronics at all during any part of the Hw Booster Session. Using a phone or laptop during a Hw Booster Session, if even just briefly, is an Academic Integrity violation.
  • You must not electronically record or take pictures of anything (which of course would be impossible anyhow since you may not use electronics).
  • You may take handwritten notes in part1.
  • You may not take any notes (handwritten or otherwise) during the more detailed part2.
  • You may leave at any time (while minimizing disruption, please), though you may not re-enter the session (except for a brief restroom break, if necessary).
Assessments: Quizzes:
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.

Midterm Tests:
There will be two midterm exams, weighted as indicated above, given in class as noted in the course schedule.

Final Exam:
There will be a standard 3-hour final exam, weighted as indicated above, during the final exam period at the end of the semester.
Academic
Integrity:
Homework:
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:
  • Discussing any part of the homework with anyone else (besides current 112 TA's and course faculty), no matter how briefly or casually.
  • Looking at any part of anyone else's solution, no matter how briefly or casually.
  • Showing anyone else any part of your solution, no matter how briefly or casually.
  • Asking any questions about the homework online anywhere except our own course piazza, or posting any part of the homework or any part of your solutions online in any way.
  • Attempting to 'hack' or decompile the autograder to produce your solutions or otherwise compromise the autograder's operation.
Homework Help:
Remember: you always have access to extensive help provided by the TA's and course faculty. We strongly encourage you to use this support!

Homework Booster Session:
Here are some cheating-related items for Hw Booster Sessions:
  • If you use electronics at all during a Hw Booster Session, no matter how briefly and no matter for what purpose, you will be assessed a 5-point / half-letter-grade penalty on your semester grade, and you will be disallowed from attending any future Hw Booster Sessions.
  • In addition, if you take any pictures or otherwise record any portion of a Hw Booster Session, then you will fail the course on the first offense.
  • Note: if you must use your phone for urgent communication, then you must first step outside the room to do so.
  • Also, if it comes to our attention that you willfully misreported working 4 hours on the hw before attending a Hw Booster Session, then you will fail the course on the first offense. Please do not do this!

Term Project:
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:
  • Referring to any external resources (phones, computers, websites, notes, books, etc) while completing the assessment.
  • Copying any part of an answer from another student's work, even if it is very small.
  • Taking any quiz/midterm/exam papers out of the assessment room, say to provide them to students who may take the assessment later.
  • Discussing any part of the assessment in any way with any student who may take that assessment (or one very similar) at a later time (say, in a later lecture or lab, or at the Office of Disability Resources (ODR)).
  • Continuing to work in any way on the assessment for any duration after the proctors announce the stop time.
Retaking Course / Reusing Prior Material:
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.

Plagiarism Detector:
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, we will be able to tell. Don't copy code!

Penalties:
Penalties are decided by the course faculty, and can vary based on the severity of the offense. Possible penalties include:
  • Receiving a 0 on the assignment/assessment.
  • Receiving a -100 on the assignment/assessment.
  • Receiving a full-letter-grade deduction in the course.
  • Automatically failing the course.
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.

Honesty:
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 may perhaps result in a better outcome for you as well.
Extensions: 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:
  • Medical Emergencies: if you are sick to the point that you cannot attend class or do work, go to Student Health Services! We encourage students who have short illnesses (such as food poisoning or the flu) to use their dropped attendance/quiz, but students who have prolonged medical emergencies may obtain extensions from the instructors with a note from Student Health Services.
  • Family/Personal Emergencies: if you are having a family or personal emergency (such as a death in the family or a mental health crisis), reach out to your academic advisor or housefellow immediately! They will help support you in your time of need, and will also reach out to all of your instructors (including 15-112 instructors) to request extensions for you.
  • University-Related Absences: if you are attending a university-approved or clearly university-related event off-campus (such as a multi-day athletic/academic trip organized by the university), you may request an extension for the duration of the trip. Note that we will consider most job interview trips to fall in this category. If possible, you must provide confirmation of your attendance, usually from a faculty or staff organizer of the event.
  • One-Time Multi-Day University-Related Event: if you are deeply involved in a event involving some university-related club or organization that you are in, where it will take nearly all of your time over multiple days, and this is a one-time deal for the semester, then we will consider granting an extension on that week's homework.
Please note that extensions must be requested before the assignment/assessment deadline. Additionally: if a religious day you observe conflicts with an assignment date, let the course instructors know in advance; we may be able to provide extensions or move assignment dates in some cases (though in general we urge you to start the assignment early instead).
Late Policy: 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.
Accomm-
odations:
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.
Well-being &
Happiness
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.