15-112 Syllabus (Spring 2019)

1. Overview

Official Course Description

A technical introduction to the fundamentals of programming with an emphasis on producing clear, robust, and reasonably efficient code using top-down design, informal analysis, and effective testing and debugging. Starting from first principles, we will cover a large subset of the Python programming language, including its standard libraries and programming paradigms. We will also target numerous deployment scenarios, including standalone programs, shell scripts, and web-based applications. This course assumes no prior programming experience. Even so, it is a fast-paced and rigorous preparation for 15-121 or 15-122. Students seeking a more gentle introduction to computer science should consider first taking 15-110.

Unofficial Course Description

This course is designed to help you learn how read, write, design, and debug Python programs. Towards that end, you will spend most of the time in the course developing programming as a skill by learning about various programming constructs and techniques and by constantly practicing with code.

Students who take 15-112 generally fall into one of two categories:

  1. You might be a CS major or a student in another technical major who needs to take a set of CS classes to fulfill requirements. 15-112 will prepare you for the technical challenge of those courses by helping you develop a robust understanding for how to work with code; this skill will be essential in future courses.
  2. You might want to learn how to program in depth, but have no intention of taking further CS courses. 15-112 will help you learn that essential skill, and will also introduce you to some of the big ideas in computer science so that you can bring new ideas back to your own field of study.

In this course, you will primarily do work through completing programming assignments individually and collaboratively; these assignments will help you develop and practice your coding skills. You will also be assessed with a set of quizzes and exams, to help you measure your understanding of the class’s various topics. We will teach you primarily through interactive lectures and recitations, where we will demonstrate how to code using instructions, examples, and live coding. At the end of the semester, you’ll demonstrate your mastery of the course’s topics by working on a 3-week term project, where you can develop and code a project of your own design, based on your own interests.

Learning Objectives

At the end of the course, students should be able to:

Topic Outline

See the course schedule for a detailed overview of the course content.

2. Grading and Submission


I will use standard grade percentages as follows:

The total points possible are allocated as follows:

 Course Component   Weight   Notes 
Quizzes 10%Lowest quiz grade is dropped.
Midterm Exams 20%Lowest midterm grade is half-weighted.
Final Exam 20%
Homeworks 35%Lowest homework grade is dropped.
Term Project 15%

Note that you must receive a 60% or higher (calculating using the appropriate weightings above) on in-class assessments (quizzes, midterm exams, and final exam) in order to receive a C or higher in the course.

Alternative Minimum Grading (AMG)

This Alternative Minimum Grading (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 the normal grading scale, we will separately compute your grade using the following scale. Students do not sign up for AMG grading. Every student will be considered both for Standard Grading and AMG, and their semester grade will be the higher of the two.

The AMG point allocation is as follows:

 Course Component   Weight 
Best 5 Solo Homeworks 15%
Best 5 Quizzes 10%
Best Midterm Exam 20%
Term Project 15%
Final Exam 40%

The highest grade that can be received via AMG is a C. If your average (calculated using the appropriate weightings from Standard Grading) on in-class assessments (quizzes, midterm exams, and final exam) is less than 60%, then the highest score you can receive via AMG is a D.

Unlike the Standard Grade, effort is heavily factored into your AMG score. To qualify for AMG you must put forth sustained effort, which means meeting the following requirements:

The final decision regarding whether or not to apply AMG grading your situation is at the discretion of the instructor.

Ethics and Cheating

Refer to the course academic honesty policy.

Late Submission Policy

In an ideal world, I would be able to support varying submission schedules so that all students could work at their own pace. Unfortunately, this is impossible. I need you to submit assignments on time so that I can promptly give feedback to all students, to support the learning process.

However, I understand that life can sometimes get in the way. Therefore, I provide 3 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. I strongly urge you not to use these grace days immediately; try to save them for unforeseen events.

Once you run out of grace days, late submissions will receive a score of 0.

3. Course Requirements

Assigned Work


4. Resources

Course Resources

Required Software

Every required software package we use is available for free on the web. This includes:

External Resources

Note that all textbooks/resources are optional. There are no required textbooks for this course.

5. FAQs


In general, I cannot give individual extensions on assignments or assessments. However, there are a few exceptions.

Please note that extensions must be requested before the assignment/assessment deadline.

Regrade Requests

We occasionally make mistakes while grading (we’re only human!). If you find a mistake which you would like us to correct:

In both cases, include all relevant details for your regrade request.

Regrades must be requested within two weeks of the time when the contested grade was released.

Note: Regrade requests will result in the entire problem being regraded, not just the incorrectly graded part.


Research has shown that devices can greatly detract from student learning. Therefore, students may only use electronic devices in lecture during learning activities which involve those devices.

Outside of these events, students should only use electronic devices with explicit permission from the instructors. Notes may still be taken, of course, but should be done with pen and paper. This policy is meant to help all students focus, as electronic device as distracting not only for the user, but also for the students surrounding them.


Students may not record audio or video of lectures or recitations without explicit permission in writing from the instructor. Violations will result in your failing the course. Exceptions will be granted in accordance with university guidelines for accessibility concerns, but even then such recordings may not be shared publicly or privately and must be deleted at the end of the semester.

6. Other

Accommodations for Students with Disabilities

Carnegie Mellon University is committed to providing reasonable accommodations for all persons with disabilities. To access accommodation services you are expected to initiate the request and submit a Voluntary Disclosure of Disability Form to the office of Health & Wellness or CaPS-Q. In order to receive services/accommodations, verification of a disability is required as recommended in writing by a doctor, licensed psychologist or psycho-educational specialist. The office of Health & Wellness, CaPS-Q and Office of Disability Resources in Pittsburgh will review the information you provide. All information will be considered confidential and only released to appropriate persons on a need to know basis.

Once the accommodations have been approved, you will be issued a Summary of Accommodations Memorandum documenting the disability and describing the accommodation. You are responsible for providing the Memorandum to your professors at the beginning of each semester.

For more information on policies and procedures, please visit https://scotty.qatar.cmu.edu/qword/student-affairs/office-of-health-and-wellness/assistance-for-individuals-with-disabilities/.

If you have a disability and require accommodations, please contact Amie Rollins, Director of Health and Wellness at amier@andrew.cmu.edu or Dr. Salaha Khan, Psychologist Counseling and Psychological Services at salahak@qatar.cmu.edu. If you have an accommodations letter from the Disability Resources office, you are encouraged to discuss your accommodations and needs with Catherine Getchell getchell@cmu.edu, as early in the semester as possible. She will work with you to ensure that accommodations are provided as appropriate.

Take Care of Yourself

Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, I strongly encourage you to seek support. Counseling and Psychological Services (CaPS-Q) is here to help: call 4454-8525 (8:30am to 4:30pm, Sunday through Thursday) or email student-counselling@qatar.cmu.edu. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.

If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night at 5554-7913.

If the situation is life threatening, call 999.

Student Wellness

It is important for undergraduates to recognize that university life presents different pressures and stressors, including personal, social, emotional, physical, financial, mental and/or academic. As a student, you may experience a range of challenges that can interfere with your learning such as sleep deprivation, anxiety, feeling down, difficulty concentrating and/or a lack of motivation. I urge you to make health and wellness your priority during your time as a student at CMU-Q. When you take care of yourself via sleep, nutrition, physical activity and stress management, research shows your focus improves and your ability to retain information increases. Contact Student Affairs to learn more about wellbeing initiatives: