Syllabus

Quick links:   Recitations   OH   Grading

Lecture 1 &
Lecture 2
 but not
Lecture 3

This is the website for 15-112 for Lecture sections 1 and 2.

This semester, we will again be running our pilot of the Lecture 3 version of 15-112. Lecture 3 is a potential option for those who have been making sufficient progress on the summer 112 work. If you aren't sure what we mean by Lecture 3, then you are already on the correct page :)

The website for Lecture 3 is here:
https://cs.cmu.edu/~112-3

Previous
Versions

Previous versions of 15-112 (and older 15-110/15-100):
S22, F21, 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:
N22, N21, 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.

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: Undergraduate 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:

1) 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
2) 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
3) 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, pre-reading checkpoints, homeworks, quizzes, and exams).

Schedule
of Classes

Important notes:
  • Use Autolab's Roster: Check Autolab to confirm your assigned lecture and recitation times.
  • Lecture Attendance: Lecture attendance (in your assigned section) is required and will be the primary means to earn participation points, see Participation Grading below. If you must miss a lecture due to circumstances outside of your control (e.g., if you have an illness) fill out a request for an excused absence in the excused absence/extension form, located on the 112 Forms page prior to your assigned lecture.
  • Wednesday Recitation Attendance: You must attend your assigned Wednesday recitation in-person. If you must miss a recitation, you should email your recitation TAs beforehand to inform them of the situation and (if applicable) fill out a request for an excused absence in the excused absence/extension form, located on the 112 Forms page
  • Friday Recitation Attendance: Friday sections will take place in the GHC 5th floor computer cluster rooms. See the Fix-it Fridays and Pre-reading portions of this syllabus for details on attending these sections.
Days Lecturer / TAs Time Wed Room
Lecture 1 T/R Mike Taylor (mdtaylor) 10:10am - 11:30am CUC MCCNMY
    Section A W/F Shalini (spanthan) and Dane (dengman) 9:05am - 9:55am WEH 4709
    Section B W/F Emily (esands) and Samuel (samuelch) 10:10am - 11:00am WEH 5310
    Section C W/F Adhvik (akanagal) and Arohee (abhoja) 11:15am - 12:05pm NSH 3305
    Section D W/F Zahra (nzahmad) and Evan (evanz) 12:20pm - 1:10pm WEH 5302
    Section E W/F Andrew (ayoun2), Connor (cjtsui), Will (wtong) 1:25pm - 2:15pm WEH 5302
    Section F W/F Ben N.T. (hnguyent) and Sunny (feiyangg) 2:30pm - 3:20pm DH 2302
    Section G W/F Prina (phdoshi) and Josiah (jmiggian) 3:35pm - 4:25pm WEH 5409
    Section H W/F Anna (annalee) and Hao (haok) 4:40pm - 5:30pm WEH 5409
    Section I W/F Hong (hongsng) and Shruti (shrutisr) 5:45pm - 6:35pm WEH 5310
Lecture 2 T/R Pat Virtue (pvirtue) 3:05pm - 4:25pm DH 2210
    Section J W/F Angus (ayiu) and Lauren (lschmutz) 9:05am - 9:55am WEH 5302
    Section K W/F Fa (pphanach) and Lily (lyma) 10:10am - 11:00am WEH 4709
    Section L W/F Winston (wzha) and Liam (ljhower) 11:15am - 12:05pm WEH 5302
    Section M W/F Bonnie (bmguo), Vania (vhalim), Sarah (sjwang2) 12:20pm - 1:10pm WEH 5409
    Section N W/F Segi (sodongo) and Ace (aengel) 1:25pm - 2:15pm DH 2105
    Section O W/F Joe (jritze) and Riley (rkrzywda) 2:30pm - 3:20pm WEH 5302
    Section P W/F Theo (tkroenin), Josh (dingchar), Kyle (kylechen) 3:35pm - 4:25pm DH 1112
    Section Q W/F Ben O. (bowad), Shaheer (saslam), Maddie (mrburrou) 4:40pm - 5:30pm WEH 5310

Office Hours
and 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.

