Sei sulla pagina 1di 5

1

Yarmouk University
Faculty of Information Technology and Computer Sciences
Department of Computer Sciences
CS651: Advanced Analysis and Design of Algorithms

(3 hrs. Prerequisites: CS251 or equivalent)
============================================================
=========================================================
Current Catalog Description:
Techniques of analyzing upper bounds and lower bounds for algorithms. Searching,
Sorting, graph theory, Dynamic programming, Combinatorial algorithms, Numerical
computations, Parallel algorithms. Design paradigms and techniques such as
approximation, branch-and-bound, divide-and-conquer, dynamic programming,
greedy algorithms, and randomization applied to polynomial and NP-hard problems.

Course Objectives:
Introducing students to the general tools and techniques for analyzing
computer algorithms.
Equip the students with mathematical preliminaries required to analyze
and design computer algorithms.
Introducing to the student advanced data structures required to design
efficient computer algorithms
Familiarizing students with specific algorithms for a number of
important computational problems like sorting, searching, and graphs,
etc,
Pointing out the importance of designing efficient algorithms by
comparing different complexity classes.
Introducing the concept of NP-complete problems and different
techniques to deal with them.




Learning Outcomes
After completing this course the student must demonstrate the knowledge and
ability to:
Analyze and compare complexity for different types of algorithms for different
types of problems.
Apply mathematical preliminaries to the analyses and design stages of different
types of algorithms.
2
Choose among different types of data structures the best one for different types
of problems.
Recognize the general principles and good algorithm design techniques for
developing efficient computer algorithms.
Familiarizing students with specific algorithms for a number of important
computational problems like sorting, searching, and graphs, etc.
Decide on the suitability of a specific algorithm design technique for a given
problem.
Design efficient algorithms for new situations, using as building blocks the
techniques learned.
Apply algorithm design techniques to solve certain NP-complete problems.

Teaching Methods:
The course will be based on the following teaching and learning activities:
Lectures covering the theoretical part using word and PowerPoint
presentations.
Reading recent research papers
Individual or group projects



Recommended References and Teaching resources:
Fundamentals of Computer Algorithms by E. Horowitz and S. Sahni, 1984
Algorithms Design Techniques and Analysis, by M. H. Alsuwaiyel, World
Scientific Publishing Co., 1999.
Computer Algorithms, Sara Baase, and Allen Van Gelder, Addison-Wesley, 2000.
Introduction to Algorithms, by Cormen, T. et al, MIT press, USA, Latest Edition
Fundamentals of Algorithmics, G. Brassard and P. Bratley, Prentice Hall, 1996.
Compared to what?: An Introduction to the Analysis of Algorithms, Gregory J. E.
Rawlins, Computer Science Press/W. H. Freeman, 1998
Design and Analysis of Algorithms, A. Aho, J. Hopcroft and J.D. Ullman,
Electronic material placed on Yarmouk University site for this
course: Syllabus, exercises, announcements
Important Links

Course Contents (tentative):
Basic Concepts in Algorithmic Analysis, ( 1.5 Weeks)
Introduction, Sequential & Binary Search; Merging two sorted lists; Bottom-Up Merge Sort;
Time Complexity (Order of Growth, The O-notation, The -notation, the notation, examples,
Complexity Classes and the onotation); Space Complexity; Optimal Algorithms; Estimating
Running Time of an Algorithm; Worst case and Average case Analysis; Amortized Analysis.
3

Mathematical Preliminaries, ( 1.5 Weeks)
Proof Methods(Direct Proof; Indirect Proof; Proof by Contradiction; Proof by Counter
example; Mathematical Induction); Logarithms; Floor and Ceiling Functions; Summations and
approximation of summation by integration; Recurrence relations (Linear Homogeneous
Recurrences, Inhomogeneous Recurrences, Divide-and-Conquer Recurrences and their solution);

