Previous versions of 15-112 (and older 15-110/15-100):
S24, F23, S23, S23-L3, F22, F22-L3, 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:
N23, N22, N21, M20, N19, M19, N18, M18, M12, APEA-09, APEA-08


If you are on the waitlist, we hope to eventually get you enrolled, typically in the first week of the semester. Until then, you should participate fully as if you were enrolled. This includes but is not limited to: attending required events, filling out forms, completing assignments on time, and taking quizzes. If you were just added to a waitlist and you are not added to Ed-Discussion (the class Q&A forum) within 24 hours, please contact the course instructor via email.


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.


At the end of the course, students should be able to:
  • Computationally solve problems in Python using:
    • sequential, conditional, and loop statements
    • strings, lists, tuples, sets, and dictionaries
    • objects and classes
    • recursion
    • interactive graphics
  • Analyze code through code tracing to deduce the output of small programs
  • Recognize patterns to identify possible solutions to a given problem
  • Construct code using top-down design by breaking problems into smaller steps
  • Apply debugging techniques to find and fix errors
  • Design and implement a substantial program in Python with minimal guidance

Topic List
and Schedule

See the topic list and schedule here (includes schedule, homeworks, quizzes, and exams).

of Classes

Important notes:
  • Unless otherwise announced via Ed-Discussion (the class Q&A forum), all events are in-person only and not recorded.
  • Use Autolab Roster: Check Autolab (and not SIO) to confirm your assigned lecture and recitation times.
  • Recitation Attendance: Recitation attendance is required in your assigned section. If you need to attend a different recitation section, please fill out the excused absences form on the forms page.
    • See the table below for recitation times and locations.
Section Lecturer / TAs Time Room
Lecture 1 Lauren Sands (lsands) 11:00am - 12:20pm SH 105
A Daphne (daphneh) + Vishant (vraajkum) + Yuktha (yvemula) 1:00pm - 1:50pm WEH 8427
B Isaac (isaackap) + Mia (shengzhk) + Madison (madisone) 2:00pm - 2:50pm WEH 8427
C Rhea (rsoo) + Evan (elohn) + Anderson (andersoh) 3:00pm - 3:50pm WEH 8427
D Anna (annali3) + Julia (juliahu) + Devika (dmanohar) 4:00pm - 4:50pm WEH 8427
E Willa (wknight) + Elena (elenali) + Ollie (darrison) 5:00pm - 5:50pm WEH 4625
F Riley (rkrzywda) + Suanna (suannaz) + Amber (amberc) 6:30pm - 7:20pm WEH 5409

Office Hours
and Course

15-112 can be intense at times, but it is much more manageable if you use the course resources well. These resources include:

Course Notes:
  • The course notes are on the CMU CS Academy webpage. You are required to carefully read them in their entirety, to carefully complete the checkpoints in them, and to carefully watch any videos they contain (including videos in guided exercises).
  • We may provide additional notes on the course schedule. You must read these unless they are marked as optional.

Large-Group Sessions:
  • Quiz Prep Sessions: 7:30pm the day before every quiz. Locations will be posted on Ed-Discussion with the release of the practice quiz. If attendance is too low, we reserve the right to cancel the sessions for the remainder of the semester.
  • If at any point we offer a homework solution session, you may not turn in an assignment after attending or watching any part of its solution session, even with an extension or late submission. Doing so will be considered an academic integrity violation.

Instructor Open Office Hours:
  • Lauren Sands (lsands): OH will be held in GHC 4126 at the times below. These times are subject to change, and any changes will be announced on Ed-Discussion.

  • Day Time
    Mon 2pm - 4pm
    Tue 1pm - 3pm
    Wed 2:30pm - 4pm
    Thu 1pm - 3pm
    Fri 2pm - 4pm
  • These are open (not private) office hours, and discussions may include everyone in attendance. You may ask homework questions, but be aware that other students may hear your discussions.

