Syllabus

Quick links:   Recitations   OH and Resources   Grading

Previous
Versions

Previous Fall and Spring Semesters:
F25, S25, F24, 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 Summer Semesters:
N25, N24, N23, 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:
  • 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).

Schedule
of Classes

Important notes:
  • Unless otherwise stated, course events are in-person only and not recorded.
  • All times will be in Pittsburgh time (ET).
Section Days Lecturer / TAs Time Room
Lecture 1 T/R David Kosbie (koz) 9:30am - 10:50am DH 2210
    A+J W Ria (rhegde), Adam (akablawi) 9:00am - 9:50am GHC 4301
    B W Iris C (irischen), Hannah (hannahl3) 10:00am - 10:50am CFA 102
    C W Elaine (meit), Eddie (eddieliu) 11:00am - 11:50am PH 126A
    D W Emily S (esohn), Rhea (rsoo) 12:00pm - 12:50pm WEH 4625
    E W Nathan (nmckinne), Vaneesha (vaneeshs) 1:00pm - 1:50pm GHC 4301
    F W Elwin (elwinli), Anthony (amtom) 2:00pm - 2:50pm PH A22
    G W Isaac (isaackap), Kevin (hyeonjap) 3:00pm - 3:50pm PH 126A
    H W Attend Section Q 4:00pm - 4:50pm Attend Section Q
    I W Attend Section R 5:00pm - 5:50pm Attend Section R
Lecture 2 T/R Lauren Sands (lsands) 2:00pm - 3:20pm DH 2210
    J W Attend Section A 9:00am - 9:50am Attend Section A
    K W Chohan (cyim), Chris (cowad) 10:00am - 10:50am PH 126A
    L W Iris W (irisw), Giulio (gmigliar) 11:00am - 11:50am DH 2105
    M W Nick (nbutler2), Kayla (kaylabha) 12:00pm - 12:50pm PH A18B
    N W Fabio (fabiocam), Emily L (ealiu) 1:00pm - 1:50pm WEH 4625
    O W Yuktha (yvemula), Meabh (mhhennes), Stella (stellali) 2:00pm - 2:50pm GHC 4102
    P W Jiao (jiaod), Thomas (thomasz2) 3:00pm - 3:50pm GHC 4102
    Q+H W Leo (lfrankel), Sara (slaman), Veronica (vpak) 4:00pm - 4:50pm WEH 5302
    R+I W Jennifer (jiayixie), Yudh (hshukla), Harrison (hezhang) 5:00pm - 5:50pm GHC 4301

Office Hours
and Course
Resources

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, linked from the schedule. You are required to know the material in the course notes, and to carefully complete the checkpoints in them.
Instructor Open Office Hours:
    Times and locations are subject to change. See Ed-Discussion (the class Q&A forum) for any changes.
    Instructor Day Time Location
    David Tue 11:30am - 1:30pm GHC 5001
    Lauren Wed 1pm - 4pm GHC 6008
    David Thu 11:30am - 1:30pm GHC 5001
    Lauren Thu 4pm - 5pm GHC 6008
  • These are open (not private) office hours, and discussions may include everyone in attendance.
TA Office Hours:
    Times are subject to change. See Ed-Discussion (the class Q&A forum) for any changes.
    Day Time Location
    Mon 6-7pm GHC 5th Floor Commons, Table 1
    Tue 7-8pm GHC 5th Floor Commons, Table 1
    Wed 6-8pm GHC 5th Floor Commons, Table 6
    Thu 4-6pm GHC 5th Floor Commons, Table 6
    Fri 6-8pm GHC 5th Floor Commons, Table 1
    Sat 2-3pm GHC 5th Floor Commons, Table 6
    Sun 2-3pm GHC 5th Floor Commons, Table 6
  • TA office hours let you ask conceptual questions and to get some 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.
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.
  • 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 the course faculty, please email either one of us with your full availability over the next few days (both over zoom and in person). The more times you provide, the more likely we can accommodate your request.
  • Given the size of the course, please only request private meetings specifically for issues that are not appropriate for open faculty OH, and which cannot be handled via Ed-Discussion (the class Q&A forum), TA office hours, or email.
Student Academic Success Center:
  • Due to the size of the course, we are not able to generally satisfy requests for one-on-one tutoring. However, the Student Academic Success Center (SASC) offers additional resources and tutoring for 15-112. Appointments for one-on-one tutoring can be booked here. Drop-in tutoring location, day, and time can be found here.

Required
Materials

There is no required textbook for this course! We will primarily use the course notes on CMU CS Academy instead. You should also have a computer (ideally a laptop), running a recent version of Python. Please contact us if you cannot reasonably access a computer.

Course
Requirements

Participation is required and includes:
  • Attending and actively participating in all the lectures, recitations, and required events.
  • Carefully reading the course notes and other assigned readings and completing checkpoints.
  • Thoughtfully completing the homework assignments, and all other assigned work with earnest effort.
  • Taking all the required quizzes and exams.
Attendance is required (even if attendance is not always explicitly recorded).
  • Attendance is often based on polls. If you do not appear on a poll, then you will not count as in attendance. Also, it is an Academic Integrity Violation to share attendance poll links, or to fill out an attendance poll if you are not physically present.
  • You are responsible for all materials presented in lectures and recitations (and recordings will generally not be available).
  • Missed quizzes and exams may not be made up in general (though certain exceptions are permitted -- see the relevant sections below).
  • If you must miss a required event (lecture, recitation,etc) due to circumstances beyond your control (eg, if you have an illness), fill out the excused absence/extension request form, located on the 112 Forms page prior to that event.
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.

Grading

