There will be a mid-term and a final exam, stressing concepts rather than memorization of details. Both exams will be timed take-home tests. There will be about 8 homework assignments, each taking between 1 and 2 weeks.
Final grades will be based on the following formula:
Homeworks will consist primarily of programming, with occasional
non-programming problems. Homeworks will be submitted using the
that submission deadlines are firm.
All homework must be submitted on Turing, the department server. That means you must have a Turing account. If you have never had a Turing account, see one of the professor for an account-request form. If you used to have an account, but it is no longer active, see the system administrator in Beckman B101 to get it reactivated. Be sure to fill out your request form legibly.
Note that you can't get to
Turing using the
telnet program; you must either use
ssh or go
to the terminal room, Beckman B102.
Full homework information is given on the homework policies and homework grading pages. The lowest homework grade will be discarded before final grades are calculated.
It is critical that you turn in all of your assignments. Missing assignments are weighted very severely in the calculation of your final grade. If you fail to turn in one assignment, you will have to get a C- or better on all your remaining assignments and on your exams to pass the course. This is much harder than it may sound, because the exams test material you learned in your homework. If you skip an assignment, you're probably going to do badly on the exams as well.
If you fail to turn in two assignments, you need to get a B- or better on all your other work to pass the course. This is an almost impossible hurdle to meet. If you miss three assignments, you'd need to pull A- on everything else to pass.
The bottom line is that if you're not going to do the work, don't do the course. If you miss a single assignment, you need to work like crazy for the rest of the term. If you miss more than one assignment, you are almost guaranteed an "F".
(Note: these examples were calculated assuming 8 total homework assignments. They will vary somewhat if the number of assignments is different, but the flavor will remain the same: missing an assignment is a really, really bad thing.)
You are encouraged to discuss general features of the assignment and the ideas involved with other students. This might include general approaches to the problems, bugs in the specification, how long you've spent working on it, etc. You can also help one another with how to use Unix, C++, and the like. You can use example code, such as that in the textbooks or other reference materials, as a starting point for designing your own code.
However, except for projects to be done in groups, you should not discuss details of how you designed and implemented your algorithms, or how you solved mathematical problems. You must not exchange literal copies of material, whether it is code, program output, or English-language text (e.g. documentation). You also cannot copy material from published or on-line sources, with or without cosmetic changes such as altering variable names. In particular, you are not allowed to copy portions of the assignment Web pages directly into your README files without attribution.
If you aren't sure what is permitted, explicitly document what you did and, if at all possible, consult with the course staff. Similarly, document what happened if you receive extensive or particularly important help from some source, even if it seems legitimate. If the questionable material or extensive help is explicitly marked as such, you might lose points but it's not an honor code violation.
These principles are the same, no matter what the medium of discussion or exchange (voice, writing, email, etc).
Important announcements between classes will be sent out via the course's electronic mailing list. (In complex cases, the email may refer you to the course's web page.) Be sure you are on the class mailing list. Check your email regularly, particularly right before an assignment is due (when any bugs are likely emerge and be corrected).
You are expected to be in class most of the time. I'm not going to take attendance explicitly. However, if you aren't in class, it's your responsibility to find out what happened, and if you are gone a lot, it will impact your grade.
Unless announced, there are no automatic extensions to homework (or other) deadlines, and a grading penalty will be exacted for late submissions (see the homework grading guidelines for details). If, for some good reason, you are unable to turn in a homework when due, extensions may be possible. The key principles are:
If you think it is impossible to accomplish the work in the available time, consult with me before the due date. It may be that everyone in the class has the same problem, in which case I might want to adjust the assignment. The same applies if I have scheduled something at a particularly bad time (e.g. simultaneously with a major deadline for another class) or if there seems to be a bug in an assignment.
If you get sick during the term, let me know immediately, even if you think it will not affect your work. This applies any time you are sick enough that you miss any classes (not just this one), need extra sleep, or find yourself thinking more slowly than normal. Notify me of sickness even if you're 100% sure that you'll be able to get your work done on time.
This page is maintained by Geoff Kuenning.