Project preferences

[Main project page]

You will be assigned a language based on preferences you submit. For this choice, you will be assigned to write a substantial example illustrating some basic usage of the language, to present a lecture of at least 30 minutes (not exceeding 50 minutes),, and to write a summary of the language of roughly four pages.

By noon, Friday, October 26, please submit through Moodle a response including answers to the following three items.

  1. In which programming languages have you already written a reasonably sophisticated program (roughly 30 or more lines). (Your answer here helps me to understand your background that could be helpful for some languages.)

  2. Of the languages listed in “Language options”, rank the top five in which you are most interested (though you'll only be assigned one).

  3. You will also be assigned a day on which to present, chosen from the following options. Please indicate your preference; if some day is particularly problematic for your schedule, please indicate why. (Please note that I will assign languages that I consider “easier” earlier.)

    • Fri 2 Nov
    • Mon 5 Nov
    • Fri 9 Nov
    • Mon 12 Nov
    • Wed 14 Nov
    • Fri 16 Nov
    • Mon 19 Nov
    • Mon 26 Nov
    • Wed 28 Nov
    • Fri 30 Nov
    • Mon 3 Dec

Language options

FORTRAN (1957)

The first programming language with a decent compiler, FORTRAN remains reasonably popular today, particularly for scientific and engineering applications.

LISP (1958)

The first functional language, LISP accidentally introduced a very simply syntax based on parentheses.

COBOL (1959)

Defined by the Department of Defense for business applications, COBOL has long been disparaged by academic programmers for its wordy syntax even it has seen widespread use in business.

APL (1964)

A vector-based language that allows concise programs using a panoply of special symbols.

Algol 68 (1968)

Designed by committee, Algol 68 has often been admired even though the difficulty of writing a compiler for it prohibited it from becoming popular.

Smalltalk (1972)

The first object-oriented language, Smalltalk adheres to its own concept purely; adherents contend that C++ and Java's designers don't “get” the object-oriented paradigm.

Eiffel (1986)

An early object-oriented language with a particularly strong emphasis on principled development.

Erlang (1986)

Designed for telephone exchanges, Erlang was built for high reliability. It has become popular in recent years primarily for its strong support for concurrent programming.

Lua (1993)

Designed to have a small code base so that a Lua interpreter can easily be integrated into software needing a basic programming language, Lua is nonetheless a full-featured scripting language.

OCaml (1996)

Whereas Haskell is the leading contender today among lazy-evaluation functional languages, OCaml is arguably the leading contender among eager-evaluation functional languages, with some object-oriented features thrown in.

D (2001)

D is intended to be a successor to C++, emphasizing compilation to efficient machine language (while departing from C++ markedly).

Scala (2003)

Scala was developed for the Java Virtual Machine and intends to be an improvement on Java, incorporating many functional concepts into an object-oriented language.

Go (2009)

Designed at Google, Go is meant to be a successor to Java/C# taking into account more modern practices.

Dart (2011)

Dart was recently released by Google as an alternative to JavaScript, with a goal of allowing more efficient interpretation and of supporting large-scale development.