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.