Psychology of Programming
Interest Group
[PPIG Home]    
about   newsletters   workshops   resources   contents
Home ~ Resources ~ Keyword Index

Psychology of Programming
Keyword index

Background

This list of keywords is based on a review of the index of the book Psychology of Programming, on the work of the [off-site] ACM CHI Curriculum Development Group, on several online guides to thesaurus construction, and on the [off-site] visual programming language classification system devised by Margaret Burnett and Marla Baker. This list was created, and is being maintained by, [off-site] Alan Blackwell.

How to assign keywords to your paper

To classify a publication, please follow this procedure:

  1. Choose keywords at the most specific level of the tree below. When listing keywords in a paper, give the full reference within the tree, followed by the keyword name, as follows:
    "POP-I.A. Team Structure".

  2. If no bottom-level keyword applies to your work, please try to define a further keyword that you think will be useful in future. Give the tree reference to define where it belongs in the classification structure, as follows:
    "POP-III.B. ToonTalk"

  3. Try to choose keywords from sub-trees of as many different top level branches as possible (one from POP-I, one from POP-II etc.). This will allow location of papers that use (for example) a specific research method to investigate a particular language

  4. Try to use as few keywords as you can within any one branch.

An example of an appropriate set of keywords is for "[off-site] Simulating a Software Project", a paper presented at the 9th Annual Workshop. This paper could be classified with the keywords:

POP-I.A. Group Dynamics; POP-II.B. Design; POP-V.B. Simulated Projects.

(Note that this encoding proposes "Simulated Projects" as a new keyword)

POP Keywords

POP-I. Context
  1. social organisation and work
    • group dynamics
    • team structure
    • programming economy
    • distributed teams
    • learning to program
  2. programmer education
    • choice of language
    • choice of methodology
    • preprogramming knowledge
    • barriers to programming
    • design of training
    • transfer of competence
    • learning in projects
    • teaching specification
    • teaching design
    • team performance
  3. programming application areas
    • medical diagnosis
    • ill-defined problems
    • problem space
    • behaviour-based robotics
    • educational technology
    • domestic automation
    • end-user (office) applications
    • web
POP-II. Programmers
  1. types of programmer
    • neat / scruffy
    • casual / professional
    • novice / expert
    • individual differences
    • learning styles
    • novices
    • end-users
    • native (speaking) users
  2. specific activities
    • debugging
    • problem comprehension
    • program comprehension
    • design
    • coding
    • maintenance
    • modification
    • use cases
    • scenario-based design
    • formal specification
  3. types of programmer behaviour
    • working practices
POP-III. Programming tools
  1. general computational concepts
    • data structures
    • variables
    • efficiency
    • recursion
    • search
    • computer networks
  2. specific programming languages
    • algol
    • basic
    • C++
    • C#
    • java
    • prolog
    • spreadsheets
    • ML-family
    • smalltalk
    • new language
  3. features of programming languages
    • (all) cognitive dimensions
    • procedural / object oriented
    • data flow
    • visual languages
    • tangible languages
    • scripting languages
  4. other development tools
    • data dictionaries
    • editors
    • debuggers
    • visualisation
    • query languages
    • specification languages
    • class libraries
POP-IV. Programming solutions
  1. approaches to software design
    • top-down / bottom up
    • exploratory
    • object oriented design
    • prototyping method
    • theorem proving assistants
    • simple vs. generic
    • functional
    • concurrency
  2. features of software solutions
    • user interfaces
POP-V. Research questions
  1. cognitive theories
    • goal structure
    • short-term memory
    • scripts
    • mental models
    • ACT* / SOAR
    • attention investment
    • theories of design
  2. research methodology
    • interviews
    • longitudinal studies
    • case studies
    • protocol analysis
    • recall tasks
    • literature review
    • questionnaire
    • observation
    • phenomenology
    • phenomenography
    • discourse analysis
    • agent-based simulation
POP-VI. The field of psychology of programming
  1. definition of PoP
  2. definition of programming
  3. historical roots of PoP
  4. likely future developments
  5. computer science education research
  6. exploratory