CPS 130: Introduction to the Design and Analysis of This course
is an introductory undergraduate course on the design and
analysis of algorithms. The course builds on the study of the
analysis and implementation of data structures and algorithms
from CPS100. The goal is to introduce a number of important
algorithm design techniques as well as basic algorithms that are
interesting both from a theoretical and also practical point of
view. We will cover basic algorithm design techniques such as
divide-and-conquer, dynamic programming, and greedy techniques
for optimization. We will cover techniques for proof of the
correctness of algorithms and also asymptotic analysis of
algorithm time bounds by the solution of recurrence equations.
We will apply these design and analysis techniques to derived
algorithms for a variety of tasks such as sorting, searching,
and graph problems. Some specific algorithm topics include:
deterministic and randomized sorting and searching algorithms,
depth and breadth first search graph