CS383 Programming Languages
A small number of concepts underline the hundreds of programming languages that have been designed and implemented. This course introduces the concepts that serve as a basis for programming languages. It aims to provide the students with a basic understanding and appreciation of the various essential programming language constructs, programming paradigms, evaluation criteria and language implementation issues. The course covers concepts from functional, imperative, object-oriented,
logic programming and optionally scripting languages.
These concepts are demonstrated by incrementally adding
more features to a simple functional language called Lambda
Calculus to eventually arrive at a full-fledged, user-friendly
general purpose programming language. At the end of the
course, a number of modern programming languages from various
paradigms are presented as examples.
Latest News and Announcements
- Feb 1, 2020: Course Page re-opens.
Lectures: Mon 16:00-17:40, Wed 10:00-11:40 (9-16th week),
Instructor: Kenny Zhu
- SEIEE 03-407 Phone: 3420-4592 Email: kzhu[at]cs[dot]sjtu[dot]edu[dot]cn
Office hours: by appointment via email or ask after class
Office hours: Thu 16:00-17:00 @ SEIEE 03-329
- Programming Languages Principles and Paradigms by Allen Tucker and Robert Noonan, McGraw Hill / 2009-5-1 (Also published by Tsinghua University Press and
available at the University Textbook Office).
- Practical Foundations for Programming Languages by Robert Harper, Cambridge University Press.
- Types and Programming Languages by Benjamin C. Pierce, The MIT Press.
- Programming Languages: Application and Interpretation by Shriram Krishnamurthi, Brown, Online.
- In-class quizzes: 10%
- Tutorial participation: 5%
- Assignments: 30-40%
- Project: 25%
- Exam (in-class test): 20-30%
Copyright (c) Kenny Q. Zhu, 2012-2019.