CSE 341: Programming Languages, Autumn 2000

Exams and Tests


There will be a quiz on each of the first two (Lisp and Java) of the three principal languages taught in the course.  There will also be a final exam. The Perl language will be covered on the final exam but not on a quiz..

The first quiz is tentatively scheduled to be in class on Friday, October 13.  Topics to be covered include the following:

Orthogonality.
Lisp S-expressions
Conses and Lists
Referential transparency, side effects, and pure functions.
Scope and extent for the following kinds of bindings:
  global bindings of symbols
  local bindings of symbols
  function bindings of symbols
The Lisp functions CONS, CAR, CDR, ATOM, NULL, LIST, +,= ,*, /
Special forms SETQ, IF, COND, QUOTE, DEFUN, LET, LET*, PROGN
Defining one-way recursive functions that work on lists.
Defining two-way recursive functions that work on lists with embedded sublists.
Evaluation and EVAL
APPLY, FUNCALL, MAPCAR, and closures.

Also: Catch & Throw, DOTIMES,  ELT, SYMBOLP, NUMBERP, PUSH, APPEND, FIRST, REST, CADR, CADDR, etc.;
LENGTH, Macros and DEFMACRO,   backquote and comma.


The second quiz is scheduled to be given in class on Monday, November 6.  Topics to be covered include the following:

Object-oriented design and terminology
Classes, objects, and methods
Inheritance, constructors, overriding, overloading.
Abstract methods and classes.
Final methods and classes.
Interfaces.
Objects, types and references.
Scope of identifiers, within code blocks and as controlled by
public, private, protected, and package.
Basics of the Abstract Windowing Toolkit: the essential idea of the Graphics class and paint methods,
Component, Canvas, Panel, Color.
Threads and the Runnable interface.  InterruptedException.
try, throw, and catch.
Java data structures including Vector, Hashtable, and the Enumeration interface.
URL, Socket, and ServerSocket.
Applets and security.

You are encouraged to peruse the code for the TestVisibleArray applet prior to the exam.  Copies of the code will also be available during the exam.


The final exam will be on Friday, December 8, from 2:30 PM to 4:20 PM.

It will cover the material of the first two quizzes plus the additional topics listed below:

Perl as a scripting language.
Perl as a text processing language.
Regular expressions (standard CS notation)
Regular expressions in Perl.
"Here" (immediate) documents in Perl.
Default variables $_ and @_ in Perl ("it"and "them").

Basic concepts behind Prolog: Logical formulas, Clauses including the notion of a logical literal, Horn clauses, unification, and Prolog's search algorithm for attempting to answer queries.
Visual language paradigms: control flow graphs, data flow graphs, visual rules, programming by demonstration.
Type equivalence: name-based equivalence, structural equivalence.
Functional composition, currying.
Lazy evaluation.
Polymorphism.
Context-free grammars using Backus-Naur Form and  Extended Backus-Naur Form; derivations of sentences using CFGs, parse trees, ambiguity in a CFG.
 
  Here is a sample Perl program to help study for the Perl part of the final.