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

Data Structures and Algorithms

The course 'Data Structures and Algorithms' (CoSc 2092) is a compulsory 3-credit course for Year II, Semester II, focusing on data structures, algorithms, and program efficiency. It covers topics such as sorting and searching algorithms, linked lists, stacks, queues, trees, and graphs, along with practical implementations in C++. The course includes lectures, lab sessions, and assessments through exams and projects, utilizing various reference materials.

Uploaded by

sisaymiki799
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)
18 views5 pages

Data Structures and Algorithms

The course 'Data Structures and Algorithms' (CoSc 2092) is a compulsory 3-credit course for Year II, Semester II, focusing on data structures, algorithms, and program efficiency. It covers topics such as sorting and searching algorithms, linked lists, stacks, queues, trees, and graphs, along with practical implementations in C++. The course includes lectures, lab sessions, and assessments through exams and projects, utilizing various reference materials.

Uploaded by

sisaymiki799
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

Course Title: Data Structures and Algorithms

Course Code: CoSc 2092


Credit Hrs.: 3 ECTS: 5 Lecture Hrs.: 3 Lab Hrs.: 2
Prerequisite: C++
Course Category: Compulsory
Year II Semester II

Course Description
This course focuses on the study of data structures, algorithms and program efficiency. Topics
include: analysis of time and space requirements of algorithms; program efficiency improving
techniques, abstract data types such as linked lists, stacks, queues, trees (traversal, implementations);
simple searching algorithms (linear search, binary search, ... ), simple sorting algorithms (bubble sort,
insertion sort, selection sort, ... ), advanced sorting algorithms (merge sort, quick sort, heap sort ...)

Course Objectives
 To introduce the most common data structures like stack, queue, linked list
 To give alternate methods of data organization and representation
 To enable students use the concepts related to Data Structures and Algorithms to solve real world
problems
 To practice Recursion, Sorting, and searching on the different data structures
 To implement the data structures with a chosen programming language

Course outline
Chapter 1. Introduction to Data Structures and Algorithms (4hr)
1.1. Introduction to Data Structures
1.1.1 Abstract data Types
1.1.2 Abstraction
1.2. Algorithms
1.2.1. Properties of an algorithm
1.2.2. Algorithm analysis concepts
1.2.3. Complexity analysis
1.3. Asymptotic Analysis
Chapter 2: Simple Sorting and Searching Algorithms (4hr)
2.1. Sorting Algorithms
2.1.1. Insertion sort
2.1.2. Selection Sort
2.1.3. Bubble sort
2.1.4. Pointer sort
2.2. Searching Algorithms
2.2.1. Linear Search (Sequential search)
2.2.2. Binary Search
Chapter 3: Linked Lists (4hr)
3.1. Review on Pointer and Dynamic Memory allocation
3.2. Singly Linked List and Its Implementation
3.3. Doubly Linked List and Its Implementation
3.4. Circular Linked Lists and Its Implementation
Chapter 4: Stacks (4hr)
4.1. Properties of Stack
4.2. Array Implementation of Stack
4.3. Linked List Implementation of Stack
4.4. Application of Stack
4.4.1. Evaluation of Algebraic Expression
4.4.2. Infix and Post fix (RPN) conversion
4.4.3. Function calls
Chapter 5: Queue (4hr)
5.1. Properties of Queue
5.2. Array Implementation of Queue
5.3. Linked List Implementation of Queue
5.4. Double Ended Queue (Deque)
5.5. Priority Queue
5.6. Application of Queues
Chapter 6: Trees (4hr)
6.1. Binary Tree and Binary Search Trees
6.2. Basic Tree Operations
6.3. Traversing in a Binary tree
6.4. General Trees and Their Implementations
Chapter 7: Graphs (4hr)
7.1. Introduction
7.2. Directed vs Undirected graph
7.3. Traversing Graph
Chapter 8: Advanced Sorting and Searching algorithms (4hr)
8.1. Advanced Sorting
8.1.1. Shell sort
8.1.2. Quick sort
8.1.3. Heap Sort
8.1.4. Merge sort
8.2. Advanced Searching
8.2.1. Hashing

Teaching - Learning methods


Two contact hours of lectures, three hours of lab and two hours of tutorials per week. Students do home
assignments.
Assessment method
Mid Exam & Assignments 30%
Project 20%
Final Exam 50%
Total 100%

Teaching materials
Reference books:
 Robert Lafore, “Data Structures and Algorithms in JAVA, 2nd Ed.”, Sams Publishing
 Jean Paul Tremblay, Paul G. Soreson, “An Introduction to Data Structures with Applications”, Mc.
Graw Hill Computer Science Series
 E. Horowitz, [Link] and Dinesh Mehta. Fundamentals of data structures in C++, W.H Freeman and
Company (1995)
 Sanjay Pahuja, A practical approach to data structures and algorithms, New age
Internationapublishers, 2008

Data structures and Algorithms Laboratory Outline

Week1 Introduction
Overview of C++, and programs to demonstrate C++ classes, structures and
pointer
Week2 Implementation of Array ADT and String AD
Week3 Implementing simple sorting algorithms
Selection sort, bubble sort, insertion sort
Week4 Implementing searching algorithms
Linear search, binary search
Week5 Implementing linked list
Singly linked list, doubly linked list, circular linked list
Week6 Stack
Array Implementation of stack
Linked List implementation of stack
Week7 Queue
Array Implementation of queue
Linked list implementation of queue
Week8 Double ended queue (Deque) and Priority queue
Week9 Tree
Implementing Binary search tree
Week10 Graph
Implementing graph traversal algorithms
Week11 Advanced sorting algorithms
Shell sort, Heap sort
Week12 Advanced sorting algorithms
quick sort, merge sort,
Week13 Advanced searching algorithm
Hashing (open and closed hashing)

You might also like