CSE-321 Programming Languages

[ Home | Schedule | Assignments | Software | Resources | Pictures ] gla@postech Sungwoo Park


Spring 2006
박성우, Sungwoo Park
Lecture, Monday and Wednesday 11:00am - 12:15pm. 정보통신연구소 143호
3 credits

This course covers the basics of the theory of programming languages. We will begin with an introduction to functional programming and the mathematical foundation for programming language theory, and then proceed to the techniques for formally defining a programming language such as abstract syntax, type system, and operational semantics. We will investigate important features found in modern programming languges and their implementation issues.
This course places a strong emphasis on the role of type theory in modern programming languages. In order to complement our theoretical study with practical programming, we will learn a higher-order functional language called ML. Students are encouraged to learn on their own other functional languages, such as Haskell, Objective CAML, and Scheme.

Prerequisites: None, but MATH-261 Discrete Mathematics and CSE-233 Data Structure and Algorithm are strongly recommended. Prior exposure to elementary logic is also helpful.


What's New?

  • (06/22) Nothing --- the course is over.
  • (06/22) The final exam has been graded. The average is 47.62/100.
  • (06/22) The final exam and a sample solution are available (Schedule).
  • (06/14) Final exam: Wednesday, June 21, 10pm to 1am, 정보통신연구소 143호. Open book/notes, no notebook.
  • (06/12) "Curry-Howard isomorphism" slide is up (Schedule).
  • (06/09) "Call-by-need and Haskell" slide is up (Schedule).
  • (06/05) "Dependent types" slide is up (Schedule).
  • (05/29) "TML" slide is up (Schedule).
  • (05/24) "Recursive types" slide is up (Schedule).
  • (05/22) "Let-polymorphism" slide is up (Schedule).
  • (05/17) "Predicate polymorphic λ-calculus" slide and course note are up (Schedule).
  • (05/15) Assigment 7 is out (Assignments).
  • (05/15) "System F" slide and course note are up (Schedule).
  • (05/10) "Subtyping" slide and course note are up (Schedule).
  • (05/08) "References" slide and course note are up (Schedule).
  • (05/03) "Typechecking" slide and course note are up (Schedule).
  • (05/05) Assigment 6 is out (Assignments).
  • (05/01) "Abstract Machine E" slide is up (Schedule).
  • (04/28) "Continuations" course note is up (Schedule).
  • (04/24) Midterm solution is up (Schedule).
  • (04/19) "Continuations" slide is up (Schedule).
  • (04/17) Assigment 5 is out (Assignments).
  • (04/17) "Evaluation semantics" slide is up (Schedule).
  • (04/12) "Evaluation contexts" slide and course note are up (Schedule).
  • (04/10) "Extensions to the simply typed λ-calculus" slide is up (Schedule).
  • (04/05) "Type safety" slide and course notes are up (Schedule).
  • (04/03) Assigment 4 is out (Assignments).
  • (04/03) Extra-credit Assigment is out (Assignments).
  • (04/03) Assigment 3 Programming Part has been graded (Assignments).
  • (04/03) Assigment 3 solution is up (Assignments).
  • (04/03) "Simply typed λ-Calculus" slide and course notes are up (Schedule).
  • (03/29) "Fixed Point Combinator" slide is up (Schedule).
  • (03/27) "λ-Calculus (II)" slide is up (Schedule).
  • (03/25) Assignment 3 Written Part is out (Assignments).
  • (03/24) Assignment 2 has been graded (Assigments).
  • (03/24) Assignment 3 Programming Part is out (Assignments).
  • (03/24) Assigment 2 solution and test functor are up (Assignments).
  • (03/22) Chapter 3 of course notes (Section 1,2) is up (Schedule).
  • (03/22) "λ-Calculus" slide is up (Schedule).
  • (03/20) Assigment 2 test functor is up (Schedule).
  • (03/20) Chapter 2 of course notes (Section 4) is up (Schedule).
  • (03/20) "Inductive Proof" slide is up (Schedule).
  • (03/17) Assignment 2 is out (Assignments).
  • (03/15) Chapter 2 of course notes (Section 1,2,3) is up (Schedule).
  • (03/15) Assignment 1 has been graded (Assigments).
  • (03/15) "Inductive Definition" slide is up (Schedule).
  • (03/13) "Introduction to Functional Programming (II)" slide is up (Schedule).
  • (03/08) "Introduction to Functional Programming" slide is up (Schedule).
  • (03/06) Assignment 1 is out (Assignments).
  • (03/06) If you are taking this course but there is no handin directory for you, please email the instructor.
  • (03/06) "Overview" slide is up (Schedule).
  • (03/05) Tim Sweeney's invited talk at POPL 2006 is up (Resources).
  • (03/05) Chapter 1 of course notes is up (Schedule).
  • (03/01) Welcome -- Course webpage is open!

Class Material

Schedule Lecture schedule and readings
Assignments Details of assignments, due dates, and policies
Software Guides to setting up the programming environment
Resources Course resources

Course Information

Lectures Monday and Wednesday 11:00am - 12:15pm, 정보통신연구소 143호
Textbook Types and Programming Languages, Benjamin C. Pierce (main textbook; available in the bookstore)
Course notes [PS, PDF] will also be distributed.
Notes on Programming SML/NJ, Riccardo Pucella (main reference book for Standard ML; local copy [PS, PDF])
Introduction to Programming Using SML, Michael. R. Hansen and Hans Rischel (supplementary book; 5 copies available in the library)
ML for the Working Programmer, L.C. Paulson (supplementary textbook; available in the library)
Programming in Standard ML, Robert Harper (supplementary textbook)
Haskell: The Craft of Functional Programming, Simon Thompson (supplementary textbook; in the library)
Credit 3
Grading 70% Assignments
10% Midterm Exam
20% Final Exam
Midterm Monday, April 24, 11:00am - 12:30pm. 정보통신연구소 143호. Closed book.
Final Wednesday, June 21, 10pm - 1am. 정보통신연구소 143호. Open book/notes, no notebook.
Home http://www.postech.ac.kr/~gla/cs321/
Discussion telnet to pl.postech.ac.kr with id bbs
Directories /afs/postech.ac.kr/class/cse/cs321/handin/ for submission of assignments

Teaching Staff

Instructor 박성우, Sungwoo Park
Contact gla@postech or x-2386
Office Engineering Building 2, Room 309
Office Hour Tuesday 5pm-6pm
TA 임현승
Contact genilhs@postech or x-5950
Office Engineering Building 2, Room 226
Office Hour Monday 5pm-6pm
TA 손민영
Contact myson@postech or x-5950
Office Engineering Building 2, Room 226

[ Home | Schedule | Assignments | Software | Resources | Pictures ] gla@postech Sungwoo Park