You are responsible for keeping track of all assignments and other
material posted to the course's newsgroup,
We will assess your performance through several media:
We will not accept late assignments. Assignments are often timed to be due for a classroom discussion on the assigned material, because you can better follow a difficult topic if your struggles are fresh in your head. The class will sometimes even discuss solutions to the homework problems. Once we do this, we can no longer accept your solution.
If you really need or want to turn in an assignment late, you must get the professor's permission to do this before the assignment deadline. When we do accept a late submission, we will use this formula to compute your net grade:
(define (net-grade gross-grade number-of-penalty-units) (* gross-grade (expt 0.9 number-of-penalty-units)))
Because assignments are due before class, you might be tempted to work all night. This often means you won't attend class at all, or will be too sleepy to participate effectively in it. As a disincentive, we make assignments due at 2am. A penalty unit is a 24 hour period or part thereof after the due time. Even a minute past 2am incurs one penalty unit. So if you're late (and have previously requested late permission), relax; sleep; attend class; and submit something polished later in the day.
Mail questions intended for the course staff to
The purpose of assignments in this class is to help students learn key ideas in programming languages. 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 much harder, is the only way to truly understand that insight or analysis.
Having said that, we also want you to be able to work with each other, learning from one another's successes and failures. Therefore, we will permit you to discuss assignments with your classmates (in addition to the course staff). Note that you may only discuss possible approaches; you may not share answers, unless explicitly permitted by the assignment.
What's an answer? We consider it to be any key insight, technique or piece of code without which the assignment seems difficult but with which the assignment becomes solvable or routine. This includes literal code and text. Obviously, this concept is impossible to define precisely, so you'll have to use your discretion. If in doubt, ask us first before you share so you may avoid trouble later!
We will not be publishing a day-by-day schedule for this course. A day-by-day schedule doesn't make sense given that some lectures will invariably run over or will need revisiting, and it's hard to predict a priori which ones these will be. As a student, you should prefer a schedule that doesn't force the professor to move on irrespective of whether or not you have understood the material well enough!
We do provide the following tentative schedule of tasks:
This course will employ Writing Fellows. Please see their page for more information about this unique and valuable program. What this means for you is that each essay assignment has three dates. The first date is when we hand out the assignment. The second is when you turn in your draft to the Fellows. You can expect to receive feedback within a week. The third date (at least one week later) is when the final version of your essay is due.
Note the following very carefully. When you turn in your final essay, you must also submit both your preliminary version and the Writing Fellow's typed remarks. If you fail to submit both a preliminary version and the Fellow's remarks, we will automatically give you a zero for that assignment no exceptions! Furthermore, while we will grade you primarily on your final essay, we will deduct a portion of the grade if it appears you made very little effort in your initial submission. This is to ensure you don't abuse the program by turning in half-hearted preliminary essays.