CSC 434 Programming Languages
Course Syllabus -- Fall 2001

TR 12:30 - 1:45pm BR 206


Dr. Harry F. Smith and Dr. Ron Vetter

The instructors are available by email at and , or by appointment.

Texts, Supplies, and References:

Assignments and Exams:

Course Overview:

There are two complementary goals in this course. The first is to learn that there are several very different paradigms in using (or designing) a programming language for solving classes of problems: imperative programming (this is the familiar model), functional programming, logic programming, concurrent programming, object-oriented programming, etc. The second is to acquire a modest fluency in some languages that employ these ideas; here we will emphasize Fortran, Cobol, UNIX shell, Prolog, Lisp, Java, and then Java threads. But the first goal is really the more important one, even though the payoff to you professionally may not become apparent until later in your career. Here is a detailed Course Syllabus.

A language that doesn't affect the way that you think about programming is not worth knowing. (Perlis)


In class we will cover general ideas from Clark and Wilson, and also specifics about each language. This amounts to a great deal of reading. You are responsible for studying the material in Clark and Wilson even if it is not covered in class.

Special Needs:

A student who needs reasonable accommodation for a disability should inform the instructor of this fact as soon as possible. He/she should also be registered with the Office of Disability Services in Westside Hall (x3746), and obtain a copy of their Accommodation Letter. Finally he/she will need to meet with the instructor to make mutually agreeable arrangements.


There will be a total of five or six programming assignments in Fortran and Cobol (imperative programming), UNIX shell (interpretive/imperative programming), Prolog (logic programming), Lisp (functional programming), Java (object-oriented programming), and Java with threads (concurrent programming). In grading these projects, we will look at program listings for good style, documentation, ease of understanding, etc. Moreover with some programs, you may need to include a small paper (done with a word processor) responding to questions posed as part of the programming assignment. Final program grades will be based on issues of program style cited above, on the paper when specified, and also on program robustness, flexibility, user interface, etc. Programs will be graded from D to A+, with A+ being reserved for exceptionally well-done assignments. Late program turn-ins will result in a one step reduction (e.g., from A- to B+) for each school day after the due date. No program will be accepted more than one week late. There will be two tests as well as a comprehensive Final Exam. These will aggregate 60% of your final grade. The remaining 40% will be determined by the programs, scores from a number of homework sets, and possibly some quizzes. Final numerical scores are then curved, with the use of +/- for final letter grades.

Code of Academic Responsibility and Conduct:

Students are responsible for submitting their own work. Students who cooperate on oral or written examinations or work without authorization share the responsibility for violation of academic principles, and such students are subject to disciplinary action even if one of them is not enrolled in the course where the violation occurred. Any incidence of cheating is reported to the Department Chair, College Dean, and Dean of Students.

Page Last Updated November 19, 2001 by Dr. Smith