CS 1102 Homework 5: Looking at Languages

Due: October 2 (Thursday) at 11:59pm via turnin (assignment name hwk5).

Assignment Goals


The Assignment

  1. Paul Graham wrote the original software for setting up on-line stores that Yahoo! currently uses. He wrote it in Lisp, which is a close cousin to Scheme (very similar syntax, constructs, and features). Graham's article, Beating the Averages, discusses why he believes Lisp gave his million-dollar startup a competitive advantage. Read the article.

  2. In another article, Graham provides a surface-level critique of Java. Read the article. In your own words, state three questions that Graham's article teaches you to ask when approaching a new language.

  3. Languages are everywhere once you get used to looking for them. In general, a language is the repository of knowledge and goals that emerge from a domain of human activity. Computer science is replete with such examples (optimization problems led to OPL, database query optimization gave rise to SQL, scripting needs brought forth Awk and Perl, and so on). But humans have done this for much longer than computers have been around.

    Identify a non computer science ``language'' used for some activity by some subset of humans. Explain the community of people and what they share. Now, evaluate this language as you would a programming language by answering the following questions.

    Example: Consider (Western) musical score. The community is that of musicians, and the activity is capturing the music. I won't bother elaborating on the data and control elements here (but you should for the language you choose). A sample ``interpreter'' is a pianist who ``runs'' the score on a piano; the score's ``value'' is the sound we hear. Computer programs that read score and produce the music exist (and can therefore be written).

    Be creative. You will either nail this or be lost. It doesn't take much to tell one from the other. Don't pick a human spoken language (English, Esperanto, etc) and don't pick math or music -- the goal is for you to see language-like structures in the world around you. Creativity counts. In terms of write-up, a few paragraphs, at most a page, will suffice.

[Side Note: if you enjoy Graham's writing, his article Taste for Makers is a lovely piece on the role of taste in design. You don't have to read this article for this assignment, but it's worth reading when you have the time.]


Grading

For the essay responses, satisfy the criteria in the questions, and make sure you provide explanations where I asked for them.

For the language identification, your grade will reflect whether you chose a language that has all the elements mentioned above (data, operations, control, etc) and whether you identified those elements appropriately.

We will also grade for writing. Spelling and grammar errors and sloppy writing (such as sentence fragments) will cost you points.


What to Turn In

Turn in a single TEXT file hwk5.txt containing your answers (no MS word, PDF, etc, please -- we want to be able to view these easily within a command shell in Unix). Make sure that all students' names are in a comment at the top of the file.


Back to the Assignments page