Information about

CSCI 385

Advanced Data Structures and Algorithms

Course Description:
In this course we study techniques for designing, validating, and analyzing algorithms to solve problems in a wide range of different problem domains. In particular, we look at ways of solving problems in pattern matching, cryptography, computational geometry, and networks. We also look at how to utilize external memory and parallel processing to make algorithms more efficient and flexible.

A highlight of this course is the chance to exercise your creative side by coming up with unique approaches to solving problems. You will also be given the opportunity to analyze the efficiency of algorithms through experiments that you design and compare your results to theoretical expectations.

This couse is one that our graduates often say is the course that has been the most valuable to them in their careers. One student in the last offering of this course said "The algorithms class is one of my best memories from my undergraduate career. I LOVED this class! I am still struggling to understand why it is not a required class."

Offerings:
Offered fall semester of odd numbered years.

Instructor:
This course is usually taught by Dr. Cusack.

Prerequisites:
CSCI 112 or 114, CSCI 235, CSCI 241 and CSCI 250. See the department policy on prerequisites.

Comments from Previous Students:

  • " This class really helped push my understanding of the subject matter."
  • " It taught me new ways to approach problems and boosted my programming confidence."
  • " It was very challenging and made me learn a lot."
  • " Very essential knowledge for future work in computer science."
  • " Caused me to think 'outside the box.'"
  • " Information was presented in a fun manner."
  • " This showed me new ways of thinking about problems."
  • " I liked learning the more advanced algorithms."
  • " I liked that we had to think. This course was very applicable to life."

Catalog Description:
Study of classical algorithms of computer science, techniques for algorithm design, and analysis of algorithms. Topics include search tree construction, tree balancing techniques, algorithms from graph theory and computational geometry, string matching algorithms, skip lists and hash tables, and techniques for parallel algorithms. Prerequisites: 112 or 114, 235, 241 and 250. Offered odd years.
Four Credits Cusack Fall Semester