Computer Science 303
Algorithms
Fall, 2001

Weizhen Mao
Department of Computer Science
College of William and Mary


General Information | Schedules | Announcements | Lectures | Assignments | Project | Exams

General Information

Instructor: Weizhen Mao, McGl 114, 221-3472, wm@cs.


Lectures: TR 11:00-12:20, Morton 342.


Office hours: TR 10:00-11:00 am and 2:30-3:30 pm, McGl 114.


Teaching assistant:
Daniela Puiu, dxpuiu@cs, for the programming project.
Lei Guo, lguo@cs, for homework assignments.
Thomas Borsari, tborsari, for the programming project.

Teaching assistant's office hours: In McGl 121.
Daniela Puiu: Th 5:30-6:30 pm.
Lei Guo: M 4:30-5:30 pm.
Thomas Borsari: T 6:00-9:00 pm.

Textbook:
Data Structures and Algorithms in C++, 2nd edition, by Mark A. Weiss, Benjamin Cummings, 1999.

Course description:
A thorough coverage of advanced data structures, including balanced trees, priority queues, and hashing. A systematic study of algorithms, their complexity and implementation. A survey of methods for achieving high algorithmic efficiency by using good data structures and sophisticated algorithm designs.

Course work:
  • There will be about twelve homework assignments, accounting for 30% of your final grade.
  • A semester-long programming project in C++, worth 30% of your final grade, will also be assigned. The project consists of modules built on top of one another and covers important algorithmic concepts such as Quick Sort and Divide and Conquer as well as programming issues such as C++ classes. Please check the project page for more details.
  • There will be a midterm exam during the week before the Fall Break. It is open-book and open-notes. It is worth 15% of your final grade.
  • The final exam, which is also open-book and open-notes, will be on 12/14/2000. It accounts for 25% of your final grade.


Grading policy:
  • There are four cardinal rules concerning grading of the problem sets. First, homework is subject to the honor code, but you are free to consult texts, papers, or any published materials. Second, give yourself plenty of time before the deadline to work on the problems. Think before you write. Third, you should make your solutions clear and concise as well as correct. I will ask TA to take points off for confused or incomprehensible or verbose solutions. Fourth, I will accept late homework only when there is a medical condition that prevents you from finishing the homework. A doctor's note must be given for such consideration.
  • The grading of the programming project will be based on the correctness of the programs, the efficiency of the algorithms, the programming styles, the quality of design, and documentation. Late submissions of the project will not be accepted.
  • Your final grade (in points) will be calculated by the following formula: (Your homework total / Maximum homework total) * 30 + (Your project total / Maximum project total) * 30 + (Your midterm exam total / Maximum midterm exam total) * 15 + (Your final exam total / Maximum final exam total) * 25. Final letter grades will be given based on the standard scale (i.e., 90 or above: A; 80-89: B; 70-79: C; 60-69: D; and below 60: F). However, I reserve the right to lower these standards, which was often the case in the past.


Disability:
If you have a disability that may effect your participation in this course and wish to discuss academic accommodations, please contact me as soon as possible.

Last modified: August 30, 2001