| CSC 8310 Linguistics of Programming Languages:
Syllabus Dr. David Matuszek, Mendel 160C, (610) 519-5654 Villanova University, Spring 2001 |
URLs
| Home page for this class: | http://www.csc.vill.edu/~dmatusze/8310/index.html |
| Home page for this instructor: | http://www.csc.vill.edu/~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.
Because you need Java, this course will introduce you to as much Java as we can cram in; but bear in mind that Java is a huge language, and we can really only get started. 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 practical 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 languages. The languages I expect to cover are:
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.
Grading
There will be five programming assignments, Four of them will be worth 100 points each, and the other one will be worth 50 points. Programs that don't work at all (for example, they still have syntax errors) are worth zero points. Late programs will lose 10 points per week (not counting weeks that we do not have class)..
You can get extra credit on any programming assignment by doing more than is required. To get extra credit, you must
readme.txt
file). The grader for this course will have a lot of programs to grade,
and can't spend a lot of time figuring out what extra work you may have done.
For the same reason, if you include a readme.txt file, please
keep it short and to the point.Due to time constraints, there will be a single final exam. The final exam and the programming assignments will be weighted equally. Many questions on the final exam may be drawn from previous exams, all of which will be posted on the web. Some of the posted exams include answers, some do not. I will not provide answers for the exams that do not already include them.
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
Java textbook that I recommend is Essential
Java 2 Fast, by John Cowell, ISBN 1852330716. I really like this book; it
does what the title promises. However, if you prefer another book, that's fine,
too. Here are some additional recommendations
for books and online Java materials.
The
Burks 5 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/), 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. Jikes has a very good reputation: it's said to be better than Sun's compiler. 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. 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.