Readings
Week | Date Assigned | Reading | Short Response Prompts |
---|---|---|---|
1 | Thursday, 9/6 | Aesthetics and Programming. Proceedings of the CHI'83 Conference on Human Factors in Computing Systems. | Reading 1 |
1 | Thursday, 9/6 | A Brief Introduction to C | |
2 | Thursday, 9/13 | How to Fix a Motorcycle | Reading 2 |
2 | Thursday, 9/13 | Github Tutorial (Optional) | |
2 | Thursday, 9/13 | Memory Management in C | |
3 | Tuesday, 9/18 |
Passing pointers by value (Read if you found the add example from class to be confusing)
|
|
3 | Thursday, 9/20 | LaTeX Tutorial (Optional) | |
3 | Thursday, 9/20 | Introduction to the Lambda Calculus, Part 1 | Reading 3 |
4 | Wednesday, 9/26 | What is a linked list? (Optional) | |
4 | Thursday, 9/27 | Grammars and Parse Trees (excerpt from 'Concepts in Programming Languages') | |
4 | Thursday, 9/27 | Introduction to the Lambda Calculus, Part 2 | Reading 4 |
5 | Thursday, 10/11 |
Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I A Brief Introduction to F# |
Reading 5 |
6 | Thursday, 10/18 | A Slightly Longer Introduction to F# | Reading 6 |
6 | Thursday, 10/25 | Why Functional Programming Matters | Reading 7 |
7 | Sunday, 10/28 | Parser Combinators | |
7 | Thursday, 11/1 |
First, Beating the Averages, and then The Rise of Worse is Better. |
Reading 8 |
7 | Thursday, 11/1 |
The following are examples of language specifications. Use them for inspiration in your own project. Some of these documents are quite long, so I suggest that you utilize these to get the gist of how languages are specified. Don't try to read through them! I would consider all of these to be "good" specifications, although I have to admit to having a favorite. I think the Logo document, especially the section titled "A Logo Primer," is beautiful and lucid, despite being almost totally imprecise. The Standard ML Core Language (Revised) (Formal syntax; formal semantics) PASCAL User Manual and Report pp. 133-168 (Formal syntax; informal semantics) Smalltalk-80: The Language and its Implementation (A tour-de-force of both formal syntax/semantics and informal syntax/semantics) VoxPL: Programming with the Wisdom of the Crowd (Informal syntax; formal semantics) Piet Programming Language (Informal syntax; informal semantics) What is Logo? (Very informal, but beautiful, presentation of syntax and semantics) |
|
9 | Tuesday, 11/6 |
Instead of a reading this week, and in honor of the OOPSLA conference (which is where I'll be this week), I am assigning Guy Steele's classic OOPSLA talk, "Growing a Language." Read this note before watching the video. Growing a Language |
Reading 9 |
10 | Thursday, 11/15 | Read pp. 3--4 of "On Understanding Types, Data Abstraction, and Polymorphism" by Cardelli and Wegner. | Reading 10 |
11 | Tuesday, 11/20 |
Git branching and merging. (Optional) |
|
12 | Saturday, 11/24 |
Unit testing in F#. |
Reading 11 |
12 | Thursday, 11/29 |
While this talk is about research talks, I really think it applies to all technical talks in general. How to give a great research talk. If you want to see my interpretation of this advice, here is a video of my most recent talk (optional!). |
Reading 12 |