Students taking CMSC 441 should have mastered the material covered in the following courses: CMSC 201 & 202 (Computer Science I & II), CMSC 203 (Discrete Structures), CMSC 341 (Data Structures) and MATH 152 (Calculus and Analytic Geometry II). The material in Appendix B, Chapter 10 and Chapter 12 of the textbook (covering sets, elementary data structures and binary search trees) should be familiar. So should sorting algorithms (e.g., bubble sort, insertion sort, selection sort, merge sort, heap sort, quicksort). Some knowledge of probability and counting (Appendix C of the textbook) is also expected. In addition, proficiency in the implementation of the elementary data structures (e.g. stacks, queues, linked lists, heaps, balanced binary trees and graphs) in C/C++ or Java is assumed.

A 30-minute prerequisite test will be given on Thursday, September 4. This test will cover material that you should already know from CMSC 203 and CMSC 341. The test counts for 3% of your final grade.

In this course students will

- learn the quantitative methods used in the analysis
of algorithms;

- sharpen their problem solving skills through the design
of algorithms; and

- learn to write explanations for the correctness of
algorithms and justifications for their performance.

Final grades will be based upon the prerequisite test (3%), 9 homework
assignments (27% total), 2 writing assignments (20% total), the midterm
exam (20%) and the final exam (30%). Grades are given for work done
*during* the semester; incomplete grades will only be given for
medical illness or other such dire circumstances.

The final letter grades are based on the standard formula:

0 <= F < 60, 60 <= D < 70, 70 <= C < 80, 80 <= B < 90, 90 <= A <= 100

Depending upon the distribution of grades in the class, there may be adjustments in the students' favor, but under no circumstances will the letter grades be lower than in the standard formula. Grades will not be "curved" in the sense that the percentages of A's, B's and C's are not fixed. As a guideline, a student receiving an "A" should be able to solve the homework problems with facility; design and analyze new algorithms in written exams; and demonstrate an understanding of the impact of theoretical analysis in practical programming settings.

Students are expected to attend all lectures and are responsible for all material covered in the lecture as well as those in the assigned reading. However, this subject cannot be learned simply by listening to the lectures and reading the book. In order to master the material, you must spend time outside the classroom, to think, to work out the homework and understand the solutions.

Assignments are due at the *beginning* of lecture. *Late
homework will not be accepted --- this is to allow for timely
grading and discussion of the homework solutions.* Reasonable
provisions will be made for students who are delayed by traffic,
who are on travel, ... *Late homework will be rejected from
students who have obviously been working on homework instead of
attending lecture.* Partial credit will be given for serious
attempts on the homework problems. So you should simply turn in
whatever you have accomplished by the beginning of class. If you
cannot attend lecture when homework is due, for some honorable
reason, you must make arrangements to submit your homework directly
to the instructor. Do not ask another student to submit your homework
for you. This is to reduce the temptation to cheat (see below).

Students are allowed, and even encouraged, to collaborate on homework
problems. Collaborators and reference materials must be acknowledged
at the top of each homework assignment. However, homework solutions
must be written up *independently*. A student who is looking
at someone else's solution or notes, whether in print or in electronic
form, while writing up his or her own solution is considered to be
cheating. Cases of academic dishonesty will be dealt with severely.

Writing assignments, on the other hand, must be accomplished through
individual effort. Students may get help on grammar, sentence and
paragraph construction from the Writing Center or from others who
are not taking this course, but all technical work must be done
individually. *Writing assignments that are found to have as much
as a single sentence copied will receive a grade of zero. This
penalty applies to both the copier and to the copied. So, do not
allow another student to look at your writing assignment.*

Last Modified: 21 Aug 2003 13:44:37 EDT by Richard Chang to Fall 2003 CMSC 441 Section Homepage