CS 7220

Computability and Complexity

Syllabus: Spring 2015

 

 

Time:   5:00-6:20 Tuesday, Thursday 

Room: 020 Rike Hall

Instructor: Professor Sudkamp

Office Hours: Immediately following class

              and by appointment

email: thomas.sudkamp@wright.edu

 

Study Table:    Mr. Ray Kulhanek

            8:00 – 9:30 Monday, Wednesday

152C Russ Engineering

 

The objective of this course is to establish basic properties of algorithmic computability and computational complexity. In particular, the relationship between complexity defined by Turing machines and that of `high-level' algorithmic systems will presented.  Upon completion of this course, students should be able to demonstrate mastery of the following topics:

 

CS 7220 Learning Outcomes

·         Demonstrate that problems are undecidable using problem reduction

·         Measure time and space complexity of algorithms and languages

·         Establish NP-completeness of problems

·         Understand implications of intractability

.

Completion of CS 3200 or an equivalent background is assumed prerequisite knowledge for this course. Students should be familiar with use of grammars to define the syntax of formal languages and acceptance of strings by finite state machines.

 

The chapters of the third edition of the text Languages and Machines: An Introduction to the Theory of Computer Science covered in this course are given below. The material on Turing machines and decidability may be review for some students and will be covered rapidly.  For students not familiar with these topics, attendance at the study tables is highly recommended. 

 

 

Topics:

 

Chapter 1.

1.1  Set Theory

1.4 Countable and Uncountable Sets

1.5 Diagonalization and Self-Reference

 

Chapter 8.

   8.1 The standard Turing machine 

   8.2 Turing machines as language acceptors

   8.6 Multi-tape machines

   8.7 Nondeterministic Turing machines

 

Chapter 11.

   11.1 Representation of Decision Problems

   11.2 Decision Problems and Recursive Languages

   11.3 Problem Reduction

   11.4 Church Turing Thesis

   11.5 A Universal Machine

 

Chapter 12.

   12.1 The Halting Problem for Turing Machine

   12.2 Problem Reduction and Undecidability

   12.3 Additional Halting Problem Reductions

 

Chapter 14. Time Complexity

  14.1 Measurement of Complexity

  14.2 Rates of Growth

  14.3 Time Complexity of a Turing Machine

  14.4 Complexity of Turing Machine Variations

  14.5 Linear Speed-Up

  14.6 Properties of Time Complexity of Languages

 

Chapter 15. P, NP, and Cook’s Theorem

  15.1 Time Complexity of Nondeterministic Turing Machines

  15.2 The Classes P and NP

  15.3 Problem Representation and Complexity

  15.4 Decision Problems and Complexity

  15.5 The Hamiltonian Circuit Problem

  15.6 P = NP?

  15.7 The Satisfiability Problem

 

Chapter 16. NP Complete Problems

  16.1 Reduction and NP-Complete Problems

  16.2 The 3-Satisfiability Problem

  16.3 Reductions from 3-Satisfiability

  16.4 Reduction and Subproblems

  15.5 Optimization Problems

 

Chapter 17 Space Complexity

  17.1 Derivative Complexity Classes

  17.2 Space Complexity

  17.3 Relations between Space and Time Complexity

  16.4 P-Space, NP-Space, and Savitch’s Theorem

 

Exams and Grades: Two midterm exams and a final exam will be given in this course.  The exams and assignments will have the following weight in the determination of the course grade:

 

   Midterm exams: 33%  of the grade for each exam

            Midterm dates: February 19, April 9     

   Final Exam: 34% of grade for the final

Final date: April 28

 

The Final Exam will be comprehensive and be given during the scheduled final period for the class: April 28th 5:45-7:45.   There will be no make-up exams other than for documented emergencies.  Be sure to arrange your schedule to be available for the exam periods. The exams will be open book: no electronic devises or other information permitted.

 

Homework consisting of reading assignments and problems will be given regularly.  Successful completion of these assignments will prepare you for the examinations.  Class time and study table will be used to discuss these problems.

 

Course grades will be determined by the following scale:

A: 100-90%

B: 89-80%

C: 79-70%

D: 69-60%

F: otherwise

 

There will be no curving with the exception of matching potential natural breaks in the distribution—but do not count on this.

 

Study Table: A study table will be held on Monday and Wednesday evenings.  This will be used to review material, collaborate on homework problems, and discuss the course content.  All students are encouraged to attend.

 

Office Hours: My office hours for the Spring semester are immediately after class on Tuesday and Thursday.  I will also be pleased to make appointments with you at other times if you need to see me but cannot make my office hours.

 

I can also be reached by email.  Email may be used to obtain the answers to simple questions, such as "what did we cover in class" or "what was today's homework assignment".  Email, however, is not a proper vehicle for obtaining help on the technical topics of the course.  Technical assistance needs to be given in a face-to-face manner so I can learn where you are having difficulties and then help you to overcome them.