Psychology of Programming Keywords

Background

This list of keywords is based on a review of the index of the book Psychology of Programming, on the work of the ACM CHI Curriculum Development Group, on several online guides to thesaurus construction, and on the devised by Margaret Burnett and Marla Baker. This list was created and is being maintained by 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 “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
    • A. social organisation and work
      • group dynamics
      • team structure
      • programming economy
      • distributed teams
      • learning to program
    • B. 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
    • C. programming application areas
      • medical diagnosis
      • health records
      • ill-defined problems
      • problem space
      • behaviour-based robotics
      • educational technology
      • domestic automation
      • end-user (office) applications
      • web
  • POP-II. Programmers
    • A. types of programmer
      • neat / scruffy
      • schoolchildren
      • professional programmer
      • casual / professional
      • novice / expert
      • individual differences
      • learning styles
      • novices
      • end-users
      • native (speaking) users
    • B. specific activities
      • debugging
      • problem comprehension
      • program comprehension
      • design
      • coding
      • maintenance
      • modification
      • use cases
      • scenario-based design
      • formal specification
    • C. types of programmer behaviour
      • working practices
  • POP-III. Programming tools
    • A. general computational concepts
      • data structures
      • variables
      • efficiency
      • recursion
      • search
      • computer networks
    • B. specific programming languages
      • Algol
      • Dart
      • BASIC
      • C++
      • C#
      • Java
      • Prolog
      • spreadsheets
      • ML-family
      • Smalltalk
      • new language
    • C. features of programming languages
      • (all) cognitive dimensions
      • syntax highlighting
      • procedural / object oriented
      • data flow
      • visual languages
      • tangible languages
      • scripting languages
    • D. other development tools
      • data dictionaries
      • Sonic Pi
      • editors
      • debuggers
      • visualisation
      • query languages
      • specification languages
      • class libraries
  • POP-IV. Programming solutions
    • A. approaches to software design
      • top-down / bottom up
      • exploratory
      • object-oriented design
      • prototyping method
      • theorem-proving assistants
      • simple vs. generic
      • functional
      • concurrency
      • programming by example
    • B. features of software solutions
      • user interfaces
  • POP-V. Research questions
    • A. cognitive theories
      • goal structure
      • short-term memory
      • scripts
      • mental models
      • ACT* / SOAR
      • attention investment
      • theories of design
    • B. research methodology
      • field study
      • interviews
      • longitudinal studies
      • case studies
      • protocol analysis
      • recall tasks
      • literature review
      • questionnaire
      • observation
      • phenomenology
      • phenomenography
      • discourse analysis
      • agent-based simulation
      • eye-tracking
  • POP-VI. The field of psychology of programming
    • A. definition of PoP
    • B. definition of programming
    • C. historical roots of PoP
    • D. likely future developments
    • E. computer science education research
    • F. exploratory