CS 224 Principles of Programming Languages
Spring 2010

Dr. Jill Zimmerman
office: Hoffberger 120
phone: 410 337-6227
email: jzimmerm@goucher.edu
http://phoenix.goucher.edu/~jillz

Office Hours:
        10:30 -10130 MTuWF
        others by appointment

Text: Modern Programming Languages: A Practical Introduction by Adam Brooks Webber
Class web page: http://phoenix.goucher.edu/~jillz/cs224

Course Description and Goals: We will study the underlying principles of programming languages among several different programming paradigms. Topics include syntax and semantics of programming languages, expression evaluation, procedure activations and parameter passing, and data encapsulation. These topics will be illustrated with the use of several languages including Haskell, Java, and Prolog.

Course Objectives:
 

Course Mechanics:
Part of the learning experience will include a series of laboratory exercises.  These labs will include experimentation and graded assignments.  These assignments must be turned in on time.  Late labs will not be accepted.

In addition, you will apply your knowledge by writing an interpreter for a simple imperative language.  This project is broken up into four parts.
Since each part of the programming project builds on the previous parts, it is essential that each part be completed successfully. The project will be graded by when each part is checked off by me as satisfying the requirements. Therefore 80% of the credit for a part will be awarded for successful completion before or by the due date. Late completion will be penalized by 10% for each weekday for which that part is late. The remaining 20% will be determined by project documentation and program readability and style. 

All work for the course should be an individual effort.
Academic dishonesty will not be tolerated. (See the Honor code for definition and disposition of academic dishonesty.)

Grading
      2 Exams (15% each) 30%
      Comprehensive Final   20%
      Project 30%
      Homework/Labs 20%