# Course Info

**Course Number:** CSE 340 (82243)

**Instructor:** Prof. Adam Doupé

**Email:** doupe@asu.edu

**Office:** BYENG 472

**Office Hours:** Monday 3pm–4pm (except 11/9: 5pm–6pm), Wednesday 12pm–1pm, Friday 10am–11am (no office hours 9/25, 10/14, 10/16, or 11/13), and by appointment

**Meeting Times:** Monday and Wednesday, 1:30pm–2:45pm (PSF 166)

**Course Mailing List:** cse340-f15@googlegroups.com

**Course Lead TA:** Mohsen Zohrevandi

**Email:** mohsen@asu.edu

**Office:** BYENG 435 AA

**Office Hours:** Tuesday 3pm–5p, Thursday 11am–1pm (except Thursday 9/24 will be 3–5pm), and by appointment

**Course TA:** Sai Chandramouli

**Email:** schand31@asu.edu

**Office:** BYENG 423

**Office Hours:** Monday 12pm–1pm, Wednesday 3pm–4pm, Friday 2pm–3pm, and by appointment

## Important Links

## Important Dates

- Homework 5 (homework submission is on Blackboard under the “Content” tab) due 12/5/15
- Midterm 2 11/18/15
- Project 5 due 12/2/15
- Homework 4 (homework submission is on Blackboard under the “Content” tab) due 11/16/15
- Homework 3 (homework submission is on Blackboard under the “Content” tab) due 10/21/15
- Project 4 due 10/30/15
- Midterm 1 9/30/15
- Project 3 due 10/7/15
- Homework 2 (homework submission is on Blackboard under the “Content” tab) due 9/23/15
- Homework 1 (homework submission is on Blackboard under the “Content” tab) due 9/9/15
- Project 2 due 9/9/15
- Project 1 due 8/31/15

## Lecture Slides

- Programming Languages – 8/24/15
- Lexical Analysis – 8/26/15 and 8/31/15
- Syntax Analysis – 9/2/15, 9/9/15, 9/14/15, and 9/16/15
- Semantics – 9/16/15, 9/21/15, 9/23/15, and 10/5/15
- Type Systems – 10/5/15 and 10/7/15
- Hindley-Milner Type Inference – 10/14/15
- Mohsen slides on Hindley-Milner Type Inference (note that the notation for functions is different) – 10/14/15
- The Runtime Environment – 10/19/15, 10/21/15, 10/26/15, 10/28/15, 11/2/15, 11/4/15, and 11/9/15
- Lambda Calculus – 11/23/15, 11/25/15, 11/30/15, and 12/2/15

## Recorded Lectures

- 8/24/15
- 8/26/15
- 8/31/15
- 9/2/15
- 9/9/15
- 9/14/15
- 9/16/15
- 9/21/15
- 9/23/15
- 9/28/15
- 10/5/15
- 10/7/15
- Recorded 10/13/15 Lecture on Hindley-Milner Type Inference, makeup for 10/14/15 lecture
- 10/19/15
- 10/21/15
- 10/26/15
- 10/28/15
- 11/2/15
- 11/4/15
- 11/9/15
- 11/16/15
- 11/23/15
- 11/25/15
- 11/30/15
- 12/2/15

## Recorded Office Hours

- 9/28/15: Part 1, static vs. dynamic scoping and some box and circle diagrams, Part 2, writing a recursive descent parser for a context-free grammar
- 10/19/15: Examples of Hindley-Milner type inference
- 10/21/15: More Hindley-Milner type inference discussion
- 11/16/5: Visualizing the Stack and Function Frames, Hindley-Milner Type Inference, specifically Homework 3 Problem 3, Structural equivalence, and Type equivalence, name equivalence, internal name equivalence, and structural equivalence

## Relevant Book Sections

- Introduction (covers material from 8/24/15) (3rd and 2nd editions: Sections 1.1, 1.2, 1.4, and 1.5).
- Lexical Analysis (covers material from 8/26/15 and 8/31/15) (3rd edition: 6.1, 2nd edition: Section 4.1)
- Syntax Analaysis (covers material from 9/2/15, 9/9/15, 9/14/15, and 9/16/15) (3rd edition: 6.2, 6.3, and 6.4, 2nd edition: Sections 4.2, 4.3, and 4.4)
- Semantics (covers material from 9/16/15, 9/21/15, 9/23/15) (3rd edition: Sections 7.1, 7.2, 7.3, and 7.4, 2nd edition: Sections 5.1, 5.2, 5.3, and 5.4)
- Type Systems (covers material from 10/5/15 and 10/7/15) (3rd edition: Sections 8.1, 8.2, 8.3, 8.5, and 8.6, 2nd edition: Sections 6.1, 6.2, 6.3, 6.5, and 6.6)
- Hindley-Milner Type Inference (covers material from 10/14/15) (3rd edition: Sections 8.9 and 8.9, 2nd edition: Sections 6.8 and 6.9)
- The Runtime Environment (covers material from 10/19/15, 10/21/15, 10/26/15, 10/28/15, 11/2/15, and 11/4/15) (3rd edition: Sections 10.1, 10.2, 10.2, 10.4, and 10.5, 2nd edition: Sections 8.1, 8.2, 8.3, 8.4, and 8.5)
- Lambda Calculus (covers material from 11/23/15, 11/25/15, 11/30/15, and 12/2/15) (3rd edition: Section 3.6, 2nd edition: Section 11.8)