CS 2135: Programming Language Concepts (A01)

A language that doesn't affect the way you think about programming is not worth knowing
(Alan Perlis)

Civilization advances by extending the number of important operations which we can perform without thinking of them.
(Alfred North Whitehead)


General Information


Materials and Notes


Policies and Procedures

Cartoon image
cartoon credits

Course Description and Objectives

Programming languages are one of the most important, yet generally underrated, technologies in computing. This course introduces students to some of the key concepts underlying programming languages. In particular, the course will address the following questions:

We will explore these questions through two main avenues.

By the end of the course, students are expected to develop skills in modeling and implementing simple languages, in understanding the impact of certain key features of programming languages, and in functional programming.

Recommended Background

The course will assume that you already have experience programming in some object-oriented language (such as C++ or Java). The course does not assume experience in a particular language, or with functional programming. You should, however, already have written programs with conditionals (ifs), structures (records), lists, and trees; CS2005 should provide adequate preparation. Students lacking this background should speak to the instructor before attempting the course.


This page maintained by Kathi Fisler
Department of Computer Science Worcester Polytechnic Institute