Table of Contents

Course Info

CS111 is an introduction to the problem solving foundations of computer science. In this course, you will learn big ideas about solving problems, developing algorithms, and organizing programs.

These ideas include:

You will get hands-on experience with these ideas by reading, modifying, debugging, designing, writing, and testing Python programs in the lab sections.

CS111 is required for students who wish to major or minor in computer science, data science, or elect more advanced courses in the field. Consult Choosing an Introductory CS Course for more information.

Prerequisite: None. No prior computer science background is expected.

Distribution: Mathematical Modeling. Does not satisfy laboratory requirement.

Unit: 1.0

Learning Goals

The aim of this course is to enable students to solve various problems by writing programs utilizing foundational computer science concepts listed above (namely, abstraction, modularity, strategies, and models). Students will use Python to explore these ideas, but will be learning and practicing techniques for solving problems that apply to any programming language and many disciplines.

Students who complete this course should be able to:

General Policies

Responsibility for Course Material

This course has expectations for preparedness for each class meeting, which will in turn help students prepare for exams.

Accommodations and Disability

We strive to be inclusive and provide an equitable learning opportunity for all in this class, and we believe that accommodations for disability make the class more fair, not less. If you have a disability or condition, either long-term or temporary, and need reasonable academic adjustments in this course, please contact Disability Services to get a letter outlining your accommodation needs, and submit that letter to your instructor. If you are unsure but suspect you may have an undocumented need for accommodations, you are encouraged to contact Accessibility and Disability Resources. They can provide assistance including screening and referral for assessments. You should request accommodations as early as possible in the semester, or before the semester begins, since some situations can require significant time for review and accommodation design.

Accessibility and Disability Resources can be reached at, at 781-283-2434, by scheduling an appointment online, or by visiting their offices on the 3rd floor of Clapp Library, rooms 316 and 315.

Collaboration Policy

We will do a lot of work in pairs and groups in this class, including in lectures, in labs, and on projects. We have a pair programming guide that explains how pair work should happen and why we use it so much. However, collaboration should be explicitly permitted by your instructor:

See the section project collaboration section for more details below for more details.

Collaborating on Projects

All project tasks may be worked on individually, but are designed to be tackled by two people (although you can work with more than one person).

We have some guidelines for collaborative project work:

Note that with COVID, there may be times when two or more people working at the same physical computer is not optimal. In these cases, we suggest the following alternative collaboration methods:

  1. Remote pair/group programming (recommended). Using Zoom, it is possible for one member of a meeting to take control of the other's computer (the option to request remote control appears when someone is sharing their screen). You can therefore program together on one computer remotely. Remote control offers the advantage of easily supporting the driver/navigator model that is essential to pair programming because both partners can edit the code directly. One student should open up a window with the particular task and then allow access to remote students to control that window.
  2. You can use screen sharing and discuss each task if you are uncomfortable with the remote control model. However, make sure that each collaborator has an opportunity to write code. This will likely require copy/pasting code back and forth or sharing/emailing python files, which is why we recommend the remote control model. Note that you cannot copy/paste code through Zoom chat, because copying from Zoom chat introduces invisible characters that will break the code.
  3. Independent work + verification. To ensure that each member of a team actually understands the full solution to a problem, you may work independently on a problem. When you each have an attempt (they need not be working perfectly), you can come together to compare your code and discuss the differences between your attempts. This method is more work than pair programming, but still offers some advantages over individual work, like the ability to discuss your solution in depth at the code level with another student and the opportunity to do debugging together.

Getting Help: Office Hours, Tutors, and Sakai

You can see our whole team on the Instructors page, and see when we are available for help on the Drop-in Schedule page. We also have a super talented crew of tutors who hold afternoon and evening drop-in hours (sometimes we refer to this as "help room").

Tutors and instructor office hours for this course are available to help polish your debugging skills and spot tricky situations when you're stuck on an assignment. To ensure efficiency, our policy for interacting with tutors and with instructors during office hours is:

You can also post a public or private question using Sakai.

