208: Grammars, Languages, and Automata
(as of January 15, 2017)
McElfresh (pronounced mac' - el- fresh)
(checked more frequently) or mcelfreshsa @ longwood.edu
- Th 2-3:30pm
- or when I am in my office with the door open
- or by appointment
Other times may be announced in class or on the website.
Course Web Page:
of the handouts in this course will be available through this World
Wide Web address.
Canvas will be used for
submission of some assignments and recording of grades on individual
assessments. NOTE: Canvas does not always
calculate course grades correctly. The relative weights are
in this syllabus.
The basic theories
underlying computer science, including the development of theoretical
machine and language descriptions.
From the Catalog:
"This introduces topics in theoretical computer science including
formal languages, grammars, and computability, which form the basis for
analysis of programs and computation. These tools are then used to
explore several modern programming languages and survey the major
programming paradigms. Prerequisite: CMSC 162, MATH 175. 3 credits."
At the end of the course, a successful
student will be able to:
- Write and
interpret mathematically valid proofs, including induction proofs.
- Construct and
manipulate automata and regular expressions that accept specific
- Identify the
differences between languages that can be described by various
grammars, automata and Turing machines.
- Identify some
differences between various programming languages.
- Explain the nature
and significance of NP-completeness.
Textbooks: There is one required textbook
for the course.
Class Participation and Preparedness:
Languages & Automata, 5th edition, by
(should be available in the
or later editions will be okay for the readings, but exercises may
You will need to have access to the 5th edition for exercises.
book comes packaged witha CD-ROM containing software that we will use.
Used copies are unlikely to have the CD, but that
the software is free elsewhere. In other words,
welcome to try saving money with a used book.
A portion of the
grade is allocated to your participation in class and your preparedness
for the class period. Preparedness involves having done
readings and made effort on assigned problems.
Participation includes attendance, participation in group discussions,
and presenting your efforts and ideas to your peers.
This class will have a variety of
including reading assignments, written exercises, and programming
exercises. Due to the varying nature, some graded work will
worth more than other work. Each assignment will
the weight on the assignment. Note that some
will not be "graded" but will be "checked". See
above on Class Participation and Preparedness.
Each exercise will give not only a due date, but a due time.
Some exercises may be gone over in class, so you will need permission
to hand in asisgnments late. If I agree to accept an
assignment late, there may be a 50% penalty.
Unless otherwise specified, all work is assumed to be your
are encouraged to discuss the exercises with other students, but you
write up your own solutions. When using a calculator or
you are expected to type everything in yourself. When you
with other students, you must indicate this on your submission - by
a note at the top or bottom indicating with whom you consulted and a
of the level of consultation.
computer programming, you will often be utilizing someone else's ideas
or code and modifying them to be your own. In this case, you
fully document this in the program comments as well as any other
documentation. For some guidelines, see the Academic
Honesty in Computer Programming handout.
There will be quizzes
throughout the semester. These will typically take
the form of
short (5-15 minutes) sets of questions. There will be no
given. If more than 5 quizzes are given,
two quiz scores for each student will not be calculated into the course
There will be in-class exams given on the following
- Wednesday, February 22
- Friday, April 7
There will be no makeup exams given without proper medical
be a comprehensive
written exam. More details on this will be
announced as the time
- Friday, May 5, 11:30am-2pm
relative weight of each item in determining
your course grade will be as follows:
|In-class exam 1:
||Course Grades will be assigned as
+'s will be assigned in the top 2 percentange points of the range.
|90 - 100
|80 - 89.9
|B-, B, B+
|70 - 79.9
|C-, C, C+
|60 - 69.9
|D-, D, D+
| 0 -
-'s will be assigned in the bottom 3 percentange points of the
Longwood University is an academic community that
subscribes to an honor system.
By accepting membership in this community, we all assume the obligation
to be trustworthy in all pursuits. Violations may receive
grade penalties in the course and be referred
the Honor Board, which may impose additional penalties.
Tentative Topic outline:
||Jan 18 - 20
|| Introduction; Languages
as syntax; grammars; Logic
||Jan 23 - 27
||Jan 30 - Feb 3
|| Induction; Recursion
||Feb 6 - 10
|| Languages as sets;
||Feb 13 - 17
|| Accepting languages;
||Feb 20 - 24
||Feb 27 - Mar 3
|| Pumping Lemma
||Mar 6 - 10
||Mar 13 - 17
|| Context Free Grammars;
||Mar 20 - 24
|| Parsing' Relating syntax
||Mar 27 - 31
|| Language translation;
||Apr 3 - Apr 7
|| Decidability; Turing
||Apr 10 - 14
||Turing Machines; Exam
||Apr 17 - 21
||Apr 24 - 28
and May 1
A detailed day by day calendar will be kept up-to-date on the course