Teaching "Thinky" Programming (original) (raw)

Computing At School Computing At School

School of Computer Science-- The University of Birmingham
In collaboration with The University of Sussex: Centre for Research in Cognitive Science

This is part of theFree Poplog Portal
All the tools required to run the examples below are
AVAILABLE FOR USE FREE OF CHARGE, WITH OPEN SOURCE
in Linux or in VirtualBox on Windows or Apple OSX,
as described inhttp://www.cs.bham.ac.uk/research/projects/poplog/ova/
Enquiries to A.Sloman@cs.bham.ac.uk
(This is all free and open source software, thanks to the Universities of Sussex and Birmingham.)


Link to this web site:
http://www.cs.bham.ac.uk/research/projects/poplog/examples/thinky.html
Many examples of thinky (and some other) types of programming can be found in
http://www.cs.bham.ac.uk/research/projects/poplog/examples/examples.html
Video tutorials on some of this material:
http://www.cs.bham.ac.uk/research/projects/poplog/cas-ai/video-tutorials.html

Introduction

The idea of "Thinky" programming is introduced on thisweb page, which also introduces several other types of programming, including numbery, bumpy, gadgety, arty, and exploratory programming. (The categories are not all mutually exclusive.)

The key features of "thinky" programming includes getting a computer to perform some cognitive task that is similar to or inspired by things humans or other animals can do, such as seeing, planning, playing a game, or using a natural language to communicate, such as English of Urdu. This has typically been the domain of research in AI and cognitive science, and is very difficult to do well enough to match human and animal competences. But it is possible to introduce some of the ideas and techniques by focusing on simplified versions of those tasks, samples of which are provided here.

How to simplify the introductory examples

In general developing working "thinky" programming can be very difficult partly because of the need to provide the program with access to whatever it is thinking about, e.g. giving it eyes and manipulators, if it is thinking about physical objects that can be moved around, or giving it a speaking voice and microphone if it is to engage in conversational interaction, as well as some sort of body to which people can relate when interacting with it.

But AI researchers and teachers have found ways of simplifying the tasks for beginner students so as to make introductory teaching feasible.

The simplification can include any or all of the following

Initially this may be daunting for teachers, but if different teachers build useful and interesting learning "packages" of this sort, all using the same base programming language, then they can share their work with other teachers, and some of the simpler packages, e.g. a library defining a microworld, can be combined with other packages, e.g. a library with resources for natural language processing, to allow students to work on projects that build in the combination, e.g. designing a program that interacts in (a subset of) natural language, conversing about the domain.

Example microworlds

Required resources

Not all programming languages will be equally good at supporting such diverse forms of teaching. Some of the requirements for languages and programming environments to enable creative teachers to inspire their students were discussed in this paper:

Beginners need powerful systems, by Aaron Sloman, in New horizons in educational computing, Ed. Masoud Yazdani, Ellis Horwood Series In Artificial Intelligence, pp. 220--234, 1984, http://www.cs.bham.ac.uk/research/projects/cogaff/81-95.html#45,

Online videos

A draft incomplete set of videos introducing some of these examples and the tools required to implement them can be found here.Additional videos will be added, illustrating more techniques and more types of learning.


Suggestions for improvement are welcome.

This file maintained by:
Aaron Sloman
Installed: 1 May 2012
Last Updated: 1 May 2012; 10 Jul 2015 (format)