Your object in this course should be to learn as much as possible, and to help others learn as much as possible. If you do that, good grades will follow.
The tenor of this class should be cooperative, not competitive. I have no limit on the number of "A" grades I can assign. The better the class as a whole does, the more "A" grades there will be. Some classes have gotten almost all "A" grades. That said, I more typically assign from 1/3 to 2/3 "A" grades (including A+ and A-), with most of the rest being "B" grades, usually a couple of "C" grades. and occasionally I flunk someone. If you do all the assignments and take the exams, you are almost guaranteed a passing grade.
After the first one or two assignments, you will be assigned a partner for each assignment. Please work as closely as possible with that partner. Try to divide up the effort fairly; help your partner if he/she is less experienced than you, or allow yourself to be helped if your partner is more experienced. Remember, the best way to learn is to teach . If you get a bad partner, do your best; you will have a different partner next time.
There will be somewhere between 9 and 12 programming assignments. Unless specified otherwise, each assignment will be graded on the basis of 100 points. When working with a partner, you and your partner will receive the same grade on the assignment. Assignments will count for 50% of your grade.
Grading of assignments is explained in How Assignments Are Graded. All assignments must be submitted via Blackboard.
There will be one midterm, worth 20% of your final grade; and a final exam, worth 30% of your final grade.
My exams are difficult. They consist of a mix of easy, medium, and difficult problems. A typical class average is 66%. In many other classes, a grade of 66 would be very worrisome; in my class, that's a perfectly acceptable grade.
Teamwork (how good a partner you are) and participation (both in class and on Piazza) are not a percentage of your grade. I may use them to adjust your final grade up or down by 1/3 grade (for example, B+ up to A- or down to B), but only if you have done really well or really badly. Most students will not be affected.
You will do most programming assignments with a partner. After the assignment is turned in, you will be required to evaluate the team skills of your partner: Was he or she friendly, cooperative, helpful, and reliable? This evaluation is both mandatory and anonymous--no one but me, David Matuszek, will see it.
You are expected to use Piazza to ask questions, respond to questions, and post anything of interest to the class. If you have a question--about anything--post it on Piazza. If you can, answer other people's questions. Be as helpful as you can. I will also be on Piazza, and in addition to reading all the posts (and sometimes responding), I get good statistics on individual student activity.
This class is structured to make it difficult to cheat. However, sometimes it does happen. If you cheat, you will almost certainly be caught, and the consequences will not be limited to this one course. If you have any doubts regarding what constitutes cheating, see my Academic Integrity Policy.