Lecture 1 &
|
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 optional winter break 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 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Waitlist |
If you are currently on the waitlist, we hope to eventually get you into the class, which almost always happens in the first 1-3 weeks of the semester. Until that point, you should participate fully as if you were fully enrolled. This includes but is not limited to attending required events, filling out polls and forms, completing assignments, and taking quizzes. See Piazza post for more 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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Previous
|
Previous versions of 15-112 (and older 15-110/15-100): F22, 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. Faculty Instructor: Mike Taylor (mdtaylor@andrew.cmu.edu) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Learning
|
At the end of the course, students should be able to:
1) Write clear, robust, and efficient code in Python using:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Topic List |
See the topic list and schedule here (includes schedule, notes, pre-reading, homeworks, quizzes, and exams). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schedule |
Important notes:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Office Hours
|
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:
Large-Group Sessions:
Instructor Open Office Hours:
TA Office Hours:
Piazza:
Exploratory/Spicy Sessions:
Mike's Private Meetings:
Student Academic Success Center:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Required
|
There is no required textbook for this course! We will primarily use the course notes on CMU CS Academy (and occasionally 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 may work early in the semester while working entirely on the CS Academy website, but may not work for creating standalone graphical applications, which will be necessary for end-of-semester term projects. Please contact us if you cannot reasonably get access to a computer. You will need to bring to lecture and recitation an internet-accessable device that is able to, at the very least, access Piazza and Google Forms 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:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Course |
Participation is required and consists of the following activities:
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. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Grading |
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 - 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-: [80-83) B: [83-87) B+: [87-90) By default, grades do not round up to the next letter (so a 90 is an A, and an 89.9 is a B). 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. Exam Policy: There are three (3) exams -- 2 midterms and 1 final. Your lowest exam score is dropped -- except if you take the final, it cannot be dropped, but it can be half-weighted -- and your second-lowest exam score is half-weighted. This also means that you can entirely skip one exam (unexcused) if you wish. For most of you, this would likely be the final exam, which due to this policy is optional (though, again, if you opt to take the final, then it cannot be dropped). 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:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attendance,
|
The Attendance, Participation, and Prereading grade (worth 5% of your semester average) will be updated at mid-semester and at the end of the semester before the final exam, and depends on several factors relating to your accountability, engagement, and the rules outlined in the Course Requirements section above. These grades are assigned at the faculty's discretion. However, if you meet the course requirements and stay accountable and engaged, you will be almost certain to get full points (which we expect will be true for about 90% of you, hopefully more). A very small number of unexcused absences or missed in-class polls will not change your grade, but we will not say how small that number is, so if you have an absence that may be excusable, you should promptly follow the excused absence policy below. We will not approve late requests.
If you have systemic/repeated technical issues that prevent you from completing in-class forms/polls (which we will use to measure attendance and participation), it is your responsibility to resolve these promptly, but we are eager to help (and remember that missing a small number will not change anything). It is against the course academic integrity policy to answer in-class polls when you are not present in lecture, or to share links to in-class polls/forms with anyone not physically present when they are released. Important Note: In the case of frequent unexcused absences, non-responsiveness, or other failures to satisfy the course requirements, additional deductions to your semester average may apply (beyond deductions to the participation grade), up to and including course failure, at the sole discretion of the course faculty. This is rare, however, and will only happen if you ignore at least one prior warning to engage with the course properly. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Assigned
|
Pre-reading and pre-reading checkpoints: Each week, you will be assigned a specific subset of the course notes in CMU CS Academy (including code snippets and walk-through videos) as required reading in preparation for the following week's topics. Most of these notes contain checkpoints that must be completed prior to the checkpoint deadline.
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.
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.
Exams:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Academic
|
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:
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:
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:
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.
Here are the generally accepted reasons for approved extensions and excused absences from required course events (chiefly lectures and recitations):
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Late Policy |
In general, all homework is due at the assigned date and time. Without an approved extension as described above, any homework problems completed after the due date and time will receive 0 points when scores are uploaded from CMU CS Academy to Autolab. (Note that you will always be able to complete the problem in CMU CS Academy, but it will not receive any points in Autolab after the due date.)
We provide 2 grace days for homework assignments, primarily to allow flexibility for unforseen circumstances. (See HW section for more details.) Remember, you may not use multiple grace days on a single homework assignment. 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. 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. Regrade requests must be filed no later than two weeks after the grade has been released. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Formatting, |
Misformatted assignments or code with syntax or linter errors, in general, cannot be graded by our autograder, and will generally 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.) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Diversity |
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:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Well-being & |
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. |