End-user programming: Difference between revisions

The educational technology and digital learning wiki
Jump to navigation Jump to search
 
(5 intermediate revisions by one other user not shown)
Line 1: Line 1:
{{Stub}}
{{Incomplete}}
== Definition ==
== Definition ==
* {{quotation | End-user development (EUD) is a research topic within the field of computer science, describing activities or techniques that allow people who are not professional developers to create or modify a software artifact. A typical example of EUD is programming to extend and adapt an existing package (e.g. an office suite). There are two basic reasons why EUD has become popular, one is because organizations are facing delays on projects and using EUD it can effectively cut the time of completion on a project. The second reason is that software tools are more powerful and easier to use.}} ([http://en.wikipedia.org/wiki/End-user_development End-user development (Wikipedia), retrieved 09:27, 18 August 2008 (UTC)).


* {{quotation | Not all programs are written by professional computer programmers. "End users" with the right tools automate laboratories and corporate data access, model fusion reactors and animate Web pages.}} [End user programming] {{quotation | covers the tools, techniques, and theory of people who exploit computer automation for their purposes without becoming professional programmers}} ([http://www.cs.uml.edu/~hgoodell/EndUser/ End-User Programming], retrieved 13:16, 5 September 2006 (MEST))
* {{quotation | Not all programs are written by professional computer programmers. "End users" with the right tools automate laboratories and corporate data access, model fusion reactors and animate Web pages.}} [End user programming] {{quotation | covers the tools, techniques, and theory of people who exploit computer automation for their purposes without becoming professional programmers}} ([http://www.cs.uml.edu/~hgoodell/EndUser/ End-User Programming], retrieved 13:16, 5 September 2006 (MEST))


* {{quotation | There has been considerable work in empowering end users to be able to write their own programs, and as a result, users are indeed doing so. In fact, the number of end-user programmers in the United States is expected to reach 55 million by 2005, as compared to only 2.75 million professional programmers. The "programming" systems used by these end users include spreadsheet systems, web authoring tools, and graphical languages for demonstrating the desired behavior of educational simulations. Using such systems, end users create software, in forms such as educational simulations,}} ([http://eusesconsortium.org/about.php About EUSES], retrieved 13:16, 5 September 2006 (MEST)). spreadsheets, and dynamic e-business web applications.
* {{quotation | There has been considerable work in empowering end users to be able to write their own programs, and as a result, users are indeed doing so. In fact, the number of end-user programmers in the United States is expected to reach 55 million by 2005, as compared to only 2.75 million professional programmers. The "programming" systems used by these end users include spreadsheet systems, web authoring tools, and graphical languages for demonstrating the desired behavior of educational simulations. Using such systems, end users create software, in forms such as educational simulations,}} ([http://eusesconsortium.org/about.php About EUSES], retrieved 13:16, 5 September 2006 (MEST)). spreadsheets, and dynamic e-business web applications.
End-user programming is very popular in educational technology. Many (or most) [[authoring environment]]s - in particular [[multimedia authoring system]]s do have programming facilities and that are used by end-users. Of course defining"end-user" is not obvious. Clearly, a teacher who develops interactive applications that include some scripting is an end-user. A multimedia designer without proper CS training that does the same rather should be called a "light-weight" programmer. Anyhow, both cases do have in common the idea that many programs are written by none-professional programmers.


== Methods and examples ==
== Methods and examples ==
See also [[computer programming]].


;Application-specific Languages:  
;Application-specific Languages:  
* E.g. scripting languages like JavaScript used to build interactive web pages
* E.g. relatively simple scripting languages like [[ECMAScript]] (JavaScript) are used to build interactive web pages. These languages, however, increasingly integrate features from "real" programming languages. E.g. ECAMScript version 4 - the core of JavaScript 2 and ActionScript 3 - implements a full Java-like object model, although it is not mandatory to define classes, variables, etc.


;Programming by Example PBE
;Programming by Example PBE
Line 16: Line 22:


;Visual Programming
;Visual Programming
* This includes a lot of [[Multimedia authoring system]]s.
* A Visual programming language (VPL) is any programming language that lets users specify programs by manipulating program elements graphically rather than by specifying them textually ([http://en.wikipedia.org/wiki/Visual_programming Wikipedia], retrieved 09:27, 18 August 2008 (UTC)).
* E.g. [[Authorware]]
* [[Multimedia authoring system]]s (e.g. [[Authorware]]),  [[microworld]]s (e.g. [[AgentSheets]] or [[Squeak|Etoy]]) and [[3D interactive environment]]s (e.g. Alice) often include visual programming languages.


;Natural Programming
;Natural Programming
Line 27: Line 33:
=== Types ===
=== Types ===


In education, there are basically three kinds of technologies:
In education, there are basically three kinds of technologies used by end-users:


# Standard wide-spread end-user tools (.e.g all sorts of scripting languages for the Internet, Macro-languages for [[professional tool]]s.
# Standard wide-spread end-user tools (e.g all sorts of scripting languages for the Internet, Macro-languages for [[professional tool]]s).
# Authoring kits/languages for educational software (in particular interactive multimedia)
# [[Authoring environment|Authoring kits/languages]] for educational software (in particular interactive multimedia)
# Special-purpose toolkits to build highly advanced educational software: {{quotation | The demand for educational software is growing exponentially with the surge of interest in educational reform, the Internet, and distance learning. Educational applications must be very flexible because curricula and teaching styles vary tremendously among institutions, locations, and even among instructors at the same institution. To meet these needs, a wide array of small-scale, casual developers at universities, research labs, and small businesses develop educational software, and no dominant solution or supplier has emerged.}} (Roschelle et al., 1999).
# Special-purpose toolkits like [[microworld]]s to build highly advanced educational software: {{quotation | The demand for educational software is growing exponentially with the surge of interest in educational reform, the Internet, and distance learning. Educational applications must be very flexible because curricula and teaching styles vary tremendously among institutions, locations, and even among instructors at the same institution. To meet these needs, a wide array of small-scale, casual developers at universities, research labs, and small businesses develop educational software, and no dominant solution or supplier has emerged.}} (Roschelle et al., 1999).


=== Example categories ===
=== Example categories ===


;Interactive web pages authoring environments
;Authoring environments for interactive web pages  
* E.g. Tools like Dreamweaver
* E.g. Tools like Dreamweaver
* E.g. Scripting languages like JavaScript
* E.g. Scripting languages like JavaScript
* E.g. Tools to build quizzes like HotPotatoes and that will generate JavaScript.
* E.g. Tools to build quizzes like [[HotPotatoes]] and that will generate JavaScript.


;Interactive multimedia toolkits
;Interactive multimedia toolkits
Line 49: Line 55:
* [[AgentSheets]]
* [[AgentSheets]]
* [[E-Slate]]
* [[E-Slate]]
* Languages built on top of [[Squeak]] (e.g. Etoys)
Some of these can be run over the Internet (e.g. they compile in Javacode)
Some of these can be run over the Internet (e.g. they compile in Javacode)


Line 62: Line 69:
== Links ==
== Links ==


; Introductions and resource pages
* [http://en.wikipedia.org/wiki/End-user_development End-user development]
* [http://en.wikipedia.org/wiki/End-user_computing End-user computing]
* [http://en.wikipedia.org/wiki/Visual_programming Visual programming language] (Wikipedia)
* [http://www.cs.uml.edu/~hgoodell/EndUser/ End-User Programming Home Page]
* [http://www.cs.uml.edu/~hgoodell/EndUser/ End-User Programming Home Page]
* [http://www.lri.fr/~letondal/Bib/eudbib.html An End-User Programming bibliographic database] by Catherine Letondal
; Some projects
* [http://giove.cnuce.cnr.it/eud-net.htm EUD-NET Network of Excellence], a EU project started in 2002 to prepare a research agenda in the end-user development field for the next framework.
* [http://giove.cnuce.cnr.it/eud-net.htm EUD-NET Network of Excellence], a EU project started in 2002 to prepare a research agenda in the end-user development field for the next framework.
* [http://www.cs.cmu.edu/~NatProg/ Natural Programming],  
* [http://www.cs.cmu.edu/~NatProg/ Natural Programming],  
* [http://www.lri.fr/~letondal/Bib/eudbib.html An End-User Programming bibliographic database] by Catherine Letondal
* [http://eusesconsortium.org/ EUSES] Consortium is a collaboration by researchers at Oregon State University, Carnegie Mellon University, Drexel University, Penn State University, University of Nebraska, Cambridge University, and IBM whose goal is to develop and investigate end-user software engineering technologies for enabling End Users to Shape Effective Software. (Includes good resources)
* [http://eusesconsortium.org/ EUSES] Consortium is a collaboration by researchers at Oregon State University, Carnegie Mellon University, Drexel University, Penn State University, University of Nebraska, Cambridge University, and IBM whose goal is to develop and investigate end-user software engineering technologies for enabling End Users to Shape Effective Software. (Includes good resources)
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/bam/www/toolnames.htmlUser Interface Software Tools] (last update 1997)
* [http://www.cs.cmu.edu/afs/cs.cmu.edu/user/bam/www/toolnames.htmlUser Interface Software Tools] (last update 1997)


== References ==
== References ==
Line 75: Line 89:
* Hirst, Anthony J.; Jeffrey Johnson, Marian Petre, Blaine A. Price and Mike Richards (2003). What is the best programming environment/language for teaching robotics using Lego Mindstorms?, Artif Life Robotics (2003) 7:124-131, DOI 10.1007/s10015-003-0246-8 [http://www.springerlink.com/content/644213v01h5j72p8/ Abstract/PDF]  
* Hirst, Anthony J.; Jeffrey Johnson, Marian Petre, Blaine A. Price and Mike Richards (2003). What is the best programming environment/language for teaching robotics using Lego Mindstorms?, Artif Life Robotics (2003) 7:124-131, DOI 10.1007/s10015-003-0246-8 [http://www.springerlink.com/content/644213v01h5j72p8/ Abstract/PDF]  


[[Category: Technologies]]
 
[[Category: Programming]]
[[Category: Programming]]

Latest revision as of 06:57, 23 March 2020

Definition

  • “End-user development (EUD) is a research topic within the field of computer science, describing activities or techniques that allow people who are not professional developers to create or modify a software artifact. A typical example of EUD is programming to extend and adapt an existing package (e.g. an office suite). There are two basic reasons why EUD has become popular, one is because organizations are facing delays on projects and using EUD it can effectively cut the time of completion on a project. The second reason is that software tools are more powerful and easier to use.” ([http://en.wikipedia.org/wiki/End-user_development End-user development (Wikipedia), retrieved 09:27, 18 August 2008 (UTC)).
  • “Not all programs are written by professional computer programmers. "End users" with the right tools automate laboratories and corporate data access, model fusion reactors and animate Web pages.” [End user programming] “covers the tools, techniques, and theory of people who exploit computer automation for their purposes without becoming professional programmers” (End-User Programming, retrieved 13:16, 5 September 2006 (MEST))
  • “There has been considerable work in empowering end users to be able to write their own programs, and as a result, users are indeed doing so. In fact, the number of end-user programmers in the United States is expected to reach 55 million by 2005, as compared to only 2.75 million professional programmers. The "programming" systems used by these end users include spreadsheet systems, web authoring tools, and graphical languages for demonstrating the desired behavior of educational simulations. Using such systems, end users create software, in forms such as educational simulations,” (About EUSES, retrieved 13:16, 5 September 2006 (MEST)). spreadsheets, and dynamic e-business web applications.

End-user programming is very popular in educational technology. Many (or most) authoring environments - in particular multimedia authoring systems do have programming facilities and that are used by end-users. Of course defining"end-user" is not obvious. Clearly, a teacher who develops interactive applications that include some scripting is an end-user. A multimedia designer without proper CS training that does the same rather should be called a "light-weight" programmer. Anyhow, both cases do have in common the idea that many programs are written by none-professional programmers.

Methods and examples

See also computer programming.

Application-specific Languages
  • E.g. relatively simple scripting languages like ECMAScript (JavaScript) are used to build interactive web pages. These languages, however, increasingly integrate features from "real" programming languages. E.g. ECAMScript version 4 - the core of JavaScript 2 and ActionScript 3 - implements a full Java-like object model, although it is not mandatory to define classes, variables, etc.
Programming by Example PBE
  • Also known as Programming By Demonstration (PBD), a technique for teaching the computer new behavior by demonstrating actions on concrete examples. The system records user actions and generalizes a program that can be used in new examples)
  • E.g. keyboard macros in an editor
Visual Programming
Natural Programming
  • general principles, methods, and programming language and environment designs that will significantly reduce the amount of learning and effort needed to write programs for people who are not professional programmers.
  • E.g. programming microworlds

End-user programming in educational technology

Types

In education, there are basically three kinds of technologies used by end-users:

  1. Standard wide-spread end-user tools (e.g all sorts of scripting languages for the Internet, Macro-languages for professional tools).
  2. Authoring kits/languages for educational software (in particular interactive multimedia)
  3. Special-purpose toolkits like microworlds to build highly advanced educational software: “The demand for educational software is growing exponentially with the surge of interest in educational reform, the Internet, and distance learning. Educational applications must be very flexible because curricula and teaching styles vary tremendously among institutions, locations, and even among instructors at the same institution. To meet these needs, a wide array of small-scale, casual developers at universities, research labs, and small businesses develop educational software, and no dominant solution or supplier has emerged.” (Roschelle et al., 1999).

Example categories

Authoring environments for interactive web pages
  • E.g. Tools like Dreamweaver
  • E.g. Scripting languages like JavaScript
  • E.g. Tools to build quizzes like HotPotatoes and that will generate JavaScript.
Interactive multimedia toolkits

Some of these can be run over the Internet (e.g. through special plugins).

Toolkits for building or adapting microworlds and simulations.

Often they are based on some kind of components that authors and teacher authors then can combine and adapt to their needs. E.g. systems like:

Some of these can be run over the Internet (e.g. they compile in Javacode)

Games programming
Microworlds to learn programming
Server-side scripting languages
  • E.g. PhP, ASP

Links

Introductions and resource pages
Some projects
  • EUD-NET Network of Excellence, a EU project started in 2002 to prepare a research agenda in the end-user development field for the next framework.
  • Natural Programming,
  • EUSES Consortium is a collaboration by researchers at Oregon State University, Carnegie Mellon University, Drexel University, Penn State University, University of Nebraska, Cambridge University, and IBM whose goal is to develop and investigate end-user software engineering technologies for enabling End Users to Shape Effective Software. (Includes good resources)
  • Interface Software Tools (last update 1997)


References

  • J. Roschelle, M. Koutlis, A. Repenning, et al, 1999: "Developing Educational Software Components", IEEE Computer, September 1999 Special Issue on Web based learning and collaboration pp 2-10. PDF
  • Hirst, Anthony J.; Jeffrey Johnson, Marian Petre, Blaine A. Price and Mike Richards (2003). What is the best programming environment/language for teaching robotics using Lego Mindstorms?, Artif Life Robotics (2003) 7:124-131, DOI 10.1007/s10015-003-0246-8 Abstract/PDF