CSCI 430 Programming Paradigms

Interterm 2003

(catalog) A survey of approaches to problem solving using non-imperative language features from the functional, logical, object-oriented, and concurrent paradigms.  Laboratory projects in several different languages are required; typical languages covered include LISP, ML, Prolog, Mercury, SmallTalk, Eiffel, SR, and Erlang.

The course in Interterm 2003 will be based on the three books by Daniel P. Friedman and Matthias Felleisen, The Little Schemer, The Little ML'er, and A Little Java, a Few Patterns.  These three books are self-paced programmed learning type books in a Q and A format.  Student will learn about these three languages, Scheme a version of LISP, a functional list-based programming language, ML a functional programming language with strong typing, and Java an Object Oriented Language.  

In addition the Burks 6 CD's are assigned since they offer a wealth of resources to the student for a relatively small price and can be used to explore alternate programming languages. Each student is required to become a "guru" on a programming language other than the main three (Scheme, ML and Java).  These will be assigned by lot and students may then trade if they prefer one language to another.

Lectures on Language Topics

Lectures will be designed to discuss a wide range of programming languages, augmenting the self-study of the student, who will proceed through the three books in a self-disciplined way using the computers in the computer lab (room 226) to run example code in the book and write original code as desired or required.

Adopt a Language (The GURU Project)

In addition to the work on the three books, each student will adopt a language which they will learn about during the course of the interterm and on which they will give a tutorial towards the end of the interterm.  The tutorial will present the language to the class including an explanation of the syntax, a discussion of the strengths and weaknesses of the programming language and example programs that illustrate the syntax, the languages strengths, weaknesses, and behavior.