CS 6115 Schedule Project Blog Guidelines Resources

CS 6115 - Certified Software Systems

This course provides a hands-on introduction to programming and verification using the Coq proof assistant.

Coordinates
10:10am – 11:25am Tuesday & Thursday in Phillips Hall 407
Instructors
[ Coq tactic practice | Coq cheatsheet ]

Schedule

Date Topic Lectures Homework
Week 1: Introduction to Coq
Tue 08/27 Course overview [ slides | web | coq ]
Thu 08/29 Propositional Reasoning [ slides | web | coq ] HW1 goes out
Week 2: Data Types, Induction, and Modules
Tue 09/03 Natural numbers [ slides | web | coq ]
Thu 09/05 Lists and Modules [ slides | web | coq ] HW1 is due; HW2 goes out
Week 3: Interpreters, Inductive Relations
Tue 09/10 Interpreters [ slides | web | coq ]
Thu 09/12 Inductive Relations [ slides | web | coq ]
Week 4: Semantics (Big-Step, Small-Step)
Tue 09/17 Big-Step Semantics [ slides | web | coq ]
Thu 09/19 Small-Step Semantics [ slides | web | coq ] HW2 is due; HW3 goes out
Week 5: Advanced Coq (Fuel, Type Classes, Automation)
Tue 09/24 Foundations, Fuel, and Type Classes [ slides | web | coq ]
Thu 09/26 Type Classes and Auto-mation [ slides | web | coq ]
Week 6: Lambda Calculus, Types
Tue 10/01 Progress and Preservation [ slides | web | coq ]
Thu 10/03 Termination [ slides | web | coq ] HW3 is due; HW4 goes out
Week 7: Hoare Logic
Tue 10/08 Shallow Embedding [ slides | web | coq ]
Thu 10/10 Separation Logic [ slides | web | coq ]
Week 8: More Separation Logic
Tue 10/15 No class: Fall Break
Thu 10/17 Concurrent Separation Logic [ slides ] HW4 and Project Proposal are Due
Week 9: Reflection
Tue 10/22 Simple Reflection [ slides | web | coq ]
Thu 10/24 More Reflection [ slides | web | coq ]
Week 10: Dependent Types
Tue 10/29 Dependent Types [ slides | web | coq ]
Thu 10/31 More Dependent Types [ slides | web | coq ]
Week 11: More Dependent Types
Tue 11/05 Even More Dependent Types [ slides | web | coq ]
Thu 11/07 Implementing Dependent Type Theory [ slides ]
Week 12: Coinduction
Tue 11/12 Introduction to Coinduction [ slides | web | coq ]
Thu 11/14 Coinduction in Coq [ slides | web | coq ]
Week 13: Regular Expressions
Tue 11/19 Derivatives [ web | coq ] Project Check-In Due
Thu 11/21 Parsing [ slides ]
Week 14: Victory Lap
Tue 11/26 Victory Lap [ slides | web | coq ]
Thu 11/28 No class: Thanksgiving
Week 15: Project Presentations
Tue 12/03
Thu 12/05
Final Project
Mon 12/16 No class Final Project Due @ 4:30pm

Guidelines

Method of Assessing Student Achievement

Grades for the course will be calculated as follows:

This course uses a letter grading system, which is the official grading system at Cornell University. Typically, 80-90% of the students in this course receive a grade of A- or higher and the median grade is typically an A.

Academic Integrity

Absolute integrity is expected of all Cornell students in every academic undertaking. The course staff will prosecute violations aggressively using automatic detection tools.

You are responsible for understanding every word of these policies:

Under no circumstances may you hand in work done with or by someone else under your own name or share code with anyone else unless explicitly allowed. If you are unsure about what is permissible and what is not, please ask!

Special Needs and Wellness

It is Cornell policy to provide reasonable accommodations to students who have a documented disability (e.g., physical, learning, psychiatric, vision, hearing, or systemic) that may affect their ability to participate in course activities or to meet course requirements. Students with disabilities are encouraged to contact Student Disability Services at 607-254-4545, or the instructor for a confidential discussion of their individual needs.

If you are experiencing undue personal or academic stress at any time during the semester or need to talk to someone who can help, contact the instructor or:

Resources

Software Setup

Students will need to install the Coq proof assistant itself, as well as an integrated development environment. For more detailed instructions, tailored for a variety of different operating systems, please see the instructions maintained by Arthur Charguéraud.
And if you run into any trouble, please don't hesitate to contact the course staff. We would be very glad to help.

Assignments

We'll use CMSX for assignments.

Online Discussion

We'll use Ed for online discussion.