### CS43A - Algorithms & Analysis

**Credits:**
4
**Pre-requisites:**
CS42A - Data Structures

**Description:**
Design of efficient data structures and algorithms. Analysis of
algorithms and asymptotic time complexity. Graph, string,
and geometric algorithms.

**Learning Objectives:**

- Select or develop appropriate algorithms for manipulating the
data structures
- Use an object oriented programming language to implement the data
structures and algorithms
- Determine the time and space efficiency of these data structures
and associated algorithms
- Define complexity measures and identify complexity measures with actual
computing resources
- Analyse algorithms to establish their complexity classes.
- Establish the correctness of algorithms
- Demonstrate an understanding of advanced data structures
- Demonstrate an understand of advanced algorithmic techniques

**Content:**

- Algorithm analysis
- Search trees and skip Lists
- Sorting, sets, and selection
- Graphs
- Text processing
- Computational geometry

**Assessment:**

- Coursework - 40%
- Test - 10%
- Assignments - 30%

- Final exam - 60%

Students are required to pass both components.
**Texts:**

- Michael Goodrich and Roberto Tamassia,
*Algorithm Design Foundations,
Analysis, and Internet Examples* \

**Lecturer:**

Daniel Coore, Ph:D. (MIT), Lecturer, Department
of Mathematics and Computer Science, University of the West Indies, Mona.