Syllabus
Frequently Needed Information
Meeting Times
| Session | Instructor(s) | Time | Location |
| Lecture 1 | Kelly Rivers (krivers) | MWF 2:00-2:50pm EST | HOA 160 |
| Lecture 2 | Franceska Xhakaj (francesx) | MWF 4:00-4:50pm EST | HOA 160 |
|
| Recitation A | TBA | R 9:00am- 9:50am EST | GHC 5208 |
| Recitation B | TBA | R 10:00am-10:50am EST | GHC 5208 |
| Recitation C | TBA | R 11:00am-11:50am EST | GHC 5208 |
| Recitation D | TBA | R 1:00pm- 1:50pm EST | GHC 5208 |
| Recitation E | TBA | R 2:00pm- 2:50pm EST | GHC 5208 |
| Recitation F | TBA | R 3:00pm- 3:50pm EST | GHC 5208 |
| Recitation G | TBA | R 4:00pm- 4:50pm EST | GHC 5208 |
|
| Recitation I | TBA | R 9:00am- 9:50am EST | GHC 5210 |
| Recitation J | TBA | R 10:00am-10:50am EST | GHC 5210 |
| Recitation K | TBA | R 11:00am-11:50am EST | GHC 5210 |
| Recitation L | TBA | R 12:00pm-12:50pm EST | GHC 5210 |
| Recitation M | TBA | R 1:00pm- 1:50pm EST | GHC 5210 |
| Recitation N | TBA | R 2:00pm- 2:50pm EST | GHC 5210 |
| Recitation P | TBA | R 4:00pm- 4:50pm EST | GHC 5210 |
|
Office Hours
Office hours with TAs are available via sign-ups on Calendly. You may request that office hours take place either in person or remote via Zoom. If requesting in person, please sign up at least 24 hours in advance of the timeslot.
Remote TA office hours take place in
this Zoom meeting.
In-person TA office hours take place in the Gates 5th Floor Teaching Commons and clusters.
| Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday |
| TA Hours | | | | | | | |
Office hours with the instructors are available via appointment.
Sign up to meet with
Prof. Kelly in GHC 4109 or via Zoom
here.
Sign up to meet with
Prof. Franceska in GHC 4003 or via Zoom
here.
Drop-in Tutoring is run by the Student Academic Success Center. Times TBA.
Schedule
The full course schedule with topics, slides, and additional materials is available
here.
A typical week in 15-110 looks like this:
- Monday: submit homework assignment, attend lecture
- Tuesday: (if needed) submit homework revisions from prior week
- Wednesday: attend lecture, take quizlet
- Thursday: attend recitation
- Friday: attend lecture
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:
- A: [90 - 100]
- B: [80 - 90)
- C: [70 - 80)
- D: [60 - 70)
- R: [00 - 60)
To predict what your grade will be based on possible future grades, use the
grade calculator.
Are you sick, dealing with an emergency, or travelling for a CMU-approved event on a quizlet day? Email
Prof. Kelly before lecture to be excused from the quizlet.
Course Components
Learning Objectives
By the end of this course, students should be able to:
- Develop and communicate algorithmic approaches to solve problems using appropriate levels of abstraction.
- Read, test, and debug Python code that uses fundamental programming constructs.
- Apply modern computer science techniques to solve problems in other domains.
- Compare the strengths and weaknesses of different algorithms that solve the same problem.
- Understand the fundamental principles that make computers and computing systems work.
- Discuss the ethical implications of how computation is used in the world.
Assignments and Assessments
Learning is accomplished through a variety of assignments and assessments.
Lecture Exercises: short (1-3 problem)
Gradescope online assessments 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 needed until the desired score is reached.
- Deadline: before the next lecture.
- Revision Deadline: same as the associated assignment's revision deadline.
Recitation Practice Set: short problem sets completed during recitation with TA support. Provides guided practice with content taught in the prior week. Submitted on Gradescope and graded based on effort. If you are unable to attend recitation, attempt the practice set independently on your own time. The two lowest practice set grades will be dropped.
- Deadline: before the following Monday lecture.
- Revision Deadline: same as the associated assignment's revision deadline.
Homework Assignments: written assignments that cover the material learned in the previous week. 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 typing answers into the fillable PDF electronically using
Adobe Reader (Windows/Macs), Preview (Macs), or Microsoft Edge (Windows). Alternatively, you can print the PDF, write answers by hand, and scan the results. Submitted on Gradescope and graded for correctness.
- Deadline: noon EST on the stated date (usually Mondays with some exceptions, please see schedule).
- Revision Deadline: noon EST approximately one week after the deadline (usually Tuesdays with some exceptions, please see schedule).
Mini Projects: larger homework assignments where the student creates a programming project through guided instruction. Collaboration is allowed under the same rules as regular homework assignments. Submit both documentation and code on Gradescope.
- Deadline: noon EST on the stated date (usually Mondays).
- Revision Deadline: noon EST approximately one week after the deadline (usually Tuesdays).
Final Project: a self-designed and self-directed programming project completed at the end of the semester. Must be completed individually, though students are allowed to help each other ideate and debug. Submit both documentation and code on Gradescope.
- Deadline: noon EST on the final day of the semester (Friday 12/04).
- Revision Deadline: there is no revision deadline for the final project.
Oral Assessments: short in-person interviews with a TA or instructor where previous work submitted by the student is discussed to ensure the student understands the work they submitted. Held three times during the semester (after Hw3/Hw4, Project1/Project2, and the Final Project). If a student fails an oral assessment or does not complete an oral assessment within the allotted period, they will receive a 0 on the associated assignment. To earn back the original grade, meet with a course instructor to discuss what happened and brainstorm how to improve understanding in the future.
- Deadline: each oral assessment will have meeting sign-ups available for a period of at least a week.
Quizlets: single-question paper quizzes given at the beginning of class and completed individually to assess understanding of a concept from a previous week. Each quizlet is allotted five minutes. Quizlets will be scanned to Gradescope and feedback will be available there. The two lowest quizlet scores will be dropped.
- Deadline: during class on the stated date (usually Wednesdays).
Midterm Exams: paper exams taken in class and completed individually. Takes place during an entire lecture (50min). Covers material from a set of lectures that preceeded it. Students may bring up to five pages of paper notes to refer to during the exam. Exams will be scanned to Gradescope and feedback will be available there.
- Deadline: Exam1 takes place on 09/30. Exam2 takes place on 11/09.
- If you are unable to attend lecture on an exam day for an extension-eligible reason, contact the instructors in advance to arrange accommodations.
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 midterm 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.
- Lecture: in lecture the course instructors teach the primary content and go over some examples relevant to the homework assignments.
- Recitation: in recitation TAs and students interactively work through problems connected to the material taught in lecture in the previous week. Recitations are highly useful as homework preparation.
- Small Group Sessions: in small group sessions TAs work with 2-5 students from their recitation to review content or collaboratively work on problems related to the course content. This is an excellent resource for students who want more guided study time and practice.
Attendance at class sessions is not mandatory, but it is very strongly encouraged. If you cannot attend a class session,
promptly watch the recording on
Panopto to catch up on the material you missed.
Gradescope: exercises, practice sets, and assignments are submitted here. Feedback will be available for all assignments and assessments once 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. This is also the right place to ask questions, and to review general questions asked by other students. Please follow these etiquette guidelines when posting on Piazza:
- Be specific! Clearly reference which content area or homework problem you have a question about.
- Target your post appropriately. When you ask a general content/homework question that may be useful to others, make the question public (you will be anonymous to other students). When you ask a specific question about your answer to a homework problem that includes part of your solution, make the post private (it will still be visible to the TAs and instructors).
- If you still have related questions after someone answers your main question, create a followup discussion. Mark the discussion thread as resolved as soon as your question has been answered.
- If you include any amount of code in a Piazza post, put it in a code block (use the {;} button). Do not post screenshots of code, as this make debugging more difficult.
- When you ask for debugging help, describe any debugging you've already done and what you think the problem might be.
Office hours: available by appointment with either the TAs or the course instructors. For information on how to sign up for office hours, scroll to the top of the page.
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. Lecture recordings are also available via the Panopto module.
SASC Resources: the Student Academic Success Center offers
one-on-one tutoring. This program is 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
IDE: We recommend that you work with code in
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.14 pre-installed. If you would like to download a different verison of Python, you can download it from
python.org.
AI Tools: Later in the course we will cover how to write code using AI tools. CMU offers EDU accounts for all students on
Google Gemini; if you log into this tool with your CMU email and use the basic model, you should have unlimited prompts. If you wish to experiment with other tools and models, you are welcome to, but note that most have limitations on the number of tokens you can use per day in a free account.
You do not need to purchase a paid AI plan for this course; a free plan should be enough for our purposes.
Past Course Itertions
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 the curriculum changed substantially from S26 -> F26.
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, practice sets, 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, then complete the assignment at a later point, you may still submit your work late by emailing your submission directly to the course instructors with an explanation for why it is late. 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
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, contact the instructors via email
before the deadline so that we can arrange an extension/excuse/makeup time. Finally, 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 crises.
- Medical Emergencies: if you are sick with a contagious illness or ill to the point that you cannot do work, take care of yourself and go to Student Health Services. Students who have medical emergencies may obtain support from the instructors if you let us know as soon as possible.
- Family/Personal Emergencies: if you are having a family or personal emergency (such as a death in the family or a mental health crisis), reach out to your academic advisor or housefellow immediately. These people will help support you in your time of need, and will also reach out to all of your instructors (including the 15-110 instructors) to request extensions for you.
- University-Approved Absences: if you are attending a university-approved event off-campus (such as a multi-day athletic/academic trip organized by the university, or a job interview that requires travel), you may request an extension for the duration of the trip. You must provide confirmation of your attendance, usually from a faculty or staff organizer of the event.
If you miss class on a quizlet day for a reason not in the approved list, 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 add deadline and we'll do our best to support you.
AI Policy
The scope of what Generative AI tools like ChatGPT and Copilot can do is evolving rapidly. These tools can be useful in many circumstances, but they can also harm the learning process when used incorrectly. This is especially true in computer science! AI tools can solve many simple computer science problems on their own, but if you use these tools to skip learning the fundamentals, you won't be able to understand and modify partially-correct results that are produced by AI tools for more complex problems.
You are welcome to use AI tools for purposes that will help you learn. This includes explaining course concepts, explaining error messages, generating worked examples, and generating practice problems. There will also be later portions of the course where we encourage you to use AI on specific parts of assignments; refer to the assignment descriptions for how to best use it then.
You should
not use AI tools in a way that will cause you to skip the learning process. This includes using them to solve homework problems or exercises, or rewrite your solutions to homework problems. To be safe, never enter homework prompts or your homework solutions into an AI tool unless the assignment instructions specifically tell you to do so.
If you have any questions about how to appropriately use AI in this course, please reach out to the instructors to ask - we're happy to provide help.
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 that 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 be submitted in .py format and must not have any syntax errors. If we must make changes to your submission to render it gradeable, a formatting penalty will be applied to your submission.
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 an assignment/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.
Exam Replacement
Sometimes students struggle in the class early on, then improve by the final exam. If you score better on the final exam than on the lower of your two midterm exams, we will replace your lower midterm exam score with your final exam score while calculating final grades. For example, if you scored 70 on Exam1, 80 on Exam2, and 90 on the Final Exam, your Midterm Exam average would be calculated as (90 + 80)/2 = 85 instead of (70 + 80)/2 = 75.
Collaboration and Academic Integrity
Collaboration
Students are strongly encouraged to collaborate when learning the material and working on assignments. However, to ensure learning, we require that every student write up their solution independently (to ensure they understand what they've learned). Here are a few examples of how to collaborate well:
- When studying, have the group review material and solve practice problems together with any level of collaboration.
- When working on an assignment, have the group discuss and solve a set of problems together; then erase the collaborative work, wait a few minutes, and have each student write up their solutions individually.
- Do not create a solution collaboratively and then have everyone directly copy it from a shared paper/whiteboard. This raises the risk that some students might not fully understand the solution. In general, avoid any form of copying, even if you helped produce the content.
- Make sure that everyone is involved in the collaboration! You should not have one student solve a problem and present their solution to the rest of the group; this will not lead to good learning.
- When working on a project, have the group discuss big ideas and approaches together, then separate so that each student writes code / prompts an AI tool separately.
- If someone gets stuck while working, it's okay to ask others for debugging help. But when providing help, make sure to focus on the other student's approach and how to correct it; don't just recommend that they use your approach instead. To be safe, do not refer to your own code when helping a friend debug.
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:
- Copying or stealing any amount of written text or code from someone currently in the class or someone who has taken the class before.
- Copying is never okay, whether the solution is provided electronically, visually, audibly, or on paper.
- Providing text or code you have written for an assignment to anyone else in the class.
- Again: never share your solution with others in the class, including electronic sharing, showing someone the solution on your computer, verbally speaking the solution, or writing down the solution on paper.
- This includes providing your old solutions to future students who will take the class after you've completed it.
- Getting someone else to write the assignment for you
- Having another student explain their solution in an in-depth line-by-line fashion and writing your own solution to match theirs
- In particular, do not have a friend who took the course in a previous semester access their old solutions and use it to provide help.
- It's fine if you collaborate with another current student and generate the solution together, but both parties should be involved.
- Comparing your solution against an alternate solution (from another student, a tool, or a website) to 'check your work', or providing your work to another student so they can check theirs.
- If you'd like to check your work, submit before the normal deadline; you'll then be able to review the TA feedback and resubmit before the revision deadline if needed.
- Exception: it is fine to check your work against another student's work once the revision deadline has passed if you're still stuck on a problem. However, you should still never email your work to other students.
- Finding answers online and using them in the assignment, or consulting them while writing your own solution
- In particular, do not use sites such as Chegg or CourseHero to find answers to homework problems.
- Exception: you may use code from the course website or the Official Python Documentation. Please include a citation with a link when you do this.
- If you are reviewing a general topic online outside of the course website and official documentation and find a small piece of code that might be useful, check with the instructors on Piazza on whether it's okay to use it before integrating it into your solution. Also include a citation!
- Using AI tools to solve assignment problems for you, unless the assignment prompt specifically says AI tools are allowed.
- We'll cover how to use these tools once you've mastered the basics, but in the early weeks they'll cause you to skip the learning process.
- Asking questions about the assignments on any online services outside of the course office hours and course Piazza
- In particular, do not post questions about assignment problems on Chegg or CourseHero. These sites are explicitly not allowed for homework assignments.
- StackOverflow will be a great resource once you've learned the fundamentals of coding, but it's designed for experts, not novices. You should post your questions to Piazza instead.
- Posting solutions from the course assignments online in public view
Academic Integrity in Assessments
Quizlets and Exams must be taken individually to accurately assess student knowledge. It will be considered an academic integrity offense if a student:
- Refers to any disallowed external resources while completing an assessment (phone, tablet, smartglasses, etc.)
- Communicates with another person not on the course staff in any way while taking the assessment
- Copies part or all of an answer off of another student's paper, even if it is very small
- Receives information about the assessment from another student who took it earlier, or shares information about the assessment online or with a student who takes it after them
- Attempts to take extra time outside of the allocated period to complete the assessment (excepting students with registered accommodations)
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:
- Redoing the problem/assignment from scratch
- Receiving a 0 or negative grade on the problem/assignment
- Receiving a full letter grade deduction in the course
- Automatically failing the course
Penalties may be 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, in extreme cases, expelled.
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 work right before the deadline, then regret what they did afterwards. Therefore,
you may rescind any homework/project submission 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 academic integrity checks, though of course they will also not be graded. Note that this policy cannot be applied after we have contacted you asking to discuss the homework submission in question.
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
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 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.
Accommodations
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 promptly. If you need to acquire the form, contact ODR using
these instructions.
Additional time: students who receive additional time on assessments will need to request proctoring from the ODR for each exam. The course instructors will send you a list of exam days at the beginning of the semester so that you can request proctoring in bulk. When making proctoring requests, note that additional-time assessments must take place on the same day as the in-class assessment. You may attend the normal-duration exams in the regular classroom if you want to, but then you will have to complete exams in the assigned time (without additional time).
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 is generally not allowed.
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/No-Pass 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/No-Pass 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 may publish the results of this research or share this data with others in the future; if we do this, 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 computer science 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.
- Participate. You cannot learn how to understand programs 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!
- 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.
- 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.
- 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!
- 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.
- Read Your Feedback. 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.
- Study By Practicing. In this class, you'll primarily 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.