Dalhousie University    [  http://www.cs.dal.ca/~vlado/csci3136  ]
Winter 2008 (Jan7-Apr9)
Faculty of Computer Science
Dalhousie University

CSCI 3136 - Principles of Programming Languages

[ Shortcuts: Calendar | Links ]
Time: Mon-Wed-Fri 15:35-16:25
Location: Henry Hicks 228
Instructor: Vlado Keselj, office: CS bldg 213, phone: (494)-2893, e-mail: vlado and add @cs.dal.ca
Office hours: "Open-door" policy, unless in a meeting or on a phone call. To be sure that I am available, please make appointment by e-mail.
TA: Jiantao Lu, email: jiantao@cs.dal.ca
E-mail list: all-cs3136 at cs.dal.ca

Course Description

CSCI 3136.03: Principles of Programming Languages.
The main topics of this course include a comparative study of programming language features, an introduction to programming language design and implementation, and an introduction to formal language theory. (link to calendar description)

The course objectives are:

Related Courses: The course prerequisites are CSCI 2110 (Computer Science III), CSCI 2112 (Data and File Structures), or CSCI 2132 (Software Development). Another relevant course is: CSCI 3136 - Object Oriented Programming.

Two courses providing continuations of the topics in this course are: CSCI 4131 - Compiler Construction, and CSCI 4112 - Theory of Computation.


50%   Assignments (likely five or more)
20% Midterm
30% Final exam
Plagiarism Policy
Instructions for submitting programming parts of assignments on machine torch

Course Calendar
Relevant Links


Required Textbook:
  1. [CN] CSCI 3136, Principles of Programming Languages, Course Notes by Phil Cox, Vlado Keselj, and Evangelos Milios, Faculty of Computer Science, Dalhousie University, 2007.
    Bound course notes will be available at the reception desk of Faculty of Computer Science in January.
  2. [PLP] Programming Language Pragmatics by Michael L. Scott, Morgan Kaufmann, 2006, Second Edition, ISBN 978-0-12-633951-2. http://www.cs.rochester.edu/u/scott/pragmatics.
Recommended Textbooks:
  1. [IALC] Introduction to Automata Theory, Langauges, and Computation by John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman, Addison Wesley, 2006, 3rd edition, ISBN 0-301-45536-3. http://www-db.stanford.edu/~ullman/ialc.html.
  2. [PLPP] Programming Languages: Principles and Paradigms by Allen B. Tucker, and Robert E. Noonan, McGraw-Hill, 2007, Second Edition, ISBN 978-0-07-286609-4. http://www.mhhe.com/tucker.
  3. [CPL] Concepts of Programming Langauges by Robert W. Sebesta, Addison Wesley, 2005, 7th edition, ISBN 0-321-33025-0. http://www.aw.com/sebesta.
  4. [MCIJ] Modern Compiler Implementation in Java by A. Appel, Cambridge Univ. Press, 1998, ISBN 0-521-58388-8. http://www.cs.princeton.edu/%7Eappel/modern/java/.
  5. [FSSPL] Formal Syntax and Semantics of Programming Languages by Kenneth Slonneger and Barry L. Kurz, Addison Wesley, 1995. http://www.cs.uiowa.edu/%7Eslonnegr/plf/Book/.
    This book is currently out of print but is available on the Web. (cached)
  6. [SICP] Structure and Interpretation of Computer Programs by H. Abelson and G. Sussman, 2nd edition, MIT Press, 1996. http://mitpress.mit.edu/sicp/.
    Includes full text in HTML format.
  7. [OOSC] Object-oriented Software Construction by B. Meyer, 2nd edition, Prentice Hall, 1997.
  8. Comparative programming languages by Leslie B. Wilson and Robert G. Clark, 3ed edition, Addison Wesley, 2001, ISBN 0-201-71012-9. http://www.cs.stir.ac.uk/%7Ergc/cpl/.
Related Reading:
  1. Programming Languages Design and Implementation by Terrence W.Pratt and Marvin V.Zelkowitz, 4th edition, Prentice Hall, 2000.

© 2003-2008 Vlado Keselj, last update: 11-Jan-2008