Hot Topics in PL and Systems (CMPSCI 691NN)

In this course, we will discuss hot topics in Programming Languages and Systems. You are expected to have read and reviewed your assigned paper before class and participate in in-class discussions.

Grades will be based on in-class participation, presentations, reviews, and projects (for those taking the course for 3 credits).

You must submit your reviews via the review submission site the night before each class, by 11:59 p.m. See these notes by John Ousterhout on writing reviews. Focus on the positive!

Your reviews must address the following points (in the review form):

  • Detailed Review: (3-4 paragraphs) What is the problem that this work addressed? What are the big ideas / key insights / technical contributions?
  • Discussion Points: Include at least two discussion points to bring up in class that are different from those contributed by others.

If you are presenting a paper, you are free to use talk slides from the authors (if available). If the paper has not yet appeared in print, you can choose to either make a PowerPoint presentation yourself, or simply lead the discussion at the whiteboard. The presentation should be like a conference talk, ending with leading discussion points. Also, please prepare a review as well.

NOTE: The use of laptops and cell phones is not allowed in class.

Date Paper Presenter
1/28/2013 Automatically patching errors in deployed software (local) Jessica Newman
Clearing the Clouds: A Study of Emerging Scale-out Workloads on Modern Hardware (local) John Vilk

2/6/2013 Acceptability-Oriented Computing (local) Charlie Curtsinger
Green: A Framework for Supporting Energy-Conscious Programming using Controlled Approximation (local) Divya Gunsekaran

2/11/2013 Eon: A Language and Runtime System for Perpetual Systems (local) Bruce Spang
Bug isolation via remote program sampling (local) Guptha Rajagopal

2/13/2013 Cooperative Empirical Failure Avoidance (local) Dan Barowy
Statistically Regulating Program Behavior via Mainstream Computing (local) Divya Gunsekaran

2/19/2013 Automatic Program Repair with Evolutionary Computation (local) Emma Tosch
Production-Run Software Failure Diagnosis via Hardware Performance Counters (local) Charlie Curtsinger

2/20/2013 EnerJ: Approximate Data Types for Safe and General Low-Power Computation (local) Dan Barowy
Proving acceptability properties of relaxed nondeterministic approximate programs (local) Jessica Newman

2/25/2013 Exterminator: Automatically correcting memory errors with high probability (local) Bruce Spang
Optimal task assignment in multithreaded processors: a statistical approach (local) Tongping Liu

2/27/2013 Dthreads: efficient deterministic multithreading (local) Charlie Curtsinger
Uniqueness and Reference Immutability (local) Dimitar Gochev

3/4/2013 Leveraging test generation and specification mining for automated bug detection without false positives (local) John Vilk
S2E: a platform for in-vivo multi-path analysis of software systems (local) Jez Ng

3/6/2013 Flat combining and the synchronization-parallelism tradeoff (local) Emma Tosch
GraphChi: Large-Scale Graph Computation on Just a PC (local) Guptha Rajagopal

3/11/2013 DieHard: probabilistic memory safety for unsafe languages (local) Tongping Liu
Stabilizer: Statistically Sound Performance Evaluation (local) Charlie Curtsinger

3/13/2013 Guest Speaker: Steve Freund

3/25/2013 class cancelled

3/27/2013 GPUfs: integrating a file system with GPUs (local) Jessica Newman
Spanner: Google's Globally-Distributed Database (local) Dan Barowy

4/1/2013 Dune: Safe User-level Access to Privileged CPU Features (local) Jez Ng
Typestate-based semantic code search over partial programs (local) John Vilk

4/3/2013 Modular and Verified Automatic Program Repair (local) Bruce Spang
A Compiler and Runtime System for Network Programming Languages (local) Divya Gunsekaran

4/8/2013 Reagents: Expressing and Composing Fine-Grained Concurrency (local) Emma Tosch
Run Your Research: On the Effectiveness of Lightweight Mechanization (local) Jez Ng
Systems Lunch: Rick Hudson (Intel): River Trail: Adding Data Parallelism to JavaScript

4/10/2013 ASPLOS 2013: Stochastic Superoptimization (local) Dan Barowy
ASPLOS 2013: Why You Should Care About Quantile Regression (local) Charlie Curtsinger

4/18/2013, 2:30pm A Compiler and Runtime System for Network Programming Languages (local) Divya Gunsekaran
PLDI 2013: Thresher: Precise Refutations for Heap Reachability (local) Charlie Curtsinger

4/22/2013 ASPLOS 2013: Discerning the Dominant Out-of-Order Performance Advantage: is it Dynamism or Speculation? (local) John Vilk
PLDI 2013: Towards Static Analysis for Probabilistic Programs (local) Emma Tosch

4/24/2013 Machine-Verified Network Controllers (local) Arjun Guha

4/29/2013 Guest speaker: Stephen Chong
paper TBA (NN) TBD


Plagiarism Policy

All projects in this course are to be done by you / your group. Violation will result in a zero on the project in question and initiation of the formal procedures of the University. We use an automated program and manual checks to correlate projects with each other and with prior solutions. At the same time, we encourage students to help each other learn the course material. As in most courses, there is a boundary separating these two situations. You may give or receive help on any of the concepts covered in lecture or discussion and on the specifics of programming language syntax.

You are allowed to consult with other students in the current class to help you understand the project specification (i.e. the problem definition). However, you may not collaborate in any way when constructing your solution: the solution to the project must be generated by you or your group working alone. You are not allowed to work out the programming details of the problems with anyone or to collaborate to the extent that your programs are identifiably similar. You are not allowed to look at or in any way derive advantage from the existence of project specifications or solutions prepared elsewhere.

If you have any questions as to what constitutes unacceptable collaboration, please talk to the instructor right away. You are expected to exercise reasonable precautions in protecting your own work. Don't let other students borrow your account or computer, don't leave your program in a publicly accessible directory, and take care when discarding printouts.