Instructor: Ronghui Gu

Office: 515 CSB

Lectures: Mudd 233, Tue, 6:10pm ~ 8:00pm

Office hours: Wed & Thu (2:00pm ~ 3:00pm) and by appointment

- Techniques for improving
**reliability**of computer systems- Applicable to both software and hardware
- Focus on
**software**

- Theories about formal verification (especially about the theorem proving)
- How to use
**Coq**to realize these theories

- Programming languages and type systems
- Software engineering methodology
- Dynamic analysis
- Software testing

- Mostly focus on hardware
- Focus more on automated techniques
- Focus more on practices

- General proficiency in discrete mathematics
- C/C++ programming skills
- COMS W4115 Programming Languages and Translators

- Logic in Computer Science: modelling and reasoning about systems
by Michael Huth and Mark Ryan
- http://www.cs.bham.ac.uk/research/projects/lics/
- You don’t need to buy the textbook since all the materials will be covered by the lecture notes.

- Software Foundations by Benjamin C. Pierce et al.
- https://softwarefoundations.cis.upenn.edu/index.html
- This textbook is for the second half of the semester but you are highly recommended starting reading it during the first half.

- 30%: midterm
- 70%: 4 to 5 assignments
- No final

09/04 Intro (Lecture Notes 0) & Propositional Logic I (Lecture Notes 1)

09/11 Propositional Logic II & SAT (Lecture Notes 1)

09/18 First-Order Logic I (Lecture Notes 2)

09/25 First-Order Logic II (Lecture Notes 2)

10/02 Hoare Logic I (Lecture Notes 3)

10/09 Hoare Logic II (Lecture Notes 3)

10/16 Midterm

10/23 Coq (Basics) (_CoqProject, Coq_Lecture1_Basics)

10/30 Coq (Induction & List)
(Coq_Lecture2_Induction_List)

11/06 **Holiday (no class)**

11/13 Coq (Tactics & Logic)
(Coq_Lecture3_Tactics_Logic)

11/20 Coq (Modeling a language & Program equivalence) (Coq_Lecture4_Program)

11/27 Coq (Hoare Logic I) (Coq_Lecture5_Hoare)

12/04 Coq (Hoare Logic II) (Coq_Lecture5_Hoare)

- Assignment 1: due 10/02/2018 at 6:10 pm
- Assignment 2: due 11/24/2018 at 6:10 pm
- Assignment 3: due 12/20/2018 at 6:10 pm
- Assignment 4: due 12/29/2018 at 6:10 pm
- Assignment 5: due 12/29/2018 at 6:10 pm