Syllabus



Frequently Needed Information


Meeting Times

SessionInstructor(s)TimeLocation
Lecture 1Kelly Rivers (krivers)MWF 4-4:50pm EDTZoom
Lecture 2David Touretzky (dst)MWF 5:20-6:10pm EDTZoom
Recitation A/I-RemoteAbhi (adevarap) and Jonan (jseeley)R 9:20-10:10am EDTZoom
Recitation B/J-RemoteLaura (lkoye) and Mahima (mshanwar)R 10:40-11:30am EDTZoom
Recitation C/K-RemoteDiaj (dtoussai) and Neha (npc)R 12:00-12:50pm EDTZoom
Recitation D/L-RemoteAnagha (asrikuma) and Claudia (cosorio)R 1:20-2:10pm EDTZoom
Recitation E/M-RemoteEnock (emaburi) and Nazanin (nazimi)R 2:40-3:30pm EDTZoom
Recitation F/N-RemoteAshley (awzhang) and Tara (tarap)R 4:00-4:50pm EDTZoom
Recitation G/O-RemoteEvans (evansc) and Neeraj (neerajsa)R 5:20-6:10pm EDTZoom
Recitation H/P-RemoteHita (rkambham) and Tyler (tjlowe)R 6:40-7:30pm EDTZoom
International Recitation XAmanda (lianglij) and Rae (yirandua)R 10-10:50pm EDTZoom
International Recitation YFrank (frankh)R 8:10-9pm EDTZoom
Recitation A/I-ClusterIris (ilu1)R 9:20-10:10am EDTGHC 4307
Recitation B/J-ClusterRachel (rachelt1)R 10:40-11:30am EDTGHC 6115
Recitation C/K-Cluster-1Elyana (erhurst)R 12:00-12:50pm EDTGHC 6115
Recitation C/K-Cluster-2Kailas (kshekar)R 12:00-12:50pm EDTGHC 4215
Recitation D/L-Cluster-1Meghan (mamcgraw)R 1:20-2:10pm EDTGHC 4215
Recitation D/L-Cluster-2Amit (amitnag)R 1:20-2:10pm EDTCYH B6
Recitation E/M-ClusterMeghan (mamcgraw)R 2:40-3:30pm EDTGHC 4401
Recitation F/N-ClusterFlako (daniells) and Lauren (leheller)R 4:00-4:50pm EDTGHC 4401
Recitation G/O-Cluster-1Sarah (sstaplet)R 5:20-6:10pm EDTGHC 6115
Recitation G/O-Cluster-2Kailas (kshekar)R 5:20-6:10pm EDTGHC 4401
Recitation H/P-ClusterLauren (leheller)R 6:40-7:30pm EDTGHC 4401

Office Hours

All students are encouraged to use office hours to learn and receive help on homework assignments! Note that most help sessions take place online, usually via Zoom.

MondayTuesdayWednesdayThursdayFridaySaturdaySunday
TA Hours5-8pm9-10am, 5-8pm, 10-11pm9-10am, 5-8pm, 10-11pm5-8pm, 10-11pm5-8pm12-5pm, 10-11pm2-7pm, 10-11pm
Collaboration Hours
Instructor Hours10-11am (krivers)2-3:30pm (dst)1-2pm (krivers)3:30-5pm (dst)2-3pm (krivers)

Schedule

The course schedule is available here.

Zoom links for all group course activities are available here. You must be logged into your CMU Google account to access this page.

Feedback

Give post-lecture and general course feedback here: https://bit.ly/110-feedback

Give post-recitation feedback here: https://forms.gle/NmBJdt4zwTxgsjuw8

Grading

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

Who To Contact

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

Contact the Professors for the following: extension requests, lecture/homework issues, academic integrity concerns, general course concerns

Course Components


Learning Objectives

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

Assessments

Learning is accomplished through four types of assessments: quizzes, check-ins, homeworks, and tests.

