Syllabus



Frequently Needed Information


Meeting Times

SessionInstructor(s)TimeLocation
Lecture 1Mike Taylor (mdtaylor)MWF 2:00-2:50pm ESTHOA 160
Lecture 2Ranysha Ware (rware)MWF 3:00-3:50pm ESTHOA 160
Recitation AAiden (yche2) and Emily (emilybai)R 9:00am-9:50am ESTGHC 5208
Recitation BAvani (aguduri) and Alice (alicelia)R 10:00am-10:50am ESTGHC 5208
Recitation CAriel (ychiu3) and Shannon (soleary)R 11:00am-11:50am ESTGHC 5208
Recitation DSean (spjohnso) and Zoe (zhausner)R 12:00pm-12:50pm ESTGHC 5208
Recitation ERitika (ritikam) and Inselbag (inselbal)R 1:00pm-1:50pm ESTGHC 5208
Recitation FArohee (abhoja) and Sameeksha (sameeksd)R 2:00pm-2:50pm ESTGHC 5208
Recitation GEmily (egetty) and Daymon (dkerns)R 3:00pm-3:50pm ESTGHC 5208
Recitation HVy (vtran) and Aaron (aaronle2)R 4:00pm-4:50pm ESTGHC 5208
Recitation IChase (ccrandal) and Chloe (chloepra)R 9:00am-9:50am ESTGHC 5210
Recitation JDian (dianz) and Maddie (mrburrou)R 10:00am-10:50am ESTGHC 5210
Recitation KAnishka (anishkaj) and Rachael (rpratt)R 11:00am-11:50am ESTGHC 5210
Recitation LKatrina (kbanardi) and Alex (ajdietri)R 12:00pm-12:50pm ESTGHC 5210
Recitation MMichelle (mfchen) and Kate (ccourabi)R 1:00pm-1:50pm ESTGHC 5210
Recitation NVivian (vsui) and Chieri (cnnadozi)R 2:00pm-2:50pm ESTGHC 5210
Recitation OChloe (chloeh) and Madison (madisone)R 3:00pm-3:50pm ESTGHC 5210
Recitation PEkin (eozince) and Kaiti (kaitlink)R 4:00pm-4:50pm ESTGHC 5210

Office Hours

In-person TA Hours take place in the Gates 5th Floor Teaching Commons and clusters. When you have a question, sign up on the OH Queue and a TA will come find you to help.

Remote TA Hours take place remotely on Zoom. When you have a question, sign up on the OH Queue with a link to a Zoom meeting you host, and a TA will join your Zoom call to help.

Instructor Hours take place in Gates 4126 for Prof. Taylor and Gates 4109 for Prof. Ware. Meetings with the instructor are also available by appointment.

Drop-in Tutoring is run by the Student Academic Success Center and takes place in the Fifth & Clyde Neighborhood Space. This is a good resource for students who would like additional help. SASC also offers one-on-one tutoring here

(Note: The times below are subject to change)
MondayTuesdayWednesdayThursdayFridaySaturdaySunday
In-person TA Hours1-5pm1-5pm
Remote TA Hours5-7pm5-7pm5-7pm5-7pm5-7pm5-7pm5-7pm
Instructor Hours4pm-5pm Prof. Ware2pm-3pm Prof. Ware12pm-1pm Prof. Taylor
4pm-5pm Prof. Ware
12pm-1pm Prof. Taylor4pm-5pm Prof. Taylor
Drop-in TutoringTBD

Schedule

The course schedule is available here.

A typical week in 15-110 looks like this: Note that because of irregularities in the academic calendar, some weeks will not follow this pattern. You are responsible for being aware of the due dates on the course schedule page, along with any new or updated information shared via email or our other course platforms.

Grading

Final Grades are computed as follows:
Midsemester and Final grades will be assigned using a standard scale:

Who To Contact

Post on Piazza for the following: Questions about assignments or course concepts, course logistics, questions that any TA or faculty can help you with Contact your Recitation TA(s) for the following: small group session scheduling, additional help

Contact the Head TAs for the following: grading concerns*, TA feedback, submission issues (*for submitting regrade requests, see Regrade Requests section below)

