Where to Find Things
This course is designed to give you an introduction to a variety of
modern programming languages and techniques and to show you how compilers
implement such languages. In particular, we will examine object-oriented
languages, event-based languages, scripting languages,
functional languages, and logic programming.
Because of the large number of languages
we will cover and the short amount of time we have, you will not be
an expert in any of these languages when you complete the course. However,
you will have a good rudimentary understanding of these languages, an
idea of the strengths and weaknesses of each language, and an idea
of how programs written in these languages get transformed into object
You will be assigned both weekly and bi-weekly homework assignments/short
programs to help you better understand the material.
The course will also have a semester-long, team-based project that involves
spreadsheet application and that will give you actual experience with
many of the topics discussed in this course. During the last week of the
semester and during the final exam period you will be asked to provide a
20 minute project presentation. The project
will provide you with exposure to:
- Java: The application will be written in
- functional programming: Believe it or not, when you enter formulas
into a cell, you are using functional programming.
- event-based programming: As you create the graphical interface for
the spreadsheet, you will develop experience using event-based
programming and using a graphical interface builder.
- lexical analysis and parsing: You will need to parse and interpret a simple
expression language in which users write formulas.
- working in teams.