Download Course Outline COMP6049 Algorithm Design and Analysis (4) and more Exercises Design and Analysis of Algorithms in PDF only on Docsity!
Study Program Specific Outcomes
Course Outline
COMP
Algorithm Design and Analysis
(4) Study Program
Computer Science
Effective Date 01 September 2018 Revision 3
1. Course Description
The course describes fundamental concept of design and analysis of algorithms in order to calculate time and space computation, complexity, and compare design algorithm methods. It gives the students knowledge of several algorithm that enable students for designing a good algorithm.
2. Graduate Competency
Each course in the study program contributes to the graduate competencies that are divided into employability and entrepreneurial skills and study program specific outcomes, in which students need to have demonstrated by the time they complete their course.
BINUS University employability and entrepreneurial skills consist of planning and organizing, problem solving and decision making, self management, team work, communication, and initiative and enterprise.
2.1. Employability and Entrepreneurial Skills Aspect Key Behaviour
2.2. Study Program Specific Outcomes
3. Topics - Introduction of design and analysis of algorithms - Mathematical induction and recursive function - Algorithms and complexity - Complexity of algorithms - Stack and queue - Tree and binary tree - Priority queue and heap - Graph - Divide and conquer - Greedy methods - Dynamic Programming: Fibonacci Sequence Problem - Dynamic Programming: Coin Change Problem - Dynamic Programming: Multistage Graph - Dynamic Programming: Travelling Salesman - Dynamic Programming: Knapsack Problem - String Matching - Huffman Code - Graph Colouring
Course Outline COMP6049 - Algorithm Design and Analysis | 2
- Basic Search and Traversal
- Backtracking
- Branch and Bound
- Strongly Connected Components
- Review 4. Learning Outcomes
On successful completion of this course, student will be able to:
- LO 1: Explain fundamental concept of analysis algorithms.
- LO 2: Apply algorithm techniques and methods.
- LO 3: Solve a problem using specific algorithm.
- LO 4: Compare several algorithm design methods. 5. Teaching And Learning Strategies
In this course, the lecturers might deploy several teaching learning strategis, including Lecture, Class discussion, Exercise and solve problem with students, Case Study.
6. Textbooks and Other Resources
6.1 Textbooks
- S. Sridhar. (2015). Design and analysis of algorithms. 01. Oxford University Press. New Delhi. ISBN:
- Thomas H. Cormen. (2009). Introduction to algorithms. 03. The MIT Press. London. ISBN:
The book in the first list is a must to have for each student.
6.2 Other Resources
- Algorithms and complexity functions
- Backtracking
- Basic Search and Traversal
- Branch and Bound
- Complexity of algorithms analysis
- Design and analysis of algorithms
- Divide and conquer
- Dynamic Programming: Coin Change Problem
- Dynamic Programming: Fibonacci Sequence Problem
- Dynamic Programming: Knapsack Problem
- Dynamic Programming: Multistage Graph
- Dynamic Programming: Travelling Salesman
- Graph
- Graph Colouring
- Greedy methods
- http://algo.is/aflv16/aflv_11_strings.pdf
- http://algo.is/competitive-programming-course/
- http://blogs.msdn.com/b/ericlippert/archive/2010/07/22/graph-colouring-with-simple-backtracking-part-three.
- http://cgi.csc.liv.ac.uk/~ped/teachadmin/algor/complex.html
- http://lmscontent.binus.ac.id/digitalcontent/DC%20COMP6226%20DAN%20COMP6049%20GRAPH%20-%
- http://pages.cs.wisc.edu/~vernon/cs367/notes/11.PRIORITY-Q.html
- http://people.ok.ubc.ca/ylucet/DS/KnuthMorrisPratt.html
Course Outline COMP6049 - Algorithm Design and Analysis | 4
F2F
LO 1 Mathematical induction and recursive function
- Mathematics induction
- Recursive function
- Mathematical induction and recursive function
- Design and analysis of algorithms
- Induction and Recursion http://www.imsc.res. in/~vraman/pub/intro_n otes.pdf 3 F2F
LO 1 Algorithms and complexity functions
- Calculating processing time and growth rate
- Complexity function
- Steps top develop an algorithm
- Algorithms and complexity functions
- Design and analysis of algorithms
- Computational Complexity Theory http://cgi.csc.liv.ac. uk/~ped/teachadmin/al gor/complex.html
F2F
LO 1
LO 2
Complexity of algorithms analysis
- Algorithm of prime number using conventional Loop technique
- Algorithm of prime number using flagging Technique (sieve)
- Comparing both Algorithms and their complexity - Complexity of algorithms analysis - Design and analysis of algorithms - INTRODUCTION TO COMPLEXITY ANALYSIS http://www.dgp.toronto .edu/~jstewart/378note s/0 1intro/ - Complexity Analysis of Algorithms http://www.vogella. de/articles/Complexity An alysis/article.html - Complexity of Bubble Sort https://binus.ac. id/bits/learning- object/Complexity-of- Bubble-Sort- 1217/index. - html#/
GSLC
LO 1 Stack and queue
- Concept of ADT (abstract data type)
- Queue data structure
- Stack data structure
- Stack and queue
- Design and analysis of algorithms
- Stack & Queue http://www.cs.cmu. edu/~adamchik/15- 121/lectures/Stacks% 20and%20Queues/Stac ks%20and%20Queues. html
Course Outline COMP6049 - Algorithm Design and Analysis | 5
6 GSLC
LO 1 Tree and binary tree
- Binary tree characteristics
- Definition of tree
- Operations in tree
- Tree traversal
- Tree and binary tree
- Design and analysis of algorithms
- Binary Tree http://www.cs.cmu.edu /~adamchik/15- 121/lectures/Trees/tre es.html
F2F
LO 1
LO 2
LO 3
Priority queue and heap
- Concept of heap
- Concept of priority queue
- Example of priority queue in our life
- Heapsort
- Operations in heap
- Priority queue and heap
- Design and analysis of algorithms
- Priority Queue http://pages.cs.wisc.ed u/~vernon/cs367/notes /11.PRIORITY-Q.html
F2F
LO 1
LO 2
LO 3
Graph
- Implementation of graph using cost adjacency list
- Implementation of graph using cost adjacency matrix
- Types of graph
- Graph
- Design and analysis of algorithms
- Graph - MST - Prim's Algorithm http://lmscontent.binus .ac.id/digitalcontent/D C%20COMP6226% DAN% 20COMP6049% 20GRAPH%20- %20MST%20- %20Prim%20Algoritm. zip
- Graph and its representation http://www.geeksforge eks.org/graph-and-its- representations/ 9 F2F
LO
LO
Divide and conquer
- Binary search
- Comparing merge sort, quick sort, and selection sort
- Concept of divide and conquer
- Merge sort
- Quick sort
- Selection sort
- Divide and conquer
- Design and analysis of algorithms
- Divide and Conquer Algorithm http://www.personal.ke nt.edu/~rmuhamma/Al gorithms/MyAlgorithms /divide.htm
10 F2F
LO 1
LO 2
Greedy methods
- Disjoint Set data structure (MST)
- Fractional Knapsack problem
- Greedy method
- Minimum Spanning Tree
- Shortest Path
- Greedy methods
- Design and analysis of algorithms
- The Greedy Method
- http://www.seas.gwu.e du/~ayoussef/cs6212/ gr eedy.html
Course Outline COMP6049 - Algorithm Design and Analysis | 7
16 F2F
LO 2
LO 3
Dynamic Programming: Knapsack Problem
- Comparing Greedy Method and Dynamic Programming
- Review of knapsack problem
- Solving knapsack problem using dynamic programming - Dynamic Programming: Knapsack Problem - Design and analysis of algorithms - Dynamic- Programming Solution to the 0-1 Knapsack Problem http://www.personal.ke nt. edu/~rmuhamma/Algor ith ms/MyAlgorithms/Dyn ami - c/knapsackdyn.htm 17 GSLC
LO 2
LO 3
String Matching
- Naïve String Matching Algorithm
- The Knuth-Morris-Pratt Algorithm
- String Matching
- Design and analysis of algorithms
- Knuth-Morris-Pratt String Search http://people.ok.ubc. ca/ylucet/DS/KnuthMo rris Pratt.html
- String Algorithm http://whocouldthat. be/visualizing-string- matching/
- String http://algo. is/aflv16/aflv_11_string s.pdf 18 GSLC
LO 2
LO 3
Huffman Code
- Building Huffman tree
- Concept of compression technique
- Creating Huffman Code table based on Huffman tree
- Introduction to Huffman code
- Huffman Code
- Design and analysis of algorithms
- Huffman Coding http://www.huffmancod ing.com/my- family/myuncle/huffma n-algorithm
F2F
LO 2
LO 3
Graph Colouring
- Chromatic number
- Edge Colouring
- Graph Colouring
- Map colouring
- Node Colouring
- Region Colouring
- Graph Colouring
- Design and analysis of algorithms
- Graph Colouring with Simple Backtracking, Part Three http://blogs.msdn. com/b/ericlippert/archi ve/ 2010/07/22/graph- colouring-with-simple- backtracking-part- three. aspx
Course Outline COMP6049 - Algorithm Design and Analysis | 8
20 F2F
LO 2
LO 3
LO 4
Basic Search and Traversal
- BFS in Tree and Graph
- Breadth First Search
- Depth First Search
- DFS in Tree and Graph
- Tree traversal
- Basic Search and Traversal
- Design and analysis of algorithms
- BFS dan DFS http://www.ics.uci.edu/ ~eppstein/161/960215. html
GSLC
LO 2
LO 3
Backtracking
- Concept of Backtracking
- N-Queen Problem
- Backtracking
- Design and analysis of algorithms
- Backtracking Algorithm http://www.hbmeyer.d e/backtrack/achtdame n/ autoacht.htm#up
- Backtracking Algorithm http://www.cs.cmu.edu /afs/cs/project/jair/pub/ volume4/vanbeek96a- html/node6.html 22 GSLC
LO 2
LO 3
- Branch and Bound
- Definition of branch and bound
- FIFO branch and bound
- LC branch and bound
- LIFO branch and bound
- Solving traveling salesman problem
- Branch and Bound
- Design and analysis of algorithms
F2F
LO 2
LO 3
- Branch and Bound
- Definition of branch and bound
- FIFO branch and bound
- LC branch and bound
- LIFO branch and bound
- Solving traveling salesman problem
- Branch and Bound
- Design and analysis of algorithms
F2F
LO 2
LO 3
Strongly Connected Components
- Strongly connected definition
- Tarjan’s strongly connected component algorithm - Strongly Connected Components - Design and analysis of algorithms - Strongly Connected Components Algorithm http://visualgo.net/en/d fsbfs