Quizzes: short (1-3 problem) Gradescope quizzes released with each lecture. Assesses whether the student has 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. Check-ins: 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 Preview (Macs) or Adobe Reader (Windows/Macs). 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 check-ins in format, but longer and covering material both from the previous week and from the preceeding check-in's week (if there is a preceeding check-in). Tests: long (8-12 problem) Canvas quizzes released on specified days, usually a week after a homework deadline. Covers material from the homework and check-in that preceeded it. Must be taken individually, not collaboratively. Must be taken using Canvas's LockDown Browser functionality. Students may use notes (printed or accessed via slides on the course website) during tests. Students will also be able to access the course Piazza, where they can ask private clarification questions related to the test. 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.

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 is not mandatory, but it is strongly encouraged. Gradescope: quizzes are taken here, 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.

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. This is also a good place to ask short questions (TAs monitor it daily) and to review general questions asked by other students. 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: Canvas: tests and the final exam will take place on Canvas. You will need to take these assessments using LockDown Browser, which you can download here. Grades will also be posted here, and lecture recordings are posted on Pages.


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. This includes:

Optional Resources

None of these resources are required; however, they may be useful if you want additional practice.


Course Policies


In-person and Remote Interaction

Learning in a pandemic requires different interactions from what we're all used to. To help make sure that everyone feels safe and welcomed in the classroom environment, we require that all people involved in 15-110 (students, TAs, and instructors) follow these guidelines.

In-person Interaction Zoom Interaction

Late Policy

Quizzes, 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 EDT on the day after the revision deadline at the very latest.

Extensions

If you are unable to take a test on the specified day or cannot complete an assignment by the revision deadline for one of the following reasons, please contact the instructors before the deadline so that we can arrange an extension.

Additionally: if a religious day you observe conflicts with a test date, or you have previously-scheduled travel that conflicts with a test date, let the course instructors know before the add deadline. We may be able to move test dates in some cases.

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. 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. Please submit your code at least one time before the deadline and check the autograder's feedback to ensure that everything works.

Minimum Grades

Mathematical analysis shows that giving 0s as grades has 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 95 on five homework assignments and a 0 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, not a 0. We will still grade assignments and tests 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.

Collaboration and Academic Integrity


Collaboration

Students are encouraged to collaborate when learning the material and working on assignments. 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. Our academic integrity policy is written to ensure that this happens.

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

Academic Integrity in Tests

Tests must be taken individually. It will be considered an 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 Dean of Student Affairs, to be officially filed as an academic integrity offense. A first offense usually leads to a discussion with Student Affairs about academic integrity at the university. Two or more offenses 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

Your first year of 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, and this is doubly important during tumultuous pandemic times. Take care of yourself this semester 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

We warmly welcome students with a wide range of backgrounds and identities in this course. We strive to make every student in this class feel safe and welcome, both because we respect you as human beings with a diverse set of experiences and because we want to make learning computer science as accessible as possible. We acknowledge that computer science as a field currently suffers from a lack of racial and gender diversity, and we want to make the field more broadly accessible for all people. If you are interested in joining efforts to broaden diversity in computer science, consider joining SCS4All or talking to the course staff about other ways to get involved.

If something happens that makes you feel unsafe, unwelcome, or discriminated against, please let us know. You are always encouraged to reach out to the course instructors; we will listen and support you. You can email the professors directly, or contact us anonymously via the general course feedback form. You are also encouraged to reach out to the Center for Student Diversity and Inclusion here if you wish to report concerns anonymously; they will then be able to take appropriate actions to support you.

Acommodations

We gladly accommodate students with accommodations that have been approved by the Office of Disability Resources (ODR), as explained here). If you are eligible for accommodations, please submit the appropriate form to the instructors in the first two weeks of the semester. If you need to acquire the form, contact ODR using these instructions. Note that students who receive extended time on tests will receive that extra time within Canvas automatically. If you are registered to receive extra time in 15-110 and your test does not have extra time applied, please contact the course instructors immediately so we can fix it.

Waitlist

If you are on the waitlist, don't panic! Most waitlisted students get into the course eventually. Attend lecture and recitation, 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 wish to take 15-110 but don't want or need a full letter grade for it, you may take the course as 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 may not take the course Pass/Fail if you plan to use 15-110 as a prereq).

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. Check-ins 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 test 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 test.
Worried about taking a course online from home? Here are some tips for success.