: Whereas sophisticated computer users can exercise more control in what they are exposed to and produce computational artifacts, technologically challenged end-users assume a more passive role in the information society. In order to construct such artifacts, typically some programming knowledge is necessary. Although learning how to program is not impossible for these end-users, it is usually quite difficult and uninteresting. This paper describes Programmorphosis, a multi-layered approach to end-user programming, which, at the highest level, enables novice end-user programmers to define behaviors of interacting agents in a el abstract language. Behavior templates are used to structure domain concepts in declarative knowledge bases. Specifying behaviors is achieved by altering behavioral parameters in a wizard environment that subsequently generates lower-level executable code using information in procedural knowledge bases. With Programmorphosis, the programming process transforms in...