With today's programming languages, most people (other than expert
programmers) find it very difficult to do even simple things. One
solution is to use pre-packaged applications instead. But packaged
software typically lacks flexibility and extensibility. In this
course, we will explore new types of computational environments that
make it easier for people to design their own media-rich "microworlds"
for exploratory learning and testing ideas. We will examine case
studies, including various versions of Logo, programming by example,
MUD languages, scripting and authoring languages, application-specific
extension languages (such as spreadsheet formulas), graphical
interface editors, and visual programming. Students will be requested
to read and critique the literature, and do mock-ups of new interface
ideas or programming projects.