Course Outline Data Structures

6
UNIVERSITY OF GUJRAT UNIVERSITY OF GUJRAT A WORLD CLASS UNIVERSITY A WORLD CLASS UNIVERSITY Department of Computer Science COURSE DESCRIPTION Course Code CS-203 Course Title Data Structures Credit Hours 4 Category Core Prerequisit e Knowledge and Experience in Programming Fundamentals and Object Oriented Programming Expertise in design, implementation, testing, and strong debugging of object- oriented programs. Inner Classes and Exception Handling Amis and Objectives “An apprentice carpenter may want only hammer and saw, but a master craftsman employs many precision tools. Computer programming likewise requires sophisticated tools to cope with complexity of real applications and only practice with these tools will build skill in their use. (Robert L. Kruse Data Structure and Program Design)”. This subject deals to make students convenient in building a memory and time efficient data structures for the implementation of large-scale (data intensive) computer systems. Learning Outcomes Along with many others following are fundamentals learning outcomes for students that are expected through this course 1

Transcript of Course Outline Data Structures

University of GujratA World Class UniversityDepartment of Computer Science

COURSE DESCRIPTIONCourse CodeCS-203

Course TitleData Structures

Credit Hours4

CategoryCore

Prerequisite Knowledge and Experience in Programming Fundamentals and Object Oriented Programming Expertise in design, implementation, testing, and strong debugging of object-oriented programs. Inner Classes and Exception Handling

Amis and ObjectivesAn apprentice carpenter may want only hammer and saw, but a master craftsman employs many precision tools. Computer programming likewise requires sophisticated tools to cope with complexity of real applications and only practice with these tools will build skill in their use. (Robert L. Kruse Data Structure and Program Design). This subject deals to make students convenient in building a memory and time efficient data structures for the implementation of large-scale (data intensive) computer systems.

Learning OutcomesAlong with many others following are fundamentals learning outcomes for students that are expected through this course Apply appropriate fundamental data structures and abstract data types (ADT) such as bags, lists, stacks, queues etc and heaps: min/max heap, min-max heap and some advance hierarchal data structures like B-Trees: 2-3 tree, 2-3-4 tree and hash tables, and graphs in problem solving. Apply object-oriented principles of polymorphism, inheritance, and generic programming when implementing data structures through their ADTs. Create alternative i.e. problem specific representations of ADTs either from implementation or the standard libraries for problem solving. Apply recursion as a problem solving technique. Determine appropriate ADTs and data structures for various sorting and searching algorithms.Determine time and space requirements of data structures, and common sorting and searching algorithms

Course Outline / SyllabusTopics: Introduction: Introduction to Course, Review of Object Oriented Programming Concepts. Algorithm Specification: Introduction to ADTs: Array and Polynomial as an ADT, Sparse Matrices, and Representation of Arrays. Bag ADT, The Stack ADT, Expressions, Postfix Notation, and Infix to postfix conversion. Recursion: Recursive Definition and Processes, Writing Recursive Programs. Queue: The Queue ADT, Circular and Double Ended Queue. Linked List: Singly Linked Lists, Circular Lists, Linked Stacks and Queues (Double Ended List), Doubly Linked Lists. Trees: Introduction to Trees, Logical construction and Traversing of Binary Trees, Implementation of Binary Trees (Insertion and Traversing), Searching and deletion in Binary Trees, Binary Search Tree, Introduction to Balanced and AVL Trees. Heaps: Heaps and Heaps as Priority Queues, Double Ended Priority Queue. Searching: Linear Search, Binary Search, and Types of Indexing. Hashing: Hash Functions: Division; Overflow Handling: Chaining; Introduction to other advanced topics like:, B-Trees, etc Composite Data Structures: Multi-Stack, Multi-Queue, Generalized List, etc. Sorting types and Techniques: Logical and Algorithmic Implementation of Selection, Bubble, Insertion, Shell, Radix, Merge, Quick, Heap, and Tree sorts. Graphs: Graph terminology, Adjacency List and Adjacency Matrix and Adjacency list representation of Graph; Elementary Graph Operations: Breadth First Search and Depth First Search, Spanning Trees (BFSST, DFSST).

Text Book Written material will be provided. D. Samanta. Classic Data Structures, Prentice Hall, 2001Reference from different books enlisted in reference material will be given as required.

Reference Material Mark Allen Weiss, Data Structure and Algorithms in C++, Benjamin/Cumming Adam Drozdek Data Structure and Algorithm in Java ISBN 0-534-37668-1 Ellis Horowitz, Sartaj Sahni, and D. Mehta Fundamentals of Data Structures in C++, 2nd Ed., Computer Science Press, 1995. ISBN 81-7808-792-8 Tenenbaum, M. Augenstein, and Y. Langsam, Data Structures using C and C++ 2nd Ed., Prentice Hall, 1999 ISBN 0-13-529322-7http://www.nist.gov/dads (Dictionary of Algorithms and Data Structures)

Assessment Criteria

WeekLectureTopicSource(Book-Chapter No. Section No.)Recommendations for Learning Activities(Mention Assignments, Test, Quizzes,Practical, Case Study, Projects, Lab Workor Reading Assignments)

11 Introduction to Course, Review of Object Oriented Programming Concepts

2 Data Structures, Abstract Data Type, Data Structure in SDLC

23 Revision of arrays

4 Polynomial as ADT

35 Stack

6 The Stack ADT, Expressions, Postfix & Prefix Notation Infix to postfix and prefix conversion Postfix and prefix evaluation

47 Queue (array implementation) Variation of Queue ADT i.e. Circular and Double Ended Queue. Applications of Queues.

8 Recursive Definition and Processes, Direct and Indirect Recursion, Binary Search and Towers of Hanoi as exampleAssignment # 1

59 Writing Recursive Programs, conversion of recursive algorithms into iterative algorithms

10 Linear Single Link List, and Linked Stacks and QueuesQuiz # 1

611 Containers and Iterators, Linear Linked list IteratorAssignment # 2

12Linear Doubly Link List, Circular Lists: Singly and Doubly and Its Iterator

713 Array-based implementation of all List-based Data Structures

14 Overview of Composite Data Structures: Multi-Stack, Multi-Queue, Generalized List, etc.

815Introduction to Trees, Tree Terminology, Logical construction and Representation of Trees, Introduction to Binary Tree ADT, Mathematical properties

16Array Implementation of Binary Trees (Insertion and Traversing)

917Link Implementation of Binary Trees

18 Binary Search Tree

1019 Heaps (MinHeap and MaxHeap) and heaps as an priority queues

20Min-Max HeapQuiz # 2

1121 AVL trees and insertionTerm Prject

22 Deletion Operation in AVL tress

1223 Introduction to graph and related terminology

24 Elementary Graph Operations

1325 Minimum cost spanning trees

26 Balanced search trees theoretical Comprehension of insertion/deletion

1427 2-3 Tree Deletion

28 2-3-4 Tree Insertion/DeletionQuiz # 3

1529 B-Trees Insertion/deletion

30 Hashing and Overflow Handling

1631 Introduction to sorting types and Techniques

32 Review of course

3