Schedule
Class Schedule
Lectures: Monday, Tuesday, Thursday, Friday at 9:30am - 10:50am in Baker Hall A36
Recitations: Tuesday, Friday
Class Calendar
MONTH | Monday | Tuesday | Wednesday | Thursday | Friday | Week |
---|---|---|---|---|---|---|
JUNE | 23Lecture: Introduction, Algorithms & Abstraction | 24Lecture: Programming Basics | 25 | 26Lecture: Functions & Libraries | 27Lecture: Conditionals and Loops | 1 |
Recitation 1 | Check 1 due | Recitation 2 | ||||
30Lecture: Strings & Lists | 1Lecture: Lists & Mutation vs Immutability | 2 | 3Lecture: Data representation & circuits | 4Independence Day (University closed) | 2 | |
Recitation 4 | ||||||
Homework 1 due | Recitation 3 | Check 2 due | ||||
JULY | 7Lecture: Dictionaries & Sets | 8Lecture: Classes & Objects | 9 | 10Lecture: Efficient Algorithms: Linear vs Binary Search, and Complexity | 11Lecture: Efficient Data Structures: Hashtables | 3 |
Homework 2 due | Recitation 5 | Check 3 due | Recitation 6 | |||
14Lecture: Recursion | 15Lecture: Graphs & Graph Algorithms | 16Midterm Exam | 17Lecture: More Libraries & Files in Python | 18Lecture: The Internet, Cryptography and Security | 4 | |
Homework 3 due | Recitation 7 | Check 4 due | Recitation 8 | |||
21Lecture: Code organization & Top-down Design | 22Lecture: Data Analysis and Visualization | 23 | 24Lecture: Machine Learning, Supervised, Unsupervised, and Reinforcement Learning | 25Lecture: Machine Learning, Generative AI | 5 | |
Homework 4 due | Recitation 9 | Check 5a due | Recitation 10 | |||
28Lecture: Parallel Computing | 29Lecture: Computing History | 30 | 31Lecture: P vs NP, Intractability and Incomputability | 1Final Exam | 6 | |
Check 5b due | Recitation 11 | Homework 5 (Project) due |
Recitations
Recitations are every Tuesday and Friday.
Section | Staff | Time | Location |
---|---|---|---|
A | Zoe and Michelle | 2:00pm -2:50pm | DH 1117 |
B | Cyrus and Katherine | 3:30pm-4:20pm | GHC 5207 |
C | Grey and Jenny | 3:30pm-4:20pm | GHC 5208 |
D | Sohum and Jess | 3:30pm-4:20pm | GHC 5210 |
Office Hours
Office hours are held every day. Specific times and locations will be posted here. Check Ed for updates as they may sometimes be rescheduled!
Instructor Office Hours
Day | Time | Staff | Location |
---|---|---|---|
Monday | 11:30am - 1:30pm | Daniel | GHC 4124 |
Thursday | 11:30am - 1:30pm | Daniel | GHC 4124 |
TA Office Hours
Day | Time | Staff | Location |
---|---|---|---|
Monday | 5pm - 7pm | Michelle, Grey | TBD |
Tuesday | 5pm - 7pm | Sohum, Cyrus, Zoe | TBD |
Wednesday | 5pm - 7pm | Sohum, Cyrus, Zoe | TBD |
Thursday | 5pm - 7pm | Zoe, Cyrus | TBD |
Friday | 5pm - 7pm | Michelle, Grey | TBD |
Saturday | 1pm - 4pm | Jess, Jenny, Katherine | TBD |
Sunday | 1pm - 4pm | Jess, Jenny, Katherine | TBD |
Staff









