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

Comparative Languages
MWF 11:15 am-12:05 pm, McB 209

Course Information
Instructor: Stephen Edwards
Office: 604 McBryde Hall
Office Hours: M,W 2:15-3:15 pm
F 10:00-11:00 am
Office Phone: 231-5723
E-Mail: edwards@cs.vt.edu
GTA: Iype Isac
Office: McBryde 133
Office Hours: T 5:30-6:30 pm
R 4:30-6:30 pm
E-Mail: iisac@vt.edu
Prerequisite: CS 2604 and programming experience
Text: Concepts of Programming Languages, 4th Ed., Robert W. Sebesta, Addison-Wesley, 1999.
Optional: CS 3304 Course Notes are available at A-1 Copies, University Mall
Web Information: http://courses.cs.vt.edu/~cs3304
Final Exam: Wednesday, May 9, 1:05 pm-3:05 pm

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) to expose you 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 as shown below. If you have questions about the way an assignment was graded, you should ask the GTA first and then consult the instructor.

Activity Number of points
Programming Assignments (4 worth 80 pts. ea.) 320
Homework Assignments (12 worth 30 pts. ea.) 360
Midterm 120
Final Exam 200
Total 1000

Homework Assignments: Your solutions for each homework assignment must be prepared with a word processor (e.g., LaTeX or Word), and are due at the beginning of class on the due date specified unless otherwise noted on the assignment itself.

Programs: For each assignment, you will hand in a printed report documenting your program together with an electronic copy of your program on a 3.5" PC floppy. Submission guidelines will be posted on the course web site describing the outline and grading of your program reports.

Late Policy:
Assignments are due at the beginning of class, unless otherwise specified in the assignment. Work is late if it is not turned in at the beginning of class.

Homework Assignments: Late homework assignments may be submitted before the end of class on the specified due date for a 10% penalty. No other late homework assignments will be accepted.

Programs: Late program assignments may be submitted before the end of class on the specified due date for a 10% penalty. In addition, late programs will be accepted up to 2 days late for a penalty of 20% per day (personal catastrophes should be discussed with the instructor); additionally, you must arrange in advance (i.e., the day the program is due) with the instructor where/when to turn in your late program assignment.

Never slide work under my door, expect to turn it over to a secretary, or expect to give it to the GTA; I will not accept it. All assignments are to be submitted in class unless you have made prior arrangements for submission with the instructor. Make-ups for exams will only be given when prior arrangements have been made with the instructor.

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.

Tentative Topics:
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
Control Structures Chapter 7
Subprograms Chapters 8 & 9
Abstract Data Types (ADTs) Chapter 10

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.

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 Accomodations:
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 © 2001 Virginia Tech, ALL RIGHTS RESERVED
Last modified: April 23, 2001, 15:38:59 EDT, by Stephen H. Edwards <edwards@cs.vt.edu>