Skip to Main Content

CS4150

Download as PDF

CS4150 - Algorithms (3 cr)

ComputingEN - J & M Price College of Eng.

Quantitative Intensive (QI) - BD Course-Level Learning Outcomes

The Methods Requirement supports students in learning the methods of inquiry relevant to their field of study. Students satisfy this requirement by applying analytical skills to evaluate and address comprehensive challenges with a critical lens.

Upon successful completion of the Methods Requirement through a QI-designated course, students will be able to:

  • Connect previously acquired quantitative literacy to discipline-specific applications.

  • Apply discipline-specific quantitative methods to solve theoretical, practical, or real-world problems.

  • Relate course-related quantitative methods to the discipline.

  • Communicate results and insights from quantitative analysis effectively.

Describe approaches for dealing with NP-Complete problems, such as approximation algorithms or algorithms tailored to structure in problem instances

Design, describe, and analyze novel algorithms using the technique of reduction: building a new algorithm which uses one or more known algorithms as a black-box subroutine

Explain the concept of NP-Completeness, including its implications for everyday programmers, and describe in detail the necessary components of an NP-hardness reduction; name and clearly define several well-known NP-hard problems

Given a problem statement, use techniques including divide and conquer, linear programming, dynamic programming, and greedy strategies to design and implement an efficient algorithm and clearly describe it using text, pseudocode, and/or a recursive formula (especially for dynamic programming problems)

Prove the correctness of an algorithm using common proof techniques, including induction and proof by contradiction

Use asymptotic function notation (including Big O, Big Omega, and Big Theta) to characterize and prove the time and space complexity of programs

Use common graph algorithms (including depth-first search, breadth-first search, and shortest paths), properties (including directed acyclic graphs), and representations (including adjacency lists and adjacency matrices) to solve novel problems

Write a recurrence relation for the running time of an algorithm, and solve for its closed form using recursion trees