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

Comparative Languages
TTh 9:30am-10:45 am, McB 209

Course Information
Instructor: Stephen Edwards
Office: 641 McBryde Hall
Office Hours: Monday 11:30am-12:30 pm
Tuesday 11:00am-12:00 pm
Wednesday 1:00-2:00 pm
Office Phone: 231-5723
E-Mail: edwards@cs.vt.edu
GTA: Nathan Conklin
Office: McBryde 128
Office Hours: Monday 1:00-3:00 pm
Tuesday 2:00-4:00 pm
E-Mail: Nathan.Conklin@vt.edu
Prerequisite: CS 2604 and programming experience
Text: Concepts of Programming Languages, 4th Ed.,
Robert W. Sebesta, Addison-Wesley, 1999.
Web Information: http://courses.cs.vt.edu/~cs3304
Final Exam: Tuesday, May 9, 10:05 am-12: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) 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:
Activity Number of points
Programming Assignments 30 %
Homework Assignments 35 %
Midterm 15 %
Final Exam 20 %
Total 100 %

Homework Assignments: All homework assignments are to be typed, 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 and its testing. Binders or large envelopes are unnecessary, as long as your report is securely stapled together. Programs will not be submitted electronically or run against a test suite for grading; instead, it is your responsibility to fairly and accurately represent the operation of your program through testing. Program reports are graded based on their documentation of your design, the source code you submit, and the test plan you create and carry out. 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 TA; 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  
Functional Programming Chapter 14
Logic Programming 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. 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 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 © 2000 Virginia Tech, ALL RIGHTS RESERVED
Last modified: August 11, 2000, 15:51:25 EDT, by Stephen Edwards <edwards@cs.vt.edu>