Large-Group Sessions:
    Session Time Location
    Quiz prep sessionSun, 4pm-5pmTBD
    Quiz solution sessionWed, 8pm-9pmTBD
    Spicy/Exploratory sessionThur, 6pm-7pmWean 5310
  • Unless indicated as remote, all of these sessions are in-person, optional, and will not be recorded. If you wish to attend but are unable to, we recommend that you ask any questions you have on Piazza or in OH.
  • If at any point we offer a homework solution session, 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.

Instructor Open Office Hours:
    Times and locations are subject to change. See Piazza for any changes.
    Day Time Location Instructor
    Mon 2:30-4:30pm GHC 6001 (above Pausch Bridge) Pat
    Tue 12-2pm GHC 4126 Mike
    Wed 2:30-4:30pm GHC 6001 (above Pausch Bridge) Pat
    Thu 12-2pm GHC 4126 Mike
  • 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. For specific homework and debugging help, please 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!

TA Office Hours:
    Times and locations are subject to change. See Piazza for any changes.
    Day Time Location
    Mon 7pm-10pm GHC 5th floor commons
    Tue 5pm-7pm GHC 5th floor commons
    Wed 6pm-10pm GHC 5th floor commons
    Thu 6pm-10pm GHC 5th floor commons
    Fri 5pm-9pm GHC 5th floor commons
    Sat 2pm-8pm GHC 5th floor commons
    Sun 2pm-4pm GHC 5th floor commons
  • TA 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. 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, TAs can only spend five minutes with each student.

Piazza:
  • Piazza is our primary means of communication in this course.
  • You are responsible for carefully reading all of the content in all instructor posts on Piazza.
  • See posts on course Piazza for restrictions and guidelines on how use Piazza.

Exploratory/Spicy Recitations:
  • Optional exploratory/spicy recitations will cover topics that are not part of the core 112 material, but which are very interesting nevertheless. They will explore interesting optional topics like sound synthesis, quantum computing, medical imaging, and artificial intelligence. Additionally, some of these topics will be helpful for your term projects!
  • You are still required to attend your normal assigned recitation and lecture. These events are purely additional and optional, to be attended for the joy of learning!
  • Subject to change, these will be Thursdays 6pm-7pm in Wean 5310!

Instructor Private Meetings:
  • To schedule a 1-on-1 meeting with one of the instructors, you can look to see if there are any appointment slots on our calendars:
  • If no appointments are available, please contact us and be sure to include the topic you'd like to discuss, along with your full availability over the next few days, along with whether you are able to meet in person at those times or not.
    • Mike: mdtaylor@andrew.cmu.edu
    • Pat: private post on Piazza
    • Either: private post on Piazza
  • Meetings are in-person by default. If a remote meeting is necessary, we'll send you a link before our designated time.
  • So that we can spread our limited time as fairly as possible, please keep this in mind:
    • Consider asking on Piazza, which may get you a faster response without consuming limited meeting time.
    • We prefer most matters to be discussed in our general open office hours or with your TAs. These private meetings are specifically and only for issues that are not appropriate for that open OH format, or which cannot be resolved easily through Piazza/email.
    • That being said, don't be shy! We like getting to know as many of you as we can, and if we can meet with you, we will.

Student Academic Success Center:
  • Due to the size of the course, we are not able to generally meet requests for one-on-one tutoring. However, the Student Academic Success Center (SASC) usually offers additional resources and tutoring for 15-112.

Required
Materials

There is no required textbook for this course! We will primarily use the course notes on this webpage instead.

You should have a computer (ideally a laptop), however, it does not need to be very new or powerful. We recommend an Apple or Windows laptop, though common distributions of Ubuntu will also work. Chromebooks will usually NOT work for creating graphical applications. Please contact us if you cannot reasonably get access to a computer.


You will need to bring to lecture an internet-accessable device that is able to, at the very least, access Piazza and respond to poll questions. A laptop will certainly work; a smartphone or table should be sufficient also. Please contact us if you cannot reasonably access a device that you can bring to each lecture.

Every required software package we use is available for free on the web. This includes:
  • Python version 3.10, which can be freely downloaded from python.org.
  • We will also use apps and sites that use Brython, which is a version of Python that runs in web browsers.
  • We may also use one or more free IDEs (code editors) and other free software packages.

