CS 315: Automata Theory
Home
Class Info
Assignments Content  

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

Evaluation:

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.