This course is a second-semester course in computer science. It is expected that all students have taken an introductory course previously, such as CS B110, CS B113, BIO B115, or CS H105.


It is my expectation that this course is difficult. The reward is that you will graduate from it knowing how to program! I expect that you will have to spend 6-8 hours working outside of class/lab every week. For a two-week assignment, this means that the assignment might take 12-16 hours or more. One of the common refrains I have heard from students completing introductory programming courses is that they wish they had started assignments earlier. Don’t make this same mistake.


Participation 5%
Assignments 40%
Exam 1 15%
Exam 2 15%
Final Exam 25%
Total 100%

Individual assingments/exams will be graded on a percentage basis. At the end of the semester, these grades will be translated into the 4-point scale roughly according to the following table (without rounding):

Percentage Grade
0-50% 0.0
50-57% 1.0
57-63% 1.3
63-69% 1.7
69-74% 2.0
74-78% 2.3
78-82% 2.7
82-86% 3.0
86-90% 3.3
90-94% 3.7
94-100% 4.0

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? In order to grade correctness, your program must compile – that is, it must be free of syntactic and type errors.

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.

Your submitted work is a reflection of your progress in this course and your level of attention to detail as a student. You should always strive to submit your best work, free of messy formatting, spelling errors, and careless errors. The programs you write will often interact with the user; you should strive to make the user’s experience pleasant and your programs easy to use.

Assignments will be returned (via Gradescope) with comments. Please read these comments, and feel free to ask any questions if you need further clarification.

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 cs206 repo!


This course has two midterms (Feb. 22 and Apr. 3), and one self-scheduled final exam during the normal exam period. Exams will be closed-book and closed-note, but they will include a reference (which you will be able to see ahead of time) listing common Java classes and methods.

If you miss an exam without emailing me first, you will get a 0 on that exam. Changes to the exam schedule will be considered only in extreme circumstances.

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 during Lab 1.

Late assignments will lose 20% of their points for every day late (or portion thereof). Each student gets 6 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.

If you work with a partner:

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.

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, you should make sure that the code you submit is yours and yours alone. This means that it may be OK to help a friend debug their code or to look at someone else’s approach for inspiration, but your own writeup must be made independently, without the other code available for consultation.

If your work has been influenced by the work of another student, you must cite that student in your submission. (This citation can take the form of a comment in that area of your code; there is no prescribed citation format.)

Submitting code from any source other than your own brain without citation is a violation of Bryn Mawr’s Honor Code. In particular, never submit code you have found online.

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 Spring 2018 are Wednesdays 9:30-11:30am. 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!