Semester.ly

Johns Hopkins University | EN.605.621

Foundations of Algorithms

3.0

credits

Average Course Rating

(-1)

This follow-on course to data structures (e.g., EN.605.202) provides a survey of computer algorithms, examines fundamental techniques in algorithm design and analysis, and develops problem-solving skills required in all programs of study involving computer science. Topics include advanced data structures (red-black and 2-3-4 trees, union-find), recursion and mathematical induction, algorithm analysis and computational complexity (recurrence relations, big-O notation, NP-completeness), sorting and searching, design paradigms (divide and conquer, greedy heuristic, dynamic programming, amortized analysis), and graph algorithms (depth-first and breadth-first search, connectivity, minimum spanning trees, network flow). Advanced topics are selected from among the following: randomized algorithms, information retrieval, string and pattern matching, and computational geometry. Prerequisite(s): EN.605.202 Data Structures or equivalent. EN.605.203 Discrete Mathematics or equivalent is recommended. Course Note(s): The required foundation courses may be taken in any order but must be taken before other courses in the degree. Students can only earn credit for one of EN.605.620, EN.605.621, EN.685.621 or EN.705.621

No Course Evaluations found

Lecture Sections

(81)

No location info
S. Leon
No class times info

(82)

No location info
R. Fink
No class times info

(83)

No location info
J. Boon
No class times info

(84)

No location info
L. Heath
No class times info

(85)

No location info
M. Hartong
No class times info

(86)

No location info
S. Leon
No class times info

(87)

No location info
M. Hartong
No class times info