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, and
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.
The project will provide you with exposure to:
- Java: The spreadsheet application will be written in Java.
- functional programming: when you enter formulas
into a spreadsheet cell, you are using functional programming.
- event-based programming: As you create the graphical interface for
the spreadsheet, you will need to handle keyboard and mouse events.
This input handling will help you 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.