CS51 General Course Requirements

The course requirements include 10 short problem sets, 2 multi-week projects, 1 midterm exam and 1 final exam. There may also be several easy quizzes. Problem sets are due Friday at 5pm every week, except for weeks with an exam. Please note that problem sets may not be weighted equally. Both exams will be closed book.

The breakdown for final grades is as follows:

15% midterm
30% problem sets + possible quizzes
30% projects
25% final

Sections

There are weekly sections with our Teaching Fellows. While sections are not mandatory, they are highly encouraged, and will be very helpful for both reinforcing the material and completing the problem sets. Students who don't attend sections often have trouble completing the problem sets. You should attend the section of your TF. If you have a one time conflict, email your TF and the TF of the section you'd like to go to instead. If you have a repeated conflict, email the Head TFs and we'll work on switching you to a different section.

Office Hours

There are office hours with the TFs every weekday. in the Terminal Room (which is in the Science Center basement -- go down the stairs to the basement and turn left). Times will be posted on the website. Office hours generally are aimed at answering problem set questions, but TFs will be happy to answer any general questions, too. Greg and Ramin will also hold weekly office hours in their offices (times TBA) to discuss course matters. (Greg after Thu, Ramin after Tue)

Assignment Due Dates

Problem sets will generally be due at 5pm on Friday (although a few assignments might be due at other times). You must electronically submit your assignment by 5pm sharp, otherwise your assignment will be considered late (see below for late day policy). Project checkpoints will be due at midnight on Tuesdays. Some of the assignments will require working in pairs. The goal is for both partners to work together on solving and implementing the problem set. This can enhance the learning process and reflects the reality of software design in the real world. While we will not make exceptions to this policy, we are here to help you if there are problems.

Late Days, Penalties and Extensions

Over the course of the semester, you will have 8 late days to spend on problem sets and project checkpoints. If for whatever reason you are not able to turn in your assignment by the due date, you may use a late day. This late day will extend the due date exactly 24 hours. You may use up to 2 late days on any assignment. Note that late days are not divisible; as soon as the assignment is 1 minute late, you must use a full late day. If you are working on a partnered assignment, then every late day you take will cost each partner one late day. If you have questions or concerns about anything having to do with late days, please email the Head TFs.

If you use up all of your late days, you will be charged 20% per day late from your assignment score (20% of the original assignment points, not 20% of your earned points on the assignment).

Because of our generous late day policy, we will only give additional extensions for emergencies, and will need either a note from a doctor or your Resident Dean. If this comes up, please email the Head TFs.

Collaboration Policy

Collaboration is a difficult issue, because we want you to work together and feel comfortable talking about the problem sets. However, at the same time, we want to be able to grade your work, and not the work of your friends.

In the single person assignments, we will allow you to talk about the problem sets with other students. However, you are not allowed to talk in terms of pseudocode or real code. In the pair programming assignments, we encourage (expect) you and your partner to design and implement real code together.

We think that this is a simple and clear policy, and there should be no question about what things are crossing the line. We run automatic software to compare the students' assignments, both with this year's students and the students from past years. If we detect cheating, we will not hesistate to bring it to the attention of the university. If you get stuck on something that you need to talk about real code for, the TFs will be happy to talk in terms of real code with you! If you have any questions, please contact your TF or the Head TFs and we would be happy to clarify.

Partner Policy

Throughout the course, there will be several partnered assignments. We expect you to work well in pairs, and complete your assignments together. We understand that this can be hard, but we also expect both partners to make an effort to do this. If there are cases in which one partner is trying hard to make the partnership work, and the other partner is not making an effort, we reserve the right to deduct from the partner causing problems. We rarely have to do this, but if you are unwilling to work with other people, we will not hesitate to deduct substantial points, depending on the severity of the problem. If you have specific concerns about working with other people, please discuss them with the Head TFs before the partnered assignments start. For a good explanation of the benefits of pair programming, please read this paper with your partner the first time you get together.

Regrade Policy

Any grading disputes besides simple arithmetic errors have to go to a Head TF. The work in question will be regraded fully, and the grade may go up or down.

Assignment Style

The style guidelines for the course may be found here.