Course
Requirements

Participation is required and consists of the following activities:
  • Attending and actively participating in all the lectures, recitations, and required events.
  • Carefully reading the course notes and other assigned readings and completing pre-reading checkpoints.
  • Thoughtfully completing the homework assignments, and the term project with earnest effort.
  • Taking all the required quizzes and exams.
Attendance is required (even if attendance is not always explicitly recorded).
  • You will be responsible for all materials presented in lectures and recitations (video/audio recordings will not be available).
  • See Grading section below for information on participation grades and policies regarding missing in-lecture polls.
  • 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 instructor 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
Pre-reading Checkpoints (about 12) 5% Lowest 2 pre-reading checkpoint grades are half-weighted.
Participation 5% See participation grading details below.
Homeworks (about 9) 25% Lowest 2 homework grades are half-weighted.
Quizzes (about 8) 10% Lowest 2 quiz grades are half-weighted.
Midterms (2) 20% Lowest 1 midterm grade is half-weighted.
Term Project (1) 20%
Final Exam (1) 15%

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 instructor may choose to change the scales at their discretion. You are guaranteed that your letter grade will never be lowered as a result of changing scales.

Semester Grade Cap Policy
In all cases, your semester grade is capped at 15 points above the highest score you receive on the course's proctored events -- that is, on your semester weighted quiz average or on the final exam. For example, if your raw semester average is 83, but your highest proctored score is a 57, then your semester score is capped at 72 and you would receive a C as your semester grade. Note: The grade cap policy very rarely impacts any students, but exists to ensure baseline fluency.

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 75. Or, in Python, like so:
                  amgGrade = min(final, tp3, 75)
                  grade = max(originalGrade, amgGrade)
                
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 a significant number lectures/recitations
  • You cannot miss multiple assignments or quizzes
  • You cannot violate the Academic Integrity Policy or any collaboration guidelines

Participation
Grade

In class, we will use a series of polls as part of an active learning technique called Peer Instruction. Your participation grade will be based on the percentage of these in-class poll questions answered:
  • 5% for 80% or greater poll participation
  • 3% for 70%
  • 1% for 60%
  • Correctness of in-class polling responses will not be taken into account for participation grades.
  • These polls will primarily be in lecture but may also be required of you in recitation.
  • If a poll is duplicated with the same question (e.g. before and after discussing with your neighbor), you should answer all of the duplicated versions as well, as they will be counted as separate polls.
  • Do not answer polls in both lecture 1 and lecture 2. Just attend your assigned lecture section
  • Missing polls due to absences from lecture or due to technical difficulties is expected occasionally, and this is why you only need to answer >= 80% of the polls to get full credit.
  • If you have systemic/repeated technical issues, please let us know as soon as possible, so we can resolve the situation.
  • If you must miss a lecture due to circumstances outside of your control (i.e. if you have an illness) fill out a request for an excused absence in the excused absence/extension form, located on the 112 Forms page prior to your assigned lecture.
  • Students with very poor recitation attendence may lose participation points
It is against the course academic integrity policy to answer in-class polls when you are not present in lecture. Violations of this policy will be reported as an academic integrity violation. Information about academic integrity at CMU may be found at https://www.cmu.edu/academic-integrity.

Assigned
Work

Pre-reading and pre-reading checkpoints:
Each week, you will be assigned a specific subset of the course notes (including code snippets and walk-through videos) as required reading in preparation for the following week's topics. Associated with these pre-reading assignments will be a checkpoint assessment that must be completed prior to the checkpoint deadline.
  • The pre-reading checkpoint assessments will typically be due on Friday evenings at 8 pm. You should regularly read the course schedule and any course announcements, as there will be a few exceptions.
  • Checkpoints are intended to be very low stress assessments to make sure that you have a first-pass grasp of the reading material. You will be able to retake the checkpoint multiple times to help correct any missunderstanding and improve your checkpoint score before the deadline. See a forthcoming Piazza post with details on the checkpoint assessments.
