| Date |
Lecture |
Reading/Slide/Video |
|
| Feb | 17 | |
Overview
Introduction to functional programming (I)
|
Slide [PPT]
Slide [PPT]
CS Chapter 1 (written for SML)
SML
[1a. Expressions and values]
[2a. Variables]
[3a. Functions]
[4a. Types]
[5a. Polymorphism]
OCAML (Expression and Evaluation, Variables, Functions ¿Àµð¿À À½ÁúÀÌ ³ª»Þ´Ï´Ù)
[1b. Expression and Evaluation]
[2b. Variables]
[3b. Functions]
[4b. Types]
[5b. Polymorphism]
OCAML µ¿¿µ»ó óÀ½ 3°³ À½ÁúÀÌ ³ª»Ú±â ¶§¹®¿¡ Çлýµé¿¡°Ô ±ÇÇÏ´Â ¹æ½ÄÀº
1) SML °ÀÇ µ¿¿µ»óÀ» º¸¸é¼ °³³äÀ» ÀÌÇØÇϰí,
2) ÀÌÈÄ ½½¶óÀ̵带 ´Ù½Ã º¸°Å³ª OCAML µ¿¿µ»óÀ» °£·«ÇÏ°Ô ÂüÁ¶ÇÏ¿© OCAML syntax¸¦ ÀÍÈ÷´Â °ÍÀÔ´Ï´Ù.
|
|
| Feb | 19 | |
Introduction to functional programming (II) |
OCAML
[1b. Recursion]
[2b. Datatypes]
[3b. Pattern Matching]
|
|
| Feb | 24 | |
Introduction to functional programming (III)
|
OCAML
[Higher-order Functions]
[Modules]
|
|
| Feb | 26 | |
Inductive definition
|
CS Chapter 2 (Section 2.1, 2.2, 2.3)
Lecture 1 [Youtube]
Lecture 2 [Youtube]
|
|
|
| Mar | 10 | |
Inductive proofs (I)
|
CS Chapter 2 (Section 2.4)
Lecture 1 [Youtube]
Lecture 2 [Youtube]
Lecture 3 [Youtube]
|
|
| Mar | 10 | |
Inductive proofs (II)
8:00pm to 9:15pm, ¹«ÀºÀç 307
|
CS Chapter 2 (Section 2.5)
Lecture 1 [Youtube]
Lecture 2 [Youtube]
Lecture 3 [Youtube]
|
|
| Mar | 12 | |
Lambda calculus (I)
|
CS Chapter 3
Lecture [Youtube]
|
|
| Mar | 17 | |
Lambda calculus (II)
|
Lecture 1 [Youtube]
Lecture 2 [Youtube]
|
| Mar | 17 | |
Lambda calculus (III)
8:00pm to 9:15pm, Engineering Building 2, Room 102
|
Lecture 1 [Youtube]
Lecture 2 [Youtube]
Lecture 3 [Youtube]
|
| Mar | 19 | |
Simply-typed lambda calculus
|
CS Chapter 4
Lecture 1 [Youtube]
Lecture 2 [Youtube]
|
|
|
| Mar | 31 | |
Extension to the simply-typed lambda calculus
|
CS Chapter 5
Lecture 1 [Youtube]
Lecture 2 [Youtube]
Lecture 3 [Youtube]
|
| Mar | 31 | |
Type safety
8:00pm to 9:15pm, ¹«ÀºÀç 307
|
Lecture 1 [Youtube]
Lecture 2 [Youtube]
Lecture 3 [Youtube]
Lecture 3 [Youtube]
|
| Apr | 2 | |
De Bruijn indexes
|
Lecture 1 [Youtube]
Lecture 2 [Youtube]
Lecture 3 [Youtube]
|
Midterm, April 7, classroom (¹«ÀºÀç 307), in-class (2pm - 3.30pm)
|
|
| Apr | 14 | |
Evaluation contexts
|
CS Chapter 8
Lecture 1 [Youtube]
|
| Apr | 14 | |
Abstract machine C and environments
8:00pm to 9:15pm, Engineering Building 2, Room 102
|
CS Chapter 9
Lecture 1 [Youtube]
Lecture 2 [Youtube]
|
| Apr | 16 | |
Closures and Abstract machine E
|
Lecture 1 [Youtube]
Lecture 2 [Youtube]
|
|
|
| April | 28 | |
Exceptions
|
CS Chapter 10
|
| April | 28 | |
Recursive types
8:00pm to 9:15pm, ¹«ÀºÀç 307
|
CS Chapter 12
Lecture 1 [Youtube]
Lecture 2 [Youtube]
|
| April | 30 | |
Mutable references
|
CS Chapter 6
Lecture 1 [Youtube]
Lecture 2 [Youtube]
|
|
|
| May | 12 | |
Subtyping
|
CS Chapter 11
Lecture [Youtube]
|
| May | 12 | |
Featherweight Java
8:00pm to 9:15pm, ¹«ÀºÀç 307
|
Slide [PDF]
|
| May | 14 | |
Object Orientation
|
Slide [PPTX]
|
|
| May | 19 | |
System F
|
CS Chapter 13
Lecture 1 [Youtube]
Lecture 2 [Youtube]
|
| May | 21 | |
Let-Polymorphism
|
Lecture 1 [Youtube]
Lecture 2 [Youtube]
|
|
| May | 26 | |
Type reconstruction
|
Lecture 1-1 [Youtube]
Lecture 1-2 [Youtube]
Lecture 2-1 [Youtube]
Lecture 2-2 [Youtube]
|
| May | 28 | |
Review
|
Slide [PPT]
|
Final, June 2, classroom (¹«ÀºÀç 307), in-class (2pm - 3.30pm)
|
|