CS1502 Formal methods in Computer Science, Spring 2007
Syllabus

Basic information

  • CS1502, Formal Methods in Computer Science
  • Lectures: CRN 11744: Tue, Thu 4:00-5:15pm, 5129 Sennott Square.
  • Recitations
    • CRN 11745: Wed 4:00-4:50pm, 6110 Sennott Square
    • CRN 12485: Fri 4:00-4:50pm, 6110 Sennott Square

o        Check it regularly for reading assignments and homework assignments.

  • Office hours: TBA

 

Textbook and Course pack

·         Language Proof and Logic (LPL) by Jon Barwise and John Etchemendy.  ISBN 1-57586-374-X.  Do NOT purchase this book used.  The registration code for the enclosed software is useful to only one student.  A used copy will not allow you to use the grading software.  The text website is at http//www-csli.stanform.edu/LPL.

·         Course pack: Chapter 1 from Introduction to the Theory of Computation (ITC), Michael Sipser, PWS Publishing Co., 1997.  ISBN 0-534-94728-X.  This is also the textbook for CS1511, Intro to Theory of Computation. 

 

Prerequisites:

  • CS 0441: Discrete Structures for Computer Science.
  • CS 0445: Data Structures.

 

Goals: The goal of this course is for you to

o        acquire basic concepts in propositional logic (logic with Boolean connectives “and”, “or”, “not”, etc.)  and first-order logic (logic with quantifiers “for all” and “for some”),

o        gain skills in modeling real-world situations as logic models,

o        gain skills in reasoning about real-world situations and logic models strategically and systematically,

o        gain skills in interpreting logic models, and

o        use logic as a mean to acquire knowledge on and reason about finite automata

 

We will accomplish these by examining examples situations, learning about logic constructs and their interpretation, practicing them in exercise problems in class, and practicing some more through homework.

 

 

Course content:

o        Propositional logic (Chapters 1-8 of Barwise and Etchemendy)

·         propositions, arguments, consequences, truth tables

·         proofs and proof techniques

·         Horn clauses, resolution method

o        First order logic (Chapters 9-14 of Barwise and Etchemendy)

·         quantified sentences, well-formed formulae

·         Aristotelian forms

·         first-order validity

·         proofs involving quantifiers

o        Finite Automata (Chapter 1 of Sipser, also in course note)

·         strings, languages, finite automata (FA), non-deterministic FA (NFA)

·         FA design and analysis

·         NFA design and analysis

·         closure property, pumping lemma 

Exams: There will be 3 exams.  The exams are in-class, close-book, close-note, and no notes will be given to you.  Exams questions can be divided into 2 broad types, knowledge questions and skill questions.  Knowledge questions ask for factual knowledge.  There will be more skill questions than knowledge questions.  To do well on skill questions, first you need to have knowledge, and second you have to have skills.  To gain skills, you need to practice.  I cannot emphasize enough that problem solving skills are something that gradually develop over time.  You develop these skills when you work on problems.  So it is very important that you do the homework.  In an extreme circumstance where you are going to miss an exam, you must contact me or the department secretary as soon as possible.  My number is 412-624-8416, email: .  The department secretary’s number is 412-624-8490.

 

Software: Basically, it is an editor and syntax checker.  It can point out syntax errors but cannot tell you how to fix them.  You will need it to type up your homework and to submit your homework.

 

Homework: I will assign homework weekly.  You will have 1 week to finish each homework assignment.  The homework is due at the beginning of class.  For homework that is written on paper, hand it in at the beginning of class.  For homework that needs to be submitted electronically, do it before the beginning of class.  No late homework will be accepted.  Note that for electronic submission, you can submit all problems at one time, or one by one.  Also, you can resubmit your answers any number of times in case you think you make mistakes.

 

It is very important that you do the homework.  It is a chance for you to think without time constraints, and this is when you develop your thinking skill.  I encourage you to discuss the homework with other students.  However, you must write/type up your answer individually and indicate with whom you work and with and which problems you discussed.

 

Grading: The grades will be based on effort and performance on exams, homework, and class participation.  The grading scale will be set subjectively by me at the end of the semester.  This will be based on the difficulty of the exams and your performance.  There is no set number of A’s, B’s, C’s.  The students are not in competition with each other for grades.  The break down is given below.

  • Exam 1: 30%
  • Exam 2: 30%
  • Exam 3: 25%
  • Homework: 15% 

To give you some idea about the grading scale, to earn a grade of C or better, a student must regularly attend class, get at least 65% of the points on reading assignments and get at least 65% of the points on homework, and do reasonably on the exam.  To earn a grade of B, a student must qualify for the C grade, and can do most of knowledge problems (described under “exams”), and do a good number of skill problems (described under “exams”) on the exam.  To earn a grade of A, a student must qualify for the C grade, and can do most of knowledge problems and skill problems (to be discussed) on the exam.

 

Academic Integrity: All students must adhere to the University’s guidelines on academic integrity (http://www.pitt.edu/~provost/ai1.html).  Extreme measures will be used for all students involved in a violation of academic integrity.