Problem Set Guide


This page gives a high-level overview of the administrative details and logistics of CS111 problem sets, including how your work is submitted and evaluated.

Downloading Starter Code

Problem sets usually have starter code provided in a folder (for example, ps01). Students will download this code folder from the download folder in their cs111 folders in their personal accounts on the cs server. The first lab will cover how to access this code.

Submission of Psets

Submission of assignments in CS111 is entirely electronic. There are no paper submissions.

Each student will upload a python code folder (e.g. ps01) to the cs server. Do not change the name of the folder. This folder typically contains various files (python and other types).

Problem sets vary from week to week, and occasionally there are additional items to submit. Guidelines for correctness and quality of solution are provided with each pset. Failure to electronically submit your code before the deadline will result in zero credit for the coding portion of the pset.


During the lecture after a pset is due, there will be an in-class quiz that covers the contents of the pset. This quiz -- closed-book, closed-notes -- will take place in the first 10 minutes of lecture, so don't be late! Click here to read our make-up quiz policy.


Pset solutions will be posted electronically after the submission deadline. Each student will complete a reflection/self-assessment that requires evaluating their submitted code with respect to the posted solutions and reflecting on challenges and python coding skills acquired. Reflections are usually due 48 hours after the submission of the pset.

Reflections must be completed independently. You can discuss reflection questions with instructors, but not tutors or other classmates.

Grading of Psets

Each pset grade will be a combination of the electronic submission, the in-class quiz and the reflection/self-assessment. Each pset grade will be calculated as follows:

There are 11 psets this semester; we will drop your lowest pset score.

Collectively, your 10 highest pset grades (out of 11) will constitute 45% of your CS111 course grade. See the grading page for other grade components.

Each student will receive an email that contains the score of each of the components listed above. We will check whether your code works correctly, is properly commented, and uploaded to the server on time. The closed-book, in-class quiz allows students to demonstrate whether they learned such concepts while solving the assignment tasks; the reflection provides further opportunity for learning through the compare-and-contrast technique and self-assessment.

Typical weekly schedule

During a typical CS111 week, the problem set code submission and honor code form submission will both be due at 11:59pm EST on Tuesday, the self-assessment/reflection will be due Thursday evening at 11:59pm EST, and the quiz will be at the start of Friday's lecture. Occasionally, holidays and weather may create deviations from our typical schedule.

Have Questions on a Pset?

The CS111 staff expects that you will have questions on each pset. 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 have a super talented crew of tutors who hold evening drop-in hours (sometimes we refer to this as "help room"). And you can always post a question to the course google group cs111-spring18 by emailing "cs111-spring18.

As far as possible, assuming your question does not reveal your solution, post your questions to the google group rather than privately e-mailing the instructors: this is more productive because your classmates probably have the same question too! On the other hand, if your question does contain part of your solution, you must not post it to the group. Do not post code to the group. If you post code, we will delete your post.

We also encourage you to talk to your classmates (in a human language, not code) about psets. Sometimes bouncing your ideas off the person next to you can be really helpful and illuminating!

Types of Tasks on Psets

Individual Problem

An Individual problem means that you work on your own on this task, but may ask the CS111 staff for help. You may also talk to your classmates about the problem, as long as you never communicate in Python code with your classmates.

Partner Problem

On Partner tasks, you work with a partner as part of a two-person team. Most such partner problems are partner-recommended, which means that working with a partner is strongly recommended but not required.

When students work togetherin a two-person team, each team member will submit a single softcopy of your team-solution and the same grade will be given to both team members for this task.

In past semesters, we have sometimes limited the number of times you could work with the same partner. However, this semester there is no such limitation; you may work with the same partner as many times as you wish. However, we still strongly recommend that you try different partners throughout the semester.

All work by a team must be a true collaboration in which members actively work together on all parts of the Task. It is not acceptable for team members to split up the Task and work on parts independently. All programming should be done with both team members working at the same computer console. It is strongly recommended that both team members share the responsibility of "driving" (typing at the keyboard), swapping every so often. The only work that you may do alone is debugging code that you have written together and talking with the instructors and drop-in tutors.

For more information, see our Pair Programming page.