|
May 04, 2024
|
|
|
|
CSCI 2014 - Discrete Structures of Computer Science Credits: 4 Hours/Week: Lecture 4Lab None Course Description: This course covers discrete mathematical techniques and structures used in computer science. The content stresses problem solving techniques that involve the use of logic, various methods of proof, and sets. Topics of particular interest to computer scientists include big-O notation, recursion, and the fundamentals of trees and graphs. MnTC Goals None
Prerequisite(s): Assessment score placement into MATH 1081 or completion of MATH 1061 with a grade of C or higher. Corequisite(s): None Recommendation: None
Major Content
- EFFICIENCY OF ALGORITHMS real-valued functions and their graphs Big-O, Big-Omega, Big-Theta notation efficiency of various sorting algorithms divide and conquer algorithms
- FUNCTIONS: definition one-to-one, onto and inverse functions pigeonhole principle composition of functions
- LOGIC: propositional logic valid and invalid arguments predicates and quantified statement application to digital circuits
- MATHEMATICAL INDUCTION: sequences weak induction strong induction application: elements of program correctness
- METHODS OF PROOF: direct proof indirect proof proof by contradiction proof by cases and generalization some classic proofs infinity of primes irrationality of 2 Pythagorean theorem
- RECURSION: recursively defined sequences solving recurrence relations by iteration
- SET THEORY: basic definitions properties of sets partitions and power sets relation to Boolean algebra classic problems related to set theory Russells paradox Turings halting problem
- TREES AND GRAPHS: terminology paths and circuits tree traversals spanning trees
Learning Outcomes At the end of this course students will be able to:
- demonstrate the validity of a set relationship using an algebraic argument.
- demonstrate the validity of a set relationship using an element argument.
- demonstrate if 2 logical statements are equivalent or not.
- derive the logical negation of statements.
- explain what constitutes a valid argument.
- use mathematical induction to prove properties of sequences.
- prove basic properties of numbers using direct proofs, indirect proofs and proofs by contradiction.
- describe what makes a relation between the elements of 2 sets a function.
- calculate the degree of any vertex of a network graph, and the total degree of the graph.
- define what a (network) graph is and identify its constituent parts (vertices, edges, loops, etc).
- define what characterizes a sequence as a recursive sequence.
- derive an explicit (i.e., non-recursive) formula for a recursively defined sequence using the technique of iteration.
- describe how the computing efficiency of an algorithm can be calculated.
- describe what it means for one function to be of the same order as another (with respect to its rate of growth).
- describe what properties make a function 1-to-1 and/or onto.
- determine if a given walk within a graph is a path and/or circuit.
- determine if a given walk within a graph is an Euler path and/or Hamiltonian circuit.
Courses and Registration
Add to Portfolio (opens a new window)
|
|