CMU 15-112: Syllabus
Summer 2021 (N21)

   
Online
Learning
15-112 will be taught entirely online this summer. While most of us have experienced online learning already, please bear this in mind:
  • We are fully committed to giving you a world-class learning experience, worthy of CMU's proud tradition, and worthy of your considerable time and financial investment.
  • We are also fully committed to your health, well-being, and happiness, understanding all the challenges we face this semester.
  • Our general philosophy for both of these goals is to rely on people rather than technology. We are all in this together, and we will thrive as a supportive learning community. You are never alone, not even when working on "solo" assignments. You always have many, many people who are here for you.
  • These times also call for flexibility on everyone's part. We ask you to please be creative in how you adapt to these challenges. We assure you that we will be as well. We stand ready to change any course policies should we feel that you would benefit from those changes.

Time
Zone
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
Previous versions of 15-112/15-110/15-100:
S21, 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

Previous Summers:
M20, N19, M19, N18, M18, M12, APEA-09, APEA-08
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
  • Design and write a substantial 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).
Schedule
of Classes:
Important notes:
  • Use Autolab's Roster: Check Autolab (and not SIO) to confirm your assigned lecture and recitation times.
  • Lecture Attendance: You must attend your assigned lecture live. If you cannot do so, contact the course instructors (Sara/Mike) and we will consider a one-time request to attend a different lecture on the same day or perhaps to view a recording of a lecture. These require instructor permission in email prior to your assigned lecture.
  • Recitation Attendance: You must attend your assigned recitation live. If you must miss a recitation, you should email your recitation TA's beforehand to inform them of the situation, and then you should attend another recitation that same day. Please try to minimize this.
Lectures:
  Days Lecturers Time
Lecture 1 M/Tu/W/Th/F Mike Taylor (mdtaylor) 9:00am - 10:20am
Lecture 2 M/Tu/W/Th/F Sara Liang (saralian) 12:00pm - 1:20pm

Recitations:
   Days TAs Time
    Section A M/Tu/W/Th/F Nancy (nancykua) and Jia (runjiap) 2:00pm - 2:50pm
    Section B M/Tu/W/Th/F Joyce (btruong) and Saumya (ssbhanda) 2:00pm - 2:50pm
    Section C M/Tu/W/Th/F Aaron (aaronto) and Adi (akambham) 3:40pm - 4:30pm
    Section D M/Tu/W/Th/F Sidney (sidneyw) and Jason (jstentz) 5:10pm - 6:00pm
    Section E M/Tu/W/Th/F Alexis (aaxon) and Nicole (xinyixia) 5:10pm - 6:00pm
    Section F M/Tu/W/Th/F Rebecca (rmanley) and Zoe (zrudnick) 5:10pm - 6:00pm
    Section G M/Tu/W/Th/F Joe (jritze) and Keren (kerenh) 5:10pm - 6:00pm
    Section H M/Tu/W/Th/F Adhvik (akanagal) and Arjan (abedi) 10:00pm - 10:50pm
    Section I M/Tu/W/Th/F Alex (alexx) and Kaajal (kaajalg) 10:00pm - 10:50pm


Office Hours
and More
Read the section after this for a detailed explanation of each resource!
Note: All 15-112 events are virtual this semester.

Instructor Open Office Hours:
  • These are zoom meetings with no breakout rooms and no private discussions.
  • You can find the link to these events in the 112 Zoom links spreadsheet.
  • Times:
    • Mike Taylor (mdtaylor): Mon/Wed/Fri, 2pm to 3pm
    • Sara Liang (saralian): Tue/Thu, 2pm to 3pm
Instructor Private Meetings:
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, unless given Mike's explicit permission. Sign-up links will be in the 112 Zoom links spreadsheet.

