# Topics # These topics are organized in two ways: by their content, and by the week in which they were introduced. ## Topics by content ## * [[Introduction to functional programming|topics/week1 kapulet intro]] * [[Order: static versus dynamic|topics/week1 order]] * The Lambda Calculus * [[Intro to the Lambda Calculus|topics/week2 lambda intro]] * [[Advanced notes on the Lambda Calculus|topics/week2 lambda advanced]] * Encoding data types in the Lambda Calculus * [[Booleans, Tuples, Lists, and Numbers|topics/week2 encodings]] ## Topics by week ## Week 1: * [[Order in programming languages and natural language|topics/week1 order]] This discussion considers conjunction in a language that recognized presupposition failure. * [[Introduction to functional programming|topics/week1 kapulet intro]] Basics of functional programming: `let`, `case`, pattern matching, and recursion. Definitions of factorial. * [[Advanced notes on functional programming|topics/week1 kapulet advanced]] * [[Homework for week 1|exercises/assignment1]] Week 2: * [[Introduction to the Lambda Calculus|topics/week2 lambda intro]] * [[Advanced notes on the Lambda Calculus|topics/week2 lambda advanced]] * [[Encoding Booleans, Tuples, Lists, and Numbers|topics/week2 encodings]]; * [[Homework for week 2|exercises/assignment2]] Week 3: * More on Lists Introduces list comprehensions, shows how to encode `tail` in the Lambda Calculus * Combinatorial Logic * Homework for week 3 *More coming, please wait...*