Grades
Your grade is based strictly on the number of points scored. This means that you can figure out exactly where you stand at any time. The scale is:
90% or more: A
80% but less than 90%: B
70% but less than 80%: C
60% but less than 70%: D
Less than 60%: F
Academic Integrity
You are encouraged to study and discuss topics together, especially via the course email list. Except where otherwise noted, you may work in pairs on assignments. Be sure to frequently trade off which member of the pair is typing — otherwise, the other member of the pair may drift off. Of course, you may not work together during exams.
Representing someone else's work as if it were your own is a heinous, career-threatening act. It is dishonest, it robs someone else of their work, and it defeats the purpose of the assignments. The penalty for plagiarism is worse than receiving a zero on the assignment.
Assignments
Assignments must be turned in by the beginning of class on the specified date (or by noon if the specified date is not a class day). Late assignments earn no points.
Essay, short answer, and mathematical assignments should be handed in on paper (in class or in the box outside my door) or submitted as plain text or .pdf files. I prefer that such assignments be typed, but since mathematical assignments often involve Greek letters and other obscure symbols, I will accept clearly handwritten papers. Of course, learning to use your word processor's equation editor is not a bad idea.
If you work in pairs, hand in one copy with everyone's name. (If it's a program, put everyone's name in a comment at the top of the main program.)
To get the highest possible grade, a programming assignment solution should:
-
•Load/compile and run. A program which does not load/compile, or crashes immediately when run, will receive a zero grade.
-
•Behave in the proper way (in terms of input and output). If you are instructed to use particular names in your program, you must use exactly those names.
-
•Use the structures and algorithms indicated (or reasonable ones where there is room for creativity).
-
•Be clearly written, with thorough comments.
Except where specified, you do not need to do error-checking in programs. For example, if you ask the user to type an integer, you may assume that they will do so, and are not responsible for what happens if they type “fnord” instead.
Some general advice on assignments:
-
•Start early!
-
•Come up with the smallest possible working piece of the program and get that to work first. When you're sure it's working, add more functionality.
-
•Rest. This includes both taking breaks in your work and getting enough sleep that you don't nod off in class. Of course, you'll only have time to rest if you start early.
-
•Learn to use your development environment. Eclipse is quite powerful; it can do a lot of otherwise tedious work at the click of a mouse.
-
•Panic early. Far too often, students have come to me just before an assignment is due, complaining that they've spent 20 hours working on it and still don't know what they're doing. If you've grappled with a problem for an hour, there's more honor in seeking help than in continuing to beat your head against the wall.
-
Exams
Each test will strongly emphasize material presented since the previous test, although earlier material is fair game.
The exams are closed-book, but you may bring one 3x5 inch index card full of notes. (You may write on both sides.)
A good exam answer should:
-
•Provide the requested information.
-
•Be clear. Use complete sentences where appropriate.
-
•Be neatly written.
If a question seems ambiguous, make and state a reasonable assumption. If, in a proof question, you need some secondary result, state the result and use it; if there is time later, go back and prove it.
Disabilities
If you have a disability that may impact your academic performance, you may request accommodations by submitting documentation to the Student Support Services Office (Albany 206, x7156), and that office will notify me of the accommodations for which you are eligible.
Resources
Java
-
-
-
-
Python
-
-
Eclipse
-
-
-
UNIX
-
-
-
Miscellaneous
-
-
-
-
-