| Instructor: | Dr. Nancy Tinkham |
| Office: | Computer Science Department, Robinson |
| Phone: | 256-4500 ext. 3869 (office), 863-0124 (home) |
| E-Mail: | nlt@elvis.rowan.edu |
| Office Hours: | Monday 1:40-3:00, 4:35-5:15; Wednesday 1:40-3:00, 6:00-6:20; and by appointment |
Class meeting times:
Monday & Wednesday: 3:15-4:30, Rowan 202Texts:
Sebesta, Concepts of Programming Languages, 6th ed., ISBN 0-321-19362-8 (required)Grading:
Tinkham, An Introduction to Functional Programming with Scheme, release 1.6 (required)
Clocksin & Mellish, Programming in Prolog, 4th ed., ISBN 0-387-58350-5 (required)
Kernighan & Ritchie, The C Programming Language, 2nd ed., ISBN 0-13-110362-8 (recommended)
Homework and exam policy:
Homework: 15% On-Line Quizzes: 5% In-Class Scheme Test: 15% In-Class Prolog Test: 15% Mid-term Exam 25% Final Exam 25%
Most of the homework assignments will be programming assignments. You may get help from classmates on debugging your program or on understanding the features of the programming languages we study, but the design of the program should be your own, and you should type your own program into the computer, test, and print it.Prerequisites:Exams will focus on the concepts covered in Sebesta and the lectures. The final exam will be cumulative but will emphasize material from the second half of the course. In addition, there will be 2 language tests, one on each of the 2 programming languages we study in the course.
You may bring to the language tests one 8 1/2 x 11" sheet of paper containing any course information that you find useful. (I suggest including notes on points of language syntax that you find hard to remember.) The tests will be closed book otherwise.
The mid-term and final exams will be closed book.
Grade points will be deducted for late homework at the rate of 5 points per weekday. (For example, a homework assignment that is due on Wednesday and received the following Monday will receive a maximum grade of 85.)
Programs will be graded not only on correctness but also on style. See http://elvis.rowan.edu/~nlt/program_grade.html for details.
The C portion of the course will assume familiarity with C++. If you are unfamiliar with both C and C++, you should do some extra reading in Kernighan & Ritchie or a similar book.
If you have used either vi or emacs before, I highly recommend that you use one of these editors instead of pico for the Scheme portion of the class. Scheme uses lots and lots of nested parentheses, and both vi and emacs provide automatic parenthesis-checking; pico does not. Using vi or emacs to create Scheme program files can save you many headaches.
A Programming Languages course has two related but different goals: to study the concepts underlying the design and use of programming languages, and to gain exposure to a variety of languages. This pair of goals is reflected in the schedule of readings. About half of the time in class will be devoted to concepts and the other half to a particular programming language.The two languages we will look at in detail are Scheme (a functional programming language) and Prolog (a logic programming language). These languages illustrate two approaches to programming that are different from the imperative style of languages like C++, Java, and Ada.
Additionally, since the majority of students in the course will have had C++ in their introductory courses and may need to use C in upper-level courses or in the workplace, we will briefly look at the major differences between the two languages.