Course Info
Course Number: CSE 340 (16266)
Instructor: Prof. Adam Doupé
Email: [email protected]
Office: BYENG 472
Office Hours: Wednesday 12pm–12:30pm and Thursday 3pm–4pm, and by appointment
Meeting Times: Monday, Wednesday, and Friday, 9:00am–9:50am (COOR 174)
Course Mailing List: [email protected]
Course TA: Ankur Chowdhary
Email: [email protected]
Office: BYENG 485AB
Office Hours: Monday 12:30pm–1:30pm, Tuesday 10:30am–11:30am, Friday 4pm–5pm, and by appointment
Important Links
Important Dates
- Homework 4 due 4/19/16
- Midterm exam 3 4/22/16
- Project 5 due 4/29/16
- Midterm exam 2 3/25/16
- Homework 3 due 3/20/16
- Project 4 due 4/5/16
- Project 3 due 3-4-16
- Midterm exam 2/12/16
- Homework 2 due 2/11/16
- Project 2 due 2/2/16
- Homework 1 (homework submission is on Blackboard under the “Content” tab) due 1/30/16
- Project 1 due 1/22/16
Lecture Slides
- Programming Languages
- Essential Programming Skills
- Lexical Analysis
- Syntax Analysis
- Semantics
- Type Systems
- Hindley-Milner Type Inference
- The Runtime Environment
- Lambda Calculus
Recorded Lectures
- 1-11-16 Lecture on Course Introduction, Syllabus, and What is a programming language
- 1-13-16 Lecture on What is a programming language and Essential Programming Skills
- 1-15-16 Lecture on Lexical Analysis Pt. 1
- 1-20-16 Lecture on Lexical Analysis Pt. 2
- 1-22-16 Lecture on Lexical Analysis Pt. 3
- 1-25-16 Lecture on Lexical Analysis Pt. 4 and Syntax Analysis Pt. 1
- 1-27-16 Lecture on Syntax Analysis Pt. 2
- 1-29-16 Lecture on Syntax Analysis Pt. 3
- 2-1-16 Lecture on Syntax Analysis Pt. 4
- 2-3-16 Lecture on Syntax Analysis Pt. 5
- 2-5-16 Lecture on Syntax Analysis Pt. 6
- 2-8-16 Lecture on Syntax Analysis Pt. 7
- 2-10-16 Midterm 1 Review
- 2-15-16 Discussion of Project 3
- 2-17-16 Lecture on Syntax Analysis Pt. 8
- 2-19-16 Lecture on Syntax Analysis Pt. 9 and Semantics pt. 1
- 2-22-16 Lecture on Semantics Pt. 2
- 2-24-16 Lecture on Semantics Pt. 3
- 2-26-16 Lecture on Semantics Pt. 4
- 2-29-16 Lecture on Semantics Pt. 5
- 3-2-16 Lecture on Semantics Pt. 6
- 3-4-16 Lecture on Semantics Pt. 7
- 3-14-16 Lecture on Project 4 and Semantics Pt. 8
- 3-16-16 Lecture on Semantics Pt. 9
- 3-18-16 Lecture on Semantics Pt. 10 and Types Pt. 1
- 3-21-16 Lecture on Types Pt. 2
- 3-23-16 Midterm 2 Review
- 3-28-16 Lecture on Types Pt. 3
- 3-30-16 Lecture on Hindley-Milner Type Inference Pt. 1
- 4-1-16 Lecture on Hindley-Milner Type Inference Pt. 2
- 4-4-16 Lecture on The Runtime Environment Pt. 1
- 4-6-16 Lecture on The Runtime Environment Pt. 2
- 4-8-16 Lecture on Project 5 and The Runtime Environment Pt. 3
- 4-11-16 Lecture on The Runtime Environment Pt. 4
- 4-13-16 Lecture on The Runtime Environment Pt. 5
- 4-15-16 Lecture on The Runtime Environment Pt. 6
- 4-15-16 Lecture on Lambda Calculus Pt. 1
- 4-18-16 Lecture on Lambda Calculus Pt. 2
- 4-20-16 Midterm 3 Review
- 4-25-16 Lecture on Lambda Calculus Pt. 3
- 4-27-16 Lecture on Lambda Calculus Pt. 4
- 4-29-16 Lecture on Lambda Calculus Pt. 5
Recorded Post Office Hours
- 1-27-16 Post-class office hours on Homework 1 questions and regular expressions
- 2-3-16 Post-class office hours on intuition behind calculating FIRST set
- 2-5-16 Post-class office hours on examples and clarification of calculating FIRST sets
- 2-8-16 Post-class office hours on examples and clarification of calculating FOLLOW sets
- 3-30-16 Post-class office hours on Project 4 Questions
- 4-8-16 Post-class office hours on Project 5 Questions
- 4-15-16 Post-class office hours on Project 5 Questions and Homework 4 questions (Hindley-Milner)
Recorded Office Hours
Relevant Book Sections
- Introduction (3rd and 2nd editions: Sections 1.1, 1.2, 1.4, and 1.5).
- Lexical Analysis (3rd edition: 6.1, 2nd edition: Section 4.1)
- Syntax Analaysis (3rd edition: 6.2, 6.3, and 6.4, 2nd edition: Sections 4.2, 4.3, and 4.4)
- Semantics (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 (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 (3rd edition: Sections 8.9 and 8.9, 2nd edition: Sections 6.8 and 6.9)
- The Runtime Environment (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 (3rd edition: Section 3.6, 2nd edition: Section 11.8)