CS420: Algorithms
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 that everybody is capable of understanding by looking in 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. The class will take significantly fewer hours out of your week, it will be more interesting, and you will get more out of it if you approach it in this way. way.
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 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 lowest homework grade and lowest quiz score in computing your semester averages for these parts of your grade. Even if you give me a legitimate reason for turning a homework in late or missing a quiz, I will tell you to use these "freebies." If you use a freebie, be sure you nevertheless thoroughly understand the solutions to the problems before the next exam.
I will sometimes give a homework quiz on the homework on the due date, and, when I do, this will be a significant part of the grade for that homework. (This is to ensure that people are making responsible use of the permission to talk with other students about the homeworks.)
Semester grades will be a weighted average, with the weights given by the following:
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 raw score, and then a curved grade from 0 to 12. A grade of 12 means you got an A+, an 11 means you got an A, a 10 means you got an A-, a 9 means you got a B+, etc., down to 2 for a D, 1 for a D-, and 0 for an F. They are just numerical codes for your grades. Grade averaging is accomplished by just finding numerical averages of the codes, then rounding to the nearest integer. Your semester grade is the weighted average of the homework, quiz, and exam grades, after freebies have been tossed out, when they are weighted as described above. I will round this to the nearest integer, and translate this to the grade that it corresponds to.
For example, suppose your sequence of homework grades is (9,7,11,0,8,12,10,8). These are codes for your sequence of letter grades: (B+, B-, A, F, B, A+, A-, B). After dropping the lowest grade, they are (9,7,11,8,12,10,8), which gives you a homework average of 9.29. This is between a B+ and an A-. Suppose your homework quiz averages and quizzes on homeworks and and readings which are computed similarly, are 8.5 (B/B+) and 7.3, (between a B- and a B), your midterm is an 8 (B) and final is a 10 (A-). Summarizing, you got:
The weighted average of these five grades is $9.29 * 0.2 + 8.5 *0.2 + 7.3 * 0.1 + 8 * 0.2 + 10 * 0.3$ $= 8.888$ Rounding this to the nearest integer, we get your final grade for the course, 9.0 (B+). If your average 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 answers will require detailed study to critique and grade effectively, I 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 always 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.
According to departmental policy, I am supposed to post the following on this page: Departmental Code of Conduct on this page.