Department of Computer Science

Hridesh Rajan

Got a question?

Got a question or comment? Contact me at (515) 294-6168 or hridesh@iastate.edu.

COMS 342: An Undergraduate Course on Programming Language Design, Semantics and Implementation

I have taught (or currently teaching) the following editions of Com S 342.

  • Fall 2015: This edition is also using the book draft Programming Languages: Design, Semantics, and Implementation that uses the Java programming language as the defining language. In this edition of the course, the interpreter framework used by the course saw significant overhaul. We also overhauled the semantics descriptions, and provided more coverage of inductive specifications, and additionally covered ideas behind a module system. The book draft and exercises were also refined and subsequently clarified.
  • Spring 2015: This edition is also using the book draft Programming Languages: Design, Semantics, and Implementation that uses the Java programming language as the defining language. In this edition of the course, the book draft and exercises were refined and clarified.
  • Fall 2014: These editions are using a new book Programming Languages: Design, Semantics, and Implementation that uses the Java programming language as the defining language. In these editions of the course, we also covered several additional topics not covered in previous editions, e.g. concurrency, event-based programming, reactive programming, etc...
  • Fall 2011, Spring 2012, Fall 2012, and Spring 2013: These editions are also using the book Essentials of Programming Languages, 3rd Edition by Friedman and Wand. In these editions of the course, we covered additional topics not included in the textbook, e.g. garbage collection.
  • Spring 2011: This edition is also using the book Essentials of Programming Languages, 3rd Edition by Friedman and Wand. In this edition of the course, we covered more topics compared to the Spring 2009 edition. In particular, lectures on semantics were extended to cover continuations, exceptions, and threads. I also added a module on types and type checking for this edition.
  • Spring 2010: This edition also used the book Essentials of Programming Languages, 3rd Edition by Friedman and Wand. In this edition of the course, we covered more topics compared to the Spring 2009 edition. In particular, lectures on semantics were extended to cover continuations, exceptions, and threads. I also added a module on types and type checking for this edition.
  • Spring 2009: This edition used the book Essentials of Programming Languages, 3rd Edition by Friedman and Wand. Main change in this edition was to adopt the 3rd edition of textbook, which required significant modifications in lecture notes, homework styles and exam styles.

  • Fall 2007: This edition used the book Essentials of Programming Languages, 2nd Edition by Friedman, Wand and Haynes. Most of this edition was adopted from a previously taught course by Prof. Gary T. Leavens.

All the material made available here is copyright © Hridesh Rajan 2018. Permission is granted to make copies for educational and scholarly purposes, but copies may not be used directly or indirectly for commercial purposes. All copies must retain this copyright notice. All other rights reserved.