Welcome to 15-112! This course introduces students to computer programming. It is intended for students with little or no background in programming. Even so, this course is a fast-paced and technical introduction. Students looking for a gentler introduction to computer science concepts should consider taking 15-110 first.
A computer program is simply a set of instructions that tells a computer to perform a task. However, finding the right set of instructions can be quite challenging. For this, one has to learn how to structure a larger problem into small subsets, and then find the solution to each of those subsets. A big part of this course is dedicated to teaching students a way of thinking that will enable them to build non-trivial programs.
Just like human-understanble instructions can be given in various human languages, computer-understandable instructions can be given in various programming languages. There can be important differences between programming languages, but many of them use the same building blocks that are fundamental to programming. Once you learn a programming language, it becomes much easier to learn another language. This course uses the Python programming language.
None.
There is no required text for the course. The lectures will be recorded and the links to the video recordings as well as the slides will be provided on the course website. We will also provide links to the Spring 2016 edition of the course webpage, which contains very useful examples and videos!
If you want to look at books which contain part of the course material, we recommend the following:
If you have any Python specific questions, the first place you should look at is the official Python documentation:
Information you find above is guaranteed to be correct. The same cannot be said of information you might find on, say, Stackoverflow. Be careful about googling concepts related to a homework question as this may violate academic integrity (see the section on academic integrity below). You are, however, always welcome to (and encouraged to (!)) use the official Python documentation.
Every student is required to signup for the course's Piazza page! Course related announcements will be made using Piazza, so you must check Piazza every day.
If you have a question regarding the lecture material or a homework question, please make use of the following resources:
For personal matters, you can directly email the course instructor (aada).
If you have a grading related question, please contact the head CA (moqings).
Course Component | Weight |
Homework | 25% |
Exam 1 | 20% |
Exam 2 | 30% |
Quizzes | 10% |
Term Project | 10% |
Participation | 5% |
There will be multiple homework assignments every week for the first 5 weeks. There will be 2 (or possibly 3) small assignments due during the week, and 1 larger assignment due during the weekend. It is important that you complete all assignments, as this is the major way in which you will learn the material. By working hard on the assignments, you will gain essential experience needed to solve problems on the exams and create term projects that you can be proud of.
Assignment submissions will take place on Autolab. Every student is responsible for verifying that their submissions are successful. In recitation, we will walk you through how to submit your work on Autolab.
Unless explicitly stated otherwise, all homework must be done by yourself without collaborating with anyone else. You are of course welcome to (and encouraged to (!)) ask questions to the course staff in office hours or Piazza.
Late Policy: You are allowed 2 free (no penalty) late days for the course. (These are also called grace days.) You can use at most 1 grace day for an assignment. The late days cannot be broken down further, i.e., even if you submit 5 minutes late, it will count as 1 late day. Once you submit a day late, one of your grace days will be automatically deducted by Autolab. You do not have to notify us. After you have used up both of your late days, late submissions will not be accepted and will result in 0% for that assignment. Exceptions to the lateness policy will not be granted without appropriate justification (e.g. medical or family emergency) submitted in writing and supported by documentary evidence.
We will have 2 exams during the semester (June 6th and June 20th). Both will be held in lecture and they will be cumulative. More information will be provided before the exams.
We will be using automated software similarity detection tools to compare your assignment submissions to that of all other students who are currently taking the course and who have taken the course in the past. These tools are very effective at what they have been designed for. For a demonstration, please watch how it works (avi or mp4). Note that the main use of these tools is to determine which submissions should be manually checked for similarity by the instructor; we will not accuse anyone of copying or working in groups based solely on the output of these tools.
You may also be asked to present and explain your assignment submissions to the instructor at any time.
We are happy to accomodate students that require extended time approved by Larry Powell's office. Please contact the instructor if you are in this situation.
There will be no make-up quizzes, exams, or homeworks, except in the case of documented medical or family emergencies, or other university approved absences. The common cold or your computer crashing do not qualify as an excused absence. Keep in mind that you have 2 free late days for the homework. You should save up your free late days for when you really need it, e.g., when your computer crashes.
We very much care about your well-being and happiness! Be aware that everyone on the course staff is always available to provide counsel or chat, and you should attend office hours as often as you want for academic and non-academic conversation.
However, also know that the university provides services that you may want to take advantage of at some point during the semester. Over the summer some resources from the regular semester may be limited or non-existent. If you are ever unsure about them, run into a problem, or want more information, feel free to reach out to Sarah Boyle (sboyle), a CA and the Wellness Coordinator for the course.
For a comprehensive list of CMU's healt health services, please click here.