CS105 -- Programming Languages
Spring, 2004
(last updated 1/5/2004)


Wayne Iba,
office: new Math and Computer Science Building,
phone: (805)565-6799
Office hours: MTW 3:15-5pm (or other times by arrangement)
[required] Modern Programming Languages: A Practical Introduction, by Adam Brooks Webber.  Franklin, Beedle & Associates.  (2003).
Time and place: Tuesdays and Thursdays 8:00-9:50 am; Voskuyl Library 104

Syllabus (pdf).

Tentative class schedule

The study of programming languages is not the same as the study of programming.  In this course, we will examine the anatomy of programming languages in general and in particular.  We will consider the features of languages that make them respectively more and less suited to specific problems.  We will address both the syntax and semantics of programming languages in general and consider three specific programming languages: ML, Java, and Prolog.  Since most students have already had experience with Java, we will gloss over that language rather quickly and focus instead on ML and Prolog.  We will also cover the formal semantics of programming languages at a moderate depth.

You will need implementations of the three languages.  You can download ML from Bell Lab's ML site.  Java can be downloaded from Sun Microsystems.  SWI-Prolog can be downloaded from the University of Amsterdam.  (These sites and many other useful resources are linked from the textbook website.)  Each of these are available for both Unix and Windows platforms.  However, I strongly encourage you to take the plunge into Linux if you are not already using it.  I will be assuming the linux platform in lectures and assignments.

Project possibilities:
Acknowledgements:  I will extensively use the slides from the required text.  The author, Adam Webber, has links to the languages  given above and many other useful resources available from his text website.