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 accessibility@wellesley.edu, at 781-283-2434, by scheduling an appointment online, or by visiting their offices in Mods 401H (a green building at the eastern entry).

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 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.. The key takeaway of this policy is as follows: Submitting code created by or with the help of AI-powered tools is considered equivalent to consulting a student who took CS 111 in prior semesters or any other CS knowledgeable person. Given that such consultations are prohibited, the use of AI-powered tools for learning and completing any type of assignments is also prohibited.

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

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).

Honor Code Policy For Exercises

As explained in the Collaboration and AI-Powered tools sections, for your exercises you cannot use any materials from or work with students who have already taken this course or who otherwise have knowledge of CS fundamentals. You also cannot use any AI-powered tools to help you solve your exercises. Any violation of the highlighted exercise policies will be reported to the Honor Code Council.

Projects

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 all available tasks.

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:

If you miss the deadline, you can still get partial credit for a late submission: You can submit revisions up to 3 days beyond the original deadline, but the score earned on revisions will be capped at 85/100.

Note that you may submit "revisions" even if you didn't submit anything by the initial deadline. 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.

Submitting Projects

Submission of projects in CS111 is entirely electronic.

Use Potluck for all actions involving projects: submitting initial and revised tasks, reviewing feedback on your submissions, and reviewing task solutions.

Honor Code Policy For Projects

As explained in the Collaboration and AI-Powered tools sections, for your projects you cannot use any materials from or work with students who have already taken this course or who otherwise have knowledge of CS fundamentals. You also cannot use any AI-powered tools to help you write code for your projects. Any violation of the highlighted project policies will be reported to the Honor Code Council.

Quizzes

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 For Quizzes

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 (including students who took CS111 in previous semesters). Using Thonny or a Jupyter notebook or anything that runs Python code is explicitly forbidden during quizzes and retakes.

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.

Any violation of the highlighted quiz policies will be reported to the Honor Code Council.

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

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.

Honor Code Policy For Exams

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). You are also prohibited from communicating about exams (or quizzes) with any student who has previously taken CS111 or any student who takes CS111 in a future semester. Any violation of the highlighted exam policies will be reported to the Honor Code Council.

In-Class Midterm Exams

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

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 about 2 months into the semester). 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

Extension Policy for Exercises

Lecture sections might have a different policy for extensions. You should consult the policy of your lecture section. As a rule, when asking for an extension you should email both your instructors (lecturer + lab) simultaneously.

Exercises are intended to be completed before the submission of the projects, since they provide a good foundation for them. Exercises are started in lecture, continued in lab, and can we completed outside of class.

Extension Policy for Projects

The initial submission for a project is typically due at 11pm Tuesday (check the schedule. You can check the score anytime you submit, thus, submit often before the deadline, to ensure you get 100%. You then have a three-day period for revisions (or initial submissions). If you submit your project by the Friday after the original due date, you work will earn up to 85% credit.

Lecture sections might have a different policy for extensions. You should consult the policy of your lecture section. As a rule, when asking for an extension you should email both your instructors (lecturer + lab) simultaneously.