CS 3311
Formal Models of Computation
Fall 2017
MWF, 1:05pm - 1:55pm, Fisher 328
Course description:
Introduction to the theory of formal languages and computation.
Topics include regular languages and finite automata,
context free languages and push-down automata,
Turing-acceptable languages and Turing machines,
and the halting problem.
Proof techniques and their applications such as
parsing, are also treated.
Instructor
Dr. Nilufer Onder
Office: 309 Rekhi CS Hall
Phone: (906) 487 1641
Office Hours: I have office hours on Mondays and Wednesdays between
12:00pm-12:30pm and 2:00pm-2:30pm.
You are welcome to use the times I'm available: most times a short visit
is very helpful to clarify misconceptions.
I understand that the listed office hour times will not fit everybody's
schedule. Feel free to stop by or send e-mail for questions. If you'd
like you can set up an appointment by sending me an e-mail message. Make
sure that you include the times you can meet.
Textbook
|
Languages and Machines:
An Introduction to the Theory of Computer Science, Third Edition
by Thomas A. Sudkamp
Addison-Wesley Publishing Co., 2006
( Textbook web site )
|
I will follow the textbook closely and assign
exercises from it. However, I will type each assignment question fully.
I will also be handing out supplementary material if needed.
Grading
Assignments |
20% |
Midterm exam 1 |
20% |
Midterm exam 2 |
20% |
Midterm exam 3 |
20% |
Final exam |
20% |
You will get an assignment every Wednesday and it will be due the
following Wednesday.
There will be a total of 13 assignments. I will delete the three
assignments with
the lowest grades. Each of the remaining 10 assignments
is worth 2%. This adds up to 20%.
The assignments are the heart of this course and have contributed
to the success of many students.
They keep you in sync with the course material, therefore it is important that
you reserve time each week to study the material and do the
assignments.
I strongly recommend
against skipping assignments. Their individual point share is low but they give
you the experience in dealing with a variety of problems.
There might be times where you are not able to complete the
assignment fully by the due date. This is understandable, and
dropping the two assignments with the lowest
grades prevents a low grade from affecting your grade.
Always turn in what you have by the due date. For your learning, make sure to complete
the assignment without looking at the answers as soon as possible.
The final grade will be calculated using a sliding scale using the
percentages above. The lowest grade you will get is as follows:
93-100 A
88-92 AB
82-87 B
76-81 BC
70-75 C
65-69 CD
60-64 D
00-59 F
Course topics
The following are the topics that will be covered this semester:
Topic |
Sections from the textbook |
Mathematical preliminaries |
1.1 - 1.8 |
Languages |
2.1 - 2.4 |
Context-free grammars |
3.1 - 3.6 |
Normal forms |
4.1 - 4.8 |
LL(1) grammars and top-down parsing |
18.1 - 18.2, 19.1 - 19.6 |
Finite Automata |
5.1 - 5.7, 6.1 |
Properties of Regular Languages |
6.2 - 6.6 |
Pushdown Automata |
7.1 |
Turing Machines |
8.1, 8.2, 8.7, 9.1, 9.2 |
Decidability, undecidability |
11.1 - 11.5, 12.1 - 12.3 |
Formal specification of floating point numbers and accuracy |
Supplemental material is provided |
Class recordings:
I've signed up once again to have all the lectures recorded. My
students consistently comment that the recordings are a great convenience when they
would like to review material or occasionally miss a class. The wall
camera is not able to focus on the white board, therefore I write on
paper on the document camera. The link to each day's Panopto recording is
automatically posted on Canvas.
It is very important to note that the recordings are not meant to
replace class attendance. This class was not designed as an online
course. Over the many years I've taught classes, I've observed that
skipping classes is detrimental to student success. You need to attend
classes because being there gives you a multidimensional experience, an
opportunity to ask questions and to see the big picture. It also gives
me
an opportunity to interact with you, assess your background, establish
relevance to other topics of interest to you, and adjust the pace of the
course. Another great advantage is that you get to know others in the
class, establish frienships, and get answers to quick questions.
You are expected to come to class regularly. Please see below for
further information.
Class attendance:
You are expected to attend all classes.
Please send me an e-mail message if you know that you are going to
miss a class or if you have missed a class due to unforeseen
circumstances. Please put "[CS3311]" in the
subject line. I will give you a quick
update on what has been covered and what is due.
Assignments---information and policy:
All the assigments should be uploaded to Canvas at or before the
beginning
of class on the due date (Wednesday at 1:05pm).
Late submissions
are not accepted because I will distribute the solutions at the
beginning of class.
The assignments should be typed using a word processor. Pictures or
scans of handwritten answers are not acceptable.
If you desire to write programs to test any of
the ideas, you are welcome to do so, but there is no such requirement.
While discussion with others is permitted and encouraged, the final
work should be done individually. You are not allowed to work in
groups for any of the assignments. If someone asks for help on a
question,
you are
encouraged to discuss the general concepts but you are not allowed to
show them your work.
The answers, comments, and programs (if any) must be the original work
of the author.
You are allowed to build on material supplied in the class. If you
use any other source, you should specify it on your assignment.
You may use it by clearly acknowledging the source and its contribution
to your work. For instance, "I found an answer to a similar question at
http://www.xxx.yyy and
used it to write my answer."
Copying, plagiarism, unauthorized collaboration, and the like are not
acceptable and will be reported to the Dean of Students' office.
Please see the "Academic Integrity" paragraph below.
Exams---information and policy:
The midterm exams will be held on Thursdays between 6:00pm-7:30pm.
We will have class before and after the exam days. I will return
these exam day classes to you at other times.
The exam dates are the following:
-
Exam 1, part 1:
Thursday, September 21, 2017, 6:00pm-7:30pm (week 3, before Career Fair week)
-
Exam 1, part 2:
Thursday, October 5, 2017, 6:00pm-7:30pm (week 5, after Career Fair week)
-
Exam 2:
Thursday, October 26, 2017, 6:00pm-7:30pm (week 8),
-
Exam 3:
Thursday, November 16, 2017, 6:00pm-7:30pm (week 11, before Thanksgiving Break).
-
Exam 4:
During Final Exam Week.
These will be
1.5-hour, in-class, closed books/notes/workstations/neighbors,
open minds exams. The final exam's format will be similar, but it will
be a two hour exam.
If you have conflicts with the exams on Thursdays please send me a
message with the course and exam number in the subject line, e.g.,
"CS3311 exam 1 conflict".
The exams, including the final exam, are not cumulative.
However, the topics build on each
other. Even though there will not be direct questions related to prior
topics, you are expected to remember the main concepts throughout the
semester.
There will be no make-up exams. In the case of very unusual circumstances
(e.g., death in the family, severe illness with doctor's written note),
please come to see me and we can work something out.
As with the assignments, it is your responsibility to return legible
answers. Unfortunately, I do not have the resources to decipher bad
handwriting and might have to assume that no answer was given.
Collaboration, dishonesty, and the like during the exams are
not acceptable and will
be turned in to the Dean of Students' office.
Please see the "Academic Integrity" paragraph below.
Academic Integrity:
If copying, plagiarism, or unauthorized collaboration is suspected, the
case will be turned to the Dean of Students' office with supporting
evidence. After this, the decision is made by the Dean. The procedure is
explained in the
Office of Academic and Community Conduct web pages
(this is required reading!).
More tips and information can be found at
the
Dean of Students' page and the
MTU
Senate page.
Note that we have a departmental policy of reporting the suspected cases
to the Department Chair's office.
University policies:
- Affirmative Action
(
MTU affirmative action site
)
- Disability Services
(
MTU disability information
)
If you have a disability that could affect your performance in this
class or that requires an accommodation under the Americans with
Disabilities Act, please see me as soon as possible so that we can make
appropriate arrangements. The Affirmative Action Office has asked that
you be made aware of the following:
Michigan Tech complies with all federal and state laws and regulations
regarding discrimination, including the Americans with Disabilities Act
of 1990. If you have a disability and need a reasonable accommodation
for equal access to education or services at Michigan Tech, please call
the Dean of Students Office, at 487-2212. For other concerns about
discrimination, you may contact your advisor, department head or the
Affirmative Action Office, at 487-3310.
- Equal Opportunity Statement
(
Board of Control Policy
)
Required Background
I assume that you are familiar with the basic concepts such as sets, functions,
relations, and formal proofs. We will review those topics thoroughly in
Chapter 1 and then move on to the main course topics.