Description

This course introduces the mathematical design and analysis of computer algorithms. Algorithm complexity, growth of functions, recurrences will be covered. Algorithm design techniques such as divide-and-conquer, dynamic programming and greediness will be introduced. Moreover, well known algorithms for e.g., sorting, searching, graph problems and computational geometry will be developed.

Program

Software Engineering 144 CRs

Objectives

  • 1. Apply asymptotic time complexity analysis to choose among competing algorithms.
    2. Construct and solve recurrence equations describing the asymptotic time complexity of a given algorithm.
    3. Identify the best algorithm design technique for a given problem.
    4. Implement efficient algorithms using the appropriate data structures.

Textbook

Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, Introduction to Algorithms, The MIT Press

Course Content

content serial Description
1Introduction
2Algorithms analysis and sorting techniques
3Recurrences
4Brute Force Algorithm
5Greedy Algorithms
6Greedy Algorithms (cont.)
77th Week Exam
8Dynamic programming
9Divide and Conquer
10Back-Tracking
11Graph Algorithms
1212th Week Exam
13String Algorithms
14Computational Geometry
15Revision
16Final Exam

Markets and Career

  • Generation, transmission, distribution and utilization of electrical power for public and private sectors to secure both continuous and emergency demands.
  • Electrical power feeding for civil and military marine and aviation utilities.
  • Electrical works in construction engineering.

Start your application

Start The your journey to your new career.