Friday pre-reading (and Fix-it) recitation section:
  • Your Friday "recitation" section time is a designated time that you may use to work on the pre-reading and the checkpoint.
  • During this section time, you may work alongside your section classmates and help each other with the pre-reading material. However, you may not communicate with each other when either of you is doing the checkpoint assessment.
  • If you have already completed the current pre-reading checkpoint (and you have no other Fix-its to review), you don't have to attend the Friday section. That being said, we encourage you to attend regardless to help your fellow classmates!

Homework:
Homework assignments are generally due Saturdays at 8pm. Homeworks are entirely solo unless the assignment very explicitly allows you to collaborate. See the "Academic Integrity" section below for more details. That said, you always have access to extensive help provided by the TAs 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.

Term Project:
The Term Project will be the last major course activity of the semester. You will design and build a program of your choice with the guidance of a mentor TA. More information can be found in the Term Project Assignment writeup, once it is released.

Assessments

Quizzes:
Quizzes will be given most weeks, generally in lecture on Tuesdays. Quizzes will be on paper and will involve writing code and answering written questions about code samples, without the use of other resources. Quizzes generally focus on material from the previous week and the previous homework, though any prior material may appear as well.

Midterm Exams:
There will be 2 midterm exams, weighted as indicated above, given in class as noted in the course schedule. You must take the exam in-person at your assigned lecture time. It is your responsiblity to be aware of these dates, and you should not schedule flights or other travel during the exam times.

Final Exam:
There will be a required final exam at the end of the semester, weighted as indicated above. It will cover all material present in 112 during this semester. We will notify you as soon as the University exam schedule is released. Until that time, do not schedule flights or other travel during the exam dates listed on the University calendar.

"Fix-it Fridays"

Students will optionally have the chance to earn back half their lost points on two problems from each quiz by fixing all the errors on those problems and submitting their changes and then discussing their changes with a TA. On Fridays, during assigned recitations, each student will have 5 minutes of 1-on-1 time with a TA to review up to two problems from their quiz. If the student demonstrates a thorough understanding of their errors on those problems, and have fixed all of them properly, they may earn up to half the lost points back (depending on the nature of the error, the accuracy of the fix, and the student's readily-apparent understanding of the problem and solution). Note that these must be genuine fixes of errors, and not just starting over entirely and/or simply reproducing our sample solutions. If a student only fixes some errors in a problem but not others, they may not receive any points back. This is experimental, and we may tweak the plan over the semester. Additional details will be provided over Piazza.

Academic
Integrity

Philosophy:
We begin by choosing to trust each of you individually. Do not be one of the few who lose 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 TAs and course faculty), no matter how briefly or casually, in-person or via Discord/WeChat/Zoom, etc. 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 in-person or online in any way. In particular, this disallows stackoverflow, chegg, github, and all other such sites.
  • Attempting to 'hack', decompile, disrupt, or misuse the autograder, testing environment, or course tools.
  • Not securing access to your work, e.g., not having a password on your laptop where a roommate or friend could access your work without your knowledge.
  • Answering in-class polls when not participating in class.
Homework:
Unless otherwise noted, all homework exercises are solo, meaning that you must not collaborate or discuss them with anyone in any way. Note that 'anyone' includes but is not limited to other past, present, or future students, friends, parents, siblings, tutors, etc. Remember: you always have access to extensive help provided by the TAs and course faculty. We strongly encourage you to use this support!
Note: If at any point we offer a homework solution session, you may not turn in an assignment after attending/watching any part of its solution session, even with an extension or grace day.

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 (even briefly) after the proctors announce the stop time, or falsifying/fabricating a tech fail.
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 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). The course penalty for violations will always be more severe than if you were to leave the associated item blank. 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 are likely 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, especially for repeated violations. 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).

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

See the Forms page for this semester's Extension Request Form. That said, in general, due to the scale and pacing 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 or University-mandated isolation may obtain extensions from the instructors at their discretion, or by request from Student Health Services, any medical professional, or an advisor, housefellow, etc. You must notify your advisor in order to receive an extension, since a medical emergency is likely to impact your academics more broadly. Your advisor can request flexibility from all of your course instructors and can provide additional support during your recovery.
  • 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 resources immediately! They will help support you in your time of need, and can 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.