Most importantly, you are encouraged to talk to your classmates about exercises and projects. Sometimes bouncing ideas off the person next to you can be helpful and illuminating!

Policy on AI-Powered tools

AI-powered tools are evolving very rapidly. Therefore, our policy is evolving too. Our current policy can be found in this dedicated page.

Faculty Responsibilities on Disclosures of Discrimination, Harassment, and Sexual Misconduct

Pursuant to Wellesley College policy, all employees, including faculty, are considered responsible employees. That means that any disclosure of discrimination, harassment, or sexual misconduct to a faculty member will need to be shared with the College's Director of Non-Discrimination Initiatives / Title IX and ADA / Section 504 Coordinator (see the Wellesley Title IX page for more info). Students who do not wish to have these issues disclosed to the College should speak with confidential resources who are the only offices at the College that do not have this same reporting obligation. On campus, confidential resources include Health Services (781-283-2810 available 24/7), the Stone Center Counseling Services (781-283-2839 available 24/7) and the Office of Religious and Spiritual Life (781-283-2685). You should assume that any person employed on campus outside of these three confidential offices has an obligation to share information with Wellesley College through the Office of Non-Discrimination Initiatives.

Graded Work

Grading Philosophy

In CS111, we believe in both “growth mindset” and “mastery grading.” Growth mindset focuses on the incremental progress we all make as we learn new material and work hard. You are not "good at" or "bad at" computer science, nor do you have a fixed "potential" as a computer scientist. You are "getting better at" computer science, and your improvement depends on how you spend your time.

Mastery grading articulates clear learning goals and evaluates based on the ability to master those goals. In CS111, we want to give students every opportunity to master the learning goals we set out for the course. Exercises, projects, and quizzes will offer multiple opportunities to complete learning goals through revisions and retakes. We want students to continue to improve their knowledge of the material and to look at assignments as less of a judgement of their intellectual capacity, and more as an opportunity to show the skills they have mastered.

For more information on these philosophies, please look at an article on mastery grading by Prof. Oscar Fernandez from Wellesley's math department.

Weekly Schedule

A graphical representation of weekly deadlines

During a typical CS111 week, you will complete exercises, quizzes, and one or more project tasks:

Holidays or other factors may create some deviations from this schedule, check the course schedule page for detailed deadlines.

For any and all deadlines, if you have extenuating circumstances, contact your instructor to request an extension. We accept late make-up work (for partial credit) for exercises and project tasks, but not quizzes without an explicit arrangement.


Exercises are small graded coding challenges that you will work on both in and outside of class. Both lectures and labs will typically have exercises associated with them, and there will be some extra exercises each week to be completed on your own. Exercises differ from ungraded coding examples that will sometimes be used in lecture to explain Python coding. Exercises and examples will appear in different notebooks to help you understand the distinction between them.

Use the schedule to access the exercise pages and links to the code files that contain the exercises.

Submitting Exercises

Each exercise will come with testing code, and when you run the testing code, it will also submit the results to Potluck. You can resubmit as many times as you like until you get it right. Only your best submission will count for your grade. If you are working offline, you can see any error messages produced by your code but cannot submit.

During this process, you will be asked to list the names of people you collaborated with (we will typically work in groups of 2-3 in both lectures and labs, but you may consult other students before submission). Make sure to enter everyone's username correctly so that everyone gets credit. Please also remember to share your code with any partners you work with so that they can revisit it later (e.g., if they need to resubmit). If you are partway through your exercises and need to add more collaborators, restart your kernel in your notebook and re-enter authorship. Collaboration is encouraged, so please be transparent and include everyone you consulted.

On the Potluck server near the top of the dashboard, an overview of submitted exercises will be shown; you can click to expand the individual exercise groups and see details of which ones you've completed or not. Your code must pass the associated tests to count as complete, although you will get partial credit if it passes some of them.

Your average score across all weekly exercises (in terms of % completed) is one portion of your grade (see the grade calculation section).


