Computer Science 323
Programming Languages
Homework Assignment #1
DUE: 1/26/2007, in class
Please work alone on this assignment. Submit stapled, word-processed, standard font/sizes/etc.
1. Using the Computer Languages History syllabus link, along with any other useful resources,
arrange the following list of languages in order of their introduction. Each list entry must include
the following:
- Name of the language
- Year introduced
- Name/Affiliation of key person associated with development of the language
- Principal design goal of the language
- Phrases are fine; don't write an essay!
- Previous language(s), if any, it can trace ancestry to
Languages:
Haskell ML Frink Python Lua Eiffel
J Ada OPS5 Prolog Ruby Smalltalk
APL FORTRAN COBOL LISP BASIC Pascal
Modula-2 Algol PL/I Scheme LOGO Java
2.
a. Consider the 12 languages that are in the first two rows of the list above. Give your First,
Second and Third choices for the language that you would most like to learn and teach to the rest of
the class.
b. EITHER, For your First choice, provide the following information:
- What interests you about the language?
- Why is this language useful to learn?
- What free development tools exist?
- What tutorial resources exist?
OR, Persuasively argue for another language that you would rather learn and teach than the ones
on the list above. For your choice you must provide the following information:
- What interests you about the language?
- Your current level of experience with the language
- Why is this language useful for others in the class to learn?
- What free development tools exist?
- What tutorial resources exist?
- (most important) Persuasively argue that it is feasible to teach elements of the language to
our class in a limited time period (3 hours) and that it will be possible to develop a project
that can be quickly completed by the class after your brief introduction to the language.
WARNING: The larger and more complex the language, the more difficult it will be to
persuasively argue this point. Lightweight languages often are better choices.
3. What is "Esperanto" and what does it have to do with what we are doing in CS323?