-## Schedule of Topics ##
-
This is very sketchy at this point, but it should give a sense of our intended scope.
-### Introduction ###
+## Introduction ##
1. Declarative vs imperatival models of computation.
2. Variety of ways in which "order can matter."
5. Functions as "first-class values"
6. "Curried" functions
-### The "pure" or untyped lambda calculus ###
+## The "pure" or untyped lambda calculus ##
1. Beta reduction
2. Subtitution; using alpha-conversion and other strategies
18. Introducing the notion of a "continuation", which technique we'll now already have used a few times
-### Types ###
+## Types ##
1. Product or record types, e.g. pairs and triples
2. Sum or variant types; tagged or "disjoint" unions
-3. Maybe/option types
+3. Maybe/option types; representing "out-of-band" values
4. Zero/bottom types
5. Unit type
6. Inductive types (numbers, lists)
10. [Phil/ling application] inner/outer domain semantics for positive free logic
<!-- <http://philosophy.ucdavis.edu/antonelli/papers/pegasus-JPL.pdf> -->
-11. [Phil/ling application] King vs Schiffer in King 2007. pp 103ff
+11. [Phil/ling application] King vs Schiffer in King 2007, pp 103ff.
12. [Phil/ling application] King and Pryor on that clauses, predicates vs singular property-designators
13. Possible excursion: Frege's "On Concept and Object"
15. The types of continuations; continuations as first-class values
16. [Phil/ling application] Partee on whether NPs should be uniformly interpreted as generalized quantifiers, or instead "lifted" when necessary. Lifting = a CPS transform.
+17. [Phil/ling application] Expletives
+
+18. Misc references: Chris?
+ * de Groeten on lambda-mu and linguistics?
+ * on donkey anaphora and continuations
+ * Wadler on symmetric sequent calculi
-17. Dependent types
+19. Dependent types
-### Side-effects and mutation ###
+## Side-effects and mutation ##
1. What difference imperativity makes
2. Monads we've seen, and the "monadic laws" (computer science version)
9. [Phil/ling application] Fine and Pryor or "coordinated contents"
-### Continuations (continued) ###
+## Continuations (continued) ##
1. Using CPS to handle abortive computations
2. Using CPS to do other handy things, e.g., coroutines
5. [Phil/ling application] Barker/Shan on donkey anaphora
-### Preemptively parallel computing and linear logic ###
+## Preemptively parallel computing and linear logic ##
1. Basics of parallel programming: semaphores/mutexes
2. Contrasting "preemptive" parallelism to "cooperative" parallelism (coroutines, above)