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.
|