COSC 781 Algorithm Design Techniques
Algorithms constitute the core of Computer Science and algorithm design is crucial for the performance of real-world software systems. This is an advanced algorithms course, focusing on techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics include average case analysis of hashing; amortized analysis; randomized algorithms, competitive analysis of online algorithms; approximation algorithms for hard optimization problems, algorithms for data streams, number theoretic algorithms, and machine learning algorithms.