ICS 313: Programming Language Theory, Spring 2002

General Info

Overview

Readings

Assessment

Instructor

TA

Course Management

News

Assignments

Blackboard

Code Discussions

Projects

Resources

Schedule

 

Overview

Objectives

The goals of this course are to learn

  • some programming languages in addition to Java (which I presume you know),
  • how to learn new programming languages,
  • alternative paradigms for describing computation (functional, logic, and object oriented as well as imperative),
  • concepts underlying language design and their implementation, and
  • important data structures and algorithms that are used to process languages (e.g., parsing).

The objectives of a previous version of this course have been described in more detail by Philip Johnson.

Format

Meetings are Monday and Wednesday 15:00-16:15, MSB 114.

We will also make use of various online media for notes and interaction.

I will expect that you will have read the relevant book chapters and will not repeat that material unnecessarily. In class we'll focus on examples and questions. Your work will include programming and conceptual assignments, quizzes and exams, and a project (longer assignment).

You will first learn a new functional langage, an object oriented scripting language, and a logic language. This will broaden your view of what a programming language is, while also giving us some examples to draw on when we cover the theoretical material of the textbook for the remainder of the term. There will also be a group assignment, probably to design and implement a small special purpose language.