Contact the Instructors via email (mdtaylor@andrew.cmu.edu and rware@andrew.cmu.edu) for the following: extenuating circumstances*, general course advice, academic integrity concerns, any major concerns not suitable for a Piazza post (*for typical extension requests, see Excused Absences and Extensions section below for the proper form to submit. You do not need to email us for most absences and extension requests.)

Course Components


Learning Objectives

By the end of this course, students should be able to:

Assessments

Learning is accomplished through five types of assessments: exercises, check-ins, homeworks, quizlets, and exams.

Exercises: short (1-3 problem) Gradescope online assessments released with each lecture. Indicate whether the student is likely to have introductory knowledge of the lecture's content (have you started learning the material, by attending class or reviewing on your own). Can be retaken as many times as necessary until the desired score is reached. Checks: short assignments that cover the material learned in the previous week. Usually composed of a written part and a programming part. These assignments can be completed collaboratively, but you must write up the solutions yourself; see more information in the Collaboration section. Written assignments can be completed by printing the assignment, writing answers by hand, and scanning the result; alternatively, you can type answers in the fillable PDF electronically by using Adobe Reader (Windows/Macs), Preview (Macs), or Microsoft Edge (Windows). Programming assignments can be completed by editing the starter file in an IDE. Both parts should be submitted to Gradescope for grading and feedback. Homeworks: like checks in format, but longer and covering material both from the previous week and from the preceeding check's week (if there is a preceeding check). Quizlets: single-question quizzes given at the beginning to class to assess your understanding of a concept from a previous week. You have five minutes to complete each quizlet to the best of your ability. Bring a dark pen or pencil to write your answer! Note that your two lowest quizlet scores will be dropped. Exams: paper exams taken in class and completed individually. Takes place during an entire lecture (50min). Covers material from the unit that preceeded it. There will also be a final exam, which will take place during the university's final exam period. This will cover material from the entire semester and will be similar in format to the regular exams, but longer.

Resources

Course Website: contains the syllabus, schedule, assignments, and links to all materials. Everything you need for the course can be accessed here.

Class Sessions: this is where you learn the course material. Attendance at class sessions is very strongly encouraged. While attendance does not directly contribute to your semester grade, we may use student attendance and participation to prioritize access to limited resources or to adjust grade edges. If you cannot attend a class session due to extenuating circumstances (illness etc.), please fill out the excused absence form before the class session to let us know, and contact your TAs or instructors if you need help catching up on any important missed information.

Gradescope: exercises and assignments are submitted here. Programming assignments are usually autograded; refresh the submission page after submitting to see your score (you may resubmit as many times as you want). Feedback is also visible for both written and programming assignments once manual grading has been done. To view your feedback, open your assignment in Gradescope, then click on the question name on the right sidebar that you want to see feedback for. Note that all rubric items are displayed; the rubric items applied to your submission should be highlighted.

Piazza: announcements will be made via Piazza, and it will be used for discussion and questions as well. Visit it frequently or set your preferences to send you an email whenever an announcement is made. It is your responsible to read and understand all instructor/TA announcements made via Piazza or email. Please follow these etiquette guidelines when posting on Piazza: OH Queue: the OH Queue is used to facilitate office hours, where you can ask questions and receive help. You can post a question or request for help on the queue once it is opened, and a TA will contact you when it is your turn. Note that TAs may be limited in the amount of time they can spend with you if the queue is long. There are three different forms of office hours: Instructor Hours are held in the instructors' offices. These are a good place to ask questions directly of the instructors, to get general homework and course material help, or just to talk with an instructor about topics of interest. Note that these office hours are public. We will not use the OH Queue unless our office hours become exceptionally busy, so just swing in and we'll get to you in the order you arrive. If you have a matter that you wish to discuss privately, please email us to set up an appointment.

Canvas: grades are posted in the Canvas gradebook. Note that grades are updated manually once a week; if you make a revision submission or submit a regrade request, you will not see the grade change in Canvas immediately.

SASC Resources: the Student Academic Success Center offers drop-in tutoring and one-on-one tutoring. These programs are separate from the in-course resources and may be useful for students who wish to receive help outside the hours that the course staff can provide.

