Advanced Analysis of Algorithms
Lecture # 1
MS(Computer Science)
Semester 1
Course Information
• Course Title
– Advanced Analysis of Algorithms
– Credit Hours 03
• Course Blog
– https://malikmubasher.wordpress.com
• Grading Policy
– Mid Term Examination = 25 Marks
– Final Term Examination = 50 Marks
– Attendance Marks = 10 Marks
– Sessional Marks = 15 Marks
Course Information
• Reference Books
– Approximation Algorithms by Vijay V. Vazirni, Springer, 2004.
– Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson,
Ronald L. Rivest, Clifford Stein, 2nd edition, published by MIT Press,
2001
– Algorithms and Theory of Computation Handbook, by Mikhail J. Atallah
Contributor Mikhail J. Atallah, CRC Press, 1998.
• Other Books
– Introduction to Design & Analysis Computer Algorithm 3rd, Sara Baase,
Allen Van Geleder, Adisor-Wesley 2000.
– Algorithms, Richard Johnsonbaugh, Marcus Schaefer, Prentice Hall,
2004
– Introduction to The Design and Analysis of Algorithms 2nd Edition Anany
Levitin, Adison-Wesley, 2007.
Course Information
• Supporting Material
– Lecture Slides & Notes
– Research Articles
• Class Assessment Tools
– Assignments
– Presentations
– Research Articles Reading
– Research Paper Writing
Course Information
• Course Objective
- Design and Analysis of Modern Algorithms
- Different variants
- Efficiency
- Accuracy
- Comparing Efficiencies
- Motivation Thinking New Algorithms
- Advanced Designing Techniques
- Real World Research Problems will be taken as example.
Major focus of the subject is to Study Algorithms in
Research Perspective.
Course Information
• Expected Results
On successful completion of this courses, students will be able to
- Understand, analyze algorithms
- Argue and prove correctness of algorithms
- Analyze Time and Space Complexity of Algorithms
- Understand algorithm design approaches
- Use of graph theory in Problem Solving
- Understand advance analysis and design topics.
- Easily analyze existing algorithms and able to propose more efficient
and effective algorithm for any real life research problem / situation.
Algorithm Informal Defination
The word algorithm comes from the name of a Persian mathematician Abu Ja’far
Mohammed ibn-i Musa al Khowarizmi.
What is an algorithm?
• An algorithm is “a finite set of precise instructions for
performing a computation or for solving a problem”
– A program is one type of algorithm
• All programs are algorithms
• Not all algorithms are programs!
– Directions to somebody’s house is an algorithm
– A recipe for cooking a cake is an algorithm
– The steps to compute the cosine of 90° is an algorithm
Finding a Largest Integer Among Five
Integers
Defining Actions
Refined Actions
Generalization
Three Constructs
Flow Charts for Three Constructs
Pseudocode for Three Constructs
What is Algorithm
– A Computer algorithm is a detailed step-by-step method for solving a
problem by using a computer.
– An algorithm is a sequence of unambiguous instructions for solving a
problem in a finite amount of time.
– An algorithm is well defined computational procedure that takes some
value, or set of values, as input and produces some values, or set of
values as output.
– More generally, an algorithm is any well defined computational
procedure that takes collection of elements as input and produces a
collection of elements as output.
What is Algorithm
– a clearly specified set of simple instructions to be followed to solve a
problem
• Takes a set of values, as input and
• produces a value, or set of values, as output
– May be specified
• In English
• As a computer program
• As a pseudo-code
• Data structures
– Methods of organizing data
• Program = algorithms + data structures
Why need to study Algorithms
– Analysis
• Efficiency Time Complexity
• Effectiveness Space Complexity
– Modeling
• Data Structures (Arrays, Strings, Stacks, Queues, Link Lists, Trees, Heaps etc.),
Decomposing problems, graphs.
– Techniques
• Brute Force, Divide & Conquer, Decrease and Conquer, Transform and Conquer,
Space Time Tradeoffs, Greedy Approach, Dynamic Programming