Course Policies

CMSC 141: Introduction to Python • Summer 2026

This page collects the policies for the course. The schedule is subject to change; any adjustments are announced on Ed.

A Note on Norms

College often relies on a hidden curriculum of unspoken expectations that not all students have equal access to. In the interest of equity, I aim to make those expectations explicit. This includes how to address me, when and how to ask for help, what office hours are for, how collaboration is supposed to work, and what counts as appropriate participation and citation.

How to contact me: A post on Ed is best. If you need to email me, please put CS141 in the subject line so it does not get lost. I check email between 8am and 5pm Monday through Friday and aim to respond within one business day. Emailing at 2am does not signal dedication.

How to address me: In the CS department we use Professor [Last Name] as the norm. As such we will model that in this class. "Professor Chanenson," "Professor C," or just "Professor." Whatever feels natural.

Office hours: Designed for all kinds of questions: conceptual confusion, debugging help, feedback on work in progress, and study strategies. You do not need a fully formed question to show up. If you are unsure whether something is worth asking about, it probably is.

Time: This is a summer course and it moves quickly. Plan for roughly 9–12 hours per week total, including class time. Some weeks will take more, some less. Carving out focused work time between sessions, not just before deadlines, is what separates students who keep up from those who fall behind.

How to Succeed in CS 141

Attend class. The primary way you encounter new material is through lecture, and we often work through problems together in real time. Missing a session means missing that practice.

Read before class. You do not need full comprehension before showing up, but skimming the relevant chapter gives you a foothold. When you have seen something once, the lecture lands better.

Ask questions. There are many places to do this: in class, at office hours, and on Ed. This course builds on itself week by week. Confusion about one topic will compound into the next. Ask early.

Start assignments early. If you run into trouble two hours before the deadline, there is nothing we can do. If you run into trouble two days before, there is. Starting early also lets you step away and come back fresh, which is one of the most effective debugging strategies there is.

Practice. You will not learn to program by watching someone else do it. Do the exercises, finish the assignments, and try things that were not assigned. The only path to fluency is repetition.

See also the Getting Help page.

Devices in Class

Phones stay away for the whole session, not face-down on the desk. If you are expecting something urgent, tell me before class and step out to deal with it.

Laptops can be on your desk but stay closed, except when we are doing a live-coding exercise and I ask you to open them. If you take notes on a laptop or an iPad, turn the WiFi off when you sit down. The one exception is pulling today's GitHub repo at the start of class; once it is downloaded, switch the WiFi back off. A device that is offline is a device that cannot pull you out of the room, and the research on this is consistent: an open laptop with a network connection is a distraction for the person using it and for everyone seated behind them.

Communication

There are a number of ways we communicate about the class.

Quizzes

Quizzes are short, low-pressure check-ins, held at the start of class on the days marked in the schedule. A quiz is where you show me a standard, meaning one specific skill from the course, such as writing a loop that stops at the right time. It is a check on what you can do right now, not a score that follows you for the rest of the term. A quiz that goes badly does nothing to your grade on its own; it just tells both of us which skills still need work.

A quiz takes about 15 to 20 minutes. Some quiz days run a little longer so that students who are re-attempting an earlier skill can do so in the same sitting. How that works, and why it never eats into lecture time, is explained under "Quiz days and your time in class" below.

Homework

There are seven homework assignments (HW0 through HW6). We evaluate your code on two dimensions. The first is completeness, which is measured by an automated test suite that checks whether your program does what the assignment asked. The second is code quality, which means:

How homework is marked

Each assignment earns two marks, one for completeness and one for code quality, so across the seven assignments there are fourteen homework marks in all. Each mark is given on a Satisfactory / Needs-improvement / Unsatisfactory scale rather than a percentage:

These fourteen marks are one of the two things your final grade is built from. The other is your standards. Both are explained next.

Exams

The midterm is on Thursday, July 16 and the final is on Thursday, August 6. Both take the full class period, so plan accordingly. Unlike a traditional course, these are not separate scores that sit on top of everything else. They are your largest reassessment days: a single sitting where you can pick up standards you have not earned yet, and, for the last skills in the course, earn them for the first time.

Grading

This course uses standards-based grading, and your grade is not an average of scores. It is built from two things: how many of the course's 15 standards you have earned by the end of the term, and how your homework was marked. Because a standard, once earned, stays earned, a shaky start costs you nothing as long as you get there. The trade is that getting there is not optional: a high grade means you can actually do nearly all of the skills, not that you accumulated enough points along the way.

The grade table

Your grade is the highest row in the table where you meet all three columns at once.

LetterStandards earnedSatisfactory HW marks (of 14)Max U marks
A+15131
A14121
A-13122
B+12112
B1193
B-1093
C+984
C874
C-775
D+665
D556
Ffewer than 5fewer than 5

The "satisfactory marks" column is a floor: you need at least that many S's to qualify for the row. The "max U marks" column is a ceiling: you can have at most that many U's and still qualify. Because you have to clear every column, your skills and your homework both have to hold up. A strong set of standards will not rescue a stack of unsatisfactory homework, and a clean homework record will not stand in for skills you have not shown me.

Grades are feedback

