University of Virginia, Department of Computer Science
CS655: Programming Languages, Spring 2001

Manifest: Thursday 29 March 2001
Before 11am, TuesdayEmail me about Sather (see 27 March Manifest)
Randomly, anytime after todayElevator Speeches
Elevator Speeches
Imagine you are in an elevator with a very busy, rich and important person. You have ninety seconds (elevators in buildings with rich and important people in them tend to be faster than the one in our building) to convince her your project is so exciting she should read your proposal and consider funding it generously. In ninety seconds you should be able to explain the problem you hope to solve, why it is interesting (to someone not an expert in your area), and what you are doing to solve it. A successful elevator speech elicits a question from the listener after the elevator doors open; an unsuccessful one drives the listener away as quickly as possible.

Starting next week, I will call randomly on students to give an elevator speech on what you are doing for your course project. Being able to give a good elevator speech is even more important to your future career in research or industry than being able to write well, so it is worth practicing this whenever you get the chance.

Read before Tuesday 3 April (handed out last week):


Must it be assumed that because we are engineers beauty is not our concern, and that while we make our constructions robust and durable we do not also strive to make them elegant? Is it not true that the genuine conditions of strength always comply with the secret conditions of harmony? The first principle of architectural esthetics is that the essential lines of a monument must be determined by a perfect adaptation to its purpose.

Gustave Eiffel, 1887. Response to a petition protesting his project to build a tower of iron in Paris. Quoted in Bertrand Meyer, Eiffel: The Language.

What the language design has sought is the highest possible signal-to-noise ratio, allowing uses of the language to make the most out of their intellectual energy. This means getting rid of the noise (features which make the language bigger without contributing any really new concept): who needs three forms of loop when a general enough one will do, or special syntax for array access when we can simply view arrays as "container" structures described by a library class? But it also means reaching for the highest possible level of signal: including the appropriate constructs to deal with the truly difficult cases of software development, especially those which arise in the construction o large and ambitious systems.

Bertrand Meyer, Eiffel: The Language.

CS 655 University of Virginia
Department of Computer Science
CS 655: Programming Languages
David Evans