Sunteți pe pagina 1din 11

Analysis and Design of Algorithms

Course Staff
Dr Ashraf Iqbal Dr Malik Jahan Raabia Asif

Motivation
To provide a Comprehensive study of Computer Algorithms. To provide in depth coverage to Analysis and Design of Algorithms. To discover the solution of classical problems and to study how these solutions can help in solving other related problems. To study and design approximate algorithms for problems, which cannot be solved by exact algorithms.

Text Books/Readings
Thomas H Corman, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein, Introduction to Algorithms (2nd edition, 2001).

Lectures
Two lectures every week, Friday: 3:30pm to 5:00pm and Saturday: 9:00am to 10:30am. One in class mid-term and a comprehensive Final Exam. One online tutorial in lab every week, on Tuesday from 3:15pm to 4:45pm. For the tutorial, you need to go to https://vyew.com/go/register and sign up. You will be soon sent an invitation (via email) to join your online board by Raabia.

Grading Scheme
Quizzes: 35% Midterm: 30% Final Exam: 35%

Distribution of Topics
Sorting: 4 Lectures Dynamic Programming: 10 Lectures Graph Algorithms: 10 Lectures NP Complete Problems: 2 Lectures

Working in Groups
For this course, you are all distributed into groups of 5 or 4. groups.xlsx If girls have any issues, they can be adjusted into one group All group members should sit together in class Discussion/collaboration among group members is highly appreciated (and might even be enforced at times) Take few minutes and familiarize yourself with your group members

Analysis of Algorithms
What is an algorithm? What is the Problem? Correctness? Efficiency? How to Express an Algorithm? Input, output, basic idea in plain English, machine and language independent code, complexity calculations Various Techniques? Building Blocks? How to solve New Problems? Sorting is fundamental to every problem? Algorithm design is also a technology?

Lets compare two machines!


We shall compare the times needed to sort 10 million numbers by two computers. Computer A is a faster and expensive; it uses an optimizing compiler; an efficient programmer but uses an inefficient algorithm (Insertion Sort). The Computer B is a slower machine, uses an inefficient compiler, an average programmer but an efficient algorithm (Merge Sort). Find the times taken by the two computers to sort 10 million numbers. The details of the two machines are given below.

Lets compare two machines!


Computer A: 1. Speed is one billion instructions per second. 2. Uses Insertion Sort and requires 2n2 instructions to sort n numbers. Computer B: 1. Speed is 10 million instructions per second. 2. Uses Merge Sort and requires 50nlgn instructions. How much time will the two machines take to sort 10 million numbers?

S-ar putea să vă placă și