The point of grading here is to tell you where your understanding is solid and where it still needs work. If a grader made a factual mistake about your code, you can request a review within one week of receiving the work. Keep it to a few sentences that point at the exact statement and the line of code it is wrong about, for example, "I did check the parameter, see line 107." Disagreeing with whether something should have been flagged is not grounds for a review.

Second chances

This course assumes you will not get everything on the first try, and it is built so that a miss is a normal step toward learning rather than a permanent dent in your grade. There are two recovery paths, one for standards and one for homework. Both ask you to engage with the feedback rather than simply resubmit.

Reassessing a standard you missed

A standard you miss comes back so you can show it again. You do not retake a whole quiz, and you do not retake anything during office hours. Instead, you take these steps:

Turning in your corrected work is what triggers the retest. Once it is in, an attempt at that standard is added to your next quiz. The correction itself does not earn you the standard. Doing the correction with care is how you earn the retest, and the retest is where you actually earn the standard. The reflection counts as much as the fix, because putting words to what confused you is one of the most reliable ways to make a skill stick, and it shows me where the class is getting stuck.

For that reason, a correction with no reflection, or a reflection that is a single throwaway sentence, is not complete, and it will not unlock a retest until you fix it. If that happens, I will contact you before class to let you know you are not eligible to retake until you resubmit the correction with a complete reflection.

The same correction-and-reflection step applies every time you re-attempt a standard, including on the midterm and the final, and the night-before deadline holds in every case, because the quick feedback turnaround that makes this system work only holds if everyone is on the same clock. Once you have earned a standard it is yours for good, so a skill you miss in Week 2 and master in Week 6 counts in full.

How many attempts you get

Every standard gives you more than one chance, and the number depends on how early in the term the skill first appears, since your attempts run through the later quizzes, the midterm, and the final. The standards page lists all 15 with the first and last day you can earn each.

A few skills give you fewer, simply because of where they fall in the term and how little runway is left after them:

Resubmitting a homework

Homework has its own second chance. You may resubmit up to two homeworks across the whole term to raise their marks. Only an assignment that earned at least one N or U is eligible; one that earned two S's is already done and cannot be resubmitted. When you resubmit, you include a short note explaining how you addressed the feedback, the same engage-with-the-comments idea as the standards reflection. A resubmission is due one week after the graded work is returned to you.

I return homework feedback within one week of the due date, and regrade resubmissions within one week of when you hand them back, so you always learn where you stand in time to do something about it. Because you only get two resubmissions for the whole term, spend them on the assignments where they will help most.

Quiz days and your time in class

A quiz itself is 15 to 20 minutes. On days when some students are also reassessing standards they missed earlier, that extra time is added onto the same block at the start of class, so the quiz period is simply a little longer that day. The class schedule already budgets for this, which is the important part: you do not lose lecture or hands-on time to reassessments, and you never have to come in outside of class to retake anything. Everyone's reassessments happen together, in class, on quiz day. If you have nothing to reassess, you finish the quiz and we begin the lesson. Catching up on a skill should never cost you instruction time or pull you out of your week, so it is built into the class day from the start.

Late Policy

Late homework is not accepted. Two things make this workable rather than harsh. The S/N/U scale is built to absorb a reasonable amount of rough work without wrecking your grade, and the two resubmissions give you a way to recover from a bad week. Just as important, returning everyone's feedback within a week only works if everyone submits on the same clock; a trickle of late work breaks the fast turnaround you depend on for resubmissions and for re-earning standards.

Standards reassessments run on the same principle: the correction and reflection that unlock a retake are due by 11:59pm the night before, and that deadline does not move.

If a genuine emergency comes up, be in contact with your College advisor first, then email me with your advisor copied, as early as the situation allows. We care about your wellbeing and will work it out.

Academic Integrity

We take academic integrity seriously. The University of Chicago's academic integrity policy is available at college.uchicago.edu/advising/academic-integrity-student-conduct. Plagiarism, meaning submitting someone else's work as your own whether from another student, the internet, or a generative AI tool (e.g., GitHub Copilot, ChatGPT), is not permitted. Because this is an introductory course, almost every problem has been solved countless times over, which makes plagiarism easy and easy to detect. We use automated tools to compare submissions across all sections and all prior offerings of this course. Any match is reviewed manually.

Specifically, never do any of the following:

These prohibitions continue after the course ends. You should never share your work from this class publicly. The one exception: if a prospective employer asks to see your code, you may send it privately.

For a complete discussion of collaboration, AI use, plagiarism, and citations, see the Academic Honesty Policy.

Accessibility

The University of Chicago is committed to ensuring equitable access to our academic programs and services. Students with disabilities who have been approved for accommodations by Student Disability Services (SDS) and need a reasonable accommodation to participate fully in this course should follow the procedures established by SDS.

SDS: (773) 702-6000 • disabilities@uchicago.edu • disabilities.uchicago.edu

Acknowledgements

All knowledge is built upon the work of others. This syllabus owes its creation to ideas that I first saw pioneered by: Matt Zucker, Lila Fontes, Kevin Webb, Tim Burke, Adam Parker, Amanda Jungels, and Mac Crite. Sections of this syllabus were adapted from CMSC 14100 Winter 2026.