Dalhousie University, Faculty of Computer Science, Halifax, Nova Scotia, Canada
University of Delaware, Department of Computer and Information Science, Newark, DE, USA
At both Dalhousie and the University of Delaware I taught courses on a wide range of topics, including Digital Media, User Interface Design and End-User Programming. I was involved in research in computer science for almost 25 years, initially investigating issues in computer algebra and symbolic computation, and later moving to visual programming, end-user programming and human-computer interaction. During this time I published over 40 articles, participated in numerous conferences and workshops, acted as reviewer for conferences and journals, edited a number of special issues of the Journal of Visual Languages and Computation, served as program chair for the two leading visual languages conferences, and filled numerous other roles serving the research community. I received research funding from a variety of sources, including NSERC, InnovaCorp, the British Consulate and the Dalhousie University Faculty of Computer Science.
The following are descriptions of the areas in which I have most recently been involved in academic research in computer science. Note that I am no longer active in computer science research, but this information is provided in order to give an idea of the range of my past academic activities.
Visual Programming Languages
The primary advantage of visual programming languages is that they provide direct representations of software structures such as algorithms and data. This is in contrast to traditional textual programming languages, where such multi-dimensional structures are encoded into one-dimensional strings according to some intricate syntax. Visual languages remove this layer of abstraction, allowing the programmer to directly observe and manipulate complex software structures. Such directness of representation, termed “closeness of mapping,” is seen by many as an important factor in enhancing the programmer’s ability to build and comprehend such structures, and is well supported by practical experience, as well as experimental study.
However, comparing the relative effectiveness of visual and textual programming languages is a complex undertaking, involving many criteria, for example: the class of users the languages are intended for; the kinds of programming tasks to be tested; the environment in which the languages are implemented. One study purports to prove that programs in textual languages are more comprehensible than visually represented programs. Other studies report tests which lead to the opposite conclusion. Furthermore, although there have been commercially successful visual programming languages, such as Prograph and LabView, visual languages have by no means replaced textual languages for programming by professionals or by end users. Visual Basic, for example – which, in spite of the name uses a textual language – is used extensively by end users. Clearly, simply being visual is not enough to make a language more effective than a textual counterpart. This research aims to discover what is necessary in order to make visual languages effective for both end-user and professional programming.
End User Programming
Perhaps the earliest example of an end user programming language is the spreadsheet VisiCalc, invented by Dan Bricklin and Bob Frankston and introduced at the National Computer Conference in New York City in 1979. Spreadsheets continue to be one of the most frequently-used types of computer application, second only to text editors. Their popularity is due largely to the fact that spreadsheets allow end users to write what are effectively computer programs — performing the same computations repeatedly with varying inputs.
Nardi sees tremendous demand for end user programming systems, which she defines as systems “…which allow end users to create useful applications with no more than a few hours of instruction.” She also expresses skepticism for the superlative claims made by some researchers about visual languages and their role in end user programming, and points out some of the difficulties in designing effective visual languages, emphasizing that ‘visualness’ on its own is not enough to make a system that end users can use effectively, and that the effectiveness of visual programming depends to a high degree on the task for which it is employed. Workshops on end user programming have come to similar conclusions, suggesting that much more study is required into the appropriate uses of text and graphics in end user programming systems.
There have been a significant number of research projects involving visual languages for end user programming which have reported successes, either through informal studies and observations, or commercial success, such as AgentSheets, a system for creating simulation environments, KidSim, a simulation programming environment for children and LabView, a system for creating virtual instrumentation. However, there are also many which have been unsuccessful, and there is still much research required to characterize when, and what sort of visual expressions are valuable to end users.
Visual Design Languages
Much of my research involved the investigation of a particular class of domain-specific visual languages: visual design languages. If we take design to mean “to prepare a plan or sketch or model etc.”, and language to be defined as “any apparently organized system of communication”, then a very wide range of computer software can be considered to involve the use of a design language. Any drawing program, spreadsheet, or database definition application clearly fits into this category, and certainly any computer-aided design package involves the use of one or more design languages. Of particular interest to me are parametric design languages. That is, languages where the designer can specify a whole family of related designs with a single, parameterized description. Parametric design languages are becoming more and more prominent, particularly in advanced tools. For VLSI design, textual languages such as VHDL and Verilog support parametric design of VLSI devices, in a manner similar to programming languages. Computer aided design tools, such as Pro/Engineer, support parametric design at a number of levels. Simple families of designs can be specified by choosing options and entering values in dialog windows, while more complex structures can be defined using a textual language similar to programming languages. Less advanced tools, such as spreadsheets, often provide some facilities for parametric specification through the use of macros, or, as in the case of Excel with Visual Basic, through the integration of a textual programming language.
Marcel Karam, Trevor Smedley and Sergiu Dascalus, Unit Level Test Adequacy Criteria for Visual Dataflow Languages and a Testing Methodology. ACM Transactions on Software Engineering and Methodology. Sept 2008, 1 - 40.
Anthony Cox and Trevor Smedley, Reverse engineering in support of litigation: Experiences in an adversarial environment, In proceedings, Working Conference on Reverse Engineering, Benevento, Italy, 2006, 288 - 290
Ken Dwyer and Trevor Smedley. A mobile, visual scripting environment for monitoring and controlling wireless devices. In proceedings, IEEE International Conference on Wireless And Mobile Computing, Networking And Communications, 2005. 151 - 158.
Simon Gauvin and Trevor Smedley. Reduction of Cognitive Load Through the Addition of High-Level Semantics to ReactoGraph. In Proceedings, IEEE Symposium on Visual Languages and Human-Centric Computing. 2004. 181- 188.
Yael Kollet and Trevor J. Smedley. Message-Flow Programming in PdaGraph. In Proceedings, IEEE Symposium on Visual Languages and Human-Centric Computing. 2004. 229- 232.
Anthony Cox, Simon Gauvin and Trevor Smedley. Towards Comprehensible Control Flow in Visual Data Flow Languages. In Proceedings, International Workshop on Visual Languages and Computing. 2004. 247-252.
Shea Armstrong, Yael Kollet and Trevor J. Smedley. PDAGraph: Event-Driven, Visual Scripting for Handheld Computers. In Proceedings, International Workshop on Visual Languages and Computing. 2004. 235-240.
Marcel R. Karam and Trevor J. Smedley. Visualizing Intra-procedural Data-flow Interactions to Help Locate Faults. In Proceedings, International Workshop on Visual Languages and Computing. 2004. 241-246
Marcel R. Karam and Trevor J. Smedley. Visualizing the Testedness of Data-flow Interactions in Imperative Functions, In Proceedings, Software Engineering Research and Practice. 2004, 297-306.
Shapour Arjomandy and Trevor J. Smedley. Visual specification of behaviours in VRML worlds. In Proceedings, Ninth International Conference on 3D Web Technology, 2004. 127 - 133.
Marcel R. Karam and Trevor J. Smedley. An Abstract Graph Model to Collect Interprocedural Duchains in Visual Dataflow Programs, In Proceedings, Software Engineering Research and Practice. 2003, 503-508
Simon Gauvin and Trevor Smedley. Component Framework for Visual Programming Language Design, In Proceedings, Software Engineering Research and Practice. 2003, 497-502
Marcel R. Karam and Trevor J. Smedley. Interprocedural Data-flow Testing for Visual Dataflow Languages. In Proceedings, International Conference on Intelligent and Adaptive Systems and Software Engineering. 2003 196-201
Simon Gauvin and Trevor Smedley. Vivid: A Framework for Creating Visual Programming Languages. In Proceedings, International Conference on Intelligent and Adaptive Systems and Software Engineering. 2003 223-226
Shea Armstrong, Yael Kollet, Trevor J. Smedley, Visual Scripting for Handheld Computers. In Proceedings, IEEE Symposium on Human-Centric Computing: End-User Programming, Washington (2002) 68-70
Simon Gauvin and Trevor Smedley, Concrete Programming with Reactive Objects. In Proceedings, IEEE Symposium on Human-Centric Computing: End-User Programming, Washington (2002) 74-76
Marcel R. Karam and Trevor J. Smedley, A Data-flow Testing Methodology for a Dataflow Based Visual Programming Language. In Proceedings, IEEE Symposium on Human-Centric Computing: End-User Programming, Washington (2002) 86-89
P.T. Cox, T. Smedley, Experiences with Visual Programming Languages for End-Users and Specific Domains, Proc. OOPSLA Workshop on Domain-Specific Visual Languages. Tampa Bay, FL (October 2001), 87-96.
M. R. Karam and T. J. Smedley. A Testing Methodology for a Dataflow Based Visual Programming Language. Proceedings of 2001 IEEE Symposia on Human-Centric Computing Languages and Environments (Sept 2001) 280-287
Philip T. Cox , Trevor J. Smedley. Guest Editors’ Introduction: Special Issue on Visual Languages for End-user and Domain-specific Programming. Journal of Visual Languages and Computing 12 (5): 473-474 (2001)
P.T. Cox, T. Smedley, A Formal Model for Parametrised Solids in a Visual Design Language, Journal of Visual Languages and Computing, 11 (6), Academic Press (2000), 687-710.
P.T. Cox, T. Smedley, Building Environments for Visual Programming of Robots by Demonstration, Journal of Visual Languages and Computing 11(5), Academic Press (2000), 549-571.
Trevor J. Smedley, David W. McIntyre. Guest Editors’ Introduction: Selected Papers from VL'98. Journal of Visual Languages and Computing 11 (5): 479-480 (2000)
P.T. Cox, T.J. Smedley. LSD: A logic-based visual language for designing structured objects. Journal of Visual Languages and Computing. 9(5) pp. 509-534, 1998.
P.T. Cox, C. Risley, and T.J. Smedley. Toward concrete representation in visual languages for robot control. Journal of Visual Languages and Computing. 9(2) pp. 211-239, 1998.
C.C. Risley, T.J. Smedley. Visualization of compile time errors in a Java compatible visual language. Proc. of 1998 Symposium on Visual Languages. 22-29. Halifax, Canada (Sept. 1998).
P.T. Cox, T.J. Smedley. A model for object representation and manipulation in a visual design language. Proc. of 1998 Symposium on Visual Languages. 254-261. Halifax, Canada (Sept. 1998).
P.T. Cox, T.J. Smedley. Visual programming for robot control. Proc. of 1998 Symposium on Visual Languages. 217-224. Halifax, Canada (Sept. 1998).
A.M. Winn, T.J. Smedley. Multimedia Workshop: Exploring the benefits of a visual scripting language. Proc. of 1998 Symposium on Visual Languages. 280-287. Halifax, Canada (Sept. 1998).
T.J. Smedley and P.T. Cox. Visual languages for the design and development of structured objects. Journal of Visual Languages and Computing. vol. 8 (1), pp. 57-84, 1997.
P.T. Cox, T.J. Smedley, J. Garden, and M. McManus. Experiences with visual programming in a specific domain — visual language challenge ’96. In Proceedings of the 1997 IEEE Symposium on Visual Languages. 254-259. Capri, Italy, September 1997.
P.T. Cox and T.J. Smedley. A declarative language for the design of structures. InProceedings of the 1997 IEEE Symposium on Visual Languages. 438-445. Capri, Italy, September 1997.
A. Rau-Chaplin and T.J. Smedley. A graphical language for generating architectural forms. In Proceedings of the 1997 IEEE Symposium on Visual Languages. 260-267. Capri, Italy, September 1997.
Allen L. Ambler, Thomas Green, Takayuki Dan Kumura, Alexander Repenning, Trevor J. Smedley: 1997 Visual Programming Challenge Summary. In Proceedings of the 1997 IEEE Symposium on Visual Languages. 11-18. Capri, Italy, September 1997.
P.T. Cox and T.J. Smedley. A visual language for the design of structured graphical objects. In Proceedings of the 1996 IEEE Symposium on Visual Languages. 296-303. Boulder, Colorado, September 1996.
T.J. Smedley. P.T. Cox, and S.L. Byrne. Expanding the utility of spreadsheets through the integration of visual programming and user interface objects. Advanced Visual Interfaces ’96. 148-155. Gubbio, Italy, May 1996.
T.J. Smedley. A high-level visual language for the graphical description of digital circuits. In Proceedings of the 1995 IEEE Symposium on Visual Languages. 77-82. Darmstadt, Germany. September 1995.
H. Glaser and T.J. Smedley. P sh — The next generation of command line interfaces. InProceedings of the 1995 IEEE Symposium on Visual Languages. 29-36. Darmstadt, Germany. September 1995.
P.T. Cox and T.J. Smedley. Using visual programming to extend the power of spreadsheet computation. In Proceedings Advanced Visual Interfaces ’94. 153-161. Bari, Italy. June 1994.
T.J. Smedley and A.J. Jost. Graphical parametrised structural descriptions of VLSI devices. In Proceedings of the 1993 IEEE Workshop on Visual Languages. 282-286. Bergen, Norway. August 1993.
T.J. Smedley. Using pictorial and object oriented programming for computer algebra. InProceedings of the Symposium on Applied Computing ’92. 1243-1247. Kansas City, MO, USA. March 1992.
Trevor J. Smedley: Detecting Algebraic Dependencies Between Unnested Radicals. ISSAC 1990 : 292-293
Trevor J. Smedley: A new Modular Algorithm for Computation of Algebraic Number Polynomial Gcds. ISSAC 1989 : 91-94
Keith O. Geddes ,Gaston H. Gonnet , Trevor J. Smedley: Heuristic Methods for Operations With Algebraic Numbers. ISSAC 1988 : 475-480
Trevor J. Smedley: Radical simplification using algebraic extension fields. EUROCAL 1987 : 313-314
Trevor J. Smedley: Integration of Rational Functions in SAC-2. AAECC 1985 : 373-384