CS 252: Discrete Structures
Citrus College Course Outline of Record
Heading | Value |
---|---|
Effective Term: | Fall 2021 |
Credits: | 3 |
Total Contact Hours: | 54 |
Lecture Hours : | 54 |
Lab Hours: | 0 |
Hours Arranged: | 0 |
Outside of Class Hours: | 108 |
Prerequisite: | CS 225. |
Transferable to CSU: | Yes |
Transferable to UC: | Yes - Approved |
Grading Method: | Standard Letter |
Catalog Course Description
This course is an introduction to the discrete structures used in Computer Science with an emphasis on their applications. Topics covered include: functions, relations and sets; basic logic; proof techniques; basics of counting; graphs and trees; and discrete probability. 54 lecture hours.
Course Objectives
- Describe how formal tools of symbolic logic are used to model real-life situations, including those arising in computing contexts such as program correctness, database queries, and algorithms.
- convert from summation notation to expanded form.
- convert from expanded form to summation notation.
- Analyze a problem to create relevant recurrence equations.
- Demonstrate different traversal methods for trees and graphs.
- Apply the binomial theorem to independent events and Bayes’ theorem to dependent events.
- derive new formulas from Pascal's formula.
- ability to substitute into the binomial theorem.
- able to use a combinatorial argument to derive the identity.
- able to use the binomial theorem to simplify a sum.
- apply universal conditional statements.
- apply universal existential statements.
- apply existential universal statements.
- language sets.
- Relate the ideas of mathematical induction to recursion and recursively defined structures.
- find terms of sequences given by explicit formulas.
- find an explicit formula to fit given initial terms.
- compute summations using the appropriate notation.
Major Course Content
- Functions, Relations and Sets
- Functions (surjections, injections, inverses, composition)
- Relations (reflexivity, symmetry, transitivity, equivalence relations)
- Sets (Venn diagrams, complements, Cartesian products, power sets)
- Pigeonhole principles
- Cardinality and countability
- Basic Logic
- Propositional logic
- Logical connectives
- Truth tables
- Normal forms (conjunctive and disjunctive)
- Validity
- Predicate logic
- Universal and existential quantification
- Modus ponens and modus tollens
- Limitations of predicate logic
- Proof Techniques
- Notions of implication, converse, inverse, contrapositive, negation, and contradiction
- The structure of mathematical proofs
- Direct proofs
- Proof by counterexample
- Proof by contradiction
- Mathematical induction
- Strong induction
- Recursive mathematical definitions
- Well orderings
- Basics of Counting
- Counting arguments
- Sum and product rule
- Inclusion-exclusion principle
- Arithmetic and geometric progressions
- Fibonacci numbers
- The pigeonhole principle
- Permutations and combinations
- Basic definitions
- Pascal’s identity
- The binomial theorem
- Solving recurrence relations
- Common examples
- The Master theorem
- Graphs and Trees
- Trees
- Undirected graphs
- Directed graphs
- Spanning trees/forests
- Traversal strategies
- Discrete Probability
- Finite probability space, probability measure, events
- Conditional probability, independence, Bayes’ theorem
- Integer random variables, expectation
- Law of large numbers
Suggested Reading Other Than Required Textbook
The student will visit several programming online websites in order to read documentation about object oriented programming languages.
Examples of Required Writing Assignments
The student will create a flowchart and a pseudocode before implementing the programming code for any given assignment.
Examples of Outside Assignments
Students will be required to complete the following types of assignments outside of the regular class time:
- Study course concepts - Answer various programming questions - Practice skills (i.e., writing programs and creating flowcharts). - Read required materials - Solve programming problems - Create programs that apply Object-Oriented programming techniques
- Study course concepts - Answer various programming questions - Practice skills (i.e., writing programs and creating flowcharts). - Read required materials - Solve programming problems - Create programs that apply Object-Oriented programming techniques
Instruction Type(s)
Lecture, Online Education Lecture