MPCS 55005 Advanced Algorithms (Spring 2021)

Section 1
Instructor(s) Brady, Geraldine (gb52)
Location Online Only
Meeting Times Tuesday 5:30pm - 7:30pm
Fulfills Core Theory Elective

Syllabus

 

*This course will be conducted remotely and will be online only for Spring 2021*

 

Advanced Algorithms is a second course on the design and analysis of efficient algorithms. This course will present many interesting and relevant algorithms and give students the tools to recognize and rigorously solve algorithmic problems in the real world. 

Topics include:

  • data structures: Bloom filters, red-black trees, skip lists, and more 
  • discrete and continuous optimization: advanced dynamic programming, gradient descent
  • NP-hardness and methods of dealing with intractability: approximation, randomization, backtracking, branch and bound, local search
  • computational geometry and advanced graph algorithms
with applications in computing, data science, and engineering.

Engaging weekly homework assignments will involve designing new algorithms in pseudocode and implementing selected algorithms in Python. Course goals are to prepare students with skills necessary to tackle algorithmic problems they are likely to encounter in software development. 

Course Prerequisites

B+ or better in MPCS 55001 Algorithms *or consent of instructor*

Other Prerequisites

Overlapping Classes

This class is scheduled at a time that conflicts with these other classes:

  • MPCS 55001-1 -- Algorithms
  • MPCS 52040-1 -- Distributed Systems
  • MPCS 51132-1 -- Full Stack Software Engineering
  • MPCS 51039-1 -- Mobile Software Development