Subject OverviewAn advanced postgraduate study of algorithm design, analysis, implementation, and evaluation using Python. The subject integrates classical foundations with scalable data science applications, optimization, graph analytics, probabilistic methods, distributed computing, AI-assisted development, and responsible algorithmic governance. Learning GoalStudents will be able to select, design, prove, implement, benchmark, and govern efficient algorithms for complex data science problems; evaluate computational trade-offs; and translate algorithmic evidence into sound technical and managerial decisions. Syllabus1. Algorithmic Foundations and Python Computational ModelsLearning Objective: Formalize problems, inputs, outputs, invariants, correctness, and computational models; implement reproducible algorithms using Python data models, iterators, generators, recursion, typing, and testing. Category: foundation 2. Complexity Analysis and Empirical PerformanceLearning Objective: Analyze time and space complexity using asymptotic notation, recurrences, amortized analysis, and lower bounds; validate results through profiling, benchmarking, memory measurement, and sensitivity analysis. Category: foundation 3. Advanced Data StructuresLearning Objective: Apply heaps, balanced search trees, tries, disjoint sets, hash structures, Bloom filters, segment trees, Fenwick trees, and spatial indexes while evaluating performance and memory trade-offs in Python. Category: core 4. Divide-and-Conquer, Decrease-and-Conquer, and TransformationsLearning Objective: Design and prove recursive algorithms for sorting, selection, searching, matrix operations, and geometric problems; use recurrence-solving techniques and Python implementations that control recursion and copying costs. Category: core 5. Greedy Algorithms and Matroid FoundationsLearning Objective: Develop greedy solutions, establish optimality through exchange arguments, recognize matroid structure, and apply scheduling, coding, resource allocation, and minimum spanning tree algorithms. Category: core 6. Dynamic Programming and State-Space DesignLearning Objective: Model overlapping subproblems and optimal substructure; construct memoized, tabulated, space-optimized, bitmask, sequence, and decision-process algorithms with reconstruction and correctness proofs. Category: core 7. Graph Algorithms and Network AnalyticsLearning Objective: Implement graph representations, traversal, topological ordering, shortest paths, spanning trees, connectivity, flows, matching, and centrality; apply them to networks, recommendations, logistics, and dependency analysis. Category: application 8. String, Sequence, and Pattern-Matching AlgorithmsLearning Objective: Use tries, rolling hashes, finite automata, KMP, suffix structures, edit distance, and sequence alignment for search, text analytics, bioinformatics, anomaly detection, and data deduplication. Category: application 9. Computational Geometry and Multidimensional SearchLearning Objective: Solve geometric and spatial problems using sweep-line methods, convex hulls, nearest-neighbor search, k-d trees, range queries, and locality-sensitive hashing for geospatial and high-dimensional data. Category: advanced 10. Randomized, Probabilistic, and Sampling AlgorithmsLearning Objective: Analyze randomized algorithms through probability, expectation, concentration, and error bounds; implement randomized selection, hashing, reservoir sampling, Monte Carlo methods, and probabilistic data structures. Category: advanced 11. Optimization, Approximation, and Heuristic SearchLearning Objective: Distinguish tractable and intractable problems; formulate combinatorial optimization tasks and apply approximation algorithms, branch-and-bound, local search, simulated annealing, evolutionary methods, and A* search. Category: advanced 12. Online, Streaming, and Sublinear AlgorithmsLearning Objective: Design algorithms for evolving and large-scale data using competitive analysis, sketches, heavy-hitter detection, approximate counting, sliding windows, and concept-drift-aware processing. Category: contemporary 13. Parallel, Distributed, and Hardware-Aware AlgorithmsLearning Objective: Evaluate concurrency, vectorization, multicore, GPU, and distributed models; address partitioning, communication, synchronization, fault tolerance, and scalability using suitable Python ecosystems. Category: contemporary 14. Algorithm Engineering for Data Science and AILearning Objective: Build production-quality algorithmic pipelines through numerical robustness, API design, testing, profiling, reproducibility, observability, and library selection; examine algorithms underlying machine learning, retrieval, and modern AI systems. Category: application 15. Algorithm Selection, Governance, and Emerging PracticeLearning Objective: Use cost, latency, accuracy, energy, risk, and maintainability metrics for managerial decision-making; conduct algorithm audits for bias, privacy, security, explainability, and compliance; assess quantum, neuromorphic, privacy-preserving, and AI-assisted algorithm development. Category: strategic
|