CSci 301 Lecture Notes

Week Zero, Thursday: Introduction

Course Objectives

  • Give a solid foundation in the theory of computation.
  • Establish the relevance of computation theory to software development.
  • Ensure a fair and accurate measurement of student performance.
  • Policies

    Grading is based on accumulated points.

    Late homework assignments will not be accepted.

    Rules of ethical conduct will be respected.

    0.1 Automata, Computability, and Complexity

    Complexity theory: what makes some problems computationally hard?

    Hard versus easy.

    Computability theory: some basic problems cannot be solved by computers.

    Solvable versus not solvable.

    Automata theory: models of computation. Finite automaton, context-free grammar.

    0.2 Mathematical Notions and Terminology

    Set: a group of objects represented as a unit.

    Sequence: list of objects in some order.

    Tuple: a sequence with k elements is a k-tuple.

    Function: input-output relationship.

    Infix notation: a + b

    Prefix notation: add(a, b)

    Predicate (property): function whose range is {T, F}.

    Relation: property whose domain is a set of k-tuples.

    If R is a binary relation: "aRb" means aRb = T.

    Graph: set of points with lines connecting, vertices and edges.

    Directed graph: arrows.

    String: a finite sequence of symbols from an alphabet. The empty string epsilon has length zero.

    Language: a set of strings.

    Boolean Logic: conjunction, disjunction, negation, XOR, equality (also called biconditional), implication.

    0.3 Definitions, Theorems, and Proofs

    To prove an "if and only if" we need to prove both directions.

    To disprove a statement, you need only a single counterexample.

    0.4 Types of Proofs

    Construction

    For existence proof, demonstrate how to construct the object.

    Contradiction

    Example: assume sqr(2) is rational: sqr(2) = m / n.
    Reduce m / n so that both cannot be even.
    Multiply by n: n * sqr(2) = m.
    Square: 2 * n ^ 2 = m ^ 2.
    Because m ^ 2 is twice n ^ 2, m ^ 2 is even.
    Therefore, m is even (square of an odd number is odd).
    We can write m = 2 * k.
    Therefore 2 * n ^ 2 = (2 * k) ^ 2 = 4 * k ^ 2.
    Divide by 2: n ^ 2 = 2 * k ^ 2.
    Therefore n is even, a contradiction.

    Induction

    Used to show that all elements of an infinite set have a specified property.

    Homework Assignment

    Assigned Thursday, September 3, due Thursday, September 10, at beginning of class.

    Chapter 0:
    Exercises 0.1, 0.2, 0.6.
    Problems 0.10, 0.13.


    Email: Richard dot J dot Wagner at gmail dot com

    notes00b.htm, this hand crafted HTML file created August 31, 1998.
    Last updated May 14, 2011, by Rick Wagner. Copyright © 1998-2011, all rights reserved.