On this page:
4.1 A Note on Wording
4.2 Honesty and Sharing
4.2.1 The Academic Code
4.2.2 Collaboration
4.2.3 File-Sharing
4.3 Assignments and Grading
4.3.1 Handin Instructions
4.3.2 Late Handins
4.3.3 Final Grades
4.3.4 Grading Personnel
4.4 Reading
4.5 Unusual Assignments
4.6 In-Class Electronics Use
4.7 Diversity and Professionalism
4.8 Counseling
4.9 University Syllabus Requirements
4.9.1 Accommodations
4.9.2 Textbook Pricing
4.9.3 Required Course Activities

4 Syllabus and Course Policies

    4.1 A Note on Wording

    4.2 Honesty and Sharing

      4.2.1 The Academic Code

      4.2.2 Collaboration

      4.2.3 File-Sharing

    4.3 Assignments and Grading

      4.3.1 Handin Instructions

      4.3.2 Late Handins

      4.3.3 Final Grades

      4.3.4 Grading Personnel

    4.4 Reading

    4.5 Unusual Assignments

    4.6 In-Class Electronics Use

    4.7 Diversity and Professionalism

    4.8 Counseling

    4.9 University Syllabus Requirements

      4.9.1 Accommodations

      4.9.2 Textbook Pricing

      4.9.3 Required Course Activities

An important principle in computer science is DRY: Don’t Repeat Yourself. Therefore, information already available on the Web about the course and me (the professor) are not repeated here.

4.1 A Note on Wording

As you read the policy below, you will probably find parts of it fairly stringent. The policy is worded as it is for an important reason. When a student does violate the policy, it’s important that we be able to prosecute them. That requires a policy whose wording avoids known weaknesses and precludes violations of its spirit. That may make the policy read a little harsher than we’d like; unfortunately, that’s the nature of legalese.

The point of this policy is to prevent discussion about the content of the assignments. It is not, however, meant to to destroy the camaraderie of the department. There is no harm in talking to your classmates and friends about how you’re doing, how far along into an assignment you are, and so on. Inter-person communication is important, and we want to preserve our great student culture. Use your discretion, but as always, if in doubt, talk to the course staff (even if it’s after a possible violation).

Also note that you are always welcome to discuss the content of lectures, except inasmuch as you might otherwise violate this policy.

4.2 Honesty and Sharing

4.2.1 The Academic Code

Brown University has an Academic Code that governs all our transactions. This Code includes a section on Respect for the Integrity of the Academic Process, which establishes its policy on cheating. We expect that you, as students and scholars, will abide by this faithfully and fully.

You should be extremely careful when using Internet resources for assistance other than those specifically linked from the course website or specified in the assignment. You are welcome to use reference material, e.g., programming language documentation or an encyclopaedia. Be aware that performing a generic Web search may get you to much more, such as solutions. If you accidentally find a solution and choose to use it, document that you are doing so. You will lose some credit for the assignment, but at least you won’t be in violation of the Code. You shouldn’t post looking for solutions on third-party mailing lists, either.

Because Brown does not operate on an honor code, we have no choice but to police you. Therefore, we will check for violations of the Code. If we believe you are in violation, we will prosecute as per the department’s and Brown’s regulations; and because we do not like our trust being betrayed, we will not be inclined to mercy. We have successfully prosecuted students in the past, and will not hesitate to do so in the future. We really do have the patience to go through all stages of the review. Don’t test us.

Regret Clause: Exceptions are possible only if you admit your violation to the professor (not a TA) within 24 hours of the assignment due time. This gives you an option if you cheated in desperation the night an assignment was due, or allowed someone to cheat from you, or something else—and then felt guilty about it soon after. Violations may still be sent through the normal University process even if you admit to them under this clause, under my discretion, though perhaps with mitigating recommendations so the penalty may be less harsh than if you were caught by us.

4.2.2 Collaboration

The purpose of assignments in this class is to help students learn key ideas in the course topic. Some (not all) assignments require a certain insight, or at least careful analysis, that is much harder to generate or perform than to merely replicate. We believe that doing it for yourself, though harder, is the only way to truly understand that insight or analysis.

By default, you will do all assignments alone. You may not discuss these assignments with anyone other than the course staff. You may, however, discuss anything related to the course with the course staff. For instance, if you don’t know what something means, or you didn’t understand a topic, or you want to know the purpose of an assignment, or anything else, talk to them. They will either answer your question, or point you to a reference, or (in the worst case) tell you that you’re expected to figure it out for yourself—but you will never be judged for asking a question.

Some assignments may be designed as group work. For those assignments, you can and should work collaboratively with your partners, and you can of course discuss your work with course staff, but you may not discuss your work with members of other groups. The Assignments page will indicate which ones will be done in pairs, and the staff will give you instructions on forming pairs.

There’s one other case of working together: when you perform (anonymous) peer-review. In that setting you are allowed to copy anything you see, provided you attribute it to the peer review process.

4.2.3 File-Sharing

You are responsible for keeping your files private by setting the appropriate protections. If you fail and someone copies your work, you too will be held responsible. This is not an obstacle to pair-programming because you are supposed to be doing it together, not separately across a common file-system.

The same holds for other kinds of “sharing”, such as leaving your work visible in public places (whether computer screens or whiteboards). Another important kind of file-sharing is posting solutions on a publicly-visible version control repository site. If you host your work on such a site, make sure it’s in a private repository. (Otherwise, you’re also making it possible for future generations of students to find your work—either with the intent of cheating or inadvertently, through Web-searching.)

In short, you are responsible for making sure your work is properly protected.

4.3 Assignments and Grading

4.3.1 Handin Instructions

