Course Information: Discrete Computational Structures

Computer Science Department
Course Competency Plan
COURSE: CpSc 311 Discrete Computational Structures

Course Description: Introduces computational implementations of the mathematical structures most frequently used in computing including sets, equivalence relations, functions, graphs, trees and standard logic. Also introduces automata, formal languages, countability, decidability and computational complexity, Markov and stochastic processes. The course will stress traditional programming and mathematical approaches to these structures such as the use of recursion, elementary data structures, and proof techniques to instantiate, parse, traverse, demonstrate correctness, or use these computational objects. (Prereq: CpSc140, Math 120)

Course Outcomes: This course and its outcomes support the Information Technology Learning Outcome of Problem Solving and Critical Thinking (PS&CT) . This Information Technology Learning Outcomes is tied directly to the University Wide Outcome of Critical Thinking and Problem Solving.

DegreeProgram ObjectiveAssessed Course Objective
IT I.a. Apply programming and system management techniques to address information technology problems 1. Build programs and prove theorems concerning fundamental structures of discrete mathematics.

Additional Course Objectives include:
The student will be able to:

  1. Define basic computational terms and perform computational operations associated with sets, functions, relations, trees, and graphs.
  2. Apply formal methods of symbolic logic and proof techniques used to solve traditional computing problems.
  3. Apply the tools of probability to solve problems.
  4. Evaluate the run-time performance of alternative algorithms.
  5. Model problems in computing using graphs, trees and Markov chains.
  6. Relate graphs and trees to data structures, algorithms and counting.