COURSE OUTLINE /TEACHING PLAN
1. SCHOOL COMPUTER ENGINEERING
2. DEPARTMENT NWS/SWE/EDM/CGWD
3. SEMESTER 1
4. COURSE TITLE INTRODUCTION TO ALGORITHMS
5. COURSE CODE 114
6. CREDIT VALUE 3
NAME OF LECTURER/FACILITATOR:
TEL:
Objectives:
1. To provide a comprehensive understanding of fundamental algorithms and their design techniques.
2. To introduce algorithm analysis and the notion of algorithm efficiency.
3. To develop problem-solving skills using algorithms.
4. To introduce key data structures and their applications.
5. To foster an understanding of algorithmic paradigms and their trade-offs.
Outcome:
Tools needed for course:
Method of Teaching
S/N Activity Duration
1 Lectures
2 Practicals
3 Tutorials
Total 24
Assessment
SN Assessment Mode Mark
1 0 30%
2 Examination 70%
3 00
Total 100
Page 1 of 3
TEACHING PLAN
SLOT Delivery Mode
Week Day Time Topics per Week Lect Tut Pract Ass %
1 Introduction to Algorithms
● Importance and role of algorithms in comput √ √ √
science
● Analysis and evaluation of algorithms
● Design paradigms and problem-solving strategies
●
2 Flowcharts and Pseudocode
● Introduction to flowcharts as visual representatio
of algorithms
● Using pseudocode as a structured and algorithm
language
● Applying flowcharts and pseudocode in algorith
design and implementation
●
3 Data Structures
● Arrays and linked lists √ √
● Stacks and queues
● Trees and binary search trees
4 Algorithmic Complexity Analysis
● Big O notation and asymptotic analysis √ √ √
● Time and space complexity analysis
● Best-case, worst-case, and average-case analysis
5 Searching Algorithms
● Linear search and binary search √ √ √
● Hashing and hash tables
● Search trees (e.g., AVL trees, B-trees)
6 Sorting Algorithms
● Bubble sort, insertion sort, and selection sort √ √ √
● Merge sort and quicksort
● Radix sort and heap sort
7 Algorithms Approaches √ √
Divide and Conquer Algorithms
● Merge sort and its analysis
● Quick sort and its analysis
● Strassen's matrix multiplication algorithm
8 CA
9 Greedy Algorithms
● Introduction to greedy algorithms √ √
● Knapsack problem and Huffman coding
● Prim's and Kruskal's algorithms for minimu
spanning trees
10 Dynamic Programming
● Principles of dynamic programming √ √
● Fibonacci sequence and memoization
● Dynamic programming for optimization problems
Page 2 of 3
11 Graph Algorithms
● Graph representations (adjacency matrix, adjacen √ √ √
list)
● Depth-first search (DFS) and breadth-first sear
(BFS)
● Shortest path algorithms (Dijkstra's algorithm
Bellman-Ford algorithm)
12 Network Flow Algorithms
● Maximum flow and minimum cut problems √ √
● Ford-Fulkerson algorithm and Edmonds-Ka
algorithm
● Applications of network flow algorithms
13 √
√ √
Required Textbooks and Other Sources:
1. "Introduction to Algorithms" by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and
Clifford Stein.
2. "Algorithms" by Robert Sedgewick and Kevin Wayne.
3. "The Algorithm Design Manual" by Steven S. Skiena.
4.
Course Master Co-Instructors Head of Department
Mbachan Fabrice Tanwan
Page 3 of 3