Teaching Programming Languages by Experimental and Adversarial Thinking

Staff - Faculty of Informatics

Date: 11 May 2017 / 09:30 - 10:30

Speaker: Shriram Krishnamurthi
  Brown University, USA
Date: Thursday, May 11, 2017
Place: USI Lugano Campus, room SI-006, informatics building (Via G. Buffi 13)
Time: 9:30-10:30

 

Abstract:

We present a new approach to teaching programming languages. Its essence is to view programming language learning as a natural science activity, where students probe languages experimentally to understand both the normal and extreme behaviors of their features. This has natural parallels to the “security mindset” of computer security, with languages taking the place of servers and other systems. The approach is modular (with minimal dependencies), incremental (it can be introduced slowly into existing classes), interoperable (it does not need to push out other, existing methods), and complementary (since it introduces a new mode of thinking).

 

Biography:

Shriram Krishnamurthi is a Professor of Computer Science at Brown University. With collaborators and students, he has created several influential systems: DrRacket and WeScheme (programming environments), Margrave (access control policy analyzer), FrTime and Flapjax (reactive programming languages), Lambda-JS and TeJaS (semantics and types for JavaScript), and Flowlog (software-defined networking programming language and verifier). He is now working on the Pyret programming language. He is the author of "Programming Languages: Application and Interpretation" and a co-author of "How to Design Programs" and "Programming and Programming Languages". He co-directs the Bootstrap math-and-computing outreach program. He won SIGPLAN's Robin Milner Young Researcher Award, and Brown's Henry Merritt Wriston Fellowship for distinguished contribution to undergraduate education. He has authored over twelve papers recognized for honors by program committees.

 

Host: Prof. Matthias Hauswirth