C S 416
Download as PDF
Advanced Algorithms
Computer ScienceCollege of Computational, Mathematical, & Physical Sciences
Course Description
Advanced Algorithms and Problem Solving topics including combinatorics, prime number theory, network flow and matching, computational geometry, randomized algorithms, advanced dynamic programming, algorithms and data structures for strings, trees, graphs and sequences.
When Taught
Fall and Winter
Min
3
Fixed/Max
3
Fixed
3
Fixed
0
Title
Intractable Landscapes
Learning Outcome
Map the boundaries of computational possibility by proving the NP-completeness of diverse, real-world problems. This rigorous mapping of human and technical limits is intellectually enlarging, as it defines the scope of what is solvable within the physical laws of our universe.
Title
Principled Approximations
Learning Outcome
Construct and verify approximation algorithms that provide guaranteed performance for computationally "hard" problems. Navigating these intractable spaces with high-quality, albeit non-optimal, results is character building, requiring the professional humility and persistence to find the "best possible" path when perfection is out of reach.
Title
Probabilistic Insights
Learning Outcome
Harness randomness to design randomized algorithms that achieve efficiency and simplicity beyond the reach of deterministic approaches. Discovering the elegant order and reliable truth found within probabilistic logic is spiritually strengthening, as it reveals the sophisticated patterns governing seemingly chaotic systems.
Title
Dynamic Resource Evaluation
Learning Outcome
Apply amortized analysis and competitive ratios to guarantee the efficiency of online algorithms and evolving data structures over time. Developing these advanced analytical toolsets fosters a capacity for lifelong learning, providing students with enduring frameworks to evaluate the performance of technologies that have yet to be invented.
Title
Scalable Parallelism
Learning Outcome
Architect parallel algorithms that distribute complex workloads across multiple processing units to solve large-scale societal challenges. This commitment to the efficient use of shared computational power is a form of stewardship, preparing students to use their technical talents in meaningful service to a global community.