Current Catalog Description
Application of algorithms to solving a variety of problems. Factors influencing choice of algorithms for a given problem. Students will work in groups and individually to solve problems in and outside of class.
Prerequisite by Topic
CS 350, Algorithms and Analysis.
Course Goals
Know and have programmed a variety of algorithms Be able to choose an appropriate algorithm to solve a problem.
Upon the successful completion of this course students will be able to:
Textbook
"Programming Challenges," by Skiena and Revilla.
Course References
Introduction to Algorithms, by Cormen et al, and
"Programming Pearls," second edition, by Bentley.
Major Topics Covered in the Course
Graph Algorithms, including various searches, spanning trees, and path algorithms. Backtracking and Dynamic Programming. Combinatorics.
Laboratory Projects
There will be a variety of problems presented for solution each week.
Core | Advanced | |
---|---|---|
Data Structures | 1 | 1 |
Algorithms | 1 | 1 |
Software Design | ||
Computer Organization and Architecture | ||
Concepts of Programming Languages |
Theoretical Content
Algorithm analysis, problem abstraction, definition of invariants.
Problem Analysis
Students will analyze programming problems and puzzles, and devise approaches to solving them. The class will work on problems in groups and individually.
Solution Design
Students will design and implement solutions to a variety of programming problems and puzzles. This will be done both in groups and individually, and with problems at a variety of challenge levels.