CPSC 425 Spring 2008
Exploring a New Programming Language
Your assignment is to research, install, use and report on an
interesting programming language that you do not already know and
that we are not studying in this class. Each of these requirements is
In both the paper and the oral presentation the emphasis should be on
what makes this language interesting and/or useful. A dry accounting
of language features is not acceptable.
- What constitutes "interesting"?
For our purposes, an interesting programming language is one that has
intentional design features that are new or different from those you
are accustomed to seeing.
This is admittedly a subjective definition, and
I reserve the right to make the final call on whether a language qualifies
Some examples and non-examples
of interesting languages are listed below;
there are many others as well. If you want to pursue a language not on this
list, be sure to consult with me first to see if it qualifies.
Examples: Ada, APL, Eiffel, Forth, Haskell, Linda, Lisp/Scheme, PHP,
Postscript, Python, Ruby
- What research do I have to do?
You have to find and read at least two scholarly papers -- pre-approved by
me -- that introduce or
describe the language and/or some of its most interesting features.
You may use additional print and web sources as needed.
- Where do I have to install the language system?
You can install the language system on your own computer under Linux or
Windows. You may be asked to demonstrate it in class.
- What do I have to use the language for?
I will assign one or more programs for you to write in the language.
- What do I have to report on, and in what format?
You will need to do both a paper and an oral presentation that address
the following questions:
- When was this language developed, by whom, and for what purpose?
- Why is this language of interest? That is, what are its distinguishing
features? For what sorts of problems is it particularly effective?
Ineffective? What, if anything, is or was it commonly used for?
- What other language(s) are similar to this language? What are the
major commonalities and differences, and how are they significant?
Your grade for this assignment will be divided as follows:
Additional guidelines for each of these components will be provided separately.
- 40% oral presentation
- 40% paper
- 20% program(s)
The project will have several intermediate deadlines as shown below:
Tuesday, March 11 -- Project assigned
Tuesday, March 18 -- Topic proposal due with bibliography, including
copies of or links to scholarly papers
Thursday, March 27 -- Programming projects assigned
Thursday, April 3 -- Draft of paper due
Thursday, April 11 -- Oral presentations
Tuesday, April 15 -- Paper and programs due