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 11 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. Missing an assignment is far worse than turning one in and getting a zero. Most people who miss assignments wind up either dropping the course or failing it.
This semester, CS70 will use the popular pair programming methodology for all homework assignments. At the start of the semester, the class will be divided into teams (pairs) who will work together throughout the semester. All homework will be done as a pair, with a single, joint assignment turned in by one member of the pair.
In the pair-programming model, you must spend the bulk of your time working together as a team, with one person at the keyboard and the other at their side watching. All work should be a joint effort. You will be violating the honor code if you divide the work such that you work separately with one person doing one half of the work and the other person doing the other half.
There are times when the work to be done is "mindless", and it would be a waste of your partner's time to watch you. The standard example is spell-checking a document. In such cases, and only in such cases, you are allowed to work alone. If you're not sure whether something falls under the "mindlessness" rule, ask. In general, if your partner can't understand what you did without explanation, it wasn't mindless.
You are encouraged to discuss general features of the assignment and the ideas involved with other students besides your partner (including past CS70 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 questions of 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 your partner, 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.
These principles are the same, no matter what the medium of discussion or exchange (voice, writing, email, etc).
A question that often arises in later assignments is whether code can be copied from the textbook. You are allowed to study and thoroughly understand the textbook's solutions, but you may not copy code from the book. You must write your own code from scratch, using the knowledge you gained from reading the book.
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.
An earlier CS70 student who ran into trouble has provided a statement about what happened, which may help you to avoid the same fate.
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.
© 2004, Geoff Kuenning
This page is maintained by Geoff Kuenning.