Overview

If systems are not reliable and secure the entire software stack falls apart. How can we test effectively large and complex software systems? How can we build reliable systems that are concurrent and distributed? How can we diagnose failures and performance problems in complex systems? What are the limitations and challenges of leveraging trusted hardware? What is the relation between testing and formal verification techniques?

This seminar course addresses the above questions. It will be heavily based on class discussion and will involve reviewing the current state-of-the-art. This course will focus mostly on practical aspects of building and testing systems. We will discuss several topics in this context, including data race detectors, symbolic execution tools, techniques that expose concurrency and distributed bugs, trusted hardware approaches, application of formal techniques to systems, and the results of empirical studies on systems reliability. Knowledge of operating systems, distributed systems or C programming is a plus.

News

Tentative Schedule

Day Topic
8/21 Introduction
8/23 Overview
8/24 Deadline: papers proposal
8/28 Overview
8/30 Project selection meeting
9/4 Project selection meeting
9/6 TBD
9/11 TBD
9/13 TBD
9/18 TBD
9/18 Deadline: project proposal (w/ extension)
9/20 TBD
9/25 TBD
9/27 TBD
10/2 TBD
10/4 TBD
10/9 October break
10/11 TBD
10/16 TBD
10/18 TBD
10/23 TBD
10/25 Project support meeting
10/26 Deadline: project status update
10/30 TBD
11/1 TBD
11/6 TBD
11/8 TBD
11/13 TBD
11/15 TBD
11/20 Project support
11/22 Thanksgiving vacation
11/27 Project support
11/29 Project support
12/4 Project support
12/5 HARD Deadline: project code delivery (w/ extension)
12/6 Project talks
12/11 HARD Deadline: final project report delivery (w/ extension)
Changes to the schedule will be announced in class or electronically.

Grading

Each student is expected to present one or two papers from the research literature to class (see the list of suggested papers). Students are expected to present the paper as if it was a conference talk: provide background, motivation, explain overall merit and technical details, and answer questions from the audience. Students should feel free to critique the paper (i.e., students do not need to be advocates of the paper). All students are expected to read the presented paper before class and participate in the class discussion.

Each student will review two papers and write a written report for each of them, as if reviewing a conference paper. Reviews are due at the beginning of the class in which the reviewed paper is presented.

For academic honesty refer to the Purdue integrity/code of conduct. Except as by prior arrangement or notification by the professor of an extension before the deadline, missing or late work will be counted as a zero/fail.

Suggested papers

Loading...