Home  |   Notes  |   Languages  |   Programs  |   Homework
CS 3304 Spring 2000: Syllabus

Comparative Languages

Class Meets: MWF 9:05-9:55 AM in Robeson 105

Postscript Version of the Printed Syllabus
PDF Version of the Printed Syllabus


Course Information
Instructor: Lenwood S. Heath
Office: 638 McBryde Hall
Office Hours: Monday, Wednesday 1:15-3:00
E-Mail: heath@cs.vt.edu
GTA: Deepak Rao
Office: McBryde 133
Office Hours: Thursday, Friday 2:30-4:30
E-Mail: derao@cs.vt.edu

Prerequisite: CS 2604 and programming experience
Texts: Concepts of Programming Languages, 4th Ed.,
Robert W. Sebesta, Addison-Wesley, 1999.
Optional: CS 3304 Spring 2000 Course Notes
may be purchased at A-1 Copies in University Mall
Web Information: http://courses.cs.vt.edu/~cs3304/Fall00/
Midterm Exam: Monday, October 16, 9:05AM-9:55AM
Final Exam: Friday, December 8, 10:05AM-12:05PM
Index Number: 91248

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. 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.

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.


Grading Policy:
Grading for the course is on a 1000-point scale, with the points distributed as follows:

Activity Number of points
Programming Assignments (4 worth 75 points each) 300
Homework Assignments (8 worth 50 points each) 400
Midterm Exam 100
Final Exam 200
Total 1000

If you have questions about the way an assignment was graded, you should ask the GTA first and then consult the instructor.

All exams are open-book, open-note. The final exam covers all the material in the course.

Homework Assignments: The solutions for each homework assignment must be prepared with a word processor (e.g., LaTeX or Word) and are due at 5:00PM on the due date (always a Monday). NO LATE HOMEWORK ASSIGNMENTS WILL BE ACCEPTED. Details of the assignments will be posted on the class web pages. Your submission must be a printed copy of your solutions, left in a box outside McBryde 638 by the time due.

Programming Assignments: There are four programming assignments, always due at 5:00 PM on a Monday. Due dates are listed on the course calendar. NO LATE PROGRAMMING ASSIGNMENTS WILL BE ACCEPTED. Details of the assignments will be posted on the class web pages. Submission of programs and supporting files is via email to the class account cs3304@courses.cs.vt.edu. Receipt of your submission should be acknowledged automatically, usually within a few minutes.


Class Attendance:
You are expected to attend class always--please arrive on time. If you miss a class, it is your responsibility to find out what was discussed, what assignments were made, or what handouts were given. Note that job interviews are not considered an acceptable reason to miss class.

Course Outline and Reading Assignments:
Topic(s)Reading
Introduction and Language Evaluation Chapter 1
Programming Language Paradigms  
History and Evolution Chapter 2
Imperative Programming (Pascal)  
Functional Programming (LISP/Scheme) Chapter 14
Logic Programming (Prolog) Chapter 15
Object-Oriented Programming Chapter 11
Syntax and Semantics Chapter 3
Names and Typing Chapter 4
Data Types Chapter 5
Expressions and Assignment Chapter 6
Functional Programming Again (ML)  
Control Structures Chapter 7
Subprograms Chapters 8 and 9
Abstract Data Types (ADTs) Chapter 10

See the course home page for the current reading assignment.


The Honor Code:
All graded assignments must be your own work. When writing up homework or programming assignments, you may seek help during office hours from the GTA or the instructor. You should also feel free to raise questions during class. Any other assistance in writing up an assignment is a violation of the honor code, i.e., you cannot work with anyone else. In addition, falsification of any portion of a program report, fabrication of program output, or misrepresentation of the behavior or completeness of your program will be considered an honor code violation.

Because you are expected to learn new programming languages outside of class, I encourage student interaction regarding the understanding of a programming language and the system under which it operates, so long as there is no direct help in completing an assignment. If you want to form groups in order to help each other learn a language, I have no objection.


Special Accommodations:
If any student needs special accommodations because of a disability, please contact the instructor during the first week of classes.

Home  |   Notes  |   Languages  |   Programs  |   Homework
copyright © 2000 Virginia Tech, ALL RIGHTS RESERVED
Last modified: October 25, 2000, 08:11:43 EDT, by Lenwood S. Heath <heath@cs.vt.edu>