COSC 312 — Algorithm Analysis and Automata
Spring 2012


Directory


Contact Information

Instructor:
Bruce MacLennan, PhD
Phone: 974-0994
Office: Min Kao 550
Hours: WF 3:30–5:00 or make an appointment
Email: maclennan@eecs.utk.edu


Teaching Assistants:

Zahra Mahoor
Office: Min Kao 204
Hours: MW 10:00–12:00 or make an appointment
Email:  zmahoor at utk.edu


Cale Nelson

Office: Min Kao 207
Email: cnelso23 at utk.edu


Classes:
MWF 12:20–1:10, Min Kao 406

This page: http://web.eecs.utk.edu/~mclennan/Classes/312


Catalog Description

Counting and combinatorics, with applications to the analysis of algorithms. Introduction to finite automata and regular languages, and to pushdown automata and context free grammars.

Note: As of Fall 2011, the old course sequence Math 300 – COSC 311 has been replaced by a new course sequence COSC 311 – COSC 312. Therefore COSC 312 covers some material that used to be covered in COSC 311, but most of it is new; if you took COSC 311 before Fall 2011, please be aware of this.

Prerequisites

COSC 311.

Texts

There are two required textbooks for COSC 312:



Schedule

Since this is the first time COSC 312 has been taught, the schedule is of necessity tentative.
  1. Finite Automata (S[ipser] 1.1–2)
  2. Regular Expressions and Languages (S 1.3–4)
  3. Context-free Grammars and Languages (S 2.1)
  4. Pushdown Automata (S 2.2–3)
  5. Turing Machines and Other Models of Computation (S 3.1–3)
  6. Uncomputable Problems (S 4.1–2; see also Shaffer §17.3.2)
  7. Complexity (S 7.1–4; see also Shaffer ch. 17)
  8. Algorithm Analysis (Shaffer §2.4, chs. 3, 14)


Topics



Basics Of Counting


Topics
: Most of the “basics of counting” are covered in COSC 311, and so COSC 312 will cover the following:


Learning Outcomes

  1. Analyze a problem to create relevant recurrence equations or to identify important counting questions.


Algorithm Analysis


Topics


Learning Outcomes

  1. Explain the use of Big Oh, omega, and theta notation to describe the amount of work done by an algorithm.
  2. Use Big Oh, omega, and theta notation to give asymptotic upper, lower, and tight bounds on time and space complexity of algorithms.
  3. Determine the time and space complexity of simple algorithms.
  4. Deduce recurrence relations that describe the time complexity of recursively defined algorithms.


Basic Automata Theory


Topics
: Because there may be some uncertainty about how deeply topics in automata and computabilty theory should be covered, we have included the relevant sections from the Sipser text. Also some of the topics, denoted in italics, are optional and may be covered at the instructor’s discretion:


Learning Outcomes

  1. Design a finite state machine to accept a specified language
  2. Design a regular expression to formally specify a language
  3. Describe how finite state machines and regular expressions are related
  4. Design a pushdown automata to accept a specified language
  5. Design a context free grammar to formally specify a language
  6. Describe how pushdown automata and context free grammars are related
  7. Describe the difference between a finite state machine and a pushdown automata and describe why a pushdown automata can accept more languages than a finite state machine.


Computability


Topics
: Because there may be some uncertainty about how deeply topics in automata and computabilty theory should be covered, we have included the relevant sections from the Sipser text.


Learning Outcomes

  1. Describe a Turing machine and explain the significance of a Turing machine.
  2. Explain why a Turing machine is more powerful than a pushdown automata.
  3. Create simple programs using a Turing machine.
  4. Explain what it means for a function to be uncomputable.
  5. Describe the Church-Turing Thesis and explain its significance.
  6. Describe the halting problem and explain its significance.
  7. Provide a proof that the halting problem is undecidable.


Homework and Tests

Homework Assignments

  1. Due Jan 27: S (p. 83) Ex. 1.4 (c, f), 1.5 (c, f), 1.6 (e, i), 1.32.
  2. Due Feb 3: S Ex. 1.7 (c), 1.8 (a), 1.9 (a), 1.10 (a), 1.14 (b)*, 1.16 (b); extra credit: 1.15. 
    *Hint for 1.14b: Swap the accept and non-accept states of the NFA in 1.16a and show it doesn’t work (i.e., accept the complement of the original machine).
  3. Due Feb 10: S Ex. 1.18 (do for 1.6 e, i), 1.19 (b), 1.20 (b, h), 1.21 (b), 1.29 (b).
  4. Due Feb 20: S Ex. 2.1 (c, d), 2.4 (b, e), 2.9, 2.14, 2.16; extra credit: 2.6 (b). 
  5. Due Feb. 27: S Ex. 2.5 (for 2.4e), 2.7 (for 2.6d), 2.10, 2.11, 2.26.
  6. Due Mar. 5: S Ex. 3.1 (c, d), 3.2 (c, e), 3.6, 3.8 (c), 3.15b (Hint: Use a NTM).
  7. Due Mar. 16: S Ex. 4.2, 4.4, 4.12*, 4.15**.
    *Hint for 4.12: Re-express the subset condition as an empty language.
    **Hint for 4.15: Re-express the condition as the intersection of two regular languages.  
  8. Due Apr 4: S Ex. 7.1 (a, b, e, f), 7.6, 7.8.
  9. Due Apr 11: S Ex. 7.4, 7.9, 7.10*.
    *Hint: See Ex. 4.3 for ALLDFA.
  10. Due Apr 18: S Ex. 7.5, 7.7, 7.11; extra credit: 7.21. - New!

Tentative Test Schedule


Final Exam and Grading

SUBJECT TO CHANGE! It is anticipated that your grade will be 50% Homework + Tests and 50% Final Exam. However, if you are satisfied with your Homework + Test average, you will not have to take the final exam.

The Final Exam is 10:15 a.m. – 12:15 p.m. on Thursday, May 3. - New! The cumulative Final Exam will be two hours worth of questions similar in difficulty to those on the Tests.


For Students with Disabilities

The Office of Disability Services and the Campus Disability Monitors have asked us to pass this statement along in our syllabi:
Students who have a disability that require accommodation(s) should make an appointment with the Office of Disability Services (974-6087) to discuss their specific needs as well as schedule an appointment with me during my office hours.

Handouts



Return to MacLennan’s home page

Send mail to Bruce MacLennan / MacLennan@eecs.utk.edu

Valid HTML 4.01!This page is web.eecs.utk.edu/~mclennan/Classes/312
Last updated: 2012-04-20.