Syllabus
Grading
Final grades will be computed with the following weighting:
Component | Weight |
---|---|
Post-lecture Exercises (average) | 5% |
Check assignments | 15% (5 × 3% each) |
Homework assignments (1–4) | 20% (4 × 5% each) |
Final project (Homework 5) | 10% |
Recitations | 10% (10 × 1% each) |
Midterm Exam | 15% |
Final Exam | 25% |
Assessments
This class will have five types of assessments: exercises, check-ins, homeworks, recitation problems, and exams.
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 necessary until the desired score is reached. Exercises are due 1 hour before the next lecture
Checks: short assignments that cover the material learned in the past few lectures. 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. Checks will be posted in the resources page on Ed and are due at 11:59pm EST on the stated date (usually Thursdays, except the final Check).
Homeworks: like checks in format, but longer and covering material both from more lectures. Homeworks will be posted in the resources page on Ed and are due at 11:59pm EST on the stated date (usually Mondays, except the final Homework).
Recitations: you should hand in your answers written on the paper handout at the end of each recitation.
Midterm Exam: paper exam taken in class and completed individually. Takes place during an entire lecture (80min). Covers material from the lectures that preceeded it. You may bring one handwritten double-sided letter-size sheet of paper notes. The midterm exam is scheduled for 9:30am on Wednesday the 16th of July.
Final exam: There will be a final exam, which will take place during the final exam day (August 1st). This will cover material from the entire course and will be similar in format to the midterm exam, but longer. You may bring two handwritten double-sided letter-size sheets of paper notes.
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.Resources
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.
EdStem: announcements will be made via Ed, and it will be used for discussion and questions as well. You should set your preferences to send you an email whenever an announcement is made. It is your responsibility to be up to date with all announcements. Please follow these guidelines when posting on Ed:
- 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 an Ed post, put it in a code block. 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.
One-on-one tutoring: the Student Academic Success Center will have tutoring for this course. Virtual appointments for one-on-one tutoring can be booked here.
Optional Resources
Here are a few other resources that may prove useful. Note that you may use these resources to look things up and learn, but you should never just copy-paste code and use it in your assignments! That would be plagiarism.
- Official Documentation
- Useful Tools
- pythontutor.com (step-by-step tracing with visualization)
- Free Textbooks/Online Courses
Required Software
Every required software package we use is available for free on the web, and also installed on all cluster computers in GHC. You will need to install Thonny, a free IDE (Interactive Development Environment) that is designed for introductory courses. To set up Thonny on a personal computer, go to thonny.org and click on the download link at the top of your page that matches your computer. (You may use another IDE of your choice, but we will not support it if you have any IDE questions or if it breaks.)
Once you've installed Thonny, open the application and run a simple test in the Shell to ensure it works. Enter the text 2 + 2 in the Shell (next to >>>), then press Enter. Thonny should display 4 on the following line. If this doesn't work, go to office hours to get help from a TA or professor.
Note: Thonny comes with Python 3.10 pre-installed. If you would like to download a different verison of Python, you can download it from python.org.
Excused Absences and Extensions
If you cannot complete an assignment by the regular deadline or cannot attend a recitation/exam, check whether your situation falls into one of the following categories. If it does, contact the instructor via email before the deadline so that we can arrange an extension or makeup time. Start your work early to avoid last-minute crises!
- Medical Emergencies: if you are sick with a contagious illness (including COVID), 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 recordings and 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.
Regrade Requests
We occasionally make mistakes while grading (we're only human!). If you find a mistake which you would like us to correct, please submit a regrade request on Gradescope within one week of the time when the contested grade was released by clicking the 'Request Regrade' button. Note: regrade requests will result in the entire problem being regraded, not just the incorrectly graded part. This means that your total score may decrease as the result of a regrade request.
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.
- 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.
- Getting someone else to write the assignment for you
- 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 that we give you.
- 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 Ed on whether it's okay to use it before integrating it into your solution. Also include a citation!
- Asking questions about the assignments on any online services outside of the course office hours and course Ed
- 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 right now. Trust us on this one.
- Using AI tools like ChatGPT or Copilot to solve assignment problems for you
- These tools will be useful once you've mastered the basics, but right now they'll cause you to skip the learning process. For now, you should never enter assignment prompts or solutions into one of these AI tools, even just to check your work.
- Acceptable uses for these tools include: explaining concepts; explaining error messages (without entering code); generating practice problems and solutions to practice problems. If you want to use these tools for other purposes in the context of this class, check with an instructor first.
- Posting solutions from the course assignments online in public view
Academic Integrity in Exams
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 exam (phone, tablet, etc.)
- Communicates with another person not on the course staff in any way while taking the exam
- Copies part or all of an answer off of another student's paper, even if it is very small
- Receives information about the exam from another student who took it earlier, or shares information about the exam online or with a student who takes it after them
- Attempts to take extra time outside of the allocated period to complete the exam (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:
- 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 Responsibility, 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.
Plagiarism Detection
Programs are naturally structured, which makes them much easier to compare than hand-written work and easier to compare than typed essays. We run an automated plagiarism detection system on all assignments to detect copied code. We will notice if you copy code. Don't do it.
Grace Period
College is a time when you do a lot of learning. Sometimes, you might make bad decisions or mistakes. The most important thing for you to do is to learn from your mistakes, to constantly grow and become a better person.
Sometimes students panic and copy code right before the deadline, then regret what they did afterwards. Therefore, you may rescind any homework submission up to 24 hours after the submission was made with no questions asked. Simply email the course instructors and ask us to delete the submission in question, and we will do so. Deleted submissions will not be considered during plagiarism detection, though of course they will also not be graded.
Diversity and Inclusion
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 if you feel comfortable doing so. 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. When making proctoring requests, note that additional-time assessments must take place on the same day as the exam. 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).