This module introduces students to different data structures and algorithms, and how data structures can be created and used. The application of data structures will be presented on the basis of various algorithms.
Introduction: Algorithmic notation, Space and Time analysis, Information and its storage representation.
Linear data structures: Arrays, Stacks and applications, Infix, Prefix and Postfix Expressions, Recursion, Queues, Simulation, Priority Queues, Pointers, Linked allocation, Linear Linked Lists, Circular Linked Lists, Doubly Linked Lists, Associative Lists.
Nonlinear data structures: Trees, Multi-linked structure, Graphs-Representation, Spanning Trees, Dynamic Storage Management, Compaction.
Sorting and searching algorithms: Sorting - Selection sort, Bubble sort, Radix sort, Heap Sort, Searching - Sequential search, Binary search, Binary Search Trees, Hash Table methods, Hashing Functions, Collision Techniques
This course provides a basic understanding of discrete mathematical topics is fundamental for academic work in computer science. Students will develop algorithms and prove their efficacy. Topics include propositional and predicate logic, basic proof techniques, set algebra and Boolean algebra, recursion and induction, trees and graphs