Course Syllabus
CS 315 – Automata Theory
Dept. of Electrical Engineering and Computer Science
Northern Arizona University
FALL 2014
Time and location: T-TH 12:45-2:00 (3 credit hours), Rm. 321, Engineering (Bldg 69)
Course Website: http://www.cefns.nau.edu/~edo/Classes/CS315_WWW/index.html
Course PreRequisite: MAT226
(Discrete Mathematics)
Textbook (Required): |
Languages and machines: an introduction to the theory
of computer science, Author: Sudkamp, Thomas
A. Publisher: Addison-Wesley |
Course Description: Exploration of finite
and infinite models of computation ranging from Finite Automata to Turing machines.
Course Objectives: Upon
completion of this course, students will have a deep understanding of computation on an abstract symbolic level. Specifically, they will understand the three basic classes of theoretical symbolic complexity, have a strong grasp of analytic models applicable to each class, and be able to apply this apply these models to determine class membership of arbitrary symbolic languages.
ABET Learning Outcomes: This course directly supports the following Program Learning Outcome of the CS program assessment and improvement plan.:
- 2.1 -- Ability to apply foundational theoretical concepts and skills related to algorithms and programs, including underlying knowledge of mathematics. Provides comprehensive review of abstract machine models of computation, language complexity theory, recursive computational thinking, and formal proof procedures.
Instructor: Dr. Eck Doerry
Office and email: Rm 259, Engineering (Bldg 69), Eck.Doerry@nau.edu
Office
hours: |
14:00-15:00 TTH |
Although you should try hard to make it to
scheduled office hours, I am also available at other times by appointment.
To schedule, see me before or after class or send email. Aside from scheduling
meetings, email is appropriate for short questions only ; longer
discussions should be handled in person. If my office door is open or cracked
outside of office hours, feel free to knock - I may be available (no guarantees).
I enjoy talking to and helping students, so if you are having problems please
find some way to let me know as soon as you can.
Course Stucture and Evaluation Methods
Course Coverage:
Weeks |
Topic(s) |
Readings |
1-2 |
Math.
Preliminaries and Languages |
Ch.
1 & 2 |
3-5 |
Finite
Automata; Regular languages and Sets |
Ch.
5& 6 |
|
Exam 1 (exact material and date TBD depending on lecture progress) |
|
6-8 |
Context-free
grammars; Normal forms |
Ch.
3 & 4 |
9-11 |
Pushdown
automata and CFL |
Ch.
7 |
|
Exam 2 (exact material and date TBD depending on lecture progress) |
|
12-14 |
Turing
machines |
Ch.
8 |
Quizzes and Homeworks: There will be homeworks and quizzes during the semester
to test your comprehension and give you a chance to practice the analytic
skills we learn. Homeworks will usually be assigned weekly. Quizzes are usually are in the form of small in-class exercises, one-question tests, and other activities that I may include to keep students engaged and thinking along. Be sure to keep up on your reading and come to class ready to think!
Class participation: This
class is not some sort of surreal dream that you sit and let wash over your
senses. The concepts we will cover are challenging, but will be infinitely
easier to master if you actively participate in the course. Thus, interaction
-- both with the instructor and with other students -- is crucial for understanding
and integrating the ideas presented in lecture. To emphasize this, a few
(possibly crucial) points are set aside to reward students who take an active
role in the class.
Exams: There will be two exams during the semester and one
final exam. The exams allow you to explore the extent to which you have mastered
the concepts presented in class.
Grading: The grading scheme for the course is as follows:
2 exams = 40%
Homeworks and Quizzes= 30%
Final
exam = 25%
Participation=5%
Grading Scale: 90-100% = A, 80-89% = B, 68-79% = C, 55-67% = D,
under 55% = F |
Simply providing some solution that is mostly correct is enough to
earn a "C". To get an "A" or a "B" you must
show exceptional (i.e. above average or outstanding, respectively) mastery of the material, as evidenced by correctness, clear presentation of the solution, and (correct) creativity or elegance of solution.
Course Policies
- Attendance:
- Attendance is required. You are responsible for all
material covered during the lectures whether you attend or not. If you
must miss a class, be sure to get the notes from another student. Late arrivals are very disruptive and are not acceptable ---
plan to arrive five minutes before the start of class.
- Electronic Device usage:
- All cell phones, PDAs, music players and other electronic devices must be turned off (or in silent mode) during lecture, and may not be used at any time. Laptops are allowed for note-taking only during lectures; no surfing or other use is allowed. I devote 100% of my attention to providing a high quality lecture; please respect this by devoting 100% of your attention to listening and participating.
- Grade Challenges:
- Although I try hard to grade as accurately and fairly as I can, mistakes do occur. If you feel that I owe you some points, or would like to discuss an evaluation, I encourage you to stop by office hours. To avoid loss of context, any grade disputes must be brought to my attention no later than 5 business days after the assignment was returned.
- Late work:
- No late work will be accepted. Unless otherwise noted, all assigned work is due at the beginning of class on the date
they are due! Everybody has a bad week once in awhile -- illness, family problems,
etc. -- so to account for this in a fair way without interfering with the "no late work" policy, I will drop your lowest homework grade.
- Make-up Exams:
- No make-ups are given for homeworks. Make-up
exams will be given only in the case of a documented emergency or with
approval from me at least 24 hours prior to the exam. Make-up
exams may be different from and possibly more difficult than the original exam.
- Academic Dishonesty:
- Cheating will not be tolerated and
will result in immediate serious sanctions. Serious incidents of
academic dishonesty will also for brought to the attention of the university
and may result in expulsion. All work in this class is meant to be an
individual effort by the person receiving the grade. Any variation from
this is considered cheating and all parties involved (giving or receiving)
will be sanctioned.
University Policies and Resources
You should familiarize yourself with the following
university policies, which are available in hardcopy at the Engineering Front Desk downstairs:
- NAU Policy Statements. This course is subject to University policies on Safe Environment, Students With Disabilities, Academic Integrity, etc.
See: http://www4.nau.edu/avpaa/policy1.html
- NAU Classroom Management Statement (http://home.nau.edu/studentlife/handbook/appendix_f.asp)
- Building Evacuation Policy
- NAU Class Policy Statement (http://jan.ucc.nau.edu/academicadmin/policy1.html)
- Engineering Sciences Code of Ethics ( http://jan.ucc.nau.edu/~blutz/academic_affairs/Professional_Ethics-Code_of_Conduct.doc)
- Emergency Textbook Loan Program: To help students acquire the materials they need to be successful in class.
NAU has partnered with Follett to create the Emergency Textbook Loan program to assist students with unmet financial need in obtaining required textbook(s) and other materials for courses. Students must apply and meet eligibility criteria before textbooks are purchased on their behalf. Textbooks must be returned at the end of the term in which the textbooks were loaned. More information can be found online:
http://nau.edu/LEADS-Center/Textbook-Loan-Program/
- Free tutoring and academic support services: The Student Learning Centers, TRIO Outreach programs, and Educational Support Services main office are back in the University Union, second floor. Great place to get some help...or also a great place to meet others to study together.
Vital Skills and other Hints for success in CS315
- Be active, not passive.
- One of the skills you should
develop is an ability to read difficult material on your own - you will
exercise this skill in the present course. Try to read at least lightly
through the material in the assigned reading before the related lecture;
you should certainly review readings after lecture to be sure you understand
the material -- well enough to pass a quiz! You are expected to read
the material more thoroughly before (and preferably well before) any
exams. Also read introductory sections, summaries, and chapter notes,
and skim exercises and problems to gain an idea of what's going on and
where to find relevant text when get stuck on a problem.
- Strive for elegance.
- Those who have taken my
courses before know that I'm a big fan of elegant solutions. This goes
for algorithms and programming, but also (and maybe particularly) for
theoretical work. A presentation of cleanly-written, well-reasoned work
is almost half the battle; you will get some credit just for convincing
me that you've given the problem careful thought, even if your answer
is incomplete in the end.
- Don't procrastinate.
- Don't delay working on homeworks until the last minute. Theoretical
thinking isn't something you get done in five minutes in the hallway before
class. Rather, it's something that needs to percolate: start right away
on the problem set and work until you're stumped...then let it percolate around
in your head for a bit while you tend to other things. Chat with some friends after class to get new inspiration. See how what we do in lecture moves it along. Often the next step
of the solution will hit you just before you drop off to sleep at night.