Programming by Example – Visual Interfaces
Table of Contents
ToggleIn the mid 1970s Smith introduced the technique of Programming by Example with a program called Pygmalion, Smith elaborated on this in Watch What I Do: Programming by Demonstration (Chapter 1). This demonstrated the need to describe algorithms through concrete examples rather than abstractly. ‘Example-based Programming: a pertinent visual approach for learning to program’ (Guibert et al, 2004) explain and expands on Smiths work with an example demonstrating how numbers fail to reveal the concept behind them. The example is a numerical representation of a triangle. This representation is ‘fregean’ because it does not show the concept of a triangle. Next to this is a diagram of the triangle that does show the concept. Next to this is a diagram of the triangle that does show the concept, this is referred to as ‘analogical’ representation because it includes the context of the information. Including the context of the information allows a person to discover meanings or relationships in the information which would not always be obvious. (Hanna, 2005) and (Elliott, 2006)provide an interface for direct manipulation of shapes in this analogical way by creating an interactive triangle manipulation example using the Haskell functional programming language.
Semantic web languages allow for the context of the information to be represented in documents and so make it possible to represent information in an analogical way, as well as allowing two way interaction, leading to an improvement in information discovery.
The development of visual user interfaces has been a major step forward. The use of pictorial metaphors such as folders to represent a collection of files has greatly aided human computer interaction. Pictorial metaphors give visual feedback so the user knows what the software system is doing. This technique can be used more dynamically in simulations. Simulations represent the real world problem and provide constant feedback to the user on how the system is progressing. In this sense, all software should be regarded as a simulation. Pictorial metaphors are static, while a users’ mental model is made up of mental images connected together by a set of rules. The user runs a mental model like a simulation. Static user interfaces rely on a user to string together images into a mental model which correctly represents what the system is doing. A user may generate a mental model in response to user interface metaphors which is inconsistent with the system model.
Simulation can help to ensure that the designers’ model, system model and users’ model are all the same. This subject is explored in [Crapo et al. 2000 and 2002] and is the basis of the visualisation techniques used to enable the user to create and understand models that are subsequently translated into software representations. This is also explained in chapter one of Watch What I Do: Programming by Demonstration [Cypher, 1993], explains how the Pygmalion language attempts to bridge the gap between the programmer’s mental model of a subject and what the computer can accept. The author of this system David Smith went on to develop office oriented icons as part of the Xerox’s “Star” computer project.
My research based on these ideas is available at http://www.cems.uwe.ac.uk/amrc/seeds/Visualisation.htm
and my examples at http://www.cems.uwe.ac.uk/~phale/InteractiveSVGExamples.htm
References
Smith, D. C., 1977. A Computer Program to Model and Stimulate Creative Thought. Basel: Birkhauser.
Smith, D. C., 1993. Pygmalion: An Executable Electronic Blackboard. In: A. Cypher, ed. Watch What I Do: Programming by Demonstration. MIT Press, Chapter 1 http://www.acypher.com/wwid/Chapters/01Pygmalion.html – ISBN:0262032139.
Guibert, N., Girard, P., Guittet, L., 2004. Example-based Programming: a pertinent visual approach for learning to program. Proceedings of the working conference on Advanced visual interfaces. pp 358-361 – ISBN:1-58113-867-9.
Hanna, K., 2005. A document-centered environment for Haskell. 17th International Workshop on Implementation and Application of Functional Languages IFL 2005 Dublin, Ireland – September 19-21 2005.
Elliott C., – Functional Programming by Interacting with Tangible Values – http://conal.net/papers/Eros – Conal Elliott – April 8, 2006.
Crapo, A. W., Waisel, L. B., Wallace, W. A., Willemain, T. R., 2002. Visualization and Modelling for Intelligent Systems. In: C. T. Leondes, ed. Intelligent Systems: Technology and Applications, Volume I Implementation Techniques, 2002 pp 53-85.
Crapo, A. W., Waisel, L. B., Wallace, W. A., Willemain, T. R., 2000. Visualization and the process of modeling: a cognitive-theoretic view. Conference on Knowledge Discovery in Data – Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining pp 218-226.
Cypher, A., 1993. Watch What I Do Programming by Demonstration. MIT Press, Chapter 1 http://www.acypher.com/wwid/Chapters/01Pygmalion.html – ISBN:0262032139.
You may also like
Archives
- November 2025
- October 2025
- September 2025
- August 2025
- July 2025
- June 2025
- May 2025
- April 2025
- March 2025
- February 2025
- January 2025
- November 2024
- October 2024
- September 2024
- August 2024
- July 2024
- June 2024
- May 2024
- April 2024
- March 2024
- February 2024
- January 2024
- December 2023
- November 2023
- October 2023
- September 2023
- August 2023
- July 2023
- June 2023
- May 2023
- April 2023
- March 2023
- February 2023
- January 2023
- December 2022
- November 2022
- October 2022
- September 2022
- August 2022
- July 2022
- June 2022
- May 2022
- April 2022
- March 2022
- February 2022
- January 2022
- December 2021
- November 2021
- October 2021
- September 2021
- August 2021
- July 2021
- June 2021
- May 2021
- April 2021
- March 2021
- February 2021
- January 2021
- December 2020
- November 2020
- October 2020
- September 2020
- August 2020
- July 2020
- June 2020
- May 2020
- April 2020
- March 2020
- February 2020
- January 2020
- December 2019
- November 2019
- October 2019
- September 2019
- August 2019
- July 2019
- June 2019
- May 2019
- April 2019
- March 2019
- February 2019
- January 2019
- December 2018
- November 2018
- October 2018
- September 2018
- January 2017
- July 2016
- June 2016
- April 2016
- February 2016
- June 2015
- July 2014
- February 2014
Calendar
| M | T | W | T | F | S | S |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 | |

Leave a Reply
You must be logged in to post a comment.