About CS 5240 B

Studies how to design and analyze computer program algorithms to solve real-world problems. Begins with a review of the concept of algorithm complexity and basic graph algorithms; and then covers algorithm design approaches such as greedy, divide and conquer, dynamic programming, and network flow; then, computational intractability will be treated. Credit not awarded for both CS 5240 and CS 3240. Prerequisite: Familiarity with data structures and elementary algorithms; Graduate student.

Notes

Graduate standing only; Colocated with CS 3240 B; Total combined enrollment = 45 Open to degree and PACE students

Section Description

Understanding algorithm design methods such as greedy approach, divide and conquer, and dynamic programming; solving various algorithmic problems like graph traversal, network flow, path finding, etc.; proof of algorithm correctness and analysis of algorithm complexity; definition of complexity class NP and NP-completeness; algorithm design methods for hard problems, such as approximation and local search.

Section Expectation

Lecture course. 6 to 8 hours of work expected outside the classroom. Includes algorithm program coding (in Java) exercises. Required text: Algorithm Design by Kleinberg and Tardos (ISBN-10: 0321295358).

Evaluation

Weekly homework assignments, including 12 written assignments and five programming assignments.

Important Dates

Last Day to Add
Last Day to Drop
Last Day to Withdraw with 50% Refund
Last Day to Withdraw with 25% Refund
Last Day to Withdraw

Resources

Other Sections