Ghulam Ishaq Khan Institute of Engineering Sciences and Technology
Faculty of Computer Science and Engineering
Course Outline BS/MS Programs
Dr. Zahid Halim(zahid.halim@giki.edu.pk) - G06
Course Instructor
Semester
Fall
Section(s)
Year
CS 221 : Data Structures & Algorithms
Course Title
Pre-Requisite/Co-Requisite
Spring
Summer
2014
Credit Hrs. 3+1
CS112: Programming Techniques
BS CS
Program
Course T.A.(s)
Name
Engr. Usman Raza
Text Book(s)
Title of Book
Author(s)
Introduction to Algorithms
Title of Book
Author(s)
Data Structures and Algorithms
A. V. Aho, J. E. Hopcroft, J. D. Ullman
[Code : B]
Title of Book
Author(s)
Data Structures Using C and C++
[Code : A]
Title of Book
Author(s)
Data Structures and Algorithm Analysis in C
[Code : C]
Publisher
Thomas H. Cormen et al
Publisher
Prentice-Hall
Addison-Wesley
Reference Book
Y. Langsam, M. J. Augenstein, A. M. Tenenbaum
Mark Allen Weiss
Publisher
Prentice-Hall
Publisher
Addison-Wesley
[Code: D]
Course Objectives and CLOs
Data Structures are core to any "Engineering Sciences" degree and are related to efficient storage of information in memory. In this course
we will cover elementry data structrues and associated algorithms which manipulate them. We will study lists, stacks, queues, arrays, trees,
graphs, sorting and searching. After successful completion of this course students should be able to:
1. Describe the usage of various data structures
2. Explain the operations for maintaining common data structures
3. Recognize the associated algorithms operations and complexity
4. Develop computer programs to implement different data structures and related algorithms
5. Think critically
6. Solve problems independently
Marks Distribution
Assignments
Quizzes
Projects (1)
Midterm
Final
Total
15
10
15
20
40
100
Course Contents:
Week
Lec#
1
1
2
3
4
5
%
%
%
%
%
Topic
Introduction
Complexity Analysis
Complexity Analysis
Complexity Analysis
Abstract Data Types
Number of Quizzes& Assignments
Quizzes
8
Assignments
8
<5
>5&<10
>10
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
10
11
12
13
14
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Arrays
Lists, Linked List implentation using arrays and pointers
Elementry Data Structures: Stack and Queues
Elementry Data Structures: Stack and Queues
Elementry Data Structures: Stack and Queues
Recursion
Time Complexity of Recursive Algorithms
Time Complexity of Recursive Algorithms
Trees: Tree Data Structure Definition and Basic terminologies
Trees: Tree Traversal, Expression trees
Trees: Binary Search Trees
Trees: AVL Trees
Trees: AVL Trees
Trees: Huffman Coding
Trees: Red Black Trees
Trees: Threaded Trees
Trees: Tries Data Structure
Trees: B-Trees
Trees: B-Trees
Set Structures
Large Polynomials and Sparse Matrices
Searching Techniques: Linear Search, Binary Search, Interpolation Search and Indeded
Sequential Search
Hashing
Hashing
Heaps: Heap Data Structure, Max and Min Heaps
Heaps: Binary and Fibanocci Heaps
Heaps: Priority Queues and Heap Sort
Sorting Techniques: Bubbler Sort, Selection Sort, Insertion Sort
Sorting Techniques: Merge Sort, Quick Sort
Sorting Techniques: Linear Time Sorting Techniques
Graphs: Basic Terminologies and Storing Graphs
Graphs: Breadth First and Depth First search traversals
Graphs: Minimum Spanning Trees (Prim's and Kruskal's Algorithm)
Graphs: Shortest Path Algorithms
Graphs: Shortest Path Algorithms
Graphs: Topoplogical Ordering
Network Flow Problems
Network Flow Problems
15
*Notes:
1) Course contents and their order may be slightly modified during the course execution.
2) No make up for missed quizzes or assignments/homeworks
3) Deadline for homeworks and projects are always final.
4) Quizes may be announced or un-announced
5) Serious action will be taken for any kind of cheating which may lead to course failure