0% found this document useful (0 votes)
84 views5 pages

Data Structures Course Overview

The CSC-201 Data Structures course focuses on teaching students how to efficiently manipulate, store, and retrieve data using various data structures and algorithms. Key topics include complexity analysis, stacks, queues, linked lists, trees, and graphs, along with their respective algorithms. The course employs lectures, practical labs, and assessments to ensure students can implement and analyze data structures effectively.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views5 pages

Data Structures Course Overview

The CSC-201 Data Structures course focuses on teaching students how to efficiently manipulate, store, and retrieve data using various data structures and algorithms. Key topics include complexity analysis, stacks, queues, linked lists, trees, and graphs, along with their respective algorithms. The course employs lectures, practical labs, and assessments to ensure students can implement and analyze data structures effectively.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

CSC-201 Data Structures

Credit Hours: 4(3-3) Prerequisites: (CSC-102)


Teacher:
Course Introduction:
The course is designed to teach students structures and schemes, which allow them to write
programmer to efficiently manipulate, store, and retrieve data. Students are exposed to the concepts of
time and space complexity of computer programs.
Course content:
Abstract data types, complexity analysis, Big O notation, Stacks (linked lists and array
implementations), Recursion and analyzing recursive algorithms, divide and conquer algorithms,
Sorting algorithms (selection, insertion, merge, quick, bubble, heap, shell, radix, bucket), queue,
dequeuer, priority queues (linked and array implementations of queues), linked list & its various types,
sorted linked list, searching an unsorted array, binary search for sorted arrays, hashing and indexing,
open addressing and chaining, trees and tree traversals, binary search trees, heaps, M-way tress,
balanced trees, graphs, breadth-first and depth-first traversal, topological order, shortest path,
adjacency matrix and adjacency list implementations, memory management and garbage collection.
Course Objective:
This course aims at teaching the students to write programs that not only are correct but also
computation and space efficient and optimized for the intended use through appropriate
structuring/organization of the related data. Students will learn the standard data structures such as
linked lists, stacks, queues, trees, and graphs and the algorithms that manipulate them. Students will
also be introduced to the concept of algorithm complexity analysis in order to make them realize the
cost of the operations they perform on their data structures.
Teaching Methodology:
Lectures, Written Assignments, Practical labs, Semester Project, Presentations
Courses Assessment:
Mid Exam, Home Assignments, Quizzes, Project, Presentations, Final Exam
Reference Materials:
 Advanced Algorithms and Data Structures by Marcello La Rocca, 2021.
 Data Structures and Algorithms Thinking Made Easy 5th Edition by Narasimha Karumanchi, 2017.
 Data Structures and Abstractions with Java by Frank M. Carrano & Timothy M. Henry
 Data Structures and Algorithms Thinking with Python by Narasimha Karumanchi, 2016.
 Data Structures and Algorithms Made Easy: Data Structures and Algorithmic Puzzles 5th ed.
Edition,2016.
 Data Structures and Algorithms in C++ by Adam Drozdek , 4th edition, 2012
 Data Structures and Algorithm Analysis in C++ by Mark Allen Weiss, 4th edition, 2013.
 C++ plus data structures, 6th edition by Dale 2018.
 Data Structures and Algorithms in C++ by Michael T. Goodrich 2nd Edition, 2011.
 Introduction to Algorithms, Thomas H. Cormen et al, MIT Press, 3rd edition, 2009.
 A Common-Sense Guide to Data Structures and Algorithms, Second Edition: Level Up Your Core
Programming Skills 2nd Edition, 2020

Course Learning Outcomes (CLOs):


At the end of the course the students will be able to: Domain BT Level* PLOs
1. Implement various data structures and their algorithms,
C 3 3
and apply them in implementing simple applications
2. Analyze simple algorithms and determine their
C 5 2
complexities
3. Apply the knowledge of data structures to other
C 3 1
application domains
4. Design new data structures and algorithms to solve
C 6 4
problems
* BT= Bloom’s Taxonomy, C=Cognitive domain, P=Psychomotor domain, A= Affective domain

Week/Lecture # Theory/Practical
Introduction:
Lec-I
 Introduction to Data Structures- Need and Significance
Lec-II  Review of the Pre-requisite Knowledge
Abstract Data Types:
 Arrays, Structures and Classes
Week 1 Lec-III  Abstraction
 Concrete and Abstract Data Types
 Class invariants and pre-and post-conditions.
Practical-I  Fundamental OO Design and Implementation Practice
Practical-II  Fundamental OO Design and Implementation Practice
Practical-III  Fundamental OO Design and Implementation Practice
Complexity Analysis:
 Complexity Analysis
Lecture-I
 Time and Space Complexity
 Big O notation
Searching Algorithms:
 Arrays (basic and Object types)
Lec-II
Week 2  Algorithms on arrays.
 Recursion and analyzing recursive algorithms.
 Linear Search
Lec-III
 Binary Search
Practical-I Pseudocode and Implementation of linear search.
Practical-II Comparison of searching algorithms
Practical-III  Comparison of searching algorithms
Sorting Algorithms:
 Selection Sort
