Department of Computer Science

Com S 342: Principles of Programming Languages

Got a question?

Got a question or comment? Contact us at (515) 294-6168 or

Course Description (from ISU Catalog)

Com S 342. Principles of Programming Languages. 3-1) Cr. 3. F.S. Prereq: 321; 330 or Cpr E 310; either 309, 362 or 363; Engl 150. Organization of programming languages emphasizing language design concepts and semantics. Study of language features and major programming paradigms, especially functional programming. Programming projects. Nonmajor graduate credit.

Com S 342 Essential Objectives

A variety of programming languages and paradigms exist today and more are being invented as we speak. Although theoretically every task can be accomplished in any Turing-complete programming language, in practice, there is a tight correlation between selected programming language, software development task, programmer productivity, and overall software efficiency and quality. A judicious choice of programming language is thus of utmost importance. Com S 342 provides undergraduate students with a scientific basis for this selection. In addition, after successfully completing this course, you should be able to:

  • Write and modify programs in functional style
  • Make effective use of data abstraction
  • Change or enhance interpreters to have features such as:
    • control flow
    • variables
    • recursion
    • scoping
    • syntactic sugars
    • arrays
    • parameter passing mechanisms
    • type checking
    • objects, and inheritance
  • Write programs using such features and explain their behavior
  • Explain the data structures and algorithms used in interpreters
  • Compare alternatives in programming language design and implementation


  • Essentials of Programming Languages, 3rd Edition by Friedman and Wand
  • The Little Schemer, 4th Edition by Friedman and Felleisen
  • [Recommended] Structure and Interpretation of Computer Programs, 2nd Edition by Abelson and Sussman. This book is available here.

Accommodations for Disabilities

We would like to hear from you if you have a disability that may require some modification of seating, testing, or other class requirements. If so, please request that the Disability Resources staff send a SAAR (Student Academic Accommodation Request) form verifying your disability and specifying the accommodation you will need. Then bring the SAAR form along and talk to Hridesh Rajan as soon as possible so appropriate arrangements may be made.