There are weekly projects in CS111. Projects will typically be due on Tuesday at 11pm of each week and will be released the week before the deadline. You may freely collaborate with other students on projects (see the project collaboration section for more details).

Some projects will present multiple options from which you can choose a single activity/task to be graded on, while other projects will have a set of mandatory graded activities. If you plan on being a CS major or minor and want to deepen your understanding of the material, you are encouraged to complete more than one activity task each week.

Project task scores will be available via the Potluck submission server shortly after you submit. You can re-submit as many times as you like until you are happy with your score. We will check whether your code works correctly, is properly documented, and is submitted to the server on time.

Each task within a project will come with a detailed rubric explaining how it will be graded. The rubric has core goals and extra goals. The core goals are the concepts and tasks that we feel are most pivotal to your understanding of the project material. Extra goals are concepts that provide additional learning and challenges beyond the basic material; the extra goals are not worth any points.

You can receive one of four scores on each task of each project task:

On top of the 100 coding points for a project task, there are 10 additional timeliness points for timely submission. Therefore, project task scores are based on a total of 110 points.

Some examples:

Note that you may submit a "revision" even if you didn't submit anything by the initial deadline (all you'll lose is 5 timeliness points). We strongly suggest that you take the time to submit a revision if you score 75/100 or lower on a task, in order to make sure that you understand the concepts from that task going forward.

If you know you will miss the initial deadline, you can take a 24-hour extension by requesting an extension (through the submission page) before the deadline. See the extension policy.

Submitting Projects

Submission of projects in CS111 is entirely electronic.

Use Potluck for all actions involving projects: submitting initial and revised tasks, declaring a 24-hour initial submission extension, reviewing feedback on your submissions, and reviewing task solutions.


Quiz Philosophy

CS111 quizzes use a mastery grading approach that is designed to assess and enhance your learning.

A study guide with solutions will be provided roughly once a week on topics covered that week in class. We strongly encourage you to review the study guide and solutions when preparing for the weekly quiz, and to have a filled-out copy of the study guide on hand as part of your notes when taking each quiz.

There are two versions of every quiz:

  1. The regular quiz (graded): This 15-minute quiz (strict time enforcement) is taken on paper during the lab and will generally test the material from the previous week's lectures + lab. You should also be nearing completion of that week's project by the time you take the quiz. If you do not have a lab section, you will take the quiz during an evening quiz session.

  2. The retake quiz (graded): This is a second version of the 15-minute quiz, with the same learning goals, that can replace your score from the original quiz. It is optional but we expect you to take it if you did not score well on the regular quiz. The regular quiz may highlight areas where your understanding could still be improved (see details below on Retaking Quizzes).

Quiz Mechanics

The regular and retake versions of a quiz are graded by the instructors. Graded quizzes and retakes (and corresponding solutions) are only viewable in Gradescope.

Honor Code Policy

Quizzes are open-notes, but you may not consult other students or look things up on the internet during a quiz or retake, nor may you consult other students who have already taken the quiz. Using Thonny or a Jupyter notebook or anything that runs Python code is explicitly forbidden during quizzes and retakes. Doing so is considered an honor code violation.

You should not talk with other students about a quiz even after you have taken it and/or the deadline has passed, because they may not have taken it due to special circumstances. The instructors are happy to answer any questions you might have about quiz scores or other details.

Exercises and projects are collaborative, but please give attribution to your collaborators and the people you consult with (as described above).

Learning Goals

Each quiz will assess a series of learning goals to test students’ comprehension. Each question is designed to target one or more learning goals. Each quiz question will be labeled with the learning goal tested. Upon receiving feedback, we strongly suggest that students examine their performance on each learning goal so they have a complete understanding of what they know and what they need to improve on.

Retaking Quizzes

As indicated above, a week after taking a regular version of a quiz, students have the option to take a retake version of the quiz if they want to improve their understanding and/or score on the quiz.

In the retake quiz, students do not need to complete the entire quiz; they only need to complete the questions with the learning goals that they would like to improve. There is no grade penalty or grade limit for retake quizzes.