Lec-I
 Bubble Sort
 Insertion Sort
Sorting Algorithms:
Week 3 Lec-II  Divide and conquer algorithms
 Merge Sort
Lec-III  Quick Sort
Practical-I  Implementation and Comparison of sorting algorithm
Practical-II  Implementation and Comparison of sorting algorithm
Practical-III  Implementation and Comparison of sorting algorithm
Week 4 Lec-I Stack Array Implementation:
 Stack: Basic/primitive functions
 Stack supporting functions
Stack Array Implementation:
Lec-II  Stack Applications – Arithmetic Expression,
 Infix, post-fix and pre-fix notations.
Lec-III  In-to post transformation and post-fix evaluation using algorithm
Practical-I  Implementation of Static Stack.
Practical-II  Infix to Post fix Conversion
Practical-III  Post fix Evaluation
Stack Array Implementation:
Lec-I
 Parenthesis validation in mathematical expression using stack.
Lec-II  Multiple brackets validation using stack.
Week 5 Lec-III  Any other example of validation using stack.
Practical-I Parenthesis matching validation implementation
Practical-II Multiple brackets matching validation implementation
Practical-III Multiple brackets matching validation implementation
Queue Array Implementation:
Lec-I  Queue: Basic/primitive functions
 Queue supporting functions
Lec-II  Circular queue
Week 6
Lec-III  Priority queue
Practical-I Implementation of queue operations
Practical-II Implementation of circular queue operations
Practical-III Implementation of priority queue operations, SJF
Queue Array Implementation:
 Double ended queue
Lec-I
 Deiqueue
 Deoqueue
Link List:
Week 7 Lec-II  Introduction of Link List
 Creating Different types of Link List.
Lec-III  Linked List – Operations and Representations
Practical-I  Queue Applications – OS process and Message queues
Practical-II  Implementation of double ended queue.
Practical-III  Linklist implementation using primitive functions.
Stack Link List Implementation:
 Dynamic Implementation of Stack
Lec-I
 Recursion using Linklist
 Linklist operations on Stack
Lec-II  Sorted linked list
Week 8
Lec-III  Searching an unsorted linklist,
 Stack Link list implementation using primitive and supporting
Practical-I
functions.
Practical-II  Sorted Link list implementation.
Practical-III  Searching Link list implementation.
Mid Term Exam
Queue Linklist Implementation:
Lec-I
 Linklist implementation of queue
Lec-II  Linklist based Circular queue
Week 9 Lec-III  Linklist based Variations: deQueue, priority Queue.
Practical-I Dynamic Queue Implementation
Practical-II Circular queue implementation
Practical-III Priority queue implementation
Queue Linklist Implementation:
Lec-I
 Linklist base Variations: doubly linklist.
Hashing:
Lec-II
 Hashing and indexing
Week
Hashing:
10 Lec-III
 Open addressing and chaining
Practical-I  Implementation of doubly linklist
Practical-II  Implementation of circular doubly linklist
Practical-III  Implementation of hashing
Trees and Traversals:
 Introduction and terminology,
Lec-I  Binary trees and types,
 Tree traversals
 Binary Tree representation, basic operations
Week
Binary Search Tree:
11 Lec-II
 Binary Search trees and Representation and operations
Lec-III  M-Way tree
Practical-I Tree implementation
Practical-II Tree implementation
Practical-III BST implementation
Balanced Tree and Heaps:
 AVL tree
Lec-I
 Heap (max and min)
 Heaps and Associated Algorithms
Week Huffman Codes:
Lec-II
12  Huffman Algorithm
Lec-III  Huffman Algorithm (cont..)
Practical-I  Heap implementation
Practical-II  Max and Min Heap implementation
Practical-III  Heap Sort Implementation
Week Graphs:
13 Lec-I  Terminology, operations and representation
 Graph traversals and searching algorithms (BFS-DFS)
 Weighted Graphs
Lec-II
 Dijkstra’s Algorithms
Lec-III  Kruskal’s Algorithm
Practical-I Graph implementation using Adjacency List
Practical-II Graph implementation using Adjacency Matrix
Practical-III DFS and BFS implementation
Shortest Path:
Lec-I  Topological order
 Shortest path
Shortest Path:
Lec-II
Week  Using Adjacency matrix
14 Shortest Path:
Lec-III
 Adjacency list implementations
Practical-I  Implementation of shortest path algorithms.
Practical-II  Implementation of shortest path algorithms.
Practical-III  Implementation of shortest path algorithms.
Shortest Path:
Lec-I  Unweighted graph
 Weighted graph
Shortest Path:
Lec-II
 Warshal Floyd’s Algorithm
Week
Memory management:
15
Lec-III  Memory Management
 Garbage collection.
Practical-I Implementation of Warshal Floyd’s algorithm
Practical-II  Implementation of Warshal Floyd’s algorithm
Practical-III  Implementation of memory management
Project Demos:
Lec-I
 Project Demos
Lec-II  Project Demos
Week
Lec-III Final Course Revision:
16
Practical-I Revision of programming exercises
Practical-II Revision of programming exercises
Practical-III Revision of programming exercises
Final Term Exam

You might also like