Tutorials:

Course Materials


Note that this course does not have a required textbook; all course materials will be posted online.

Required Software

Every required software package we use is available for free on the web, and also installed on all cluster computers in GHC. You will need to install Thonny, a free IDE (Interactive Development Environment) that is designed for introductory courses. To set up Thonny on a personal computer, go to thonny.org and click on the download link at the top of your page that matches your computer. (You may use another IDE of your choice, but we will not support it if you have any IDE questions or if it breaks.)

Once you've installed Thonny, open the application and run a simple test in the Shell to ensure it works. Enter the text 2 + 2 in the Shell (next to >>>), then press Enter. Thonny should display 4 on the following line. If this doesn't work, go to office hours to get help from a TA or professor.

Note: Thonny comes with Python 3.10 pre-installed. If you would like to download a different verison of Python, you can download it from python.org.

If you temporarily need to code in a browser, repl.it is a good choice that requires no setup. However, repl.it code is publically viewable by default; do not use it for homework assignments unless you have an account with private repositories! To keep your code private, set up a GitHub student account with your CMU email, then connect it to your repl.it account; you can then create private repos for your homework assignments.

Past Course Iterations

If you'd like to peek ahead and see what we'll learn later in the course, check out these past iterations of 15-110! However, note that content usually changes at least a little in each semester.

Semester2024202320222021202020192018
Fall F23 F22 F21 F20 F19 F18
Spring S24 S23 S22 S21 S20 S19 S18
You can also view the summer version of 15-110 here.

Optional Resources

Here are a few other resources that may prove useful.


Course Policies


Late Policy

Exercises, check-ins, and homeworks all have two deadlines: the normal deadline and the revision deadline. The normal deadline is when you should complete the activity for maximal pedagogical benefit, and a maximal score. The course staff will generally grade assignments and release feedback once the normal deadline has passed. If you made mistakes on the assignment, you may read the feedback, fix the mistakes, and resubmit up until the revision deadline. Assignments submitted after the regular deadline are capped at a score of 90 points; in other words, if you get a 90 or above on an assignment, there is no reason to resubmit (though we still encourage you to read your feedback and make corrections to your local assignment).

If you fail to complete the assignment by the regular deadline, you may also submit for the first time at any point up until the revision deadline, again with the score capped at 90 points. The course staff will attempt to grade your submission as quickly as possible so that you have the opportunity to revise and resubmit if needed. All assignments will be graded by noon EST on the day after the revision deadline at the very latest.

If you entirely miss both the main assignment deadline and the revision deadline due to extraordinary circumstances, you may email the instructors if you wish us to consider accepting the assignment for partial credit. The instructors will decide on a case-by-case basis whether to accept late submissions (though no submissions will be accepted after the final lecture of the semester). Accepted late submissions will be graded for a max of 50/100 points. Note that this is still a failing grade - in almost all circumstances, you should just submit whatever you have done by the revision deadline at the latest!

Excused Absences and Extensions

Click here to request an extension or excused absence
If you cannot complete an assignment by the regular deadline or cannot attend a quizlet/exam, check whether your situation falls into one of the following categories. If it does, fill out the Extension and Excused Absence form before the deadline so that we can arrange an extension, makeup time, or (in the case of quizlets) we may choose to drop the grade. Note that extensions do not apply to the revision deadline, as it is already an extended deadline. Start your work early to avoid last-minute surprises!

If you miss class on a quizlet day for a reason not in the approved list (such as oversleeping), don't panic; we automatically drop your two lowest quizlet scores, including missing scores.

Additionally: if a religious day you observe conflicts with a lecture or exam date, or you have previously-scheduled travel that conflicts with a lecture or exam date, let the course instructors know before the course add deadline and we'll do our best to support you.

Regrade Requests

