Harvard SEAS Logo

CS 252r: Advanced Topics in Programming Languages

  Course description
  Reading papers
  Presenting papers
  Research projects
  Additional reading


CS 252r: Advanced Topics in Programming Languages

Prof. Stephen Chong
Fall 2009

Lectures: Mondays and Wednesdays, 2:30pm-4:00pm.
Location: Pierce Hall, Room 320.

Office hours: Mon 4pm-5pm, and by appointment, MD 145

Course description

This class examines the use of programming languages and programming-language techniques to build secure, efficient, and reliable systems. Specifically, this course covers the following areas.

  • Language-based security. The use of programming language techniques and abstractions to reason about, and enforce, security.
  • Language support for building distributed systems. Programming language mechanisms and abstractions that facilitate building systems that execute on multiple autonomous computers.
  • Language abstractions for concurrency. Programming language mechanisms and abstractions that facilitate writing programs that allow efficient parallel execution.

This is a research seminar that focuses on reading and discussing papers from the scientific literature. In each class, one student will be responsible for presenting one or two papers. All students will read the paper(s) and submit short summaries before the class. In addition, students will undertake a significant research project, working in pairs or individually. At the end of the term, students will present projects in class and prepare a written project report.

The class will be based primarily on presentation, and discussion, of research papers. There will be few formal lectures. Students are expected to come to lecture each day and be prepared to discuss the reading in depth.

Course grades will be based on a weighted combination of class participation, paper summaries, paper presentations, the final project presentation, and the project report.

This course is intended for graduate students at all levels as well as advanced undergraduates (CS152 is required).

Reading papers

All students must read the assigned papers before class, and email a summary to me no later than midnight the night before the class. Please put "CS252" and the paper title in the subject line. The summary should be no more than a few paragraphs, and should explicitly address the following questions: What is this paper about? What are the strengths of the paper? What are the weaknesses of the paper? Here is a handy template for you.

While reading the paper, here are some things to think about. (Your summary can include your thoughts about these questions, and/or bring them to class.)

  • What is the contribution of the paper? How important is this contribution?
  • What problem is the paper addressing? How well do they succeed in solving the problem?
  • How would you have addressed the problem?
  • Are the language mechanisms intuitive? Easy to use? Efficient? Scalable?
  • What was unclear to you?
  • How does the paper relate to other papers we have read?
  • Are there any obvious or non-obvious extensions to this work?
  • Can you suggest a two-sentence project idea based on the ideas of this paper?

Presenting papers

In each class, a student will present one or two research papers. Each student presenter must talk with me about the papers at least 2 days before class. Within a few days after the class, I will provide feedback to the presenter on the presentation.

Things to think about when preparing your presentation:

  • Your primary goal is to clearly communicate the key ideas of the paper. In order to do this, you may need to read some of the related work, and you may need to present background material.
  • Your secondary goal is to prompt discussion about the papers.
  • Aim for a talk between 45 and 60 minutes.
  • You do not have time to cover every detail of the paper. Focus instead on the important and/or interesting aspects of the paper.
  • The structure of the paper is often useful as the structure of your presentation. However, this is not always the case. Make a conscious decision about how you will structure your presentation, and why.
  • If you are presenting two papers, think about how you can synthesize the work in your presentation. How are the two papers similar? How are they different? How are they related?
  • Do not read aloud the text on your slides.
  • For advice on giving good presentations, see, for example, Mark Hill's advice, Matthew Miller's tips, or Simon Peyton Jones' slides on how to give a good research talk (via Mark Leone's advice website).

Research projects

See here for more information.


See here for more information.