End-user ProgrammingFDA170, 2004HT
|
|
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.
Goals
To understand and apply key aspects of designing/implementing end-user programming languages.
Prerequisites
Programming experience
Organization
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.
Contents
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.
Literature
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.”
Lecturers
Kevin McGee
Examiner
Kevin McGee
Examination
Active participation, weekly deliverables, and a public presentation of a completed final project.
Credit
5
Comments
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: Anne Moe