User Tools

Site Tools


courses:pl2012:main

Programming Languages, Fall 2012

Programming languages are notations for specifying, organizing, and reasoning about computations. Different programming languages arise from different programming paradigms. The goal of this course is to acquaint the students with the constructs and their underlying concepts of major languages in the various programming paradigms. Some fundamental elements of program verification will also be covered.

Announcements

  • 01/24: Grade Report available.
  • 01/02: slides for Concurrent Programming available.
  • 12/26: HW#10 due 2013/01/02.
  • 12/26: notes/slides for Object-Oriented Programming available.
  • 12/19: HW#9 due 12/26.
  • 12/19: notes/slides/examples for Program Verification: Hoare Logic available.
  • 12/12: notes/slides for Imperative Programming: Procedures available.
  • 12/05: notes/slides for Imperative Programming: Data Types available.
  • 12/05: suggested solutions to midterm problems Part I and Part II available.
  • 11/21: HW#8 due 12/12.
  • 11/14: notes/slides for Imperative Programming: Structured Programs available.
  • 11/05: slides from TA sessions: HW#1, HW#2, HW#3, HW#4, HW#5, HW#7.
  • 11/03: OCaml and Common Lisp code for Map, Reduce, Differentiation, etc. available.
  • 10/31: bring your notebook computer with OCaml and CLISP installed to the midterm exam on 11/07.
  • 10/30: HW#7 due 11/21.
  • 10/30: notes/slides for Functional Programming: Lisp available.
  • 10/24: HW#5 due 10/31 and HW#6 due 11/14.
  • 10/17: there will be a TA session from 1:30PM 10/24.
  • 10/17: HW#4 due 10/24 (Note: Problem 5 asks you to extend the grammar of Little Quilt so that functions like “copy” can be defined; “copy” should satisfy equalities like those stated in the problem.)
  • 10/17: completed notes/slides for Functional Programming: ML available.
  • 10/04: HW#3 due 10/17.
  • 10/03: notes/slides for Functional Programming: ML (part) available.
  • 09/26: HW#2 due 10/03.
  • 09/26: notes/slides for Functional Programming: Expressions available.
  • 09/24: three more things (aside from installing OCaml + Emacs) to do to get your laptop ready for the next three weeks: (1) install the DejaVu fonts (2) define an environment variable “LANG” with the value “zh_TW.UTF-8”, and (3) download this one-line OCaml code.
  • 09/19: typos/errors in slides for Syntax and in HW#1 corrected.
  • 09/19: HW#1 due 09/26.
  • 09/12: notes/slides for Introduction and for Language Description: Syntax available.
  • 09/10: this website is the sole source of all up to date course information and syllabus; there is no separate PDF version.

Instructors

Tyng-Ruey Chuang (莊庭瑞), Institute of Information Science, Academia Sinica and NTU IM Dept., Xtrc@iis.sinica.edu.twX (between the enclosing pair of X's).
Yih-Kuen Tsay (蔡益坤), NTU IM Dept., 3366-1189, Xtsay@im.ntu.edu.twX (between the enclosing pair of X's).

Lectures

Wednesday 2:20~5:20PM, Room 304, College of Management, Building 2.

Office Hours

Wednesday 1:20~2:10PM, Room 1108, College of Management, Building 2, or by appointment.

TA

Jui-Shun Lai (賴瑞舜), 3366-1205, Xnarration.lai@gmail.comX (between the enclosing pair of X's).

Textbooks

  • Programming Languages: Concepts and Constructs, 2nd Ed., R. Sethi, Addison-Wesley, 1996. (A copy of this book has been put on reserve at NTU Library in the 教師指定參考書區 under the name “BM-6程式語言”.)
  • Class notes and selected readings.

Note: there are four TA sessions on 10/24, 10/31, 12/5, and 2013/1/2, making up the missed class meeting on 11/28.

Grading

Homework 20%, Midterm 30%, Final 40%, Attendance/Participation 10%.

References

  1. History of Programming Languages, T.J. Bergin and R.G. Gibson, Addison-Wesley, 1996.
  2. Pascal User Manual and Report, 4th Ed.: ISO Pascal Standard, K. Jensen, N. Wirth, A.B. Michel, and J.F. Miner, Springer, 1991.
  3. Elements of ML Programming, ML97 Edition (2nd Ed.), J.D. Ullman, Prentice Hall, 1998.
  4. Common LISP: The Language, 2nd Ed., G.L. Steele, Digital Press, 1990. [ online version at CMU ]
  5. The C Programming Language, 2nd Ed., B.W. Kernighan and D.M. Ritchie, Prentice Hall, 1988.
  6. Verification of Sequential and Concurrent Programs, 3rd Edition, K.R. Apt, F.S. de Boer, and E.-R. Olderog, Springer, 2009.
  7. The C++ Programming Language, 3rd Edition, B. Stroustrup, Addison-Wesley, 1997.
  8. The Annotated C++ Reference Manual, M.A. Ellis and B. Stroustrup, Addison-Wesley, 1990.
  9. The Java Language Specification, 3rd Ed., J. Gosling, B. Joy, G. Steele, and G. Bracha, Addison-Wesley, 2005.
  10. The Java Tutorial: Object-Oriented Programming for the Internet, M. Campione and K. Walrath, Addison-Wesley, 1996.
  11. Distributed Systems: Concepts and Constructs, 4th Edition, G. Coulouris, J. Dollimore, and T. Kindberg, Addison-Wesley, 2005.
  12. Principles of Concurrent and Distributed Programming, 2nd Edition, M. Ben-Ari, Addison-Wesley, 2005.
  13. Programming in Prolog: Using the ISO Standard, 5th Edition, W.F. Clocksin and C.S. Mellish, Springer, 2003.
courses/pl2012/main.txt · Last modified: 2017/07/07 16:22 by tsay