Mar 29, 2024  
2021-22 Catalog 
    
2021-22 Catalog [ARCHIVED CATALOG]

Add to Favorites (opens a new window)

CS 401 - Algorithms


5 CR

This course teaches the concepts and skills required to design, implement and analyze algorithms for constructing efficient computer programs. The course covers elementary data structures, searching, sorting, graph and string algorithms, and algorithm design principles such as dynamic programming, greedy, divide-and-conquer paradigms. The emphasis is on applications and scientific performance analysis of algorithms.

Prerequisite(s): CS 300  with a C or better, MATH 301  and admission to BS CS program, or instructor’s permission.

Course Outcomes
  • Discuss the runtime and memory efficiency of principal algorithms for sorting, searching, and hashing 
  • Implement fundamental algorithms 
  • For each of the algorithm design paradigms (greedy, divide-and-conquer, and dynamic programming), identify a practical example to which it would apply 
  • Analyze algorithms and data structure operations to determine their algorithmic complexity 
  • Use Big-O notation formally to give asymptotic bounds on time and space complexity of algorithms 
  • Evaluate algorithms, select from a range of possible options, provide justification for that selection, and implement the algorithm in a particular context


Find out when this course is offered




Add to Favorites (opens a new window)