Grading

Assignments, projects 55%
Class contributions 5%
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? In correctness grading, I care more about seeing your logic than about precisely what the program does when it runs. For example, a program might have everything correct except for an null pointer dereference early on. Such a program will simply crash when run, but it is essentially correct. I might take off just a bit of credit for the error, but you will earn the rest of the credit for having an otherwise-correct program. 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, I 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.

Your grades will be given on a 5-point range, corresponding to Bryn Mawr’s 4-point grading scale. Grades above a 4.0 are precisely equivalent to a grade of 4.0, but allow me an opportunity to recognize exceptional work that exceeds the expectations of the course.

Class Contributions

This component of your grade is a reflection of how you have contributed to this class. It includes participation, 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 GitHub or on our mailing list, 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 cs246 repo!

Exams

This course has three exams: two midterms on Feb. 21 and Mar. 30, 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 use a computer. Exams will not cover interacting with the command line.

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 GitHub according to these instructions.

Late assignments will lose 1 point (out of the 5-point scale) 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.

Group work policy

You are encouraged to work with others on 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.

There is one exception to this rule: you may work with up to one partner on your assignments, but you may use the same partner for no more than three assignments. If you wish to work with a partner, you may add your partner to your GitHub team, and they should get access to your repo. When you are working with a partner, both students get the same grade; naturally, the code you write is jointly yours, slightly overriding the boldface policies above.

If you have a question, post on GitHub.

GitHub

GitHub is a code-collaboration website with extensive use in the open-source and research communities. It is a tool you will be expected to be familiar with whether you go on to industry or academia. Many recruiters use GitHub to find students who are active coders. We will thus make extensive use of this tool this semester, which will handle online question-and-answer forums, student collaboration, hosting my materials, and more.

GitHub works with git, a powerful version control tool. Version control tools allow you to save your work incrementally. When you then make a change you wish to revert, it is easy to go back in time. git also eases collaboration with peers by allowing you to merge work with others, working line-by-line to combine changes that multiple contributors have made. git is pervasive both in academia in industry, along with similar tools (such as Subversion and Mercurial).

Every student will need to have a GitHub account. These accounts are free. Just click the “Sign up” button on the main page. I will ask you early on in the course to send my your GitHub username so that you can get access to the course materials through the site. I encourage you also to register as a student on GitHub; you get various services for free as a student.

While I encourage you to use your real contact details on the site (most people do), this is by no means a requirement. Even if your normal GitHub account has your real name, you are welcome to create an alternate, anonymous account if you feel the need to post questions anonymously.

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 dalder@brynmawr.edu 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.

Email

I use email heavily as a way of communicating with students and colleagues. Accordingly, I expect all my students to check email daily at their college email address. There may be important announcements / corrections / other messages there. Please read them!

As an avid emailer, I also am happy to receive email from all of you. During business hours, you can expect a response from me within a few hours of your email – often much sooner. After 5pm or so, I tend to take a break from technology for several hours, either until 9pm or even until the next morning. Do not expect me to respond to an email in the evening. Similarly, entire weekends go by without my checking my email (the nicer the weather, the less chance of a response!), and so it’s possible that something you send on a Friday evening won’t reach me until Monday morning.

In an emergency, you may call me at home at 484-344-5924 or on my cell at 201-575-6474. No texts, please.

Another small point about email: I have two Bryn Mawr email addresses: rae@cs.brynmawr.edu and raeisenber@brynmawr.edu. Both email addresses go to the same place, though, and both work. You do not need to worry about which one you send to.

Meetings

My office hours for Spring 2017 are Tuesdays 2:30-3:30 and Wednesdays 1:15-2: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!