Fall Term, 2004
This document was last modified Monday, 16-Apr-2007 20:41:48 MDT
Course
Description and Regulations
Instructor Office Hours and Contact Information
Percentage to
Alpha Grade Conversion Chart
Expectations
regarding Attendance and Course Work
(in reverse chronological order)
Programming
Assignment 4 - Prolog (due before midnight on Friday, December
10) [large
print]
Programming Assignment 3 - Prolog (due before midnight
on Friday, December 3) [large print]
Exercise Set 2 - Implementation of Block Structured
Languages (due at the start of the lab session on Friday,
November 19) [large print]
Programming
Assignment 2 - Lisp: One-Dimensional Life
(due before midnight on Friday, November 5) [large print]
Programming
Assignment 1 - Lisp: The k-nearest-neighbours problem
(due before midnight on Friday, October 15) [large print]
Exercise Set 1
- EBNF (due Friday, September 24, 12:50 p.m.) [large print]
Your assignment submissions are password-protected. These passwords apply only to form data submitted via the Web server. They are separate from (and typically different from) your Augustana network password or the password for your Unix account (if you have one).
Programming Languages: An Overview
[large print]
Programming Language Paradigms
[large print]
Chomsky's Hierarchy of Languages
[large print]
LISP -- Structural Organization
[large print]
LISP -- Data Structures
[large print]
LISP -- Control Structures
[large print]
LISP -- Name Structures
[large print]
LISP -- Storage Reclamation
[large print]
Pseudo-code Interpreters
[large print]
Fortran -- Syntactic Structure and Control Structures
[large print]
The Compilation Process
[large print]
Fortran -- Data Structures and Name Structures
[large print]
Fortran Exercises [large print]
Algol -- Structural Organization and Syntactic
Structures [large print]
Algol -- Name Structures and Data Structures
[large print]
Algol -- Control Structures
[large print]
Implementation of Block-Structured Languages [large print]
Prolog -- Programming in Logic
[large print]
Prolog -- Structural Organization and Control Structures
[large print]
Prolog -- Data Structures
[large print]
PuTTY is a Windows client which implements both the telnet and SSH protocols. You can download PuTTY and install it on your home machine in order to connect to the server Berio to do your assignments. When configuring PuTTY, type 'berio.augustana.ca' in the 'Host Name' box, click the 'SSH' radio button, then type 'Berio' (or 'Augustana" or 'My CSC lab machine' or whatever you want to call this connection) in the 'Saved Sessions' box and click the 'Save' button. You may also wish to change some other settings, but it shouldn't be necessary; for example, I like to change the size of the window (select the 'Window' panel) to 40 rows, instead of the default 24.
Running Lisp under Emacs
[large print]
Xanalys® LispWorks® Personal Edition
Download
A freeware version of Common Lisp for the Windows platform. The
editor uses Emacs-like keystroke commands (heh, heh, heh).
The complete text of Common Lisp the Language, 2nd edition, by Guy L.
Steele, Thinking Machines, Inc., in HTML format.
A collection of links to LISP resources by Marty
Hall.
A collection of links to LISP, Scheme, and Prolog
resources.
Lisp: Good News, Bad News, How to Win Big [in PDF format] by Richard P. Gabriel
(formerly of Lucid, Inc, now with Sun Microsystems)
Worse is Better by Richard P. Gabriel
Revised Report on the Algorithmic Language Algol
60
A60 Algol interpreter (freeware)
Why Pascal is Not My Favorite Programming Language
by Brian W. Kernighan, AT&T Bell Laboratories (1981)
Learn Pascal - a tutorial by Tao Yue (MIT)
GNU Pascal - an Open Source Pascal compiler
P2C - an open source Pascal-to-C translator (pseudo-compiler),
written in C for portability
Ninety-Nine Prolog Problems by Werner Hett
Logic, Programming and Prolog (2e) by Ulf Nilsson and
Jan Maluszynski (available in PDF format for free online;
previously published by John Wiley & Sons Ltd.)
Ada 95 Language Reference Manual (HTML version)
Introducing Ada 9X, Ada 9X Project Report (February 1993),
Office of the Under Secretary of Defense for Acquisition, Washington, DC
Rationale for the Design of the Ada® Programming
Language (HTML version)
Ada 83 Software Technology Review (Software Engineering
Institute)
GNAT - The GNU Ada Translator - a free Ada 95
compiler
Pass-by-value semantics in Java applications by
Peter Haggar (IBM) - explains that all parameters are passed by
value in Java: objects are passed by reference, but the references
are passed by value.
Growing a Language: A Conversation with Guy Steele
Aspect Oriented Programming by Yasser EL-Manzalawy
A sample '.emacs' file for Emacs or Xemacs, including
some functions and key bindings by Thomas R. Ioerger (Dept of
Computer Science, Texas A&M University) for simplifying the use
of Lisp (GCL) from within Emacs/Xemacs. (See the end of the
'.emacs' file.)
Commands (after prefix of Control-t):
l = start Lisp (GCL)
e = evaluate current expression
w = switch to Lisp buffer
q = quit from debugger back to top-level
b = evaluate buffer
x = kill Lisp process
Emacs tutorial [Free Software Foundation,1985]
GNU Emacs Reference Card (for version
19) [alternative source]
This is an online version of the reference card that comes with
Emacs in PostScript form.
GNU Emacs FAQ [alternative source]
The Language List -- " an attempt to enumerate all known
programming languages," maintained by Bill Kinnersley
Mid-Term Exam 1998
[Instructor]
Mid-Term Exam 1999
[Instructor]
Other Sample Mid-Term Exam Questions
[Instructor]
Sample Exam Question -- Implementation of Block Structured
Languages