The course will enable the students to
· To provide an introduction to basic data structures, and algorithms for manipulating them, by using programming language.
· To learning he fundamental design, analysis, and implementation of Greedy algorithms , Dynamic and backtracking algorithms.
· To understand the analysis and evaluation of the data structure needs of particular problems.
· To demonstrate design, analysis, and implementation of programs by using basic data structures and algorithms.
. Formulate design process, analysis, and implementation of programs by using Greedy , dynamic and backtracking algorithms
Course Learning Outcomes (CLOs):
Learning Outcome (at course level) Students will be able to: | Learning and teaching strategies | Assessment Strategies |
| Approach in teaching: Interactive Lectures, Discussion, Presentations, Video Tutorials, Demonstration.
Learning activities for the students: Self-learning Assignments, Effective questions, Simulation |
|
Algorithm definition and specification – Design of Algorithms, and Complexity of Algorithms, Asymptotic Notations, Growth of function
Stacks and queues – Link Lists- Trees – priority queues –sets and disjoint set union – graphs – basic traversal and search techniques.
General method – binary search – merge sort – Quick sort – The Greedy method:-General method – knapsack problem – minimum cost spanning tree – single source shortest path
Dynamic Programming – general method – multistage graphs – all pair shortest path – optimal binary search trees – 0/1 Knapsack – traveling salesman problem
Backtracking:- general method – 8-Queens problem – sum of subsets
Hamiltonian cycles – knapsack problem – Branch and bound:- The Method – 0/1 Knapsack problem – traveling salesperson.