Fall 2005
- Note
- This page is maintained as an archival record of the course shown above, and as such, some links on this page may no longer be valid nor accessible. They are kept here as a record of the resources that were available at the time of the course offering.
All materials are in PDF. Sorry, you won’t find source code or solutions here; contact me directly for those.
- Syllabus
- Assignments
- Assignment 0913
- Assignment 0920
- Assignment 0927; Calculator JavaCC sample (24K zip)
- Assignment 1011
- Assignment 1018
- Assignment 1101 (update 20051025: as discussed in class, only exercises 1-3 of this assignment are now due on 20051101)
- Assignment 1108 (essentially exercises 4-6 of Assignment 1101, plus updated reading in software setup tasks)
- Assignment 1115
- Assignment 1129
- Handouts
- 0906: The Big Picture
- 0913: Syntax
- 0920: Hands-On with JavaCC
- 1004: The Name Game
- 1011: Express Yourself
- 1025: Control Flow
- 1101: The Joy of Types
- 1108: Type Checking
- 1115: Types in Detail
- 1122: Subroutines
- 1129: Object Orientation (includes typo corrections given in class)
- 1206: Concurrency
Related External Links
These links take you to Web sites beyond this server. The sites are in no particular order or bias, just “as they came to mind.”
- Prof. Ray Toal’s Programming Languages Web site
- The LaTeX home page
- The MikTeX home page — a highly popular LaTeX implementation
- Notes on context-free grammars by Pete Jinks of the University of Manchester
- The Moscow ML home page
- A programming language-oriented write-up on Java 1.5, a.k.a. Tiger
- The Perl Documentation Web site
- Perl Monks: Ask for Perl advice here, and ye shall receive
- Wikipedia: A good starting point for virtually any concept lookup
- Unit test Web sites
- If you’re new to unit tests, start with Test Infected
- For Java: JUnit (credited for igniting test-driven development)
- For C: there are a number of them, including Check and Andrew Wall’s CUnit (direct .zip download)
- For C++: CppUnit (a C++ port of JUnit)
- For JavaScript: JsUnit (a JavaScript port of, you guessed it, JUnit)
- For Perl: Perl has its own testing framework, with Test::Class adding a JUnit-like layer (Note: Test::Class is just the topmost layer; while CPAN takes care of most prerequisites, you’ll also need Test::More separately)
- For many other languages: Xprogramming.com’s software section
- The JavaCC (Java Compiler Compiler) home page
- Prof. Toal’s JavaCC notes
- Java Community Process (JCP) documentation on typesafe enums in Java ≥ 1.5
- Mark Jason Dominus’s discussion of strong typing and Perl: slides, writeup
- Douglas Crockford’s article on simulating inheritance in JavaScript: Classical Inheritance in JavaScript
- Part of his overall treatise on JavaScript: The World’s Most Misunderstood Programming Language