Table of Contents

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

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

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.