Skills you will learn in this class:
-
Some advanced classic data structures (graphs and priority queues) and
how to use them.
-
Some general methodologies for solving problems - the greedy method,
divide
and conquer, dynamic programming, backtracking, branch-and-bound,
tree-pruning,
...
-
How to mathematically determine the asymptotic run-time and space
requirements
for general algorithms.
-
How to design and analyze concurrent algorithms running on parallel
machines.
-
The meaning of intractability. The importance of the classes P and NP.
Prerequisites:
-
Programming experience at a deep level in some programming language.
-
A large dose of mathematical sophistication.
Next
Lynn Ziegler,
lziegler@csbsju.edu