CSCI 303: Algorithms

Fall 2023

Meeting place: ISC 1280
Meetings: 2:00PM-3:20PM (M. and W.)
Instructor: Qun Li (liqun@cs)

Office Hours:
Tue. 2PM-5PM (in person or zoom)

Course Description:
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. We will cover advanced data structures, sorting algorithms, graph algorithms, dynamic programming, and so on.

Recommended: Data Structures and Algorithms in C++, 4th edition, by Mark A. Weiss

Course work (tentative):
There will be in class quizzes accounting for 10% of the final grade.
There will be weekly homework assignments including programming assignments, accounting for 40% of your final grade.
There will be a midterm exam. It is worth 15% of your final grade.
The final exam accounts for 35% of your final grade.

Exam Date:
Mid-term Exam: around fall break. Final exam: Dec. 15 (F) 2PM-5PM

Honor code:
Honor code applies to this class. Students are encouraged to work together to do homework problems. What is important is a student's eventual understanding of homework problems, and not how that is achieved. Students may consult any source, except for another student's final draft, in learning how to do homework problems. Students must state what sources they have consulted, with whom they have collaborated, and from whom they have received help.

Student Accessibility Services:
William & Mary accommodates students with disabilities in accordance with federal laws and university policy. Any student who feels they may need an accommodation based on the impact of a learning, psychiatric, physical, or chronic health diagnosis should contact Student Accessibility Services staff at 757-221-2512 or at to determine if accommodations are warranted and to obtain an official letter of accommodation. For more information, please see