COMP 611 - Topics in Programming Languages and Formal Methods

Instructor: Konstantinos Mamouras
Class meetings: Thursdays 2:30pm-4:00pm
Office hours: By appointment at Duncan Hall 3081

Course Description

The course will cover a selection of topics from the areas of programming languages and formal methods. All students will read classical and recent papers on the selected topics and give presentations on them. A student may elect to perform a semester-long project on a topic related to the content of the course and write a short report on their findings.

The Fall 2019 offering of the course will include a selection of readings from (1) the theory of Cyber-Physical Systems (CPS) with an emphasis on the modeling and programming aspects of the theory, and (2) the literature on models for processing real-time data (data streams).

Required Texts and Materials

There are no required textbooks for the class. Course materials, including links to readings, will be provided here.

Grade Policies

For students who are taking COMP 611 as a one-credit course, the grade will be based on class participation (50%) and presentations (50%).

For students who are taking COMP 611 as a three-credit course, the grade will be based on class participation (20%), presentations (20%), and a semester-long research project with a short final report (60%).

Course Schedule

Date Topic Readings
August 29 Course Overview / Dataflow Models Coroutines and Process Networks
September 5 Dataflow Models Semantics of Kahn Process Networks (KPNs)
Operational Semantics for Dataflow Networks
September 12 Dataflow Models Nondeterministic dataflow
September 19 NO CLASS
September 26 Hybrid Systems Hybrid Automata
October 3 Monitoring Signal Temporal Logic
Monitoring Algorithms
October 10 Monitoring Signal Temporal Logic
Monitoring Algorithms
October 17 Monitoring First-Order Temporal Properties
Metric First-Order Temporal Properties
October 24 Asynchronous Models I/O Automata
October 31 Asynchronous Models I/O Automata: Correctness Proofs
November 7 Asynchronous Models Time and Clocks
November 14 Stream Processing A Language for Streaming Applications
November 21 Stream Processing Reactive Programming
November 28 Thanksgiving - No class
December 5 Discussion

Absence Policies

If a student misses a course meeting, they are expected to review the corresponding material on their own.

Rice Honor Code

In this course, all students will be held to the standards of the Rice Honor Code, a code that you pledged to honor when you matriculated at this institution. If you are unfamiliar with the details of this code and how it is administered, you should consult the Honor System Handbook. This handbook outlines the University's expectations for the integrity of your academic work, the procedures for resolving alleged violations of those expectations, and the rights and responsibilities of students and faculty members throughout the process.

Disability Support Services

If you have a documented disability or other condition that may affect academic performance you should: 1) make sure this documentation is on file with Disability Support Services (Allen Center, Room 111 / adarice@rice.edu / x5841) to determine the accommodations you need; and 2) talk with the instructor to discuss your accommodation needs.