Muhammad Qasim Pasta

personal website

Design and Analysis of Algorithms (Spring 2018)

Course Description & Objectives:

A theoretical course focusing on the design and analysis of computer algorithms. It introduces students to designing computer algorithms and analysis of sophisticated algorithms. The emphasis of the course is on techniques for constructing efficient algorithms and for analyzing the efficiency of an algorithm.

The objective of the course is to understand the following topics:

  • Asymptotic notations and asymptotic complexity
  • Algorithm design techniques such as divide and conquer, greedy, and dynamic
  • Advance data structures such as heaps, red-black tree, AVL tree, and hash-tables
  • Algorithms on graphs such as shortest paths and minimum spanning trees
  • Intractability

Course Learning Outcome:

On successful completion of this course, a student would be able to:

  1. Determine asymptotic growth rates for different algorithms
  2. Write and solve recurrence relations for recursive algorithms
  3. Demonstrate the understanding of advanced data structures
  4. Demonstrate the usage of several design techniques
  5. Differentiate between tractable and intractable problems

Posters & Poster Session