• Programming Languages
    • School of Electronic, Information and Electrical Engineering
    • Credit. 3
    • CS383
    • Enroll
    • Fall , 2015
    • 4809
    • Course Description:
    • ( Exchange Programme )
    • A small number of concepts underline the hundreds of programming languages that have been designed, implemented and practiced. This course introduces the concepts that serve as a basis for modern programming languages. It aims to provide the students with a basic understanding and appreciation of the various essential programming language constructs and properties, programming language semantics, programming paradigms, and language implementation issues. The course is centered around Lambda Calculus and evolves by incrementally adding important language features and elements to the core language. The course covers concepts from functional, imperative, object-oriented and logic programming languages. At the end of the course, you will be able to design and implement your own full-fledged programming language!
    • Course Syllabus:
    • After completing the course, students should be able to:
      1. inductively define the syntax and semantics of programming languages
      2. inductively proof mathematical properties
      3. master essential language constructs
      4. understand type theory and type inference
      5. understand memory management principles
      6. be acquainted with representative languages in functional, imperative, objective oriented and logic programming languages.
      7. Design and implement the syntax and semantics of a simple programming language with type inference and garbage collection features.
    • Schedule:
    • Topics / Credit hours / Teaching methodology / Tasks / Intended learning outcomes / Assessment methods

      1. Inductive definitions and Proofs / 6 Credit hours / Lecture & Tutorial / Assignment / Null / Assignment & Tutorial
      2. Untyped Lambda Calculus / 4 Credit hours / Lecture & Tutorial / Assignment / Null / Assignment & Tutorial
      3. Simply typed Lambda Calculus / 8 Credit hours / Lecture & Tutorial / Assignment / Null / Assignment & Tutorial
      4. Imperative Lambda Calculus / 4 Credit hours / Lecture & Tutorial / Assignment / Null / Assignment & Tutorial
      5. Memory Management / 2 Credit hours / Lecture & Tutorial / Assignment / Null / Assignment & Tutorial
      6. Type Inference / 6 Credit hours / Lecture & Tutorial / Assignment / Null / Assignment & Tutorial
      7. Subtyping / 4 Credit hours / Lecture & Tutorial / Assignment / Null / Assignment & Tutorial
      8. Programming Paradigms / 8 Credit hours / Lecture & Tutorial / Assignment / Null / Assignment & Tutorial
      9. Project / 2 Credit hours / Tutorial / Project / Null / Project report and presentation
  • Reading list
  • Other Materials
  • Discussion
  • Homework download/submit
    • Kenny Qili Zhu
    • Associate Professor
    • Read more
    • Male
    • E-mail:
    • kenzhu@sjtu.edu.cn
    • Profile
    • Kenny Qili Zhu is an Associate Professor and Distinguished Research Professor at Department of Computer Science and Engineering at Shanghai Jiao Tong University. He graduated with B.Eng (Hons) in Electrical Engineering in 1999 and PhD in Computer Science in 2005 from National University of Singapore. His PhD advisors were Joxan Jaffar and Roland Yap. He was a postdoctoral researcher and lecturer from 2007 to 2009 in the programming language group at Princeton University working on the PADS project with David Walker from Princeton and Kathleen Fisher from AT&T Labs. Prior to that , he was a software design engineer in the Windows Live Identity group of Microsoft in Redmond, WA. From Feb 2010 to Aug 2010, he was a visiting professor at Microsoft Research Asia in Beijing. Kenny was the winner of the 2013 Google Faculty Research Award and DASFAA 2014 Best Paper Award.
  • Prerequisite Course:


  • Textbooks:

    1. Benjamin C. Pierce, Types and Programming Languages The MIT Press.
    2. Robert Harper, Practical Foundations for Programming Languages Cambridge University Press.
    3. Programming Languages Principles and Paradigms by Allen Tucker and Robert Noonan, McGraw Hill / 2009-5-1
  • Grading:

    Assignments + Tutorial Participation + Project + Exam
Other courses
  • Principles of Optielectronics and sensor applications
    Principles of Optielectroni...
    This course covers basics of optoelectronics, including optical propagation in single layer, multiple periodic layers, waveguide, SPR, and any layered structures. Then, applications of these thin film...
    Rong Guoguang
  • Semiconductor Physics and Devices
    Semiconductor Physics and D...
    This course is one of fundamental courses for undergraduate students who are major in electronic science and technology, microelectronics and so on. Through this course, students can learn and master ...
    Zou Weiwen
  • The principle of Database Systems
    The principle of Database S...
    The lecture will introduce some basic concepts, components and features of database systems. It is an introduction to the design and use of database systems. Many models and query languages will also ...
    Li Fang
  • Digital Signal Processing
    Digital Signal Processing
    Digital signal processing is a new-rising subject. It’s developing rapidly now and widely applied to many fields of science and engineering. It’s important knowledge for all informatics workers. As a ...
    Wu Kan
  • Technology of Electromagnetic Compatibility (EMC)
    Technology of Electromagnet...
    It takes 8 weeks with class lecture in the first 7 weeks, and in the last week there is an experiment. The final score is based on the attendance and final exam. The international students can finish ...
    Zhao Gang
  • Multicore Architecture and Parallel Computing
    Multicore Architecture and ...
    Multi-core era is here to stay and many programmers will be developing parallel software. But still not everyone is trained in parallel programming. In this course, students will study the state-of-ar...
    Jiang Li
  • Digital Signal Processing (B)
    Digital Signal Processing (...
    Review of discrete-time signals and systems, including but not limited to, spectra of discrete-time signals, properties of discrete-time systems, equivalent descriptions of discrete-time systems, real...
    Ma Dianguang
  • Microwave and Antenna Technologies
    Microwave and Antenna Techn...
    Today, microwave and RF technology is more pervasive than ever. This is especially true in the commercial sector, where modern applications include cellular phones, WiFi, millimeter wave collision sen...
    Wu Linsheng
  • Data Communications
    Data Communications
    This course covers fundamentals of data communications: media, transmission, encoding and processing, error detection and handling, link control, multiplexing, circuit and packet switching. It also ad...
    Tang junhua

Shanghai Jiao Tong University The English Course Catalog | School Counseling:021-34206468-102

沪ICP备05052060 © Shanghai Jiao Tong University all rights reserved. | Address: 800 Dongchuan Road, Shanghai