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. Some knowledge of probability and counting (Appendix C of the textbook) is also expected. Students must be able to understand and be able to write proofs by induction. In addition, proficiency in the implementation of the elementary data structures (e.g. stacks, queues, linked lists, heaps and balanced binary trees) in C/C++ or Java is assumed.

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 homework assignments (30% total), quizzes (45% total) and the final exam (25%). The syllabus lists 13 homework assignments and 6 quizzes. However, if a homework assignment or quiz is canceled and not made up (e.g., because school is closed for snow or hurricane), the proportion of your grade from homework, quizzes and the final exam will remain the same. That is, homework will still count for 30% of your grade and quizzes 45% of your grade (each homework or quiz will have greater weight).

The lowest homework grade that exceeds 40% will be dropped, if this increases your overall homework average. In particular, missed homework assignments will receive a grade of 0 and will not be dropped from the computation of your homework average. The intention of this policy is to allow students to disregard the homework grade from a "bad week" but not encourage students to completely ignore a homework assignment.

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

Grades will not be "curved" — that is, the percentages of A's, B's and C's are not fixed. However, 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. 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.

Grades are given for work done *during* the semester; incomplete grades will
only be given for medical illness or other such dire circumstances.

In-class quizzes are listed in the course syllabus.

Section 1 (Thu): 2/13, 2/27, 3/13, 4/3, 4/17, 5/1.

Section 2 (Wed): 2/12, 2/26, 3/12, 4/2, 4/16, 4/30.

The dates for quizzes will not change unless campus is closed (e.g., due to snow). You must make every effort to attend — unexcused absences will result in a grade of zero for that quiz. Each quiz will be held during the last 30 minutes of the class period.

Each quiz will consist of one or two questions (possibly with multiple
parts) on pre-announced topics. The questions will require you to solve
new problems (i.e., not simply regurgitate of facts). In order to do
well in these quizzes, you must be able to do the types of questions
assigned for homework on your own. *If you do not learn from doing your
homework, you will not pass the quizzes.*

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 to, 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 seriously.

The UMBC academic integrity policy is available
`http://www.umbc.edu/undergrad_ed/ai/`.

Last Modified: 22 Jan 2014 23:20:59 EST by Richard Chang to Spring 2014 CMSC 441 Homepage