For each Quiz question (learning goal),your final score on that question will be the maximum of the two scores across the two graded versions (regular and retake) of the quiz.

For example, suppose that on a regular version of a quiz, Wyeth scores 3 out of 8 points on Question 1, 11 out of 12 points on Question 2, and 8 out of 10 points on Question 3. On the quiz retake, Wyeth submits only Question 1 (earning 6 points) and Question 3 (earning 7 points), but does not submit Question 2 (earning 0 points). The following table shows the result of the maximization procedure for this quiz. Wyeth's final quiz score is 6 out of 8 points on Question 1, 11 out of 12 points on Question 2, and 8 out of 10 points on Question 3, for a total of 25 out of 30 points on the quiz.

Quiz Version Question 1 Score (max 8 points) Question 2 Score (max 12 points) Question 3 Score (max 10 points) Total (max 30 points)
Regular 3 11 8 22
Retake 6 0 7 13
Final Quiz Score 6 11 8 25

Note that the unit of maximization for a quiz is an entire question. If a question has subparts, you must submit all the subparts of that question on a retake if you want to improve your score on that question.


Exams are graded collectively by the CS111 instructors, and we do our best to be both consistent and fair. If you think we made a mistake grading your exam, submit a regrade request in Gradescope.

You should not communicate with any other person about the contents of any CS111 exam before, during, or after taking it except CS111 instructors (again, your classmates may have extenuating circumstances that warrant taking the exam later than usual). Any violation of this policy will be brought before the Honor Code Council.

In-Class Midterm Exams

There will be two in-class midterm exams during lectures (see the Schedule for the exam date).

These are both pencil-and-paper exams; you are not allowed to use any computers or other electronic devices (including phones, tablets or laptops). This is an open-notes exam: you may bring with you any of your own notes, as well as hardcopies of any course materials from the semester. All your notes must be on paper; we do not permit electronic notes at all. Note that your time to consult your notes during the exam will be limited, so we encourage you to write a one- or two-page paper summary of key notes you may want to consult as part of studying for the exam.

Final Exam

There will be a 2.5-hour fixed final exam that will be on a specific day and time during the final exam period (the day and time will be on the Registrar's website on September 27, 2023). Do not make any travel plans until you know when all of your final exams will occur. The CS111 final exam must be taken in-person on the to-be-determined fixed date.

This is a pencil-and-paper exam; you are not allowed to use any computers or other electronic devices (including phones, tablets or laptops).

This is an open-notes exam: you may bring any of your own notes and hardcopies of any course materials from the semester. All of your notes must be on paper; we do not permit electronic notes at all. We encourage you to write a one- or two-page paper summary of key notes you may want to consult as part of studying for the exam.

Extension Policy

General Policy

We recognize that this academic year is likely to be influenced by the ongoing COVID pandemic. We strongly encourage you to speak with any of the faculty for CS111 for any reason --- whether COVID-related or not --- that might inhibit you from successfully completing your coursework. We are empathetic to the many hardships that students will face as we learn together during this crisis. Do not hesitate to reach out!

Extension Policy for Exercises

If you need extra time to complete exercises, contact an instructor. You should be making some progress on the weekly exercises in lectures and labs each week and then finishing up any leftover exercises as homework.

Extension Policy for Projects

The initial submission for a project is typically due at 11pm Tuesday with revisions typically due 3 days later (check the schedule. If you submit an attempt that receives at least "partially complete" before the initial deadline, you will receive 5 of the 10 timeliness points, and if you submit an attempt that receives at least "almost complete" any time before the end of the revision period, you will receive the other 5 timeliness points. During both periods, you may submit as many times as you like, with each submission replacing the previous one.

In any (or even every) week, you can declare an automatic 24-hour extension for the initial due date. In order to receive the extension, you must declare it via the Potluck submission server before the 11pm deadline. If you feel that you need more than an extra 24 hours, please contact one of the CS111 faculty members directly.

Taking the automatic extension for the initial deadline does not affect the revision deadline.