Dec 22, 2024  
2019-2020 Undergraduate Academic Catalog 
    
2019-2020 Undergraduate Academic Catalog [ARCHIVED CATALOG]

Add to Portfolio (opens a new window)

CS 3851 - Algorithms

3 lecture hours 2 lab hours 4 credits
Course Description
This course extends the study of algorithms introduced in CS 2852 . Topics covered include searching, sorting, selection, graph structures, traversal algorithms and P/NP complete problems. Applications such as data compression and optimization problems are also discussed. Laboratory activities include the implementation and comparison of problem-specific algorithms. (prereq: CS 2852 , MA 262 , MA 3320 )
Course Learning Outcomes
Upon successful completion of this course, the student will be able to:
  • Apply asymptotic time complexity analysis to choose among competing algorithms
  • Construct and solve recurrence equations describing the asymptotic time complexity of a given algorithm
  • Implement sorting algorithms such as heapsort and quicksort
  • Describe how graph and tree structures are implemented
  • Describe similarities and difference between breadth-first and depth-first search techniques
  • Compare and contrast at least two minimum spanning tree algorithms
  • Identify the use of dynamic programming techniques in algorithmic design
  • Describe the implications of demonstrating that a particular algorithm is NP complete
  • List at least three engineering applications of algorithmic design and analysis

Prerequisites by Topic
  • Algorithmic analysis
  • Java programming
  • Set theory
  • Recursion
  • Methods of proof
  • Graphs
  • Trees

Course Topics
  • Independent research presentation
  • Algorithmic analysis
  • Mathematic tools
  • Sorting
  • Order statistics
  • Greedy algorithms
  • Graphing algorithms
  • Dynamic programming
  • NP complete

Laboratory Topics
  • Algorithm analysis
  • Sorting
  • Greedy algorithms
  • Dynamic programming

Coordinator
Dr. Christopher Taylor



Add to Portfolio (opens a new window)