CSC 8310 Linguistics of Programming Languages: Syllabus
Dr. David Matuszek, Mendel 162C, (610) 519-5654
Villanova University, Fall 2000
URLs
| Home page for this class: | http://renoir.vill.edu:80/~dmatusze/8310/index.html |
| Home page for this instructor: | http://renoir.vill.edu:80/~dmatusze/index.html |
| Instructor's e-mail address: | dave@acm.org |
Purpose
The purpose of this course is twofold: to give you a deeper understanding of how
conventional languages work, and to introduce you to a broad range of other programming
paradigms. These two goals are quite different, so you are actually getting two courses in
one.
This course isn't "practical"--it won't make you a better Java programmer. However, times change, languages change, and what's "in" today will be "out" tomorrow. I've had to use many different programming languages over the years, and you probably will, too. The deeper goal of this course is provide you with the knowledge you will need in order to learn new languages quickly and well.
Assignments and tests
Experience is the best teacher. The way to get experience with programming languages is to program in them. Accordingly, you will be expected to write at least one program in each of four or five languages. The languages I expect to cover are:
Of these, Java is the only really "practical" language, and the amount of time we spend on Java will depend in part on the needs of the class. However, this is not primarily a Java course; if you want a good working knowledge of Java, this course will do little more than get you started.
There will be a midterm and a final exam. These will cover both language details and underlying principles. The final will be comprehensive as far as general principles are concerned, but will have few or no questions about specific languages that we covered before the midterm exam. (For example, the final exam will cover object-oriented programming, but not Java syntax.)
Each program will be worth 100 points. If your program does more than required (and you point this out in your comments), you may get extra credit. Programs that don't work at all (for example, they still have syntax errors) are worth zero points. Unless specified otherwise, programs are due at the beginning of class three weeks after they are assigned. Late programs will lose 5 points per week.
Grades will be based 25% on the midterm exam, 25% on the final exam, and 50% on the programming assignments. If you do the math (assuming four programming assignments), you will see that not turning in a program is equivalent to reducing an exam grade by 50 points. The programs are important in determining your final grade.
In previous courses I have typically given about half As (including A-) and half Bs (B- to B+), with just a few lower grades. Although this is not any kind of guarantee, I will most likely do the same in this course.
Textbooks and other materials
The textbook for the course is Principles of Programming Languages, Third Edition,
Bruce J. MacLennan, ISBN 0-19-511306-3.
The Burks 4 CD set is a fantastic resource; it contains documentation, tutorials, and compilers for over 20 languages, including all those that we will be covering in this course. But please do not use Villanova resources to print out materials; either read them on-line, or find somewhere else you can legitimately print them.
The Burks CD set is also available online (http://burks.bton.ac.uk/) and has just recently been upgraded to version 5, but the CDs are inexpensive and much more convenient. The only change that might affect this class is that Burks can no longer distribute Sun's Java compiler, so Burks 5 has IBM's Java compiler, Jikes. It's the same language and the only difference should be in how you run the compiler, not in what it does.
Ethics
Students are expected to conduct themselves in an ethical, professional manner. You are
expected to abide by the Villanova Policy on
Academic Integrity, as well as the Computer Science Integrity Policy handed out in
class. All projects and homework assignments should be done on an individual basis unless
explicitly stated otherwise by the professor. All questions about projects or homework
should be directed to the professor or the graduate teaching assistant.