TA Office Hours:
Mon Tue Wed Thu Fri Sat Sun
9pm-10pm 9pm-10pm 9pm-10pm 9pm-10pm 9pm-10pm 11am-12pm 11am-12pm

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:
  • All of these sessions are recorded and available on Panopto, but we encourage you to attend in person if possible. (For example, some informal discussions in the advanced lectures might not be recorded.)
  • Schedule:
    Wed 8:00pm-9:00pmQuiz Retakes
    Thu 8:00pm-9:00pmQuiz Solutions
    Sat 8:00pm-9:30pmQuiz Prep
    M-F 6:30pm-7:20pmSpicy Recitations
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.

  • Recitation TA HW/Study Sessions: Your recitation TA's will offer extra study sessions, providing extra support for you as you complete homework and study for quizzes. These will be the best place to get hands-on homework help! We expect the best way to spend the least time on homework will be to attend these very frequently. Please note that some of these sessions may be required. When your TA asks you for times when you are available, please be flexible and list all of the times, not just two or three that you would prefer.

  • General TA Office Hours: Office hours let you ask questions to a TA directly, and they can help you understand concepts and debug programs that you're struggling with alone. During TA OH, use the OH Queue to sign up for help! OH Queue is used only for TA office hours. (TBD: More OH instructions to follow!) When you join the queue, please prepare to ask your question as efficiently as possible. During busy TA OH, to provide the fairest help to the most students, TA's can only spend five minutes with each student.

  • Instructor Open Office Hours: During these open OH, you can ask questions about anything, or just listen in and maybe pick up some neat stories. These are open OH, so they are not private. Thus, you should not ask/discuss/share anything which should be private (like hw answers), or anything which you would not want others to hear. For specific homework and debugging help, pleae attend your TA's study sessions and/or use Piazza and OH instead so that we can include everyone in the discussion. We expect these will be fun and collaborative, and will help us all get to know each other! As with all course-related zoom meetings, you can find the link to these events in the 112 Zoom links spreadsheet.

  • Instructor Private Meetings: Mike will also provide 3+ hours per week each for short private meetings. These are for relatively quick questions or discussions. At faculty discretion, we may schedule a longer follow-on private meeting as appropriate. You may sign up for up to one private meeting slot (usually about 10-20 minutes) per week as space allows. Unless we have already met privately in the last week, you do not need explicit permission to sign up! Sign-up links will be in the 112 Forms page. When it is time for your meeting, look for the Private Meetings link on that same page. You will go to a waiting room, and we'll admit you as soon as we can. Please be punctual and do not join if you have not reserved that time. So that we can spread our time as fairly as possible, please keep this in mind:
    • Do not sign up for more than 1 meeting every 7 days without permission from the instructor (faculty may arrange more time if needed).
    • We are always available by email -- which may get you a faster response without consuming limited meeting time.
    • Also, we prefer most matters to be discussed in our general open office hours. These private meetings are specifically and only for issues that are not appropriate for that open OH format nor for email.
    • These meetings are not for help on the currently-assigned homework (go to TA OH for that).
    • Do not miss these meetings (or you may lose access to them). Also, if you show up late, the meeting still ends on time.
    • Don't be shy about signing up! These rules are just to dissuade anyone from hoarding meeting slots.

  • Piazza: Piazza can be used to ask quick questions and receive quick responses without attending live office hours. Questions on Piazza should be specific and include all needed information (so if your code has an error you don't understand, include the relevant part of the code and the error message). We do not allow public posts from students on Piazza; please only post private questions, and please address your posts to "Instructors" so that any TA can help you. (If you have a question just for Sara or Mike, please use email instead.)

  • Large-Group Sessions: TA's run large-group sessions to provide more structured review for quizzes and lecture material. Some are offered weekly at a regular time (see schedule above), while others may be one-time events. These may include:
    • Optional/Advanced Lectures
    • HW Solution Sessions
    • Quiz Reviews
    Note: As of Week 1, we do not have HW solution sessions regularly scheduled. If in the future we decide to offer HW solution sessions, you may not turn in an assignment after attending/watching any part of its solution session, even with an extension or grace day. Doing so will be considered an academic integrity violation.

  • Spicy Recitation: The optional spicy recitation 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 are still required to attend your normal assigned recitation. The Spicy Recitations are purely additional and optional, to be attended for the joy of learning!
  • Tutoring: Student Academic Success Center (formerly known as Academic Development) offers tutoring for 15-112. This is a good resource for students who want one-on-one tutoring outside of the course.
External
Resources:
Required Textbook: None! But you may find these extra resources helpful:
Required
Software:
Every required software package we use is available for free on the web. This includes:
  • Python version 3.x (3.7 or later), which can be freely downloaded from python.org.
  • We will also use the 15-112 Web IDE, built using Brython, which is a version of Python that runs in web browsers.
  • We may 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 required events.
  • Carefully reading the course notes and other assigned readings.
  • Thoughtfully completing the homework assignments, and the term project with earnest effort.
  • Taking all the required quizzes and exams.
Attendance is required (if not always strictly recorded). You will be responsible for all materials presented in lectures and recitations. Note that missed quizzes and exams may not be made up in general (though certain exceptions are permitted -- see the relevant sections below).

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 two 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.
Grading:
 Course Component   Weight   Notes 
Quizzes (about 5) 15%Lowest 2 quiz grades are half-weighted.
Checks 5%Lowest 2 checks are half-weighted.
Homeworks 40%Lowest 2 homework grades are half-weighted.
Term Project (1) 20%
Final Exam (1) 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 15 points above the highest score you receive on your semester quiz average or on the final exam, whichever is higher. For example, if your raw semester average is 83, but your quiz average is a 57 and your final is a 50, then your semester score is capped at 57+15=72 and you would receive a C as your semester grade. (Note that situations like this very rarely happen.)
******************************************************************
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:
  • You cannot miss multiple lectures/recitations
  • You cannot miss multiple assignments or quizzes
  • You cannot violate the Academic Integrity Policy or any collaboration guidelines
Assigned
Work:
Homework:
Homework assignments are generally due T/W/Th/F/S at 5pm Pittsburgh-time and will generally be available at least 24 hours before that. Homeworks are entirely solo unless the assignment very explicitly allows you to collaborate. We will also provide TA-led group homework help where certain kinds of collaboration are allowed within that meeting only. 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.

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. (Note: we will not grade you on style until we have covered the style guide in class. We do not normally grade style on quiz and exam problems, though you should practice good style anyway, just in case.)

Term Project:
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.
Assessments: Quizzes:
Quizzes will be given most weeks, generally in lecture on Monday. Quizzes generally focus on material from the previous week and the previous homework, though any prior material may appear as well. Re-taking quizzes: We are going to experiment with a re-take option. If you do not receive at least a 70 on a quiz, you may complete a re-take quiz at the designated re-take proctoring session that same week. The questions will be different, but the quiz will cover the same broad topics. Your re-take score will replace your old quiz score (whether or not it is higher or lower) and it will be capped at a 70. If you did poorly on the original quiz and put in the effort to practice the concepts you missed, re-taking can yield a higher grade, and you will also have a stronger foundation for the newer material. However, since the score is capped at 70, and it's probably not worth the risk if your score is between 65 and 70 unless you are very confident in the material (also, your time may be better spent staying current with the new material). Note: If you miss a quiz, you may not do its re-take (barring excused absences of course).

Attendance Checks:
We will occasionally give you a link (possibly with a few short questions) meant to check if you are in attendance and paying attention. These are meant to be easy, but they will only be available for a short time. If you don't access and complete these on time (including, for example, if you miss the link while scrolling through Facebook), there will be no makeups. That being said, missing one or two will not have a significant impact on your course average.

Attendance and Knowledge Checks:
We will occasionally assign a very short timed assessment (probably on Gradescope) to check if you are generally current with the material. You will be able to take these whenever you choose between your lecture and your recitation section, but once you begin, you will be timed with a few minutes to finish it. These are not meant to be very difficult. If you don't access and complete these on time, there will be no makeups. They are also solo, and (just like if it was a quiz) you may not talk to anyone about the check (before, during, or after you take it) or use any resources or notes during it. BUT missing one or two will not have a significant impact on your course average.

Final Exam:
There will be a final exam at the end of the semester, weighted as indicated above. It will cover all material present in 112 during this summer semester.
Online
Testing:
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:

  • The proctoring environment must be full-screened and in the foreground at all times.
  • All notifications, pop-ups, alarms, etc. must be disabled. You may be able to find a Chrome extension to assist you with this.
  • No phones, notes, tablets, scrap paper, or other items may be out while taking the assessment, except as required by the assessment procedure itself.
  • When you finish, make sure you submit the assessment, but do not close the proctoring window. The testing/proctoring environment must remain full-screened and foregrounded until the end of the assessment. Until the TA or instructor dismisses you, all proctoring policies are still in effect. (For example, you may not use your laptop or phone for other purposes until you are instructed otherwise.)
  • When the proctors signal that time is up, you must stop working immediately. Continuing to work on any assessment will lead to an automatic zero and/or an academic integrity violation.
  • If you encounter any technical difficulties, or if your testing environment freezes, notify your proctor immediately. It is easy for us to distinguish true accidents, and we will respond fairly to those, so do not panic. Please also fill out the tech fail form found here or on the course forms page.
If you have any technical difficulties that prevent you from taking quizzes or exams in our normal proctoring environment, the course faculty may elect to instead give you an oral exam in whatever format is most appropriate.

This testing protocol is subject to change. Any instructions given by the faculty or the assessment itself will take precedence.
Academic
Integrity:
Philosophy:
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.

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.

Generally, examples of academic integrity violations include but are not limited to:
  • Claiming or submitting as your own any work or code you did not fully author, explicitly or implicitly, no matter how small.
  • Missing or inaccurate citations
  • Discussing any part of assignments or assessments with anyone else (besides current 112 TA's and course faculty), no matter how briefly or casually, unless the assignment explicitly allows it.
  • Looking at any part of anyone else's solution(s) to an assignment or assessment, or showing anyone else any part of your solution(s) no matter how briefly or casually.
  • Asking or answering any questions about assignments or assessments anywhere except through official 112 resources, or sharing/viewing any part of assignments, assessments, or solutions online in any way. In particular, this disallows stackoverflow, chegg, and all other such sites.
  • Attempting to 'hack', decompile, disrupt, or misuse the autograder or course tools.
Homework:
Unless otherwise noted, all homework exercises are solo, meaning that you must not collaborate with anyone in any way. Note that 'anyone' includes but is not limited to other past, present, or future students, friends, parents, siblings, etc. Remember: you always have access to extensive help provided by the TA's and course faculty. We strongly encourage you to use this support!

Term Project:
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:
  • Referring to any external resources (people, electronics, websites, notes, books, etc) while completing the assessment.
  • Accessing or copying any part of an answer from another student's work, even if it is very small.
  • Attempting to access any unreleased assessment outside of your assigned testing time, or outside of a secured testing environment, even if you have already taken it.
  • Providing or receiving links/passwords/codes to quizzes, checks, exams, or other assessments to anyone else.
  • Saving or copying any assessment materials so they are available outside of the online quiz/midterm/exam environment.
  • Discussing any part of the assessment with anyone who hasn't taken it (or a very similar one) until we have released it publicly (including with non-112 students)
    • For example, taking a quiz and sending a message as simple as "I wish I hadn't spent so much time studying nested loops" (or some other topic) before the quiz is released
  • Violating proctoring policies, like continuing to work on the assessment for any duration (even briefly) 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. Consulting or copying your prior homework answers or term project solutions will only hurt your learning, and will be treated as a cheating violation.

Plagiarism Detector:
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.

Penalties:
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:
  • Receiving a 0 or -100 on the assignment/assessment, which cannot be half-weighted
  • Receiving a semester-average deduction, often a full-letter-grade (Most common)
  • Automatically failing the course

Penalties may also be accompanied by a report to the Dean of Student Affairs and/or the Office of Community Standards and Integrity. This can lead to additional university-level penalties, such as being suspended or expelled. University policy states that you may not drop the course if you have an academic integrity violation (except in rare/unusual cases where you have faculty approval). If you are in the precollege program, committing an academic integrity violation nullifies the program's grade forgiveness policy.

Honesty:
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.
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 on campus and you are feeling sick, contact Student Health Services! Students who have prolonged absences due to medical treatment may obtain extensions from the instructors at their discretion, or by request from Student Health Services, any medical professional, or an advisor, housefellow, etc. For precollege students, you can ask Amy Dicker or William Alba or anyone in a similar capacity to contact us. While we do not need medical specifics, please provide some form of documentation (such as a receipt from Student Health Services) that indicates you are receiving treatment. (If you have an issue which regularly interferes with your ability to participate in the course, we'd strongly recommend you talk to the Office of Disability Resources, and we're happy to make that introduction if you would like help. We work with them closely and they can be wonderfully helpful if you need accommodations.)
  • 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! (Or your precollege contacts if applicable!) 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 an 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 or event, let the course instructors know in advance; we may be able to provide extensions or move assignment dates in some cases (though because the course moves very fast, 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. Without an approved extension as described above, any late submissions to Autolab will receive 0 points. There are no automatic grace days this semester, only because if you miss a deadline it will be far better for your semester grade if you stay current with the course material, work with your TA, and focus on the next day's assignment.
If you miss a deadline by just a few minutes (for any reason) you should still attempt to submit what you have at that moment. Autolab will accept submissions for a brief window after the deadline, and you will get valuable feedback on your work, though the score will be automatically adjusted to zero.
Also, we realize it's not unusual to briefly lose track of time just once. At the end of the semester if your grade is extremely close to the next letter, like a tenth of a percent, we may choose to accept one (and only one) late homework for half credit, if and only if it was submitted to autolab within a few minutes of the deadline (we will do this automatically and consistently for all students and only for standard homeworks. You do not need to ask, nor will it improve your chances of a better grade, and we will not disclose the upper limit.)

No late/make-up quizzes or exams will be administered, except for the re-takes mentioned above, and in the cases covered under the Extensions policy. Approved missed quizzes and 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 one week 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. It is also your responsibility to check that you successfully submitted the file you intended. You can easily check your Autolab grade and feedback a few seconds after submitting. (Note: Any manually-graded problems will not have a score immediately.)
Zoom and
Recordings:
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.

At least one lecture and recitation section (and most large-group sessions) will be recorded and made privately available to currently-enrolled students. Additionally, the precollege program has requested that we include the following wording in our syllabus for your information:
"Notice: This session is being recorded. By participating in this session you consent to being recorded and to Carnegie Mellon University using the resulting recording for archival, educational and promotional purposes. If you do not consent, please leave this session immediately."

While 15-112 itself doesn't plan to make these videos publicly available, please consider that notice in effect for all zoom sessions this semester.

Camera policy: We strongly encourage you to keep your camera on during all course events, as this will provide the best learning experience for you and your classmates. We suggest you use a virtual background if you are uncomfortable with your environment being visible to others. You may alternatively use a face-tracking virtual avatar if you wish, like those available through loom.ai etc. That being said, if you have accessibility or equity concerns that are not solved by either of these solutions, you are implicitly permitted to leave your camera off during group events like lectures and recitations. For 1-on-1 meetings, assessment proctoring, or group events of 5 or fewer people, we do require your camera to be on unless you have approval from the attending TA or the course faculty.
Accomm-
odations:
We eagerly 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.

Pleae note: 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, truly. If you have any questions at all, please don't hesitate to reach out to Prof. Taylor for an open and judgment-free conversation. We're eager to work closely and creatively with you so that we can give you the best experience possible.

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 second week, contact the course instructors and they will help you find a section with open seats.
Diversity
and
Inclusion:
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. Whether in education or industry, inclusive representation creates richer experiences and equips us to solve new and exciting challenges. As we begin the semester, we want you to know:
  • We are always eager for new ideas and constructive feedback on how to improve accessibility and inclusion.
  • If you would like to talk to someone about your unique experiences in the course, at CMU, or elsewhere, we are eager to listen.
  • We love helping students find new opportunities using their 112 skills. If you need help making connections or showcasing your abilities, we'll do our best to help! (This is an invitation for everyone, but especially our underrepresented or disadvantaged students.)
  • If you know of an event or group that is of particular interest to 112 students, especially those which empower our underrepresented or disadvantaged populations, (including but of course not limited to BIPOC, Latinx, LGBTQIA+, and women in technology/higher education) we are eager to promote these through Piazza.
  • If you are looking for events or groups to connect with socially or professionally, please talk to our TAs and faculty so that we can help!
  • CMU is a community of brilliant people from all over the world, and it's easy to feel intimidated or like you don't belong. To varying degrees, we all struggle with these feelings, even as instructors. If you find yourself questioning whether you deserve to be at CMU or in this class, we urge you to come talk to us, and we'll do everything we can to help you overcome those doubts.

Lastly, we call on each of you to join us in our commitment to a more welcoming and equitable community. Always seek awareness of your own unconscious biases so that you can better control how they influence your actions and the people around you. (We are especially happy to discuss this topic with you.) Remember that certain things like neurodiversity, religion, gender identity, and socioeconomic status and are not always immediately apparent, and that if we do not intentionally include, we may unintentionally exclude. Support your fellow students academically and socially. And if you are eager to personally provide an even better experience for future 112 students, consider joining our staff, especially if you are eager to contribute own diversity to shape this course for future semesters.
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. Achieving a better grade is almost never a matter of putting in more time! 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. Meeting the learning goals of 15-112 in a short summer semester necessitates significant effort and a fast pace, but do not fall in the trap of working endlessly, as this will only reduce your efficiency (and more importantly, your happiness and well-being). It is not necessary, expected, or something to be proud of. We can help you improve your efficiency and work less, not more.

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.