Hide menu

End-user Programming

FDA170, 2004HT

Status Archive
School Computer and Information Science (CIS)
Division HCS
Owner Kevin McGee
Homepage http://www.ida.liu.se/~kevmc/courses/04Q4/index.htm

  Log in  

Course plan

No of lectures

8 (16 hours)

Recommended for

Graduate and master-level students in computer science.

The course was last given

New course.


To understand and apply key aspects of designing/implementing end-user programming languages.


Programming experience


The course is organized as a series of design sessions, discussions, and small, weekly “deliverables.” The course will meet once a week for 8 weeks – and once at the end of the quarter for final presentations of student projects.


This is a project-oriented course for computer scientists interested in end-user programming language design. The category of end-user programming languages is fairly broad and includes various kinds of special-purpose languages for non-programmers. This includes spreadsheets, CAD systems, and languages for creating “interactive fiction”, graphics, computer-games, and the like. These languages support specialists in some particular domain – specialists who are not programming experts -- who want to develop computer-based applications, services, or products. There have been a number of approaches to the development of end-user programming languages: from simplifying/specializing the syntax; to “visualizing computational processes”; to developing appropriate control-metaphors; to including “intelligence” in the development environments.
The development of good programming-languages for end-users requires a particular set of skills and techniques: developers need to consider issues of technical implementation, programming-language design, characteristics of the target domain, and particular traditions and conventions of people who work in the target domain. In this course we will study example systems, engage in design sessions (designing a mini-language for particular class of users/domains), and students will work in teams to implement their own small end-user programming language for some specific class of users/domains.


Readings will be short and distributed as needed, and may include writings on SketchPad, Logo, Squeak/Smalltalk, Boxer, SchemePaint, AgentSheets, StageCast Director, ComiCurrents, StarLogo, ToonTalk, VisiCalc, Inform, and various game-development (Klik & Play, etc.) and “programming by demonstration” systems (Tinker, Garnet, Pavlov, etc.). Note that “readings” for this course will also include “using a number of the example systems.”


Kevin McGee


Kevin McGee


Active participation, weekly deliverables, and a public presentation of a completed final project.




Course language is English. (For implementations, students are free to choose any programming language -- Java, Scheme, Lisp, etc. -- but a final project must work "for real" in some significant sense. It cannot be a "mock up" or "Director presentation.")

Page responsible: Director of Graduate Studies
Last updated: 2012-05-03