CSC 434 Programming Languages
Course Syllabus -- Fall
2001
TR 12:30 - 1:45pm BR 206
Instructors:
Dr. Harry F. Smith and
Dr. Ron Vetter
The instructors are available by email at
hsmith@uncwil.edu and
vetterr@uncwil.edu , 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)
Participation:
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.
Evaluation:
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