2023–24 Projects:
Advisor: Amy Csizmar Dalal
Meeting time: TTh 2:30-3:15pm (Winter term)
One of the most tedious programming tasks in any language is the construction of user interfaces. To use Java as an example, adding a simple button to a window is a multi-step process:
JButton button = new JButton("Click me!"); button.addActionListener(this); JPanel panel = new JPanel(); panel.add(button); ...
Graphical GUI construction tools (such as Visual Studio) mitigate the problem somewhat by providing"drag-and-drop" environments, but are often themselves unwieldy. Plus, they cannot easily be used by the visually impaired, as they do not lend themselves well to speech-to-text converters. A better solution is to develop a simple scripting language to allow for the building of user interfaces in some existing language, such as Java. The scripting language provides a more natural way of specifying user interfaces, and require less coding on the part of the end user.
In this project, you will design and develop a scripting, or interpreted, language for the purpose of creating graphical user interfaces in Java. In addition, you will write an interpreter for this language that will convert the GUI creation commands into Java for compiling into bytecode.
Your tasks will include:
Links to resources helpful to this project (coming soon).
D. Norman. The Design of Everyday Things. New York: Doubleday, 1990. On open reserve in the library.
B. Shneiderman. Designing the User Interface: Strategies for Effective Human-Computer Interaction, 3rd edition. Reading, Mass: Addison Wesley Longman, 1998. On open reserve in the library.
M. B. Rosson and J. Carroll. Usability Engineering: Scenario-Based Development of Human-Computer Interaction. San Fancisco: Academic Press, 2002. On open reserve in the library.
S.S. Chok and K. Marriott. " Automatic Construction of User Interfaces from Constraint Multiset Grammars". 11th International IEEE Symposium on Visual Language, Darmstadt, Germany, September 1995, pp. 242-249.
D. Knuth. "On the Translation of Languages from Left to Right." Information and Control, vol. 7, 1965, pp. 607-639. (electronic version available in Courses directory)
"Creating a GUI with JFC/Swing". Sun Microsystems, Inc., tutorial.
"XML User Interface Language (XUL)", The Mozilla Organization.
The Fudgets tutorial (thanks to Luke Maurer for the link).