ABSTRACT
A language-based direct-manipulation user-interface generator automatically creates a visualization of an object directly from its class, allows users to edit the visualization, and invokes methods in the object in response to these edits. Such a generator can change, and we argue, improve the lectures and assignments on programming conventions, methods, state, constructors, preconditions, MVC, polymorphism, graphics, structured objects, loops, concurrency, and annotations. We have built such a generator, which has several novel features for teaching such as interactive instantiation of a class, interactive invocation of methods and constructors that take arbitrary arguments, visualization of objects representing records, sequences, table and graphics, use of preconditions to disable/enable user-interface elements, and automatic generation of model threads. We have been working on and using such a generator for teaching CS 1 and CS 2 for about a decade.
- Barnes, D.J. and M. Kölling, Objects First with Java: A Practical Introduction Using BlueJ. 2008: Prentice Hall. Google ScholarDigital Library
- Shneiderman, B., Direct Manipulation: A Step Beyond Programming Languages. IEEE Computer, Aug 1983. Google ScholarDigital Library
- Dewan, P. and M. Solomon, An Approach to Support Automatic Generation of User Interfaces. ACM TOPLAS October 1990. Google ScholarDigital Library
- Nichols, J., et al. Huddle: Automatically Generating Interfaces for Systems of Multiple Connected Appliances. in Proc. UIST, 2006. Google ScholarDigital Library
- Engelson, V., D. Fritzon, and P. Fritzon. Automatic Generation of User Interfaces from Data Structure Specification and Object-Oriented Models. in ECOOP '96. Google ScholarDigital Library
Index Terms
- How a language-based GUI generator can influence the teaching of object-oriented programming
Recommendations
A multi-threaded object-oriented programming model
This paper presents a concurrent object-oriented programming (COOP) model established around concurrent objects which may have a body. Once an object with a body is created, its body begins to run as a separate execution thread of the object. ...
The role of language paradigms in teaching programming
SIGCSE '03: Proceedings of the 34th SIGCSE technical symposium on Computer science educationThe purpose of this panel is to confront the wide variety of opinions on the role of language paradigms in teaching programming. We have selected four divergent opinions:
- Armstrong says that concurrent programming is considered difficult because it is ...
What Is Object-Oriented Programming?
The meaning of the term 'object oriented' is examined in the context of the general-purpose programming language C++. This choice is made partly to introduce C++ and partly because C++ is one of the few languages that supports data abstraction, object-...
Comments