Review of Data Structures, ( 1 Week )
Graphs (Representation of graphs, Planar Graphs); Trees; Binary Trees (Some Quantitative
Aspects of Binary Trees, Binary Search Trees); Heaps; Operations on Heaps (Sift-up, Sift-down,
Insert, Delete, Delete-max); Creating a heap; Heapsort; Min and Max Heaps; Disjoint Sets Data
Structures: (The Union by Rank Heuristic, Path Compression, The Union-Find Algorithms and
their analysis)

Induction (Incremental Algorithms Design Technique), ( 1 Week)
Introduction; Selection Sort; Insertion Sort; Radix Sort; Integer Exponentiation; Evaluating
Polynomials (Horners Rule).

Divide and Conquer, ( 2 Weeks)
Introduction; Min Max Problem; Recursive Binary Search and its Analysis; Mergesort (How
the algorithm works, Analysis of mergesort algorithm); The Divide and Conquer Paradigm;
Selection: Finding the Median and the kth Smallest Element; Quicksort (A partitioning
algorithm, The sorting algorithm, Analysis of the Quicksort algorithm); Comparison of Sorting
Algorithms; Multiplication of Large Integers; Matrix Multiplication: (The traditional algorithm,
Recursive version, Strassens algorithm, Comparisons of the three algorithms);

Dynamic Programming, ( 1 Week)
Introduction; The Longest Common Subsequence Problem; Matrix Chain Multiplication;
The All- Pair Shortest Path Problem; The 0/1 Knapsack Problem

Greedy Algorithms, ( 1 Week)
Introduction; The fractional Knapsack problem; The Shortest Path Problem (A linear time
algorithm for dense graphs; Minimum Cost Spanning Trees (Kruskals Algorithm); Minimum
Cost Spanning Trees (Prims Algorithm): A linear time algorithm for dense graphs; File
Compression.

Graph Traversals and Application, ( 1 Week)
Introduction; Depth First Search (Time complexity of depth first search); Applications of
Depth-First Search: (Graph acyclicity, Topological Sorting, Finding articulation points in a
graph, strongly connected components); Breadth-First Search; Applications of Breadth-First
Search

NP- Complete Problems ( 1 Week)
4
Introduction; The Class P; The Class NP; NP- Complete problems: (The satisfiability
problem, Vertex cover, independent set and clique Problems, More NP- complete Problems);
The Class co- NP; The Class NPI; Relationships Between the four Classes

Lower Bounds ( 1 Week)
Introduction; The Decision Tree Model (The search Problem, The sorting problem); The
Algebraic Decision Tree Model; Linear Time Reductions

Backtracking and Branch-and-Bound Algorithms ( 1 Week)
Introduction; The 3-Coloring Problem; The 8-Queens Problem; Branch and Bound.

Randomization ( 1 Week)
Introduction; Example problems (like Randomized Quicksort, Randomized Selection, etc.).

Approximation Algorithms ( 1 Week)
Introduction; Basic Definitions; Difference Bounds (The Knapsack Problem); Relative
Performance Bounds (The vertex cover problem); Polynomial Approximation Schemes (The
Knapsack Problem)









Important Notes:
Yarmouk University rules, regulations and standards will be enforced.
Attendance will be checked at the beginning of each class.
Late arrivals to the class will be considered as absence.
Exceeding 5 absences will result in a 50 grade. No warnings will be given prior to
assigning a 50 grade.
An official excuse must be shown within 3 working days following the return to classes.
Students are expected to be courteous toward the instructor and their classmates
throughout the duration of this course.
Talking while someone else is speaking will not be tolerated.
All mobiles must be turned off during class and exams.
Students are welcomed to come and see the instructor during office hours this is
considered an important step towards understanding the course material.
Students are expected to come prepared to class by reading material ahead of time.
Taking notes in the class and contributing to the class (through questions and comments)
are regarded as important elements of effective learning and class participation, which is
strongly encouraged.
5
Emphasis in the course will be on reasoning and analysis. So it is important to
understand and not memorize. You must be able to see relationships, differences,
implications, and applications of material.

Very important Note: There are absolutely no Makeup Exams.

GOOD LUCK!!!

Potrebbero piacerti anche