Subject OverviewA rigorous study of data organization, algorithm design, correctness, efficiency and scalable implementation. The subject combines classical theory with software engineering, AI/ML workloads, analytics, governance and contemporary computing requirements. Learning GoalStudents will be able to select, design, implement, analyze and evaluate data structures and algorithms; prove correctness and complexity; solve computational problems; and make responsible engineering decisions for scalable AI-enabled systems. Syllabus1. Computational Problem-Solving FoundationsLearning Objective: Understand algorithms, abstract data types, specifications, invariants, pseudocode, recursion, iteration, memory models, references and correctness proofs using induction and loop invariants. Category: foundation 2. Algorithm and Complexity AnalysisLearning Objective: Analyze time and space using asymptotic notation, recurrence relations, best/average/worst cases, amortized analysis, lower bounds and empirical benchmarking; evaluate performance trade-offs. Category: foundation 3. Arrays, Linked Structures, Stacks and QueuesLearning Objective: Implement and compare arrays, dynamic arrays, linked lists, stacks, queues and deques; understand memory layout, locality and applications such as parsing, buffering and scheduling. Category: core 4. Dictionaries, Hashing and Set StructuresLearning Objective: Design maps and sets using hashing, collision resolution and resizing; analyze load factors and expected performance; understand secure hashing and adversarial inputs. Category: core 5. Trees and Hierarchical Data StructuresLearning Objective: Work with binary trees, traversals, binary search trees, AVL and red-black trees, B/B+ trees and tries; apply them to indexing, file systems, databases and autocomplete. Category: core 6. Heaps, Priority Queues and Disjoint SetsLearning Objective: Implement binary and specialized heaps, priority queues and union–find structures; analyze amortized operations and apply them to scheduling, clustering and graph algorithms. Category: core 7. Searching, Sorting and SelectionLearning Objective: Master linear and binary search, comparison and non-comparison sorting, stability, in-place processing, order statistics and sorting lower bounds; select algorithms based on data characteristics. Category: core 8. Algorithm Design ParadigmsLearning Objective: Apply divide-and-conquer, greedy methods, dynamic programming, memoization, backtracking and branch-and-bound; establish optimal substructure, correctness and practical trade-offs. Category: core 9. Graph Representation and TraversalLearning Objective: Model networks using adjacency structures; implement breadth-first and depth-first search, topological sorting, cycle detection, connected components and strongly connected components. Category: core 10. Graph Optimization AlgorithmsLearning Objective: Solve shortest-path, minimum-spanning-tree, network-flow and matching problems using established algorithms; assess constraints, correctness and analytics applications. Category: application 11. String and Sequence AlgorithmsLearning Objective: Apply pattern matching, rolling hashes, prefix functions, tries, suffix structures, longest-subsequence methods and edit distance to search, NLP, bioinformatics and anomaly detection. Category: application 12. Advanced and Probabilistic Data StructuresLearning Objective: Use segment and Fenwick trees, skip lists, Bloom filters, count-min sketches and spatial indexes; evaluate approximation, false positives and range-query performance. Category: advanced 13. Computational Tractability and Scalable AlgorithmsLearning Objective: Understand P, NP, NP-completeness, reductions, approximation, randomized, online, streaming, parallel, distributed, cache-aware and external-memory algorithms. Category: advanced 14. Algorithm Engineering, AI Applications and GovernanceLearning Objective: Profile, test and optimize implementations; use standard libraries responsibly; evaluate cost, scalability and maintainability for AI/ML pipelines and digital platforms; address bias, privacy, security, energy use, reproducibility and emerging hardware-aware and learned data structures. Category: contemporary
|