We occasionally make mistakes while grading (we're only human!). If you find a mistake which you would like us to correct, please submit a regrade request on Gradescope within one week of the time when the contested grade was released by clicking the 'Request Regrade' button. Note- regrade requests will result in the entire problem being regraded, not just the incorrectly graded part.

Formatting Errors

Make sure that your submitted assignments do not have any formatting errors! Written assignments must be submitted in PDF format (unless otherwise specified) and code assignments must not have any syntax errors. We will assign a penalty for every line of code we must edit to make your code run, and this penalty will grow larger as the semester continues. Multiple syntax errors may result in a flat zero.This is easy to avoid, however. Please submit your code at least one time before the deadline and check the autograder's feedback to ensure that everything works. If you cannot make your own code run, use the course resources to ask us for guidance before the deadline gets too close.

Minimum Grades

Mathematical analysis shows that very low grades have an extremely detrimental effect on a student's ability to catch up on work and pass a course. This is partially because of the way letter grades are distributed- there are only 10 points allocated for each of A, B, C, and D, then 60 points are allocated for an R, a failing grade. This has a severe impact on students who, for whatever reason, have an outlier score among their grades. For example, a student who receives a 92 on five homework assignments and a 14 on one homework assignment would receive an average of a 79, or a C, despite demonstrating A-level knowledge on most of the assignments.

To combat this problem, we are setting the minimum grade that a student can receive on any assessment in the class to a 50. We will still grade assignments and assessments on a 0-100 scale, and you will still see your grade on this scale in Gradescope, but if you receive a score < 50 on an assessment, that score will be changed to 50 in the Canvas gradebook. However, this only applies to assessments where students have demonstrated honest effort. We define honest effort as a legitimate attempt to solve most of the problems on both the written and programming portions of the assignments, or a legitimate attempt to solve most of the problems on an exam.

Note that missing assignments/assessments are not eligible for minimum grading; see the Late Policy for how to handle missing assignments. Also, minimum grades do not apply to the final exam, as your final exam grade should reflect your overall level of knowledge gained in the course.

Collaboration and Academic Integrity


Collaboration

Students are encouraged to collaborate when learning the material and working on assignments. If you need help finding collaborators, fill out the collaboration form for the next assignment on the assignments page, and we'll match you with other students.

Here are a list of examples on how to collaborate well within this class.


Academic Integrity in Assignments

We encourage students to collaborate on assignments, as collaboration leads to good learning. However, there are certain restrictions on how much collaboration is allowed, to ensure that all students understand the material they submit on homework assignments. In general, all collaborators must contribute intellectually and understand the material they produce, and each student must write up their own assignment submission individually. If you submit work that you have not contributed intellectually to, or support another student in submitting work they do not fully understand, this counts as an academic integrity violation.

The following actions are considered academic integrity offenses on the homework assignment:

Academic Integrity in Assessments

Quizlets and Exams must be taken individually to accurately assess student knowledge. It will be considered a serious academic integrity offense if a student:


Penalties

Academic Integrity Violations result in a penalty on the first offense, and failing the course on the second offense. Penalties depend on the severity of the violation and can include:
Penalties are usually accompanied by a letter to the Office of Community Standards & Integrity, to be officially filed as an academic integrity offense. A first offense usually leads to a discussion with the office about academic integrity at the university, so that you can better understand how to approach academic integrity in the future. Two or more offenses usually lead to university-level penalties, such as being suspended or expelled.

Plagiarism Detection

Programs are naturally structured, which makes them much easier to compare than hand-written work and easier to compare than typed essays. We run an automated plagiarism detection system on all assignments to detect copied code. We will notice if you copy code. Don't do it.

Grace Period

College is a time when you do a lot of learning. Sometimes, you might make bad decisions or mistakes. The most important thing for you to do is to learn from your mistakes, to constantly grow and become a better person.

Sometimes students panic and copy code right before the deadline, then regret what they did afterwards. Therefore, you may rescind any homework submission up to 24 hours after the submission was made with no questions asked. Simply email the course instructors and ask us to delete the submission in question, and we will do so. Deleted submissions will not be considered during plagiarism detection, though of course they will also not be graded.

General Policies


Health and Wellness

Your first priority should always be to take care of yourself! You should do this by eating well, getting enough sleep, exercising, socializing, and taking some time to relax. This will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. If you or anyone you know experiences any academic stress, difficult life events, or feelings of anxiety or depression, we strongly encourage you to seek support. Contact the Counseling and Psychological Services (CaPS) office at 412-268-2922 and visit their website at http://www.cmu.edu/counseling for more information.

If you or someone you know is in danger of self-harm, please call someone immediately, day or night:
CaPS: 412-268-2922
Re:solve Crisis Network: 888-796-8226
CMU Police: On-Campus 412-268-2323, Off-Campus 911

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. 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: 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 and 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 110 students, consider applying to be a TA in future semesters!

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 (or as soon as it is available). We will contact you within a few days of receiving this form with any relevant instructions for using your accommodations in 15-110.

We are here to help. Regardless of whether you have accommodations through ODR, please contact the course instructors if you have questions or concerns and we will work together for your success.

Waitlist

If you are on the waitlist, don't panic! Most waitlisted students get into the course eventually. Attend lecture and recitation (space permitting), submit the assignments, and stay involved. If you are still not enrolled at the beginning of the third week, contact the course instructors and we will try to help you find a section with open seats.

Auditing

We have found that students who audit 15-110 do not tend to succeed, as they generally cannot dedicate the needed time to the course. Therefore, auditing will only be allowed in exceptional circumstances, and must be approved by the course instructors first.

If you want to take 15-110 but don't want or need a full letter grade for it, you may take the course Pass/Fail instead. This is a great option for graduate students who want to learn how to program but don't want to risk their GPAs! (Note: you should not take the course Pass/Fail if you plan to use 15-110 as a prereq).

Research to Improve the Course

We sometimes use course data (such as responses to surveys) to conduct research on the course, in order to improve it. We do not currently plan to publish research results or share this data with anyone else, but that could change in the future. If it does, all data will be entirely anonymized before being shared. If you would prefer that your anonymized data not be included in any future publications or research uses, please email the course instructors and we will remove your data from the dataset at the end of the semester. Asking to have your data removed will have no influence on your grade for this course or your academic career at CMU.

Tips for Success


Most students who take 15-110 have no prior programming experience. If you fall into this group, taking your first computer science class will provide great opportunities, but it also may pose great challenges. Here are some tips for how to succeed in this course as you learn a new and exciting set of skills and concepts.

  1. Participate. You cannot learn how to program passively, by observing someone else; you have to practice. While attending lecture, follow along in your own IDE and try modifying the code the instructor writes to see what happens. In recitation, actively attempt each problem to the best of your ability before the TA goes over the solution. In general, try things out and see what happens!
  2. Start Early. Don't wait until the day before the deadline to start an assignment! After each lecture, identify problems on the assignment that you can now attempt, and try to solve them. Doing the assignments a bit at a time is much easier than trying to do them all at once.
  3. Embrace Mistakes. "Bugs" (mistakes) are a common part of the programming process. Even expert programmers commonly produce bugs in their code that they need to fix (you'll see this happen to the instructors a lot!). Run your code to check your work often, and treat every bug as an opportunity to learn, not as a dead end.
  4. Get Help When You Need It. It's okay (and encouraged!!) to reach out for help when you're struggling with a concept or an assignment. Come to office hours and the course staff will be more than happy to help you learn. Find a collaborator and talk through the problems with them. In general, don't feel like you need to do everything on your own - embrace your learning community!
  5. Debug Smarter, Not Harder. It is very easy to get stuck when debugging an error in a program and spend hours on a single mistake with no progress. If you find yourself spending more than 15 minutes debugging the same error, you need to change your approach. First, try to get someone else to help you (a TA or a collaborator in the class); often a new set of eyes will notice things that you can't see yourself, and explaining your code to someone else may help you notice something new. Second, if no one else is available, take a break and do something else. When you come back to the problem later, you'll be able to see your code in a new light, and it might prove much easier to fix.
  6. Read Your Feedback. Checks and Homeworks are partially summative assignments (they show what you know), but they're also partially formative (they're a chance to learn). When an assignment has been graded, go back and check the feedback written by TAs on the problems you got wrong. This is your chance to relearn the material before the exam occurs.
  7. Study By Practicing. In this class, you'll mainly learn skills - things you do, rather than pieces of knowledge you know. To study a skill, you need to practice it. When preparing for an exam, don't just review old slides and homeworks - actually re-solve old problems, or attempt the practice problems provided with the exam.