Skip to main content

(CS 301) Algorithms and Complexity

Study of algorithm analysis, design strategies, and fundamental algorithms with a focus on performance, efficiency, and data structures.

Credit hours 3.0 lecture
Prerequisites CS 206 and CS 300
Offered Variable
Programs Computer Science (BS), Computer Science Minor, Mathematics (BS)

Course Learning Outcomes

Each student who passes this course will be able to do the following:

  • Interpret pseudocode representations of algorithms and translate them into real programming languages.
  • Understand, describe, implement, and compare classical sorting algorithms, discussing their advantages and disadvantages.
  • Implement classical data structures (graphs, trees, hash tables) and analyze their strengths and weaknesses in different contexts.
  • Demonstrate proficiency in designing, programming, and optimizing algorithms for various problems and scenarios.