Fall 2006»CSIS 672 Final Project

CSIS 672 Final Project

Purpose

Although OS interfaces we have moved from command-line to direct-manipulation interaction, general programming is still command-line.

In the last assignment, we explored the question: What will the task of programming computers look like 10-20 years from now?

For the final project, we continue to explore the future of HCI and computer programming, being inspired by ideas from:

Kay, A. "The Early History of Smalltalk", ACM SIGPLAN Notices, Volume 28, Number 3, March 1993.

Again, here are some Alan Kay's quotes to provide context (from Wikipedia):

  • "The real romance is out ahead and yet to come. The computer revolution hasn't started yet. Don't be misled by the enormous flow of money into bad defacto standards for unsophisticated buyers using poor adaptations of incomplete ideas."
  • "I invented the term Object-Oriented, and I can tell you I did not have C++ in mind."
  • "OOP to me means only messaging, local retention and protection and hiding of state-process, and extreme late-binding of all things. It can be done in Smalltalk and in LISP. There are possibly other systems in which this is possible, but I'm not aware of them."

Specification

Specify a draft for a new, revolutionary programming paradigm/language for regular programmers (like you and me).

Provide the following:

  • a paper prototype
  • a language model specification (conceptual, semantic, syntactic, lexical levels)
  • a hierarchical task analysis for writing a program
  • a user task scenario (e.g., write a "hello world" program) to compare your new approach with today's standard (possible metrics: error rate, completion rate, new concepts/"nonobvious ideas", etc.).

To evaluate your idea, provide:

  • a GOMS analysis comparing a "program" specified (a) in Java and (b) in your paradigm/language. For this use the following simple, yet generic programming task: "write a program to calculate length of the hypotenuse of a triangle given the length of the two legs".

Here are two typical programs for this task in Java and Python (courtesy of Brian Smith and Jeff Shumard).

  • At the top of your report, include a certificate of authenticity using this format:
       Certification of Authenticity:

       I certify that this submission is entirely our own work, 
       as per course collaboration policy.


       Names: ________________________ Date: ___________
  • Include references on materials (other than the textbooks and handouts) you consulted to do the assignment.

Grading

Grading will be based on your ability to carefully and succinctly provide the required information.

Submissions

Submit your solution by editing your page: Tyler Bennett, Thomas Dion, Johnathan Heh, Robert Keisler, Mark Mixson, Luca Pellicoro, Jeffrey Shumard, and Brian Smith.