Syllabus
Frequently Needed Information
Meeting Times
Session | Instructor(s) | Time | Location |
Lecture 1 | Kelly Rivers (krivers) | MWF 2:30-3:20pm EST | GHC 4401 |
Lecture 2 | Franceska Xhakaj (francesx) | MWF 3:35-4:25pm EST | DH 2210 |
|
Recitation A | Belle (beblanch) and Nazanin (nazimi) | R 9:05am- 9:55am EST | GHC 5208 |
Recitation B | Claudia (cosorio) and Ezra (eboldizs) | R 10:10am-11:00am EST | GHC 5208 |
Recitation C | Esther (oeb) and Rachel (rachelt1) | R 11:15am-12:05pm EST | GHC 5208 |
Recitation D | Jenny (jdoan) and Neha (npc) | R 12:20pm- 1:10pm EST | GHC 5208 |
Recitation E | Anagha (asrikuma) and Keerthana (keerthav) | R 1:25pm- 2:15pm EST | GHC 5208 |
Recitation F | Otto (ojs) and Stephen (stephenz) | R 2:30pm- 3:20pm EST | GHC 5208 |
Recitation G | Annika (annikaw) and Robbie (rbm) | R 3:35pm- 4:25pm EST | GHC 5208 |
Recitation H | Fiona (cchiu2) and Tara (tarap) | R 4:40pm- 5:30pm EST | GHC 5208 |
Recitation Q | Meghan (mamcgraw) | R 11:15am-12:05pm | GHC 5207 |
|
Recitation I | Alice (alicehon) and Sarah (sstaplet) | R 9:05am- 9:55am EST | GHC 5210 |
Recitation J | Ashley (awzhang) | R 10:10am-11:00am EST | GHC 5210 |
Recitation K | Flako (daniells) | R 11:15am-12:05pm EST | GHC 5210 |
Recitation L | Lauren (leheller) | R 12:20pm- 1:10pm EST | GHC 5210 |
Recitation M | Frank (frankh) and Michelle (mskoo) | R 1:25pm- 2:15pm EST | GHC 5210 |
Recitation N | Nathan S. (nshao) and Rachel (rachelt1) | R 2:30pm- 3:20pm EST | GHC 5210 |
Recitation O | Christina (qianoum) and Winfred (winfredw) | R 3:35pm- 4:25pm EST | GHC 5210 |
Recitation P | Muzaffar (mimohame) and Nathan M. (nmaher) | R 4:40pm- 5:30pm EST | GHC 5210 |
Recitation S | Amit (amitnag) | R 12:20-1:10pm | GHC 5207 |
|
Lecture 3 / Recitation R | Lauren (leheller) | Asynchronous |
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 either remotely or in
Gates 4109 for Prof. Kelly and
GHC 4003 for Prof. Franceska; sign up on the
OH Queue and state your modality there. Meetings with the instructors are also available by appointment.
Drop-in Tutoring is run by the Student Academic Success Center and takes place across campus in the evenings. This is a good resource for more in-depth review of the course concepts.
| Monday | Tuesday | Wednesday | Thursday | Friday | Saturday | Sunday |
In-person TA Hours | 5-8pm | 5-8pm | 5-8pm | | | 12-5pm | 12-5pm |
Remote TA Hours | | | | 5-8pm | 5-8pm | | 5-7pm |
Instructor Hours | 10:30-11:30am (Kelly) | 10-11:30am (Franceska) | 12:30-1:30pm (Kelly) | 10-11:30am (Franceska) | 1-2pm (Kelly) | None | None |
Drop-in Tutoring | 8:30-11pm | 8:30-11pm | 8:30-11pm | | | | 8:30-11pm |
Schedule
The course schedule is available
here.
A typical week in 15-110 looks like this:
- Monday: submit homework assignment, attend lecture
- Tuesday: (sometimes) submit homework revisions from prior week
- Wednesday: attend lecture, (sometimes) take quiz
- Thursday: attend recitation
- Friday: attend lecture
Feedback
Give post-lecture and general course feedback here:
https://bit.ly/110-f21-feedback
You can use this to tell us when you're having trouble keeping up with the course content (so we can detect general trends), or when you have an idea about something that might improve the course.
Give post-recitation feedback here:
https://forms.gle/m1VtwJvTE6kfAXRg6
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)
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:
- Demonstrate knowledge of Python syntax by reading and writing Python code
- Transform computational ideas between different levels of abstraction
- Indicate which data structures would be the best fit for specific situations
- Describe how efficiency affects the practical usage of algorithms and data structures
- Identify different algorithmic techniques for running programs at scale
- Construct programs that apply computational concepts as a tool in other domains
- Discuss how computer science interacts with and affects the world
Assessments
Learning is accomplished through four types of assessments: exercises, check-ins, homeworks, and quizzes.
Exercises: short (1-3 problem)
Gradescope online assessments released with each lecture and recitation. 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.
- Deadline: 1 hour before the next lecture.
- Revision Deadline: noon EST on the day before the next assignment's corresponding quiz.
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
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.
- Deadline: noon EST on the stated date (usually Mondays, except for Check1 and Check6-2).
- Revision Deadline: noon EST on the day before the assignment's corresponding quiz (usually Tuesdays).
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).
- Deadline: noon EST on the stated date (usually Mondays, except for Hw6).
- Revision Deadline: noon EST on the day before the assignment's corresponding quiz (usually Tuesdays).
Quizzes: medium (4-6 problem, 20 minute) paper quizzes taken in lecture and completed individually. Covers material from the homework and check-in that preceeded it. You may bring one page of notes to refer to duing the quiz (suggested notes will be provided for each quiz).
- Deadline: taken in lecture on certain days (usually Wednesday, except for Quiz5)
- If you are unable to attend lecture on a quiz day, 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.
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. That having been said, if you're feeling ill, do
not attend class in-person and get other people sick; watch the lecture recording or ask your TA for the recitation notes so that you can review the content on your own time.
- Lecture: in lecture the instructors teach the primary content and go over some examples relevant to the homework assignments. Lectures take place in person and are recorded. Lecture recordings are posted on Canvas for students who are unable to attend live, but live attendance is strongly encouraged.
- Recitation: in recitation the TAs lead students through problems connected to the material taught in lecture in the previous week. Recitations are highly useful as homework preparation. Recitations take place in person. Recitations are not recorded, to encourage active participation.
- 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. Small group sessions take place either in person or via Zoom, and are not recorded.
- Quiz Review Sessions: quiz review sessions are held shortly before each quiz. A few TAs will lead a large group of students in reviewing the content covered by the quiz and will answer any remaining clarification questions that are brought up. This is a great resource for studying for the quizzes!
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. 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:
- 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.
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:
- In-person TA Hours are held every day in the Gates 5th Floor Teaching Commons and clusters. These are a good place to find other students to collaborate with and to get help with the course material or homework assignments. When you have a question, sign up on the OH Queue with a brief summary of your question and your current location. A TA will come find you to help.
- Remote TA Hours are held every day online. These are a good place to ask questions about the homework assignments or get debugging help when you're not on campus. When you have a question, create a new Zoom meeting, then sign up on the OH Queue with a link to your Zoom. A TA will join the call to help.
- Instructor Hours are held on weekdays in Gates 4109 for Prof. Kelly and Gates 4003 for Prof. Franceska. 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. Meetings with the instructor are also available by appointment.
Canvas: lecture recordings are posted on Pages, and grades are posted in the gradebook.
Drop-in Tutoring: this is a service available through the Student Academic Success Center. This tutoring program is separate from the in-course resources. Peer tutoring takes place from 8:30pm-11pm in the following locations: Donner Reading Room (Tuesday, Sunday); Mudge Reading Room (Monday, Tuesday, Wednesday); Tepper 3807 hallway (Tuesday, Sunday).
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:
- Python version 3.x (3.6 or later), which can be freely downloaded and installed from python.org.
- Pyzo, a free IDE (Interactive Development Environment) that is designed for introductory courses. To set up Pyzo on a personal computer, follow these instructions:
- Download and install Pyzo here.
- If you are on a Mac, you may need to verify that Pyzo is a safe application in your settings.
- Go to System Preferences > Security & Privacy.
- There should be a notification about Pyzo being blocked. Click 'Open Anyway' to verify Pyzo.
- Launch Pyzo.
- Setup your shell configuration to run Python 3
- On the top menu, click Shell->Edit Shell Configurations
- Click the dropdown labeled exe, and choose python.exe [v3.x]
- Under gui, select None - no GUI support (otherwise you may have problems when we do graphics)
- Press Done
- Restart Pyzo and you're ready to go!
- For a simple Python3 test, type this line of code in the shell/interpreter (with ">>>"):
print(5/3)
then press Enter. You should not get 1 (which you would get if you are using Python2) but instead should get 1.666666667.
You may use another IDE of your choice, but we will not support it if you have any IDE questions or if it breaks. If you temporarily need to code in a browser, repl.it is a good choice that requires no set-up. However, repl.it code is publically viewable by default; do not use it for homework assignments unless you have an account with private repositories!
Optional Resources
None of these resources are required; however, they may be useful if you want additional practice.
- Past 15-110 Courses
- Official Documentation
- Useful Tools
- Python Shells (in the browser)
- Python Exercises (for a bit more practice)
- Online Learning Resources
- Online Advanced Resourecs
Course Policies
In-person and Remote Interaction
We're slowing recovering from the pandemic, but we still need to protect each other if we want life to get fully back to normal. 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 the
CMU guidelines for in-person instruction.
If you use Zoom for any course interactions (such as meeting with a TA or attending a small group session), make sure to use your CMU Zoom account, and do
not make your own recording of the session unless all other participants in the meeting explicitly agree that it is okay.
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, then complete the assignment at a later point, you may still submit your work late by emailing your submission directly to the course instructor with an explanation for why it is late. The instructor will decide on a case-by-case basis whether to accept late submissions (though no submissions will be accepted after the last day of class, 12/03). Accepted late submissions will be graded for a max of 50/100 points. Note that this is still a failing grade - in almost all circumstancecs, you should just submit whatever you have done by the revision deadline at the latest!
Extensions
If you are unable to attend lecture on a quiz 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.
- Medical Emergencies: if you are sick with a contagious illness, or ill to the point that you cannot take a quiz or do work, take care of yourself and go to Student Health Services! Students who have medical emergencies may obtain extensions from the instructors if you let us know as soon as possible. Students who need to quarantine due to COVID should review the remote policy for instructions.
- Family/Personal Emergencies: if you are having a family or personal emergency (such as a death in the family, a COVID-19 emergency, 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), 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.
Additionally: if a religious day you observe conflicts with a quiz date, or you have previously-scheduled travel that conflicts with a quiz date, let the course instructors know
before the add deadline and we'll see what we can do.
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, and this penalty will grow larger as the semester continues. 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 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, not a 0. 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 the majority of the problems on both the written
and programming portions of the assignments, or a legitimate attempt to solve the majority of the problems on a quiz or exam. Note that missing assignments are
not eligible for minimum grading; see the
Late Policy for how to handle missing assignments.
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.
- Work on practice problems together with any level of collaboration.
- Discuss which general concepts might be useful in solving a problem (loops, data representation, etc.)
- Sketch out solutions on a whiteboard together.
- You should sketch out the solution together, discuss it, then erase the solution, do something else for a while, then write up the solutions individually. Don't just copy the solution directly from the whiteboard- then you might not fully understand it!
- Note that this type of problem-solving should involve active participation by all students. 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, and goes against our policies.
- For programming problems, review test cases together and discuss why the inputs result in specific outputs.
- For programming problems, help each other debug specific parts of assignment code.
- NOTE: do not 'debug' by telling a friend to try your approach instead! Help them figure out what is actually going wrong. 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.
- Comparing your solution against an alternate solution (from another student 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 (non-autograded) 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. 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 here!
- Posting solutions from the course assignments online in public view
- Getting someone else to write the assignment for you
- 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 basics of coding, but it will not be helpful now. Trust us on this one.
- Attempting to 'hack' or decompile Gradescope or the autograder to produce solutions
Academic Integrity in Assessments
Quizzes and the final exam must be taken individually. It will be considered an academic integrity offense if a student:
- Refers to any disallowed external resources while completing a quiz/exam (phone, tablet, etc.)
- Communicates with another person not on the course staff in any way while taking the quiz
- Copies part or all of an answer off of another student's paper, even if it is very small
- Receives information about the quiz/exam from another student who took it earlier, or shares information about the quiz/exam publically online or with a student who takes it after them
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 on the problem/assignment
- Receiving a full letter grade deduction in the course
- Automatically failing the course
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 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
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 as we attempt to return to life as normal post-pandemic. 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.
Research to Improve the Course
For this class, we are conducting research on student outcomes. This research will involve your work in this course. You will not be asked to do anything above and beyond the normal learning activities and assignments that are part of this course. You are free not to participate in this research, and your participation will have no influence on your grade for this course or your academic career at CMU. All students must be at least 18 years old to participate. If you do not wish to participate, or you will not be at least 18 years old by the end of the semester, please send an email to Chad Hershock (
hershock@andrew.cmu.edu) with your name and course number. Participants will not receive any compensation. The data collected as part of this research may include student grades. All analyses of data from participants' coursework will be conducted after the course is over and final grades are submitted.
The Eberly Center may provide support on this research project regarding data analysis and interpretation. The Eberly Center for Teaching Excellence & Educational Innovation is located on the CMU-Pittsburgh Campus and its mission is to support the professional development of all CMU instructors regarding teaching and learning. To minimize the risk of breach of confidentiality, the Eberly Center will never have access to data from this course containing your personal identifiers. All data will be analyzed in de-identified form and presented in the aggregate, without any personal identifiers. If you have questions pertaining to your rights as a research participant, or to report concerns to this study, please contact Chad Hershock (
hershock@andrew.cmu.edu).
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 in the
first two weeks of the semester. 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 quiz/exam. The course instructors will send you a list of quiz/exam days at the beginning of the semester so that you can request proctoring in bulk. Additional-time assessments must take place on the same day as the in-class assessment. To use additional-time, you must attend the ODR-proctored quiz/exam and not the normal-duration quiz/exam. You do have the option of attending the normal-duration quiz/exam, but then you will have to complete it in the assigned time (without additional-time).
For quiz days in particular, we will cover content after the quiz, so you are welcome to either sit in class and work on something else quietly (with no electronic devices) during the quiz, or sit outside of the lecture hall and rejoin the class once the quiz is finished.
Remote Students
A small number of students may be enrolled in the course remotely due to travel restrictions or health concerns. Students officially enrolled in the remote lecture (Lecture 3) can engage with the course in the following ways:
- Attend lecture synchronously via Zoom, or watch lecture recordings
- Attend a special remote recitation synchronously via Zoom (details TBA)
- Attend remote office hours scheduled at various times throughout the week
- Ask questions asychnronously via Piazza
Students may also temporarily engage in the course remotely if they are not able to attend class due to illness or quarantine. To temporarily switch to remote attendance, contact the professors.
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 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.
- 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!
- 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. 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 quiz occurs.
- 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 quiz.