Course Syllabus
Course Syllabus
Course Objectives:
Introduce common data structures such as stacks, queues, and linked lists.
Explore alternate methods of data organization and representation.
Enable students to apply Data Structures and Algorithms concepts to real-world problem-solving.
Provide hands-on experience with recursion, sorting, and searching on different data structures.
Implement data structures using a selected programming language.
Course Outline:
Chapter 1: Introduction to Data Structures and Algorithms (4 hours)
Introduction to Data Structures
o Abstract Data Types (ADTs)
o Abstraction
Algorithms
o Properties of an algorithm
o Algorithm analysis concepts
o Complexity analysis
Asymptotic Analysis
Chapter 2: Simple Sorting and Searching Algorithms (4 hours)
Sorting Algorithms
o Insertion sort
o Selection sort
o Bubble sort
o Pointer sort
Searching Algorithms
o Linear Search (Sequential search)
o Binary Search
Chapter 3: Linked Lists (4 hours)
Review of Pointers and Dynamic Memory Allocation
Singly Linked List and Its Implementation
Doubly Linked List and Its Implementation
Circular Linked Lists and Its Implementation
1
Prepared by Medhanye K
Chapter 4: Stacks (4 hours)
Properties of Stack
Array Implementation of Stack
Linked List Implementation of Stack
Applications of Stack
o Evaluation of Algebraic Expressions
o Infix to Postfix Conversion (Reverse Polish Notation)
o Function calls
Chapter 5: Queues (4 hours)
Properties of Queue
Array Implementation of Queue
Linked List Implementation of Queue
Double Ended Queue (Deque)
Priority Queue
Applications of Queues
Chapter 6: Trees (4 hours)
Binary Trees and Binary Search Trees (BSTs)
Basic Tree Operations
Traversing a Binary Tree
General Trees and Their Implementations
Chapter 7: Graphs (4 hours)
Introduction to Graphs
Directed vs. Undirected Graphs
Graph Traversal Algorithms
Chapter 8: Advanced Sorting and Searching Algorithms (4 hours)
Advanced Sorting
o Shell sort
o Quick sort
o Heap sort
o Merge sort
Advanced Searching
2
Prepared by Medhanye K
o Hashing Techniques
Teaching and Learning Methods:
Two contact hours of lectures per week
Three hours of lab work per week
Two hours of tutorials per week
Home assignments
Assessment Methods:
Quizzes: 20%
Assignments: 10%
Project: 20%
Final Exam: 50%
Total: 100%
Teaching Materials: Reference Books:
1. Robert Lafore, Data Structures and Algorithms in JAVA, 2nd Ed., Sams Publishing.
2. Jean Paul Tremblay & Paul G. Sorenson, An Introduction to Data Structures with
Applications, McGraw Hill.
3. E. Horowitz, S. Sahni, & D. Mehta, Fundamentals of Data Structures in C++, W.H
Freeman and Company, 1995.
4. Sanjay Pahuja, A Practical Approach to Data Structures and Algorithms, New Age
International Publishers, 2008.
Data Structures and Algorithms Laboratory Outline:
Week 1: Introduction to C++, classes, structures, and pointers.
Week 2: Implementation of Array ADT and String ADT. Implementing simple sorting
algorithms.
Week 3: Selection sort, Bubble sort, Insertion sort.
Week 4: Implementing Searching Algorithms: Linear search and Binary search.
Week 5: Implementing Linked Lists: Singly linked list, Doubly linked list, Circular linked list.
Week 6: Stack Implementation: Array-based and Linked List-based.
Week 7: Queue Implementation: Array-based and Linked List-based.
Week 8: Double-ended Queue (Deque) and Priority Queue.
Week 9: Implementing Binary Search Trees.
3
Prepared by Medhanye K
Week 10: Graphs: Implementing Graph Traversal Algorithms.
Week 11: Advanced Sorting Algorithms: Shell sort, Heap sort.
Week 12: Advanced Sorting Algorithms: Quick sort, Merge sort.
Week 13: Advanced Searching Algorithm: Hashing (Open and Closed Hashing).
4
Prepared by Medhanye K