Prerequisites | Description | Text | Assignments | Grading
This course is an introduction to two kinds of formal systems: logics and languages. Each of these areas is crucial to a computer science education and each of them leads directly to important computing applications. Various systems of logic and automatic reasoning are currently used in artificial intelligence, database theory and software engineering. The study of formal languages underlies important aspects of compilers and other language processing systems, as well as the theory of computation. 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 in Prolog and Lex provide practical experience with some course issues.
The course text is called Logic and Language Models for Computer
Science , by Hamburger and Richards and published by Prentice Hall.
It should be available in the campus bookstore before classes start.
Week Chapters Topic ==== ======== ===== 1-2 2, 3 Introduction. Propositional Logic. Proofs. 3-4 4, 5 Predicate Logic. Logic applied to Mathematics. 5-6 Logic applied to Computer Science 7 - Prolog: A Logic Programming Language 6 - Proving Correctness of Programs. 7 ----- REVIEW & EXAM #1 ----- 8 8 Modeling Language 9-10 9 Diagrams, Automata, Equivalences and Limitations 11-12 10, 11 Representing Regular Languages; Lex 12 12 Context-Free Grammars and Applications 13 13 Pushdown Automata and Parsing Strategy 14 14 Turing Machines and Solvability
Homework and Quizzes 30% Programs 20% Midterm Exam 20% Final Exam 30%There will be two programming assignments, one in Lex and one in Prolog. Due dates will fall in the second half of the semester; each will allow two or three weeks.
Homework will be assigned and will be important for your understanding. Typically instead of having it graded, there will be a quiz on the same subject matter, on the day when the homework is to be completed. These quizzes may not be announced. The final will cover the whole course, but will emphasize the material studied after the midterm exam, for equal overall coverage.
All testing is closed book, but you may use one sheet of notes (both sides, 8.5 x 11 inches) on the midterm and two sheets on the final. 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. Creating these notes is part of the exam process and these rules about it are subject to the GMU Honor Code .
The programs in this course are assigned to you as an individual. You are encouraged to study with others and to assist each other in understanding the subject matter. You may also discuss problems and programs, but in the end, the work you submit must be your own. There is no point to submitting things you have copied and don't understand. Moreover, it is in violation of the GMU Honor Code and the Computer Science Department Honor Code Policy for Programming Projects to do so.
Submit work on the due date. If you must be away, but can email
your work to the TA in a form convenient for the TA, do so. If you
inform me beforehand that you will be late, it may possible to be
graded on the basis of full credit. Otherwise, lateness will be
penalized. Work will generally be collected at the start of class, so
please do not miss class or arrive very late on the day that
programs are due.