We certainly understand that unfortunate things happen in life. However, not all unfortunate circumstances are valid reasons for an extension. Nearly all situations that make you run late on an assignment homework can be avoided with proper planning - often just starting early. Here are some examples:
  • I have so many deadlines this week: you know your deadlines ahead of time - plan accordingly.
  • It's a minute before the deadline and the network is down: you always have multiple submissions - it's not a good idea to wait for the deadline for your first submission.
  • My computer crashed and I lost everything: Use Google Drive, Dropbox, or similar system to do real-time backup - recover your files and finish your homework from a cluster machine or borrowed computer.
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 extremely fast, 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 submissions to Autolab later than 1 hour will receive 0 points, and submissions late by less than an hour will receive a 50% grade deduction. 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 grace day if one is available for you. We strongly urge you not to use these grace days immediately; try to save them for unforeseen events. Note that grace days may only be used on homeworks, and may not be used on checkpoints, quizzes, the term project, exams, or anything else.

Important note: if you are out of grace days, then any late submissions to Autolab will receive 0 points.

If you have not submitted and 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 up to one hour after the deadline with a 50% penalty applied to the entire assignment, but that's better than a zero, and you will get valuable feedback on your work. Submitting in the one-hour late window is usually only a good idea if you have no prior submission or if your submission received a zero. It is your responsibility to read your Autolab feedback, and to ensure you have submitted the correct file in the correct format, without syntax or linter errors. Submit early and often!

No late/make-up quizzes or exams will be administered, except in the cases covered under the Extensions policy. Approved missed quizzes will be excused; approved missed exams will be taken at the earliest possible date as approved by course faculty.

Regrade Requests

We occasionally make mistakes while grading (we're only human!). If you believe that you found a mistake that you would like us to correct, please submit a regrade request using instructions found on a relevant Piazza post. 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) and thoroughly read any autograded feedback to be sure you are getting the score you expected. 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, so you should re-download your file after uploading it and double-check that it is the correct one.)

Recording

Students may not record audio or video of lectures or recitations or any other faculty-led or TA-led course events (online or in-person) 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.

Camera policy: Hopefully, we stay in-person and don't need this policy, however... We request that you keep your camera on during any remote 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, please let us know. 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.

Accommodations

We gladly accommodate students with disability-related needs (as approved by the Office of Disability Resources (ODR), as explained here). If you are eligible for accommodations, please ensure that the Office of Disability Resources has sent us your Summary of Accommodations Memorandum within the first week or two of class. We will contact you within a few days of receiving this form with any relevant instructions for using your accommodations in 15-112.

Please 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 proctored by ODR's testing center. The course faculty will email you with instructions for scheduling your assessments during Week 1, or upon receipt of your memorandum. ODR requires you to schedule extra-time assessments at least five days in advance. Many students find it helpful to schedule all of their quizzes and exams at the beginning of the semester. 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 a proctoring time outside of lecture with ODR, 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 plan to take an extended-time quiz, you do not need to be present in lecture until the standard-time quiz is over (usually in the first 20-25 minutes)

We are here to help. If you have any questions or concerns relating to 15-112 and how we can best accommodate, please contact the course instructors and we will work together for your success.

Auditing

We have found that students who audit 15-112 do not tend to succeed, as they generally cannot dedicate the requisite time and focused discipline to the course. We must also strictly limit in-person events to ensure that we do not violate room capacities. 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, which can be 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

See Piazza post for details regarding waitlists. If you were just added to a waitlist and you aren't added to Piazza within 24 hours, please contact the course instructors via e-mail.

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, Latina/o/x/e, 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. 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, and also remember that certain things like neurodiversity, religion, gender identity, and socioeconomic status and are not always immediately apparent. Support your fellow students academically and socially. And if you are eager to personally provide an even better experience for future 112 students, consider applying to be a TA for next semester!

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.

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 necessitates significant effort and a fast pace, but do not fall into 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. We also seek to minimize the workload as much as is possible, while still meeting the learning goals of the course.

Finally, if you are feeling overly stressed, 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.