Your assignments contain detailed handin instructions. In some cases, we may run automated software on your submissions, which means if they don’t precisely match our instructions, the software may fail—and you will get a zero. Therefore, always assume the submission is being interpreted by a piece of software without the ability to accommodate differences. If the instructions are ever unclear, ask us!

As a special case of this, an assignment might ask you to use certain filenames. It might also provide you with default code, and ask you to not edit that code. Please follow these instructions carefully. We do this so that we can partially automate grading to complement human review. A short video of a grading session in progress. Every time you don’t follow the instructions, our grading scripts break—it’s like disrupting an automated assembly line—and a human has to intervene and patch things manually. We will take points off when this happens.

4.3.2 Late Handins

Please see the separate page on it [Late Policy].

4.3.3 Final Grades

This course does not grade on a curve. Rather, I believe that a grade should reflect a student’s understanding of the material. One student’s understanding or lack thereof does not say anything about another student’s understanding. Therefore, it does not make sense to make one student’s grade depend directly on another.

I will take the performance of other students into account for two reasons. First, it helps us understand if there were problems with an assignment: e.g., if just about everyone in the class had trouble with an assignment, that might suggest a problem with the task, and I will lower our expectations for that assignment. The other is to ensure fairness: if two students are very close to each other in performance, they should get similar grades. For both reasons, the course doesn’t have rigid or pre-defined grade boundaries, either.

Brown labels the grades as follows: A = Excellent, B = Good, C = Fair. The course will interpret these the same way. That means A is not the “default grade”. More broadly, my philosophy when assigning grades is to view them as a Recommendation Letter (a Recommendation Letterha ha). We envision a person trying to hire a student with the skills that this class teaches. An A (“Excellent”) effectively says, “This person knows or can figure out how to do well most or all the tasks that might come up!” A grade of B (“Good”) effectively says, “This person can do several things, but may need some guidance or help.” A grade of C or lower says, “I’m not sure this is the right person for you.”

For some assignments, you will get two or more grades: usually one will represent the correctness of your solution, while others its code quality, efficiency, thoroughness of testing, and so on. We give highest priority to correctness for a simple reason: it’s very easy to write a clean or efficient or other solution to a different problem. Once we confirm you’ve actually solved the problem we asked you to, then we care about all these other characteristics as well. In general, assuming you have correct solutions, consistently poor code quality will hurt your grade while, if you’re at a grade boundary, especially good code can improve it. If you’re given an algorithmic problem, then efficiency will be almost as important as correctness, but you should still make sure you get the solution correct first: it’s better to have a less-efficient correct solution than a very efficient incorrect one.

4.3.4 Grading Personnel

In this course, you will encounter undergraduate TAs (UTAs). UTAs are an important part of the educational mission of this department. We believe that students learn best by approaching material multiple times; we also know from personal experience that we learn best by teaching others. Therefore, UTAs undertake valuable personal learning by revisiting material some time after they first learned it, and by trying to explain it to others. In the same way, you may also encounter graduate TAs (GTAs).

These TAs also help with grading materials in the course. However, their work is regularly reviewed by me. This review includes examining student work, asking TAs questions, revisiting grading standards, revising grading rubrics, and sometimes even re-grading the work entirely.

However, TAs are not involved in any way in the creation of course grades. The course grade is entirely determined by me and nobody else, and is kept confidential from all TA staff. I have ultimate responsibility for the course.

4.4 Reading

We periodically assign readings. You are expected to understand everything assigned.

It’s very easy to read passively and think you’re understanding when you’re not. This is dangerous. Therefore, you should try your hand at a few exercises. If you finish the exercises as easily as you thought you would, that means your understanding is just fine; keep going. If you find it takes much longer than expected, maybe you should do a few more. If you can’t do them at all, re-read, and then go to hours!

4.5 Unusual Assignments

Unlike most other courses you take, this one may have some unusual assignments. For instance, you may be asked to do something impossible, or you may be given a task that sounds significant but is actually trivial. In these cases, you should focus on providing a justification for your reasoning rather than a solution itself.

The purpose in having such assignments is to more accurately mimic the real world in which you will be asked to solve tasks: there are no “answers in the back”; some problems are trivial while others, which look similar, are impossible, and a priori you can’t tell which is which.

How will you know which assignments these are? You won’t. After you’ve wrestled with a problem for a while and built a hunch that this is one of them, ask the course staff to confirm your hunch. They will ask you to justify your reasoning. If you do and are on the right track, they’ll tell you that you’ve understood the real point of the problem and inform you about how to write up your (non-)solution.

4.6 In-Class Electronics Use

Please see the separate page on it [Laptop Policy].

4.7 Diversity and Professionalism

Please see the separate page on it [Diversity and Professionalism].

4.8 Counseling

If you feel yourself falling behind, needing to talk to someone about personal problems, or in general want a supportive ear, the university has extensive Counseling and Psychological Services. Please don’t hesitate to use these: everyone finds them helpful at some time or the other, and they’re part of what you’re paying for to attend Brown. Make the most of them.

4.9 University Syllabus Requirements

4.9.1 Accommodations

Brown University is committed to full inclusion of all students. Please inform me early in the term if you have a disability or other conditions that might require accommodations or modification of any of these course procedures. You may speak with me after class or during office hours. For more information, please contact Student and Employee Accessibility Services at 401-863-9588 or SEAS@brown.edu.

Students in need of short-term academic advice or support can contact one of the deans in the Dean of the College office.

4.9.2 Textbook Pricing

The textbook is free of cost.

4.9.3 Required Course Activities

You are expected to attend class.

You are required to do all the Assignments except where indicated otherwise.