Course Component Weight Notes
Participation 10% This is the minimum of your grades for attendance and homework (green checks). Regarding attendance:
  • You need to attend at least 90% of required events to receive full credit.
  • Attendance includes the required weekly TA-led Sessions.
  • Attendance will be determined based on completing required activities (such as quizzes, polls, etc), and not just on being physically present.
Writing Sessions (about 12) 10% These strictly cover assigned hw exercises. Some of these will be on computers and autograded, and others will be oral assessments with a TA. We may vary how and when we assign oral assessments. Lowest two are half-weighted.
Project 5% The semester project writeup will explain in detail how these points are awarded.
Quizzes (about 11) 30% Lowest quiz is dropped. Next two lowest quizzes are half-weighted.
Midterm Exam 20% There is one required midterm just before Spring Break.
Final Exam 25% The final exam is required and will occur at the date and time assigned by the university. The final exam is cumulative, though it will focus on the material since the midterm.
Midsemester and Semester grades will be assigned using a standard scale, as will each homework, writing session, 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 according to the following scale (generalized across letter grades):
   B:  [80-87)
   B+: [87-90)

By default, grades round up to the next letter (so 89.50 is an A, and 89.49 is a B, but this does not apply to +'s, so 86.5 is a B and not 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.

Homework

The 112 Homework Collaboration Policy
This policy is only for homework, and not for writing sessions, projects, quizzes, or exams. For all homework problems, students may collaborate with each other, with others outside the course, and even with AI tools like ChatGPT, so long as you follow these rules:
  • 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. You simply cannot copy code, full stop.
  • 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.
  • Debugging Rule
    You are allowed to help debug other students' code, and you are allowed to have other students help debug your code. However, all the rules above apply. You are allowed to make live edits with the debugging help of a friend. But you cannot copy code. And you must obey the 5-Minute Rule if you look at their code.
Here are some other key points regarding homework:
  • AI Tools (like ChatGPT)
    Again, you are free to use AI tools (like ChatGPT), so long as you closely follow the rules above. However, to be clear:
    • Homework may be graded at times against the 112 style guide. AI tools often violate these rules. You should expect that code derived from AI tools would often receive very low homework grades.
    • You also will not have access to AI tools on writing sessions, quizzes, or exams.
    • If you rely too heavily on AI tools to complete your homework, you will not learn the material well. This will result in lower scores on quizzes and exams, and in an overall worse learning and grade outcome for you in the course.
    • The bottom line: while you may use AI tools, it is your responsibility to use them appropriately and effectively, and in a way that does not compromise your learning experience. If you are unsure if you are compromising your learning, it is best to simply avoid using them.
  • CS Academy
    Homework exercises will typically be hosted in CMU CS Academy. A green checkmark next to a problem (in CS Academy) means it has autograded correctly and that you will receive credit for it. No green checkmark means it's not done yet. The "check" button runs your code against additional hidden test cases which you must pass in order to receive credit. There is no partial credit for autograded homework problems.

Academic
Integrity

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

These rules 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.

Generally, examples of academic integrity violations include but are not limited to:
  • Copying materials (from any source) in violation of the No-Copying Rule and/or the 5-Minute Rule.
  • Posting homework, quiz, or exam problem statements or solutions online. This is strictly forbidden, regardless of if or how anyone potentially uses your posted problem statements or solutions. Do not post problem statements or solutions online.
  • 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 physically present.
  • Intentionally misrepresenting your work, your effort, your participation, or any other aspect of your involvement in the course, especially if this was intended to inflate your grade.
Assessments (Quizzes and Exams):
Examples of cheating on assessments (Writing Sessions, 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 writing-session/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. So for instance, the No-Copying Rule and 5-Minute Rule apply here. Besides, consulting or copying your prior homework answers or term project solutions is likely to only hurt your learning.

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.

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

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
and
Excused
Absences

Notes:
  • Due to the liberal late hw policy (see below), extensions are not generally granted for homeworks. However, for truly extreme cases (such as long-term hospitalization), longer extensions may be granted, with the specific appropriate accommodation determined by course faculty in such cases.
  • Regarding writing sessions: for university-approved conflicts with your assigned writing session time, we will arrange that you take your writing session at the earliest possible alternate time, ideally that same day or very soon after in any case.
  • 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 exams when there is a qualifying reason on the date of the exam (see below).
  • See the 112 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, medical emergencies, or other family or person emergencies.
  • University-approved extended absences, such as multi-day athletic/academic trips or job interview trips.
  • Other valid reasons. There are too many to list here, 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

Late Policy

  • Homeworks
    You will receive 80% of the points for homework exercises that you complete (with a green check) after the homework deadline, up until 11:59pm that Sunday night. After Sunday night, you will not receive credit for any further green checks on that homework. Note that the Sunday night deadline does not change even if you have an extension on the homework deadline.
  • Quizzes and Exams
    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 the appropriate form on the 112 Forms page.
Notes:
  • You cannot request a regrade request simply because you do not like your grade or you do not like our rubric. Rather, regrade requests must include the specific grading error(s) that you believe you found.
  • 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.

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.

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.

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

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. Inclusive representation creates richer experiences and equips us to solve new and exciting challenges. Please join us in our commitment to a more welcoming and equitable community.

Devices
and
Recording

In order to minimize distractions and foster the best learning environment for everyone, students may not use their phones or other devices for any activities not immediately related to 15-112. So: no phone calls, no texting, no web surfing, and so on. If you must use your phone or other device, out of respect to everyone else, please step outside the room to do so (thanks).

Students may not take still pictures or 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: We request that you keep your camera on during any remote events. If you have accessibility or other concerns related to this request, please contact the faculty in advance.

Well-being &
Happiness

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.

Also, here is a great summary of many CMU Student Support Services.