On this page:
Advanced Programming Languages (Winter 2010)
1 Introduction
2 Meetings
3 Turn In Policy
4 Paper Review Format
5 Presentation Review Format
6 Exams
7 Grading
8 Your Final Grade

Advanced Programming Languages (Winter 2010)

This class is taught by Jay McCarthy.

We meet in 134 TMCB at 9:30-10:45a TTH.

Jay McCarthy’s office hours are 1pm to 4:45pm in 3328 TMCB.

1 Introduction

This course covers advanced programming language topics.

This course will be structured as follows: each week we’ll hear presentations on a paper from a student; before the first meeting every student will turn in a review of the paper; after the second meeting every student will turn in a review of presenter. If a paper is particularly confusing, I’ll take the next day to go over some of the necessary theory. The presenter should consult with me to design their presentations.

2 Meetings

 

Date

 

Paper

 

Presenter.

 

1/5

 

Call-by-Name, Call-by-Value, and the Lambda Calculus

 

Jay

 

1/7

 

cont.

 

 

1/12

 

The revised report on the syntactic theories of sequential control and state

 

Sean

 

1/14

 

cont.

 

 

1/19

 

The essence of compiling with continuations

 

Blake

 

1/21

 

cont.

 

 

1/26

 

On the Expressive Power of Programming Languages

 

Everett

 

1/28

 

cont.

 

 

2/2

 

A Syntactic Approach to Type Soundness

 

Jacob

 

2/4

 

cont.

 

 

2/9

 

Proper tail recursion and space efficiency

 

Sean

 

2/11

 

cont.

 

 

2/18

 

The Structure and Interpretation of the Computer Science Curriculum (Video)

 

Matthias Felleisen

 

2/23

 

A Tail-Recursive Machine with Stack Inspection

 

Everett

 

2/25

 

cont.

 

 

3/2

 

Continuations from Generalized Stack Inspection

 

Blake

 

3/4

 

cont.

 

 

3/9

 

Modeling an Algebraic Stepper

 

Jacob

 

3/11

 

cont.

 

 

3/16

 

The semantics of Scheme control-flow analysis (Older version)

 

Sean

 

3/18

 

cont.

 

 

3/23

 

Contracts for Higher-Order Functions

 

Everett

 

3/25

 

cont.

 

 

3/30

 

Hygienic macro expansion

 

Jacob

 

4/1

 

cont.

 

 

4/6

 

Composable and Compilable Macros

 

Blake

 

4/8

 

cont.

 

 

4/13

 

Scribble: Closing the Book on Ad Hoc Documentation Tools (Video)

 

Matthew Flatt

This schedule may change.

3 Turn In Policy

Reviews are to be emailed to jay@cs.byu.edu. Paper reviews are due by 5pm the day before the first meeting. Presentation reviews are due by 5pm the day after the second meeting.

The subject line must be: "BYU - Winter 2010 - CS 601R - date - kind", where date is the date of the meeting and kind is either Paper or Presenter.

Only one email should be sent. If more than one is sent, I will grade the oldest one.

The only file formats that will be accepted are inline text and PDFs.

Reviews that do not have the correct format will receive no credit.

4 Paper Review Format

Your review should summarize the paper, identify its primary contributions, describe something you understood well, and describe something you had a hard time understanding. You should plan on writing approximately a page and a half of prose.

5 Presentation Review Format

Your review should discuss the presenter’s coverage of the paper, their clarity of presentation, their presentation style, their insight into the material, and their grasp of the material. You should plan on writing approximately a page and a half of prose. These will be anonymously shared with the presenter.

6 Exams

There are no exams in this course.

7 Grading

Each review is graded with a number between 0 and 1.

8 Your Final Grade

Your final numeric grade is the average of the reviews due.

I will then run the following function to convert it to a letter:

> (define (convert-to-letter ng)
    (cond
      [(> ng 0.93) "A"]
      [(> ng 0.9) "A-"]
      [(> ng 0.86) "B+"]
      [(> ng 0.83) "B"]
      [(> ng 0.8) "B-"]
      [(> ng 0.76) "C+"]
      [(> ng 0.73) "C"]
      [(> ng 0.7) "C-"]
      [(> ng 0.66) "D+"]
      [(> ng 0.63) "D"]
      [(> ng 0.6) "D-"]
      [else "F"]))

Examples:

> (convert-to-letter 1)

"A"

> (convert-to-letter 0.94)

"A"

> (convert-to-letter 0.899999)

"B+"

> (convert-to-letter 0.81)

"B-"

> (convert-to-letter 0.74)

"C"

> (convert-to-letter 0.6999999)

"D+"

> (convert-to-letter 0.62)

"D-"

> (convert-to-letter 0.57)

"F"