Computer Science 361 - Introduction to the Theory of Computation

Spring 2012

Class Meeting Time:

Tues & Thurs 9:15pm – 10:30pm 

Class Location:

MEC 114

Instr. Phone:

ext 5768

Instr. Office:

MEC 302e

Email:

Given in class

Office Hours:

10:30-11:30am Tues, Thurs

 

Course Description

Required Text

Course Outline

 

Instructions on how to turn stuff in



Homework assignments by chapter
Lecture notes

Course Description:

COMPSCI 361-561 INTRODUCTION TO THE THEORY OF COMPUTATION (3-0-3)(F). Grammars, automata, Turing machines, decidability and complexity, language hierarchies, normal forms, NP completeness and reducibilities. Applications will be drawnfrom various areas of computer science. PREREQ: COMPSCI 342.

In this course we address the following fundamental question in the field of computer science: "What can be (efficiently) computed?" In doing this there are 3 central categories in the Theory of Computation that we explore in this course: Automata Theory,  Decidability Theory and Complexity Theory.

Automata theory- to be able to answer the question "What can we compute?" we have to be precise about what we mean by computation, so the course starts with an introduction to several computational models, in particular, finite state machines, pushdown automata, and Turing machines.

Decidability Theory explores the most elementary questions about computation. Questions like "What is computation ?" and "What problems can and can not be solved by a computer ?"  These are very interesting questions which are independent of the type of computer and the skill of the computer programmer. For those working in the field of computer science, having a basic understanding of the capabilities and limitations of a computer is necessary.

Complexity Theory explores the amount of resources (time, memory) which are required by particular algorithms and by particular classes of problems for a given computational model. The ability to analyze an algorithm and determine its resource usage is an extremely important and necessary skill in the field of computer science.


Class Objectives

After taking this class students will be able to:

 

Required Text:

Automata Theory, Languages, and Computation 3rd Edition by John Hopcroft, Rajeev Motwani, and Jeffrey Ullman.


Course Outline:

Subject

Chapters

Date

Math preliminaries

1

1 week

Finite Automata, Regular Expressions, and Languages

2, 3.1, 3.2, 4

3 weeks

Context Free Languages adn Pushdown Automata

5, 6, 7

4 weeks

Turing Machines

8

2 weeks

Decidability & Reductions

9.1, 9.2, 9.3

2 weeks

NP-Completeness

10

2 weeks


Homework:

Homework will be assigned for each chapter.   Since homework solutions will be posted after the assignment is due no late homework will be accepted. You should not wait until we have finished discussing the chapter before beginning the homework, but should begin working on the homework problems as soon as they are assigned.

Students are encouraged to study together and discuss the homework problems. However, each person must turn in his/her own solutions.  Blatant copying will NOT be tolerated.
 

While you are encouraged to work together, you are not allowed to search the internet or look at any other source for homework solutions. Anyone caught copying HW answers from outside sources will receive a failing grade in the course.
 

Homework will be graded on clarity, conciseness, correctness, etc. While every homework will receive a grade Not all assigned problems will necessarily be graded. I may select a few problems from each homework to grade, and your homework grade will be based on this.
 

On occasion, I might select a few individuals' answers (both good and bad) to the homework problems to go over in class. The names of the individuals will be kept confidential.
 

Assignments MUST be in a digitized format, and should be something I can easily edit and insert comments into. Extremely poorly written homework will receive 0 points. If for some reason I have trouble reading whatever file format you choose, I'll notify you and you will be required to turn it in in a format I can deal with. You must submit completed homework electronically via the submit command on Onyx
 

Each homework will be graded on a scale of 1 to 5.  The scale has the following meaning: 

1.      You missed a majority of the problems or did not do some of the assignment.  This score is for poor quality work.

2.      You got a few things right but missed several problems, or your answers in general were not well written. This score is for below par work.

3.      You did well on most of the problems but had trouble with 1 or 2..  This represents a reasonable score and is for good quality work.   

4.      You did very well on the problems and only missed a few, mostly minor, things.  This score is for very good quality work.

5.      You did very well on all of the problems and didn't miss anything.  This score is for excellent quality work.

You should average at least a 3 on your homework assignments.  If you do not average at least a 3 on your homework assignments then you will be looked on with a jaundiced eye when it comes time to assign you a final grade at the end of the semester (In other words you may drop 1 full grade, say from a B to a C for example, if I feel your effort on homework justifies it).  The homework will be worth 25% of the final grade. 


Exams and quizzes:

We will have two midterms and a final. The final will be comprehensive, but will focus on chapters material not covered on the midterm. The exams are open book. Obviously, you may not work together on exams.


Grades (approx. percentages):

Homework, Programs  25 %
2 Midterms:      40 %
Final:            35 %

Grade ranges
100-90:   A
90-80:     B
80-70:     C
70-60:     D