CS320: Algorithms - Theory and Practice
Another reason you are expected to do the readings before class is that classroom time is a scarce resource that must be shared by your classmates. We don't want to waste some of it repeating trivial issues, such as basic definitions, that everybody is capable of understanding from the text.
Revisit the same material many times over many days, refining and simplifying your understanding of it each time, asking yourself questions about it.
Each homework assignment will consist of written work and/or programs. On the programs, I usually supply a menu and a program body that gets you out of mundane programming chores. The menu allows me to test different modules that need to be completed, so that I can award partial credit for working modules. (Non-working modules don't count.) Don't change the I/O interface that I supply, since I will use an I/O script to test it. Generally, the code that you will have to write in a module is not lengthy, but some of the modules require you to solve a clever algorithms problem.
I will often give a homework quiz on the homework on the due date. These quizzes are worth as much as the homework itself. This is to ensure that people are making responsible use of the permission to talk with other students about the homeworks. When the homework is a programming assignment, it is not enough to have managed to write the program and get it working. Make sure you can pass it by deleting the modules you have written and re-creating them quickly from memory. This will increase your fluency with programming syntax and the thought processes that lead to correct algorithms.
The grading will be determined as follows:
I don't accept late homeworks, since I often give out solutions right after they're due. To get you out of any unforeseen mishaps, I will throw out your two lowest homework grades from each category except the midterm and final. Even if you give us a legitimate reason for turning a homework in late or missing a quiz, we will tell you to use these "freebies." Granting exceptions to this rule raises fairness issues. The two freebies are an effort to protect you from being hurt by routine illnesses, family issues, computer crashes at the last minute, etc. Our advice is to keep the freebies in reserve for as long as possible.
Homework and exam grades are curved to give a distribution of grades that is consistent with those in other senior-level undergraduate classes at CSU.
Each assignment or exam is assigned a letter grade from A+ to F. In computing grade averages, I use the following scale: A+ is a 12, A is 11, A- is 10, B+ is 9, B is 8, ..., D+ is 3, D is 2, D- is 1, F is 0. Your semester grade is the numerical average of the homeworks, quizzes, and exams when they are weighted as described above, and rounded to the nearest integer.
For example, suppose your homework grades are (B+, B-, C, A, F, B, A+, A-, B). These are equivalent to (9,7,5,11,0,8,12,10,8). After dropping the two lowest, they are (9,7,11,8,12,10,8), which gives you a homework average of 9.29. Suppose your homework quiz averages and quizzes on readings and lecture material, which are computed similarly, are 8.5 and 7.3, your midterm is a B (8.0) and final is an A- (10). The average of these five grades is 8.6. Rounding this to the nearest integer, we get your final grade for the course, 9.0 (B+). If it had been an 8.4, it would have rounded down to an 8.0 (B).
The problems I give on homeworks range from extremely easy to extremely hard. A common misconception is that I expect you to solve all of them successfully. You should view each problem as an opportunity to explore a topic, try to come up with your own ideas, and score some points if you're successful at finding a solution. They are not intended to be stressful, and you should try to have fun with them. If you can engage your curiosity, you will be more likely to ask yourself questions that will lead you to a solution and anticipate questions that I might ask about on the exams.
Remember that the grades are curved, and that if you find a problem hard, it is likely that many of your classmates won't get solutions to it either. This will allow you to skip a problem if it is taking too long, but be sure to attempt all of the homework problems, since the posted solutions will be a lot more instructive if you have attempted the problems first. This will help you anticipate exam questions, which are often variants of problems you've seen on homeworks.
Because the attendance is quite large and answers will require detailed study to critique and grade effectively, we will choose a subset of assigned homework problems to grade on each assignment. We will announce the subset after they are turned in. The subset will consist of a mixture of easy, medium, and hard problems. All exam problems will be graded except when there is a widespread misunderstanding or other reason to toss a problem out.
Student Responsibilities:
Please familiarize yourself with the departmental policies on academic integrity.
In accordance with departmental policy, I am posting the Departmental Code of Conduct on this page.