CS 3304 - Comparative Languages
Summer I, 1999

Class location: McBryde 233

Time: 11:00 – 12:15 M-F

Course Description: This course provides an in-depth study of current and historical issues in the design, implementation, and application of programming languages. Topics will vary from basic to advanced in areas such as syntax, semantics, binding, data abstraction, exception handling, concurrency, and functional, logic and object-oriented programming as time allows. Some programming will be required to help you get the feel for different types of languages. In particular, you will be expected to develop programs in two new paradigms with which you may not be familiar.  This class is not (as some students expect) an introduciton to lots of different programming languages;  it is a concepts course, in which you use several languages to see the differences between them

Among the primary goals of this course are (1) to give you the background to be able to evaluate the appropriateness of a programming language to an application, (2) exposure to different types of languages, and (3) to get you to the point where learning a new programming language is not an effort to be feared.  The course is partially self instruction;  you will be given a brief introduction to some languages and expected to learn it on your own well enough to write non-trivial programs.

Instructor: Dr. K. Todd Stevens
            Office:             521 McBryde
            Phone:             231-5275 (Please use email; do not to leave phone messages.)
            Office Hours:   Mon, Tue, Thurs, Fri 12:15 – 1:00 and by appointment
            E-mail:             todds@cs.vt.edu

I prefer to talk to students in person, so talking to me after class, during my office hours, or making an appointment is best. I will answer questions over the phone during my office hours, but in-person students get priority over email or phone calls. I will be in my office at other times, but I have other work to accomplish, so please try to respect my need to do other work; I will give you assistance if I’m not busy with something else. GTA: Felicia Doswell
        Office:                 120/118/116 McBryde
        Phone:                 none
        Office Hours:       TBA
        E-mail:                 fdoswell@vt.edu

Pre-req: CS 2604 and programming experience
Text: Concepts of Programming Languages, 4th Ed., Robert W. Sebesta
Class Notes: Purchase them at A-1 Copies in the University Mall

Grading: Programs
                    C                    15%
                    Lisp/Scheme    15%
                    Report             10%
                    Prolog             10%
            Attendance, quizzes, etc. 5%
            Homework 10%
            Midterm 15%
            Final 20%

Computer Platform: All assignments must run on the machines in the 116/118 lab. No exceptions! It is the responsibility of each student to make sure that her or his programs work on the lab machines. A student’s own computer cannot be brought in to be used for a demo.

Computer Accounts: Students must get accounts on the lab machines in the 116/118 computer lab in order to make sure that their programs work on those machines.

Special Assistance: Any student who needs special accommodations because of a disability should contact the instructor the first week of classes to make arrangements.

Honor Code: The honor code will be strictly enforced for all aspects of this class: programs, homework, and tests.

Important Dates: (all tentative except for the final)
    Final: Friday, July 2, 8:00 AM
    Midterm: June 11
    Pascal Program: June 4
    LISP Program: June 18
    Report: June 21
    Prolog programs: June 25
    Homework: All announced in class