TA Office Hours:
  • TA office hours will be held in the GHC 5th floor commons at the times below.

  • Day Time
    Mon 4pm - 6pm
    Tue 7pm - 8pm
    Wed 4pm - 6pm
    Thu 7pm - 8pm
    Fri 5pm - 7pm
    Sat 2pm - 4pm
    Sun 2pm - 4pm
  • TA office hours let you ask conceptual questions and get debugging help from TAs. During TA OH, use the OH Queue to sign up for help. OH Queue is used only for TA office hours.
    • Please choose 15-112 N24 as the course in the queue, not 15-112.
    • When you join the queue, please prepare to ask your question as efficiently as possible. To provide the fairest help to the most students, TAs can only spend ten minutes with each student during busy OH.
    • After being helped, you must wait 15 minutes before re-adding yourself to the queue. This is meant to reduce wait times and to encourage you to ask specific, thoughtful, effective questions.

Ed-Discussion (the class Q&A forum):
  • You are responsible for carefully reading all of the content in all instructor posts on Ed-Discussion.
  • You may also use Ed-Discussion to ask questions, but you must carefully read our Ed-Discussion posts and guidelines first. For example, any questions related to the homework must be private to you and the staff only and not anonymous (ie, use the default settings).
  • Note: If you need to get in touch with only the faculty, or a specific TA, email (using your andrew id) is best. Ed-Discussion is great for questions that are visible to all TAs since you will get the fastest response that way.

Instructor Private Meetings:
  • To schedule a 1-on-1 meeting with Lauren, please email with your full availability over the next few days. The more times you provide, the more likely I can accommodate your request.


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

You should have a computer (ideally a laptop), however, it does not need to be new or powerful. We recommend an Apple or Windows laptop, though Linux will also work. On a Mac, upgrade your OS to macOS 10.15 (Catalina) or later. Chromebooks may work on the CS Academy website, but may not work for creating graphical apps. Please contact us if you cannot reasonably access a computer.

Every required software package we use is available for free on the web. This includes:
  • CMU CS Academy, a browser-based platform which we will use extensively. We will email you with your account info.
  • Python version 3.11, which can be freely downloaded from Note that Python 3.12 may not work properly with certain modules, including the CS Academy graphics package.
  • 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.


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 24 hours.

Also, you must read all instructor Ed-Discussion (the class Q&A forum) posts promptly and carefully. You are responsible for knowing this information, including any changes or additions to policies, deadlines, etc.


Course Component Weight Notes
Attendance (about 35 events) 5% See grading notes below.
Homeworks (about 11) 20% None are dropped, but lowest two are half-weighted.
Quizzes (about 8) 30% Lowest is dropped, second-lowest is half-weighted.
Term Project 20%
Final Exam 25%
Midsemester and Semester grades will be assigned using a standard scale, as will each homework, quiz, midterm, project, and final, as such:
  • A: [90 - 100]
  • B: [80 - 90)
  • C: [70 - 80)
  • D: [60 - 70)
  • R: [0 - 60)
Note that graduate students will be assigned +'s and -'s according to the following scale (generalized across letter grades):
  • B+: [87-90)
  • B: [83-87)
  • B-: [80-83)
By default, grades round up to the next letter (so 89.50 is an A, and 89.49 is a B). 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.

Attendance: Lecture attendance is required for the first and last weeks of class and during quiz days, and strongly recommended during the rest of the semester. Lecture attendance may be made required on other days. Recitation attendance is required daily in your assigned section. Attendance grades will be calculated as shown in the table below. Note that this only counts unexcused absences. Excused absences will never affect your attendance grade. There is also one exception to the table below. Missing TP Showcase (the last day of class) will immediately make your attendance grade 0 .

Num Unexcused Absences Attendance Grade
0 - 2 100%
3 80%
4 60%
5 - 6 40%
7 - 10 20%
11+ 0%


The 112 Homework Collaboration Policy
Note that this policy is only for homework, and not for projects, quizzes, or exams.

Except for exercises explicitly marked as "solo", all homework problems in this course can be completed according to this collaboration policy. To be clear, any exercise marked as "solo" must be completed 100% solo, without any help from anyone or any website or any AI tool (though even on solo exercises, students can always receive help from the course faculty and staff).

That said, for all non-solo exercises, students may collaborate with each other, with others outside the course, and even with AI tools like ChatGPT, so long as:
  1. No code is copied (as explained below, especially see the 5-Minute Rule)
  2. All collaboration is properly cited (as explained below)
No-Copying Rule
At no time can you copy code from any source. We take this very broadly. Not only does this mean you cannot copy-paste code from anywhere, it also means that you cannot manually type code that you are looking at, nor can you manually type code that someone is telling you to type. In addition, you cannot copy code even if you then edit it, even a lot.

5-Minute Rule
To help prevent code copying, we have a simple rule: any time you look at 5 or more lines of code (or pseudocode or anything code-like) that is not yours (and is not from the course website, CS Academy, or course faculty or staff), then you must wait 5 minutes before you can edit your own code. This is a simple rule that will prevent most cases of code copying.

Citation Rule
You must clearly cite all sources of collaboration, no matter how minor the collaboration is. All citations must be in a triple-quoted string at the top of each exercise in which you collaborated. Each citation must clearly list the source (whether a person (listed by name and andrew id), a website, ChatGPT, etc), and in just a few words the nature of the collaboration.

Debugging Rule
You are allowed to help debug other students' code, and you are allowed to have other students help debug your code. You are allowed to make live edits with the properly-cited debugging help of a friend. However, you cannot copy code, you must obey the 5-Minute Rule if you look at their code, and you must properly cite any and all collaboration or help you receive (except from course faculty and staff).
Here are some other key points regarding homework:

  • CS Academy
    Homework exercises will be often be hosted in CMU CS Academy. A green checkmark next to a problem (in CS Academy) means it has autograded correctly and you are done. No green checkmark means it is not done yet. Be sure that you hit the "check" button after the "run" button to submit your code. The "check" button runs your code against additional hidden test cases which you must pass in order to receive credit. It is your responsibility to properly submit and be aware of whether you have received green checkmark credit for your work! There is generally no partial credit for autograded problems.

  • Formatting, Syntax, and Linter Errors
    Misformatted assignments or code with syntax or linter errors, in general, cannot be graded by our autograder, and will typically receive a zero. Therefore, be sure to test your homework early, and thoroughly read any autograded feedback to be sure you are getting the score you expected. If you must upload a file to Autolab or any other system, it is also your responsibility to check that you successfully submitted the file you intended. (Note: Any manually-graded problems will not have a score immediately.)

  • Unlocking Homework
    In order to unlock homework problems in CS Academy, you will have to read the notes for the corresponding sections (including completing all checkpoints) first. While there is no official deadline for reading notes apart from the homework deadline, we strongly recommend reading the notes the same day as lecture. Some students find reading the notes before lecture to be helpful, while some prefer to read them after, but in any case, read them the same day.

  • Code Reviews
    Some HWs will include a "code review" between you and a TA, potentially also including other students. In these sessions, you will discuss the quality of your code regarding its design, algorithms, style, user interface, and perhaps more. Code reviews are an invaluable tool used in industry to help software professionals become more effective at their craft. Our code reviews share the same purpose. Your grade is entirely based on your thoughtful, active, fully-engaged participation.

  • Late Homework Policy
    Students receive full credit for all assigned exercises that are completed by the HW deadline. Students receive 80% credit for all assigned non-bonus exercises that are completed after the HW deadline but prior to the next quiz (usually the following day at 11am). Bonus exercises will only receive credit if they are completed by the HW deadline.

    Regarding approved HW extensions: Students receive full credit for all assigned exercises that are completed by the extended deadline, but the late HW deadline is always 11am on quiz day.


We begin by choosing to trust each of you individually. However, if you cheat, expect to be caught, and expect significant consequences.

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 require you to understand and uphold CMU's more general academic integrity standards. If you are unsure of something, just 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.

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.
  • Collaborating without properly citing, no matter how seemingly minor the collaboration may seem.
  • Using any software or service (including but not limited to AI/LLMs) without properly citing it. This includes generating algorithms or code, regardless of size.
  • Discussing any part of solo assignments or assessments with anyone else (besides current 112 TAs and course faculty), in-person or via Discord/WeChat/Zoom, etc.
  • Asking or answering any questions about solo 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 or forms when not participating in class.
