FRAMES    NO FRAMES

Course Description

Scope and Topics Covered

The course will teach essential aspects of the design and implementation of programming languages. Some of the topics to be covered include (not necessarily in this order):
The course will be a very brief introduction to each, rather than an in-depth study. Several of these topics are encountered or examined in more depth in several later courses in the CS curriculum.

We choose two programming languages, Scheme and ML, as a means to present the forementioned topics. Why these two languages in particular? Scheme has a relatively small core, a clean semantics, and teaches well the dictum that "a good programmer is also a good language designer". Although ML has a larger syntax than Scheme, it is designed on principles of strong static typing, a trend which was followed in the design of Java and other modern programming languages.

Lectures

Mon, Wed, Fri 10:00 - 11:00 am, in Room MCS B31.

Prerequisites

According to the BU catalog, CS 112 and MA 293 (or equivalent) will be sufficient preparation for this course. CS 112 gives you the necessary programming background (though neither in Scheme nor in ML) and MA 293 the necessary theoretical background. Although these two courses are the formal requirement, students are normally expected to have completed all 200-level courses in the BU CS curriculum successfully. If you think you miss some of this background, please consult with the teaching staff.

Exams

Midterm Exam: Friday, March 3, 10:00 - 11:00 am.
Final Exam: Saturday, May 6, 9:00 - 11:00 am.

The exams are closed book. You may, however, bring one 8.5 by 11 sheet of paper (i.e. one regular-size sheet of paper) as a crib sheet. Preparing a crib sheet can be a useful study aid, so take time in selecting material for it. You may use both sides of the paper and write as small as you like, but in any case, you are allowed only one sheet. No mechanical or electronic reproductions are allowed; the crib sheet must be hand written. If you hand in your crib sheet with your exam, you will get credit for it in your total grade for the exam.

Teaching Staff

Instructor -- Mark Crovella
       Office Hours: Th 4-6, Fri 12-1
       Location: MCS 273

Teaching Assistant -- Rui Shi
       Office Hours: Wed 3-5, Fri 3-5
       Location: MCS 174, e-mail: shearer@cs.bu.edu

Mailing List

The course mailing list is named cs320 and is managed by IT's majordomo engine. All students registered for the course should add themselves to the mailing list. To join the course mailing list, type "csmail -a cs320" at the Unix prompt. To inspect who else is on the mailing list, type "csmail -p cs320". To remove yourself from the mailing list, type "csmail -r cs320".

Students are welcome to post messages and questions to the mailing list.

Books and Reading Material

Required: