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
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%
Late programs/reports are only accepted up to 2 days late for a penalty of 20% per day (personal catastrophes should be discussed with the instructor); late homeworks will be accepted only 1 day late for a 20% penalty; additionally, you must arrange in advance (i.e. the day the program is due) with the GTA or instructor where/when to turn in late work. Work is late if it is not turned in at the beginning of class (NEVER slide work under my door or expect to turn it into a secretary; I will not accept it.) or at a demo, as the case may be. Unavoidable absences (such as job interviews, but not including going home for a weekend) should be discussed with the instructor well in advance.
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