An introduction to the analysis of finite collections and mathematical foundations of sequential machines, computer system design, data structures, and algorithms. Includes sets and sequences, logic and proof, matrices (including Boolean matrices), counting, recursion, graph theory, relations (including partial orders and trees), and Boolean algebra. Prerequisite: Intermediate algebra or higher, as determined by each institution
After successful completion of the course, the student will be able to:
Apply classical problem-solving strategies in varying circumstances
Manipulate sets, sequences, and matrices and perform corresponding operations
Solve basic counting and probability problems
Demonstrate an understanding of various methods of proof (including induction)
Solve problems using recursive and explicit algorithms
Identify the costs and benefits of recursion
Demonstrate an understanding of relations and be able to represent them in various ways (matrix, ordered pairs, digraphs)
Apply the concept of function growth to compute and compare the complexity of simple algorithms
Apply several classical algorithms related to applications of trees and graphs
Demonstrate an understanding of the mathematical theory as it applies to computer programming applications
Course description revised in Fall 2016 - 04/7/2017