CS 3100 -- Models of Computation -- Fall 2010
Table of Contents
1 Update history
- Updated the syllabus till Midterm-2
- Added asg4soln.pdf
against L11 of 9/28.
- Added, against L14 below,
BookExcerpts (cs3100Excerpts.pdf) for your better
understanding of many topics. For more, you'll have to buy/borrow a copy
of this book.
- Added, against L14 below,
DrSlindNotes (exquisite notes thanks to Dr. Konrad Slind)
- Put up, against L14 below, all the JFLAP files illustrated in class
2 General Course Info
-
Class Website: http://www.eng.utah.edu/~cs3100
- Class Room: WEB L 101
- Lecture Hours: TH 10:45 to 12:05
- Instructor: Ganesh Gopalakrishnan
- Instructor Email: teach-cs3100@list.eng.utah.edu
- Instructor Office Hours: Mon : 11:00am to 12:15pm
and Tue : 12:30pm to 2:00pm
- Instructor Office Location: 3428 MEB
- TAs: Shruthi Sreenivasan (full TA) and
Preethi Kotari (half TA)
- TA Emails: teach-cs3100@list.eng.utah.edu
- TA Office Hours:
-
Shruthi:
-
M : 10:00am to 12:00pm
- W : 10:00am to 11:30am
- Preethi:
- TA Office Location: 3115 MEB
3 FAQs
(faq URL) -- (faq.pdf)
4 HANDOUTS AND WEEKLY SCHEDULE
You are required to read the indicated chapters ahead of time, at least cursorily, to get
an idea of what will be covered.
- Week1
- Week2
- Week3
- Week4
- Week5
-
9/21 L9: Slack, review for midterm exam #1
- 9/23 L10: MIDTERM EXAM #1
-- mt1soln
- Week6
- Week7
- Week8
- Week9
-
10/26 L17: Ch 11, Turing machines
- 10/28 L18: Ch 12, Variation of TMs
- Week10
-
11/2 L19: Ch 13, RE, Recursive
- 11/4 L20: Ch 14, Diagonalization, Halting Problem
- Week11
-
11/9 L21: Lecture on compiler front-ends by my RAs
- 11/11 L22: Review for Midterm Exam #2
- Week12
-
11/16 L23: MIDTERM EXAM #2 : Invigilation by TA(s)
- 11/18 L24: Ch 15, Undecidability reductions
- Week13
-
11/23 L25: Undecidability
- 11/25 No class (Thanksgiving break)
- Week14
-
11/30 L26: Ch 15, NP-completeness
- 12/2 L27: Ch 17, NP-completeness
- Week15
-
12/7 L29: Review
- 12/9 L30 (Last lecture): Review
- 12/10 Classes end
- 12/16 FINAL EXAM - 10:30 to 12:30 in class
5 HANDIN Info
To hand-in assignments electronically use the 'handin' utility
available in the CADE lab. To hand-in assignment one, type:
handin cs3100 asg1 <file>
where <file> is the actual assignment file. Typing handin cs3100
will list the assignments available for hand-in (currently only asg1).
WebHandin can also be used: See
https://webhandin.eng.utah.edu/
6 JFLAP Info
JFLAP is a free tool for experimenting with FA's. Download at:
http://www.cs.duke.edu/csed/jflap/
To run the jar file on linux from a shell type: java -jar JFLAP.jar
JFLAP is also available on CADE in /home/cs3100/jflap/bin/jflap. To
use it put the directory /home/cs3100/jflap/bin in your path
(see
http://www.cade.utah.edu/index.php?module=faq&FAQ_op=view&FAQ_id=21
for info on how to do that).
Alternately, type cs3100/jflap/bin/jflap. To be able to use JFLAP on CADE
remotely connect with 'ssh -Y' (don't use the -X flag, it won't work
well). Even so, it will be slow due to network delays. Your best bet
is to be at the CADE lab or download your own JFLAP copy.
Other ways to connect remotely:
http://www.cade.utah.edu/index.php?module=faq&FAQ_op=viewFAQs&FAQ_cat=12
.
Let us know if you have any questions about JFLAP.
7 Book
Required Textbook: ``Introducing the Theory of Computation,'' by Wayne Goddard, Jones and Bartlett, 2008
8 Learning Goals
This class is about the fundamental capabilities and ultimate limitations
of computing devices (as described on Page 1 of our textbook by Goddard).
It is designed to give you an appreciation for what computing devices can
and cannot do.
For a computer science student,
knowing these absolute limits is as important as knowing the velocity of
light or the lowest possible temperature is for a Physics student.
Making a light source brighter does not alter the fundamental limit
of the speed of light any more than
providing more memory or providing more CPUs alters the power of a
computer.
That said, there are distinct classes of computational devices
that differ only in terms of their discipline of memory access.
We shall study the following amazing facts in this course:
-
A computational device built using a finite-state control mechanism and
two stacks (or finite-state control plus an infinite tape) models
all ``real-world computers.'' It is called a Turing machine.
- Providing more stacks (than two) does not serve any useful purpose in terms
of increasing the computational power!
- A computational device built a using finite-state control mechanism and
one stack is strictly less powerful. It is called a Pushdown automaton (PDA).
- A computational device built solely in terms of a finite-state control
mechanism (``zero stacks'') is the most primitive form of a ``computer.''
It is called a Finite Automaton (FA).
We will be studying the types of tasks that these varieties of computers can carry out and what they cannot.
8.1 A real-world Turing machine
Lest you think that these machines are figments of one's imagination,
a Turing machine can really be built! See
http://www.parallax.com/tabid/854/Default.aspx.
Of course, you may prefer to use a real laptop or desktop machine
instead of this computer---although they are strictly equal in power!
Unfortunately,
we will not be constructing such computers in this class (!).
Rather we will take a
standard computer (equivalent to a Turing machine) and program it
to follow the rules of finite-state or pushdown computers.
8.2 Computability and complexity
After appreciating the main characteristics of the three basic machine types,1we will be focusing our attention
on two ideas; namely, computability, and complexity.
-
Computability:
- What can Turing machines solve and
what can they not solve?
- Complexity:
- How do we formally understand
the class of ``solvable but hard'' problems called NP-hard and
NP-complete problems? What do these problems tell about the
design of algorithms for many important real-world problems?
While we won't study the topic of complexity a whole lot, the similarity of approaches to
formalizing
computability and complexity would serve as another affirmation that there is something
fundamentally elegant about Turing machines.
8.3 How should you approach the subject?
In order to understand these ideas concretely, we must
use the tools of Discrete Mathematics that you have studied
in CS 2100 (or an equivalent class).
We must learn to patiently construct mathematical proofs, and
learn how to avoid flawed arguments---all reinforced by our assignments
and exams (more on them later).
This will be of primary emphasis throughout this course.
Of course, we shall employ liberal doses of real-world examples
and light-hearted analogies whenever possible.
It is quite easy to get discouraged by the ``pain of having to
learn math.''
My advice is this:
-
Begin working on your homeworks early! If you put off asking questions
till the penultimate day, you will have a very unpleasant experience
solving the assigned problems. Questions asked early will make it to our FAQ list also (see below).
- Please check our FAQ list often! Our FAQ list will evolve rapidly in
response to your early questions. We will try to freeze the FAQ list during the days leading
up to the deadline.
- Check email, and ask questions in class and during the TA hours! Please take advantage of our
office hours. Please also check email frequently. You may wish to keep a separate folder for
all CS 3100 related emails (or else you will end up complaining about apparent email volume).
- We are really keen on helping you! So please do ask questions in class or during office hours!
- That said, we have very busy professional lives besides CS 3100. So consultations outside of class
or office hours will be through email, but that too depending on how much time we have to process email
and how much our hands can type in a day (i.e., early questions will tend to receive more attention).
9 Email
Our primary mode of communication with you is through email.
Your email is supposed to be automatically included in cs3100@eng.utah.edu.
The TAs will be sending a few test messages on the first day of classes.
IT IS YOUR RESPONSIBILITY TO LET US KNOW
by August 26th (second lecture)
IN CASE YOU DID NOT RECEIVE THESE MESSAGES.
10 Grading
This class will have two midterm exams and a final exam---all closed book.
The weightages are:
-
Assignments: 30% (all assignments weighed equally)
- MIDTERM EXAM #1 and MIDTERM EXAM #2: 40% (20 % each)
- FINAL EXAM: 30%
The midterms will emphasize portions covered since the previous
midterm (or the beginning of the course, in case of the first midterm).
The final exam will emphasize portions covered after the second midterm.
The final exam will also include higher level questions
covering the whole course.
10.1 EXAM SCHEDULES
The exams will be on the following dates:
-
MIDTERM EXAM #1:
- 9/23 During class time -- subject to change with sufficient
notice
- MIDTERM EXAM #2:
- 11/16 During class time -- subject to change with sufficient
notice
- FINAL EXAM:
- 12/16 in class
10:30 to 12:30, as per http://www.sa.utah.edu/regist/calendar/finals/finExamSch.htm
10.2 Final Grade Calculation
After determining your individual scores, we will divide the class scores into percentile groups.
Here is how the final grades will be assigned:
90th percentile and above : A;
83-89 : A-;
78-82 : B+;
75-77 : B;
72-74 : B-;
68-71 : C+;
65-67 : C;
62-64 : C-;
58-61 : D+;
55-57 : D;
52-54 : D-; and
Below 52 : E.
10.3 Grade Lookup
The TAs will be assigning you a pass-code using which you can look up your grades.
They will be sending you a website URL at which the grades will be available for lookup.
10.4 Assignment and Lecture Notes Postings
Assignments will be posted pretty much every week on Tuesdays (with exceptions that will be
announced).
You will see the assignment on the class webpage by Tuesday midnight (sometimes earlier).
We will not be handing out hardcopy assignments in class.
All assignments will be due in a week (i.e., Tuesday, by 10:30am (15 minutes before the lecture begins), unless otherwise indicated.
All lecture handouts and supplementary material will similarly appear online on the day
of the lecture (with the exception
perhaps on Lecture 1) and won't be distributed in hardcopy form.
10.5 How to submit?
Because of the very high overhead of typesetting your solutions,
we strongly encourage handwritten
solutions
(so that you can focus most of your time on solving rather than typesetting).
Please drop off all assignment submissions
by 10:35am of the due date---that is 10 minutes before the lecture begins.
We will not accept assignments in class. The drop box is located near
the School of Computing office, Room 3190 MEB.
This is near the staircase that leads to the 3rd floor in the Merrill
Engineering Building's North-West corner.
If you insist on typesetting,
please make sure that the work is neat; we will not accept poorly typeset
documents.
You may submit these beautifully typeset documents through
handin (instructions to do so will be mailed to you by the TAs).
If you hand-wrote an assignment but for some reason cannot
come to class
-
Submit a scanned copy using handin
- Within two days, drop off the original handwritten work
10.6 LATE POLICY
-
One minute to one day late : 20% off
- Late beyond a day but less than two days : 40% off
- Not accepted more than two days late
11 Please Solve Assignments Yourselves!
We encourage high-level discussions amongst yourselves.
However, discussing specific details pertaining to a problem constitutes cheating.
We will have a zero-tolerance cheating policy enforcement amounting to failure
in the course and referral to suitable authorities concerned with cheating.
Allowing your work to be copied also constitutes cheating.
Since automata theory is taught universally and the number of favorite problems tends to be
rather small, it is also possible to accidentally ``stumble into previous solutions.''
Even literally copying these solutions constitutes cheating.
To earn points for your solutions, therefore, you must provide at least a few steps leading to the final
answer.
We don't want verbose documentation---but we can't accept cryptic answers without even one or two
justifying sentences either.
12 Students with Disabilities
Reasonable accommodation will gladly be provided to the known disabilities of students in the class.
Please let the instructor know the situation as soon as possible.
If you wish to qualify for exemptions under the Americans with Disabilities Act (ADA), you should also
notify the Center for Disabled Students Services, 160 Union Building.
13 Class Etiquette
To prevent disruption of class and to have an engaged class
that is fully caught up,
please try to follow these guidelines:
-
Please do not leave the class in the middle
(except for bio breaks and other obvious
reasons---if you came back later, I'm fine).
Why don't you tell me beforehand that you may want to leave early?
- Please
be regular to class. I'll see
who is around during problem solving sessions and through
other means.
You may receive a note or a lower grade if you are found missing
frequently without informing me.
- 1
- Linear Bounded Automata are like TMs except they allow only the input to be
``stomped over''---that is, overwritten. The rest of the tape is read-only. TMs can read/write
anywhere. LBA are between PDAs and TMs in power.
This document was translated from LATEX by
HEVEA.