
A study of the syntax and semantics of a diverse set of high-level programming languages. The languages chosen are compared and contrasted in order to demonstrate general principles of programming language design. The course emphasizes the concepts underpinning modern languages rather than the mastery of particular language details. Programming projects will be required.
Lecture notes for a course at the Rochester Institute of Technology, winter quarter 2001.
The text does not constitute a complete transcript of the lectures; additionally you need to consult books and web sites about Lisp and other programming languages.
A CD with this material is available from the author.
| Folder | Contents | |
|---|---|---|
| code | The programming examples are collected in folders for programs, applications, and applets, with subfolders corresponding more or less to the sections of the lecture notes. | |
| ftp | Here are archived copies of the overhead slides and the programming examples, as well as links to the development kits, browsers, and related tools. | |
| html | Here are the overhead slides used in class. | |
|
The overheads from the html area were converted with Adobe Acrobat 5.0 into the Portable Document Format. This is primarily suitable for printouts and for text searches.
Depending on the computing platform you need special viewers or plugins which have to be installed beforehand. |
||
| problems | There will be some programming assignments each week, followed by a final exam. Current grade points can be viewed. | |
| reports | This is a collection of the reports that the students gave on various programming languages. It also contains Colin Allen and Maneesh Dhagat's Lisp Primer. | |
| Lectures | Monday, 2:00-3:50 pm | room | 12-1205 |
|---|---|---|---|
| Wednesday, 2:00-3:50 pm | 08-3365 | ||
| Office Hours | Monday, 1:00 pm | room | 10-1188 |
| Tuesday, 10:00 am | office | (585) 475-4902 | |
| Wednesday, 11:00 am | home | (585) 264-0944 | |
| Wednesday, 1:00 pm | and by appointment | ||
| Graders | Dustin Metzgar | ||
| Xiaoyun Xie | |||
This is an advanced programming course covering several programming languages. The schedule is tight; you will have to dig into documentation and some books as well as do some programming on your own to succeed.
Half of your grade will be based on weekly assignments (mostly programming), the other half on a final exam.
One assignment is a report on a programming language of your choice, delivered verbally in class. Each class meeting two students get 10 minutes each to persuade the class why they would (not) want to use their language. Graduate students can get up to 20 minutes; they must demonstrate at least one working program and provide a web page documenting their efforts.
Each assignment counts the same. The worst score will be ignored, i.e., you can miss one assignment or the language report.
Unless explicitly marked otherwise, each problem on each assignment as well as each problem on the final exam counts the same. A convenient number of points is used for grading each problem, but these points will be scaled for the total. For undergraduates, the language report is graded on a pass/fail basis only and counts either as much as a scaled assignment or not at all. For graduate students, the language report is graded on high/pass/fail basis; a high increases the course total by one letter grade.
Assignments and solutions are posted as indicated above. Each assignment must be turned in before the due date as a ZIP archive of plain text files using the form on the web page of the assignment. The archive must contain a read-me file describing the contents and explaining how the programs should be compiled and run. Don't turn in submissions late (no excuses), and don't copy from others. Cheating would count zero and would not be dropped.
Incomprehensible code will be considered wrong -- this is not a first programming course. If you have complaints e-mail the grader; if it is still necessary see the instructor.