CS 245: Data Structures and Algorithms

Instructor: Chris Brooks

Office: Harney 541

Phone: 422-5221

email: cbrooks@cs.usfca.edu

Office Hours: ??

Time: MWF 9:30-10:35 am

Place: HR 235


Here's the catalog description:

Algorithm analysis and asymptotic running time calculations. Algorighm design techniques and implementation details. Algorithms for sorting and searching, trees, graphs, and other selected topics.

So what does this mean?

This is a course in which you'll learn two things: Some of the most popular and useful techniques and data structures for solving common computational problems, and also mathematical techniques for analyzing and comparing solutions.

The course will be a combination of theoretical/mathematical analysis and practical implementation; there should be something for everyone! Along the way, you'll also pick up some practical knowledge, such as exposure to different programming environments, practice in working with external packages, and experience in developing larger (at least 200-300 lines) programs.

At the end of the course, you should have: a) a working knowledge of common data structures, such as stacks, queues, linked lists, hash tables, trees and graphs, along with the ability to compare and describe the tradeoffs associated with using these structures. b) a working knowledge of common sorting and searching algorithms. c) the mathematical skills necessary to analyze and compare algorithms in terms of worst-case performance. d) experience designing and developing medium-size programs.