• Programming Languages
    • School of Electronic, Information and Electrical Engineering
    • Credit. 3
    • CS383
    • Enroll
    • WILL BEGIN
    • Fall , 2015
    • 2118
    • 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
  • 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
    1700
  • Digital Electronics Technology
    Digital Electronics Technol...
    This course is designed to teach the students the fundamentals of digital circuits, including basic concepts, principles, and the basic methods for circuit analysis and design. Upon completion of the ...
    Bao Qilian
    1633
  • Artificial Intelligence
    Artificial Intelligence
    AI is the science of getting computers to act without being explicitly programmed. This course will introduce modern theory and techniques enabling Ai, mainly on machine learning, graphical model and ...
    Yuan Bo
    1156
  • 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
    1950
  • Principles of Sensor
    Principles of Sensor
    “Fundamentals of Sensors” is a compulsory course that designed for the undergraduates majoring in measurement & control technology and instrumentations. Moreover, it is also the basic and specialized ...
    陶卫
    1196
  • 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
    1497
  • Internet-based Information Extraction Technologies
    Internet-based Information ...
    Internet-based Information extraction is the method of deriving structured information from unstructured text and semi-structured web pages. More succinctly, information extraction is finding names of...
    Li Fang
    1943
  • Programming Languages
    Programming Languages
    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 prog...
    Kenny Qili Zhu
    2118
  • 3D Display Technologies
    3D Display Technologies
    Three-dimensional (3D) display is an ultimate display technology. From the theaters to TVs at home, to naked eye mobile devices, 3-D displays have been gaining popularity in our daily lives. This co...
    Li Yan
    1473

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