COS 454/554: Data Structures and Algorithms

Sudarshan S. Chawathe
University of Maine

Fall 2023

This course is an introduction to algorithms. Data structures play an important role, both in enabling efficient algorithms and in using others for their own implementation. Topics include the analysis of algorithms (analytical and experimental), algorithm design techniques (such as dynamic programming), advanced data structures (such as Fibonacci heaps), algorithms for specific problems (such as shortest paths in graphs, and string matching), and an introduction to NP completeness and related topics. An important theme is abstraction and its application to programming.

Prerequisites: COS 226 (data structures); COS 250 (discrete structures); programming maturity.

COS 554 is the graduate version of this course, which shares most class meetings and coursework with the undergraduate version (COS 454) but that includes additional coursework and is assessed to a higher standard.

Goals and Outcomes
 Student Learning Outcomes
Contact Information
Online Resources
Grading Scheme
Textbook and Readings
Exercises, Homeworks, Tests, and Notes
Homework and Project Submissions

News and Reminders: