George Mason University
DEPARTMENT OF COMPUTER SCIENCE
CS330  Formal Methods and Models  Summer 2020
MTWR 4:30–6:35
Prerequisites  Description  Readings  Syllabus  Grading  Late  TA  Dates
7039931545 *
richards@gmu.edu
(Please prefix the subject of your email with CS330.)
Course office hours: by email or by appt.
Engineering Bldg 5320 *
PREREQUISITES :
CS211 and Math 125 (C or better in both).
DESCRIPTION :
This course is an introduction to two kinds of formal systems  languages and logics  with important applications to computer science. The study of formal languages underlies important aspects of compilers and other language processing systems, as well as the theory of computation. Various systems of logic and automatic reasoning are put to use in artificial intelligence, database theory and software engineering. The entire course will give you practice in precise thinking and proof methods that play a role in the analysis of algorithms. The programming assignments provide practical experience with some theoretical topics.
OUTCOMES :
Will understand the concepts and relevance of logic, formal languages and automata theory, and computability .
Will be able to able to do mechanical formal proofs, program correctness proofs and solve problems in firstorder logic.
Will be able to solve problems in elementary machine models: designing finitestate, pushdown and Turing machines.
Will be able to solve problems in formal languages: writing regular expressions, regular grammars, and contextfree grammars.
READINGS:
SYLLABUS:
Day (in June) 
Lecture 
Homework answers 
Quiz 
1 
Hello, Chap1 


2 
Chap 2 


3 
Chap 3 
Chap 2 

4 
Chap 4 
Chap 3 
Chap 2 
8 
Chap 5 a 
Chap 4 
Chap 3 
9 
Chap 5 b 
Chap 5 a 
Chap 4 
10 
Chap 6 
Chap 5 b 
Chap 5 a 
11 

Chap 6 
Chap 5 b 
15 
Chap 7 

Chap 6 
16 Midterm 



17 
Chap 8 a 


18 

Chap 8 a 

22 
Chap 8b 

Chap 8 a 
23 
Chap 9 a 
Chap 8 b 

24 
Chap 9 b 
Chap 9 a 
Chap 8 b 
25 
Chap 10 
Chap 9 b 
Chap 9 a 
29 
Chap 11 
Chap 10 
Chap 9 b 
30 

Chap 11 
Chap 10 
July 1 
Chap 12 

Chap 11 
GRADING :
j
Quizzes  30%
Exams  70%
The two exams each cover about a half of the semester; Exam #2 is not cumulative.
Of these exams the highest score will count 40%, and the lowest 30%.
Tentatively Exam #1 will be June 16. Exam #2 will be July 3 (at the official final exam time)
Homework is ungraded.
Quizzes will test homework.
The lowest quiz grades will be dropped (best 10).
This semester there will be no programming assignment!
All testing is closed book, but limited notes are permitted for exams (but not for quizzes), as follows. One sheet of notes
(8.5 by 11 inches, 1 side only). NO COPYING is allowed. That means no photocopying of anything, even the textbook,
though you may write out material from it verbatim. It also means no copying of anyone else's notes, even by hand.
You may use a computer for editing your own notes. The sheet must be turned in with your exam.
Violations of these rules for creating the notes is considered a violation of the Honor Code.
SEEING ADVISOR:
It is a departmental requirement that every CS major must see their academic advisor twice, once while enrolled in CS101 and in CS330.
Normally the message is: If you do not do this you will receive an incomplete in CS330.
That is NOT true this summer. However the Department Accreditation process will still expect it, so you will probably be contacted in Fall to do it. So it makes sense to try to do in this summer.
What do you need to do? You should print out the department’s form (cs.gmu.edu/resources/ student.forms), FILL OUT the form, and send to your advisor. Turn in the signed form, or your advisor can just send me email indicating it was approved.
Your advisor may “see” you or correspond by email.
You and your advisor should discuss your degree progress and anticipate any reason your plan of study would be problematic. Of course you may have other questions.
TA: Negar Nejatishahidin., nnejatis@masonlive.gmu.edu; hours TBA