In this course, you will study algorithms and data structures. You will learn techniques to analyze algorithms and determine time and space complexity of programs. You will also cover some algorithms for solving combinatorial problems. Major topics include time and space complexity, abstract data types, linear data structures, sets, trees and graphs, searching, and sorting.
This course involves programming assignments as well as problem sets. Please think carefully about program design and apply good software engineering practices. Written design specs may be required for programming projects.
Prerequisite: MATH 241 and CSCI 205
Textbook: Introduction to Algorithms, third edition, Cormen, Leiserson, Rivest, and Stein, 2009. MIT Press. ISBN: 978-0-262-03384-8 (hardcover), ISBN 978-0-262-53305-8 (paperback).