On this page:
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 2011)

This class is taught by Jay McCarthy.

We meet in TMCB 134 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.

I suggest that all students attempt to implement each paper in their language of choice.

2 Meetings

 

Date

 

Paper

 

Presenter.

 

1/4

 

Efficient Bijective Godel Numberings for Term Algebras (Slides)

 

Jay

 

1/6

 

cont.

 

 

1/11

 

Regular-expression derivatives re-examined

 

Sean

 

1/13

 

cont.

 

 

1/18

 

Functional pearl: The Zipper

 

Nick

 

1/20

 

cont.

 

 

1/25

 

Functional pearl: Pickler Combinators

 

Blake

 

1/27

 

cont.

 

 

2/1

 

Educational pearl: Escape from Zurg: an exercise in logic programming

 

Neil

 

2/3

 

cont.

 

 

2/8

 

Finger trees: a simple general-purpose data structure

 

Sean

 

2/10

 

cont.

 

 

2/15

 

DieHarder: securing the heap

 

Nick

 

2/17

 

cont.

 

 

2/24

 

Beautiful Differentiation (Video)

 

 

3/1

 

The genuine sieve of eratosthenes

 

Blake

 

3/3

 

cont.

 

 

3/8

 

Functional pearl: Every bit counts

 

Neil

 

3/10

 

cont.

 

 

3/15

 

Yacc is dead

 

Sean

 

3/17

 

cont.

 

 

3/22

 

Formatting: a class act

 

Nick

 

3/24

 

cont.

 

 

3/29

 

Toward a verified relational database management system

 

Blake

 

3/31

 

cont.

 

 

4/5

 

Theoretical pearl: Flattening combinators: surviving without parentheses

 

Neil

 

4/7

 

cont.

 

 

4/12

 

Commutative Monads, Diagrams and Knots (Video)

 

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 2011 - CS 630 - 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"