Participation 5%
Homeworks (3 of them) 5%
Owl project 5%
Midterm project 10%
Data visualization project 10%
Final project 25%
Exam 1 10%
Exam 2 10%
Final exam 20%
Total 100%

Assignment grading

All assignments are graded both for correctness and for style.

Correctness indicates how well the assignment meets its specification – that is, does it work? If your program does not work, but there is only a small mistake in the source code, you will get significant partial credit. The moral of this policy is this: just because it doesn’t work doesn’t mean you’ve failed. Computers like to say “right” and “wrong”, but as a human, we can see the many points in between.

Style grading assesses how well you’ve conformed to the Style Guide, which dictates how you should write your code. Programming is an act of communication both between you and a computer and between you and another human. In some sense, correctness is about the former, while style is about the latter.

Homework vs. Projects

There are two kinds of assignments: homeworks and projects.

Homeworks are smaller practice exercises. While they are graded, the overall contribution to your grade is small. Homeworks will be graded by undergraduate TAs.

Projects, on the other hand, are important opportunities for you to show off what you’ve learned. I will be grading these myself. The final project is a capstone experience in this course where you choose a program to write and then write it. More details will be discussed as we approach the end of the semester, but I expect this to be a highlight of the course.

Class Participation

This component of your grade is a reflection of how you have contributed to this class. It includes speaking up in class, attendance, and engagement. I expect every student to contribute to the class environment, both to improve your own experience and to improve the experience of others. For example, you can be an active partner when working in groups, you can post on Piazza, you can raise your hand in class, and you can visit my office hours – but there are other ways to contribute, as well.

A fantastic way to contribute is to find ways to improve this material. Submit a pull request against the cs113 repo!


This course has three exams: two midterms on Oct. 4 and Nov. 20, as well as a self-scheduled final exam during the usual exams period. Exams will be open-book and open-note, but you will not be able to interact with a computer.

More details will be discussed as the exams approach.

Late policy

Assignments are due by the beginning of class on the due date written on the assignment. You will submit assignments via Gradescope, as practiced at the end of Lab 1.

Late assignments will lose 20% of their points for every day late (or portion thereof). Each student gets 3 free late days for the semester. This means that the first three days (or portion thereof) that an assignment is late will not lead to a penalty. These late days are intended to account for unexpected bugs, minor illnesses, planned travel, etc. I will grant further extensions only in rare circumstances. You do not have to request to use a late day; they are automatically granted.

Group work policy

Working with a partner

You are allowed to work with up to one partner on all assignments, with one caveat: no more than 2 of the projects may be completed with the same partner.

If you work with a partner: * Make sure that both partners’ names are on all parts of the assignment. * Register as a group within Gradescope. * Submit only one copy of the assignment.

Two partners working together receive one shared grade. You may not collaborate on one part of an assignment and then work separately on other parts.

(Exception to all of the above: the final paper component of the final project is always individual, even if other parts of the final project are completed with a partner.)

Collaboration policy

(In this section, if you are working with a partner, you and your partner are considered “you”. It is expected that partners share code!)

You are encouraged to brainstorm with others for assignments, but your submission must be your own:

All the code you submit must be written by you alone.

This means that, while it’s a great idea to discuss general algorithms or approaches with your classmates, never share code, and never submit code you found online. Violators of this policy will be asked to report themselves to the Honor Board.

If you have a question, post on Piazza.


There is a course question-and-answer forum at This forum is hosted by an educational service, Piazza, and it will be the primary means of electronic communication in this course. It is free to use. Piazza offers the ability to ask questions anonymously (either anonymous to everyone or only to fellow students, but not instructors) and for one student to see others’ questions. You may also use the site to send private messages/questions to the instructors of the course.

If you have a question about the material, the course, extensions, or anything else, please use Piazza.

Piazza also has the ability to send out announcements. Any coursewide information will go through that site, which will send everyone an email with the info.

I do tend to respond to questions during business hours only; something posted Friday evening might not get a response until Monday. However, an advantage to posting on Piazza is that a fellow student or a TA might answer a question before I can.


The course materials are hosted on GitHub. Feel free to submit corrections/ask clarifications there, via GitHub’s pull request or issues mechanisms.

Accommodations for disability

Bryn Mawr College is committed to providing equal access to students with a documented disability. Students needing academic accommodations for a disability must first register with Access Services. Students can call 610-526-7516 to make an appointment with the Coordinator of Access Services, Deb Alder, or email her at to begin this confidential process. Once registered, students should schedule an appointment with me as early in the semester as possible to share the verification form and make appropriate arrangements. Please note that accommodations are not retroactive and require advance notice to implement. More information can be obtained at the Access Services website.


My office hours for Fall 2017 are Tuesdays 1:30-3:30. This means that, at these hours, I am guaranteed to be in my office and expecting visitors – and I really do want visitors. During class, it’s hard to get to know all of you, and I’d love to know more about what brought you into my class, what else you’re interested in (in computer science and more broadly), and how your college experience is going generally. Come with a question, come to say hi, or come to play one of my puzzles. You can even use your curiosity about my puzzle collection as an excuse to get in the door.

If you have a conflict with my office hours, please email so we can find another time to meet.

Beyond my office hours, I aim to have an open-door policy. If you see my office door (Park 204) open, please interrupt me: that’s why the door is open!

For a broader discussion than just homework questions, I’d be happy to join you for lunch in the dining hall. Just email or ask!