Introduction to algorithm analysis and complexity classes including advanced data structures such as B-trees, height-balanced trees, and graphs. Analysis of various searching and sorting algorithms and algorithm design topics such as dynamic programming, greedy methods, and divide-and-conquer. Prerequisites: CISS 245 or CISS 243, MATH 225.
Prerequisite(s) / Corequisite(s):
CISS 245 or CISS 243, MATH 225.
Course Rotation for Day Program:
Offered odd Fall
Most current editions of the following:
The Design and Analysis of Computer Algorithms
By Aho, Alfred V., John E. Hopcroft, & Jeffrey D. Ullman (Addison-Wesley) Recommended
Introduction to Algorithms
By T. H. Cormen, et al (McGraw-Hill) Recommended
To conceptualize the underlying structure of a von-Neumann computer.
To design efficient algorithms.
To analyze algorithms.
To build and utilize advanced data structures.
To implement algorithms for many different classes of problems.
Diagram the high-level architecture of a computer.
Describe the operating system layer.
Create algorithms optimized for CPU and memory usage.
Describe the run-time complexities of algorithms.
Create and utilize advanced data structures including stacks, queues, trees and graphs.
Design and implement algorithms to solve various classes of problems, including mathematical and pattern-matching algorithms.
Explain classes of problems that have no algorithmic solution.
Models of computation
Design of efficient algorithms
Sorting and order statistics
Data structures for set manipulation problems
Algorithms on graphs
Matrix multiplication and arithmetic
Integer and polynomial arithmetic
Recommended maximum class size for this course: 20
NOTE: The intention of this master course syllabus is to provide an outline of the contents of this course, as specified by
the faculty of Columbia College, regardless of who teaches the course, when it is taught, or where it is taught. Faculty members teaching this
course for Columbia College are expected to facilitate learning pursuant to the course objectives and cover the subjects listed in the topical
outline. However, instructors are also encouraged to cover additional topics of interest so long as those topics are relevant to the course's
subject. The master syllabus is, therefore, prescriptive in nature but also allows for a diversity of individual approaches to course material.