Course Description: Common data structures: trees, priority queues, dictionaries, balanced search trees, B-Trees, heaps, hash tables, and graphs.

Instructor: Steve Cutchin


Office: CCP 356

Office Hours: MTWR 11:00-12:00
or by appointment.


Official Syllabus: CS 321 Syllabus Spring 2019

Expected Prerequisites

  • CS 221: Computer Science II
  • MATH 189: Discrete Mathematics


At the end of the course, students will be
  • able to choose appropriate data structures to implement algorithms.
  • able to apply the most efficient known algorithms to solve searching and sorting problems.
  • familiar with variety of different data structures and their appropriate usage.
  • able to apply basic graph search algorithms (such as BFS, DFS) to applications


  • Introduction to Algorithms, 3rd Edition by T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein/McGraw-Hill


The course will be graded on a A-F scale. The evaluation will be based on successfully finishing every programming assignment, homeworks and exams.

Academic Dishonesty

As per the Office of Student Rights and Responsibilities, the Student Code of Conduct defines Academic Dishonesty as "A violation may include cheating, plagiarism, or other forms of academic dishonesty. All assignments submitted by a student must represent her/his own ideas, concepts, and current understanding or must cite the original source. Academic dishonesty includes assisting a student to cheat, plagiarize, or commit any act of academic dishonesty. Attempts to violate academic integrity do not have to be successful to be considered academic dishonesty. Academic dishonesty includes turning in substantial portions of the same academic work to more than one course without the prior permission of the faculty members."