
|
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 |
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:
Automata Theory, Languages, and Computation 3rd Edition by John Hopcroft, Rajeev Motwani, and Jeffrey Ullman.
|
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
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