Document - Oman College of Management & Technology

advertisement
Oman College of Management & Technology
Department of Computer Science
Baraka, Oman
Tel. (968) 26893366, Fax (968) 26893068
502203/ Algorithms Analysis & Design
Course Code:
Academic Year:
Credit Hours:
Instructor:
Website:
502203
2015/2016
3
Dr. Jai Arul Jose G.
www.omancollege.edu.om/
Course Title:
Semester:
Prerequisite:
Email:
Phone:
Algorithms Analysis & Design
First
502202
g.jai.areul@omancollege.edu.om
(968) 26893366/ ex. 102
Sections and Timings:
Section
1.
Days
Mon, Wed
Time
10:00 to
11.30
Room #
231
Office Hours
Days
Sun to Thu
Time
08.00 am to 3.00 pm
Objectives:
The purpose of this course is to understand what is meant by an algorithm and its analysis,
how to solve recurrences, different algorithm design techniques, More detail about sorting
and graph algorithms and basics of hashing and text compression.
Course Description:
Complexity analysis of algorithms, design and analysis of computer algorithms such as;
divide and conquer, greedy method tree graph, dynamic programming, backtracking and
branch and bound. Lower bound theory, NP-complete problems.
Learning Outcomes:
Upon completion of this course, the students must be able to:
1.Understand basic techniques for designing algorithms, including the techniques of
recursion, divide-and-conquer, and greedy.
2.Understand advanced techniques for designing algorithms, including dynamic
programming, network flow and problem reduction.
3.Understand the techniques of proof by contradiction, mathematical induction and
recurrence relation, and apply them to prove the correctness and to analyze the running
time of algorithms.
4.Understand the mathematical criterion for deciding whether an algorithm is efficient, and
know many practically important problems that do not admit any efficient algorithms.
5.Able to apply the algorithm design techniques to design efficient algorithms for different
kinds of problems
Textbook: Cormen. T. et al (1997). Introduction to Algorithms. MIT press, USA
Course Topics:
WEEK
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Topics
1) Introduction
1.1) What is an algorithm?
1.2) Analyzing Algorithms
1.3) Designing Algorithms
1.3.1) Incremental Approach
1.3.2) Divide and Conquer Approach
2) Mathematical Background
2.1) Growth of Functions and
Asymptotic Notation
2.2) Summations Review
2.3) Recurrences
2.3.1) Substitution Method
2.3.2) Iteration Method
2.3.3) Master Method
3) Sorting Algorithms
3.1) Incremental: Bubble, Insertion and
Selection Sort.
3.2) Divide and Conquer: Merge and
Quick-Sort
Review Lecture + First Exam
3.3) Linear Time: Counting and Bucket Sort
4) Searching Algorithms
4.1) Sequential search
(Unsorted and Sorted lists)
4.2) Binary Search and Operations on Binary search
tree.
4.3) Text Search (Brute-Force method)
5) Graph and Greedy Algorithms
5.1) Graph representation
5.2) Traversal (Breadth and Depth-First)
5.3) Minimum Spanning Trees (MSTs)
(Kruskal’s and Prim’s Algorithms)
5.4) Single Source Shortest Path (SSSP)
(Dijkstra’s Algorithm)
Review Lecture + Second Exam
6) Hashing & Text Compression
6.1) Hashing
6.2) Text Compression (e.g. Hoffman Code)
Notes:
Attendance Lectures attendance is mandatory. Students are allowed maximally of 15%
absentia of the total module hours.
Assignments are required to be solved independently to assist students in gaining
programming skills and helping them to prepare to the practical exam. Any given
assignment must be worked out by the student himself.
Cheating is a religious and ethical crime and any case of cheating will be treated
according to the university rules.
Evaluation Plan:
Modes of Assessment
First Exam
Second Exam
Assignments
Final Exam
Score
20%
20%
10%
50%
Download