Sri Lanka Institute of Information Technology Unit Outline: Course Identification
Sri Lanka Institute of Information Technology Unit Outline: Course Identification
Informal Minutes
Sri Lanka Institute of Information Technology
Unit Outline
Course Identification
Unit Name Design and Analysis of Algorithms
Unit Code 214 Version No. 1 (2009)
Credit Points 4
Pre-requisites Software Technology I
Co-requisites None
Course Description
Introduction This unit will give the students the ability to understand the problem in
algorithmic way, Analyse and find the best suitable algorithm. The primary
aim of this unit is to give students a solid foundation for further study in
computing.
Unit Learning On completion of this unit you should be able to cast problems in algorithmic
Outcomes terms; identify efficient algorithms to solve problems; construct their own
algorithms to solve problems; and analyse algorithms to determine resource
requirements.
Assessment During the semester, there will be one mid-term and a final exam. The mid-
Criteria term test will be based on the practical work and the lecture material covered
until the week before it is held. The final examination will be a
comprehensive exam based on the practical assignments and lecture materials
covered during the semester.
The distribution of marks for the assessed components of the unit are as
follows:
Midterm 20% 1 hour, Essay Type, 4 questions
with equal marks
Sri Lanka Institute of Information Technology Page 1 of 7
© Curriculum and Academic Quality Committee
Informal Minutes
Assignment 10%
Final Examination 70% 3 hours, Essay Type, 6 questions
with equal marks
Total 100%
Unit To pass this unit, students are required to get at least 45% of the marks for the
Requirement midterm, and the final examination.
Informal Minutes
Location
Instructor
Telephone
Location
Instructor
Telephone
Location
Time Schedule
Week 1 Lecture 1:
Unit Outline
Introduction to algorithm- Pseudocode, Space Complexity, Time
Complexity, RAM Model, Analysis of Insertion sorting algorithm, Time
complexity analysis of an algorithm,
Tutorial 1
Tutorial 2
Exercises on Asymptotic notations
Week 3 Lecture 3:
Introduction to recursion and Data structure- Recursion tree, Recurrence
equation, Time complexity analysis of a recursive algorithm
Data structure-Arrays, Stacks, Queues, Lists, Trees.
Tutorial 3
Exercises on recursive algorithm and operations on data structures.
Week 4 Lecture 4:
Informal Minutes
Analysis of Divider and conquer algorithms (Quick sort and merge sort
algorithm). Illustration of quick sort algorithm and analyzing the time
complexity with recurrence equation.
Tutorial 4
Exercises on divider and conquer method. Some calculations on quick
sort analysis.
Week 5 Lecture 5:
Illustration of merge sort algorithm and analyzing the time complexity
with recurrence equation of merge sort algorithm.
Introduction to heaps, Binary Tree
Complete Binary Tree
, Heap properties and heap sort algorithm.
Tutorial 5
Exercises on merge sort algorithm and heaps.
Assignment 1
Week 6 Lecture 6:
Introduction to heap algorithm- Heapify, Build Heap, Heap sort.
Maintaining the heap property.
Tutorial 6
Exercises on heap sort algorithm and heaps.
Week 7 Lecture 7:
Introduction to graphs algorithms- Applications of graphs, Weighted
Graphs, Multigraph, Graph Terminology, Representation of Graphs,
Searching the graphs.-
Breadth First Search (BFS)-Implemented with a queue.
Depth First Search (DFS) -Implemented with a stack..
Tutorial 7
Exercises on Graph algorithms.
Informal Minutes
Week 8: Mid-Term Examination
Week 9 Lecture 8:
Introduction to Greedy algorithm-
Spanning tree, Minimum cost spanning tree, Applications of greedy
algorithm,
Kruskal’s algorithm, Prim’s algorithm, Dijkstra’s Single-source shortest
path algorithms.
Tutorial 8
Exercises on Kruskal’s algorithm, Prim’s algorithm, Dijkstra’s Single-
source shortest path algorithm.
Week 10 Lecture 9:
Introduction to data compressions algorithms-Lossless compression,
Lossy compression, Fixed Length Coding, Shannon Fano Code, Huffman
Coding, Hu – Tucker Algorithm, Ziv – Lempel model,
Gzip
Tutorial 9
Exercises on data compressions algorithms (Shannon Fano, Huffman ,
Hu – Tucker Algorithm, Ziv – Lempel model
).
Tutorial 10
Exercises on string searching algorithms and finite automata.
Informal Minutes
Tutorial 11
Exercises on Dynamic programming.
Tutorial 12
Exercise on matrix chain multiplication.
Week 14 Lecture 13:
Introduction to backtracking, branch and bound-finding a solution for
Traveling salesperson and 0/1 knapsack problem, Time & space analysis
of Backtracking and Branch & Bound.
Introduction to Parallel and Distributed Algorithms.
Tutorial 13
Exercises on backtracking, branch and bound algorithms, Parallel and
Distributed Algorithms.
Final Examination
Generic Information
Informal Minutes