CS51: Abstraction and Design in Computer Programming

CS51 Course Policy

Course Policy

CS51 General Course Requirements

The course requirements include 10 problem sets and 2 midterm exams. Problem sets are due Friday at 5pm every week, except for weeks weeks with an exam. Please note that problem sets are not all weighted equally. There will be two midterms during the semester, one on the first half of the material (in Scheme) and the other on the rest of the material (in C++). The second midterm will not directly cover any of the material from the first half of the course, but the second half builds off of the first half of the course, so the material on the second midterm may relate to the first half of the course. Both midterms will be closed book but you may bring 1 double-sided page of handwritten notes.

The breakdown for final grades is as follows:

20 % first midterm
20 % second midterm
60 % problem sets

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 are encouraged to attend the section of your TF, but you are welcome to go to any TF's section. If you plan to go to another TF's section one week, please email both your TF and the TF whose section you plan to attend as a courtesy to them. Sections will be held on Sunday evening and Monday morning, afternoon, and evening.

Office Hours

There are office hours with the TFs every week on Wed., Thurs., and Fri. in the Terminal Room (which is in the Science Center basement -- go down the stairs to the basement and turn left). Office hours generally are aimed at answering problem set questions, but TFs will be happy to answer any general questions, too. Radhika will also hold weekly office hours in her office (time TBA) to discuss course matters.

Assignment Due Dates

Assignments 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). Design documents for assignments will generally be due at 5pm on Monday. You may not use your late days (see below) on design documents. Late design documents receive half credit. Half of the assignments 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 5 late days to spend however you like. 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 do this for any assignment, but not for design documents. You may allocate your late days in any way that you like -- you can even use all 5 on one assignment, if need be (there are a few assignments where you might not be able to use five full late days, but we will make this clear when the assignment comes out). 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 two late days (one for each person). Either partner can use their late days to pay the penalty, so if one partner has 5 late days left, and the other partner has 1 late day left, then the group may turn in their assignment 3 days late, but will have no late days left after that. If you have questions or concerns about anything having to do with late days, please email the Head TF.

If you use up all of your late days, you will be charged 10% per day late from your assignment score (10% of the original assignment points, not 10% of your earned points on the assignment). We will often set a deadline for when the assignment needs to be turned in for any credit, which you will also need to follow (this is generally about 5 days past the original due date of the assignment).

Because of our generous late day policy, we rarely give out extensions. If one week you have unusual circumstances, please email the Head TF. Extensions will be granted only for cases that were beyond your control and that you could not have predicted in advance.

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 3-line 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 TF 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 TF before the partnered assignments start.