Note: if 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 a late submission (according to the Late Homework Policy).

When homework exercises are marked as "solo", then 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!

As for non-solo exercises, any violation of the No-Copying Rule, the 5-Minute Rule, the Citation Rule, or the Debugging Rule (see above) will be considered an Academic Integrity Violation. The consequences for this will be considerable, up to and including failing the course, and perhaps additional consequences at the university level.

Before you might consider any such violation, we ask that you please consider:
  1. Each homework is only worth about 2% of your semester grade. Each exercise is only worth a fraction of even that. That's just not much, certainly not enough to risk such major consequences.
  2. You are allowed to collaborate extensively. Just follow the rules when you are doing so.
  3. You always have ready access to wonderful support by our amazing TAs as well as the course faculty. We are here for you.
Bottom line: We will catch and prosecute cheating, yes, but... We sincerely hope that these policies basically eliminate cheating while providing a rich, supportive, effective learning experience for everyone.

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, exams, or other assessments to anyone else.
  • Saving or copying any assessment materials so they are available outside of the online quiz/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 an academic integrity violation.

Plagiarism Detection:
Programs are naturally structured, which makes them very easy to compare. Please be aware that we use several sophisticated tools to find code with a high probability of cheating, in addition to our own eyes and experience. It is futile to try to disguise code that you did not write, and these efforts may increase the severity of the violation.

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 or exam). The course penalty for violations will always be more severe than if you were to leave the associated item blank. Possible penalties include but are not limited to:
  • Receiving a 0 or -100 on the assignment or assessment
  • Receiving a semester grade deduction, often a full-letter-grade
  • Failing the course
Penalties are often accompanied by a report to the Dean of Student Affairs and/or the Office of Community Standards and Integrity. This may lead to additional university-level consequences, 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 cases where you are granted faculty approval).

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 of up to 2 days are granted for hw's, but this does not change the late hw deadline. Extensions of longer than 2 days may be granted in extreme cases, with the accommodation determined by course faculty in such cases.
  • Extensions are not generally granted for quizzes. Instead:
    • For excused absences on quiz days, the student is entirely excused from that day's quiz, so the quiz does not factor into the student's semester grade.
    • For unexcused absences, the student receives a 0 on that quiz.
  • Extensions may be granted for projects, but only in extreme cases, such as missing several days on an excused absence.
  • Extensions may be granted for exams when there is a qualifying reason on the date of the exam (see below).
  • See the forms page for this semester's Extension Request Form.
In general, we may request some kind of confirmation for extension or excused absence requests, though we are very flexible in what that means (for example, if you are ill, we would accept any reasonable confirmation, including your Housefellow or RA or academic advisor confirming this).

That said, here are the types of generally accepted reasons for approved extensions and excused absences.
  • Serious Illness or Medical Emergencies.
  • Family or Personal Emergencies.
  • University-Related Absences. This includes multi-day athletic/academic trips organized by the university, in which case 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.
  • One-Time Multi-Day University-Related Events. 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 your request.
  • Other Valid Reasons. There are too many to list here, of course, but other reasons include religious observations among others. If you are unsure, talk to the course faculty. We are here to help.
Here are some requests that would not be accepted:
  • Busy week (academically or otherwise)
  • Computer or network issues
  • Non-approved travel

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 the form on the forms page. Notes:
  • You cannot request a regrade request simply because you do not like your grade, or you want us to follow a different rubric. Regrade requests must include the specific grading error(s) that you believe you found based on the rubric that was used.
  • Regrade requests will result in the entire problem being regraded, not just the possibly-incorrectly-graded part. Thus, it is possible that your grade goes down as a result of a regrade.
  • Regrade requests must be filed no later than one week after the grade has been released.


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).

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.


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.


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 Ed-Discussion (the class Q&A forum).
  • 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 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!


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.

Well-being &

We care very much about your well-being and happiness. CMU students (and faculty) work very hard, but we must keep our balance and always attend to our well-being and happiness first. 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.