BIS123 - Data Structures and Algorithms Course Outline
BIS123 - Data Structures and Algorithms Course Outline
Course Outline
Course Description
This course introduces fundamental data structures and algorithms essential for efficient
problem-solving in computer science. Students will learn how to implement and utilize
various data structures and analyze the efficiency of algorithms.
Course Objectives
By the end of this course, students will be able to:
1. Understand basic data structures and their applications.
2. Analyze the time and space complexity of algorithms.
3. Implement common algorithms for sorting, searching, and graph processing.
4. Apply appropriate data structures to solve real-world problems.
5. Develop problem-solving skills through coding exercises and projects.
Course Topics
Part 1 Introduction to Data Structures
Definition and importance of data structures
Overview of algorithms
Big O notation and complexity analysis
Part 2 Basic Data Structures
Arrays
Static vs. dynamic arrays
Multi-dimensional arrays
Linked Lists
Singly linked lists
Doubly linked lists
Circular linked lists
Part 3 Stacks and Queues
Stack implementation and applications
Queue implementation (linear and circular)
Priority queues and their uses
Part 4 Trees
Introduction to trees
Binary trees and binary search trees (BST)
Tree traversal algorithms (in-order, pre-order, post-order)
Balanced trees (AVL trees, Red-Black trees)
Part 5 Hashing
Hash tables and hash functions
Collision resolution techniques (chaining, open addressing)
Applications of hashing
Part 6 Graphs
Introduction to graphs (directed, undirected)
Graph representations (adjacency matrix, adjacency list)
Graph traversal algorithms (DFS, BFS)
Shortest path algorithms (Dijkstra’s, Bellman-Ford)
Part 7 Sorting Algorithms
Comparison-based sorting (Bubble Sort, Selection Sort, Insertion Sort)
Efficient sorting algorithms (Merge Sort, Quick Sort, Heap Sort)
Non-comparison-based sorting (Counting Sort, Radix Sort)
Part 8 Searching Algorithms
Linear search vs. binary search
Search algorithms in trees and graphs
Advanced searching techniques (hashing)
Part 9 Advanced Data Structures
Heaps and priority queues
Tries and their applications
Disjoint sets (Union-Find)
Part 10 Algorithm Design Techniques
Divide and conquer
Dynamic programming
Greedy algorithms
Part 11 Practical Applications and Problem
Solving
Real-world applications of data structures and algorithms
Coding exercises and projects
Case studies
Resources:
Alfred V. Aho - Data Structures and Algorithms
SAMS – Teach Yourself Data Structures and Algorithms in 24 Hours
Christopher Fox – Concise Notes on Data Structures and Algorithms
Online Resources