Computer Science 539
Data Structures and Algorithms
Fall, 2001
Weizhen Mao
Department of Computer Science
College of William and Mary
General Information |
Schedules |
Announcements |
Lectures |
Assignments |
Projects |
Exams
General Information
- Instructor:
Weizhen Mao, McGl 114, 221-3472, wm@cs.
- Lectures: TR 3:30-4:50 and T 5:00-5:50, James Blair 223.
- Office hours: TR 10:00-11:00 and 2:30-3:30,
McGl 114.
- Teaching assistant: Aaron Hawkins, ahawkins@cs.
- Teaching assistant's office hours: TBA
in McGl 121.
- Textbooks:
- Data Abstraction and Problem Solving with C++, 2nd edition, by
Frank M. Carrano, Benjamin Cummings, 2001.
- Data Structures and Algorithms in C++, 2nd edition, by Mark A. Weiss,
Benjamin Cummings, 1999.
- Course description:
-
A transition course for graduate students entering the program who
lack courses in data structures and
algorithms. Data structures and their representations, data abstraction,
internal representation. Specific
data structures, including lists, stacks, queues, trees, priority queues,
hash tables, and their applications.
Systematic study of algorithms, their complexity, and programming
implementation. Survey of methods for
achieving high algorithmic efficiency by using good data structures
and sophisticated design. Advanced
features of C++, including classes, inheritance, and polymorphism.
- Course work:
- About six problem sets (each with four problems) will be assigned
for the course.
They account for 30% of your final grade.
- A semester-long project, consisting of four parts, will be assigned.
They account for 30% of your final grade.
The projects consist of modules built on top of one another and
cover important algorithmic concepts such as Quick Sort and Divide
and Conquer as well as programming issues such as C++ classes.
Project descriptions will be posted on the course webpage.
- There will not be a midterm exam.
- The final exam, which is open-book and open-notes, will be on
12/19/2001. It accounts for 40% 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 take
points off for confused or incomprehensible or verbose solutions.
Fourth, I will not accept late homework.
- The grading of the programming project (done by the TA) 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 final exam total / Maximum final exam total) * 40.
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