List of Topics for Quiz 2 in CSE 341, Autumn 2002

Scheme closures
Scheme macros ("Lispish variety", defined using DEFINE-MACRO)
Currying and composition

Formal syntax defined using Backus-Naur and EBNF
Derivations and parse trees
Expression grammar example

Lazy vs eager evaluation
Polymorphism (polymorphic variables, polymorphic procedures)

sets, set membership, subsets
Russell's Paradox
cartesian Products
ML's primitive types, product types, and function types
ML's tuples and lists
ML's type inference
static vs dynamic typing
ML's type variables and polymorphism
List construction in ML
ML's let construct
overloaded operators

The object-oriented paradigm.
object-oriented terminology
 (classes, instances, methods, members, invocation of methods,
 inheritance, overriding, overloading, abstract methods and abstract
 classes, parent classes and subclasses).  
Class ("static") methods and data members 
 versus instance methods and data members.

Java's handling of inheritance: 
 extending a class;
 implementing an interface. 
Java's scoping qualifiers: public, private, package, protected.

Objects vs primitive types in Java.