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
ACM CHI Curriculum
Development Group, on several online guides to thesaurus construction,
and on the
visual programming language classification system 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:
- 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".
- 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"
- 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
- 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
-
- social organisation and work
- group dynamics
- team structure
- programming economy
- distributed teams
- learning to program
- 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
- 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
-
- types of programmer
- neat / scruffy
- casual / professional
- novice / expert
- individual differences
- learning styles
- novices
- end-users
- native (speaking) users
- specific activities
- debugging
- problem comprehension
- program comprehension
- design
- coding
- maintenance
- modification
- use cases
- scenario-based design
- formal specification
- types of programmer behaviour
- POP-III. Programming tools
-
- general computational concepts
- data structures
- variables
- efficiency
- recursion
- search
- computer networks
- specific programming languages
- algol
- basic
- C++
- C#
- java
- prolog
- spreadsheets
- ML-family
- smalltalk
- new language
- features of programming languages
- (all) cognitive dimensions
- procedural / object oriented
- data flow
- visual languages
- tangible languages
- scripting languages
- other development tools
- data dictionaries
- editors
- debuggers
- visualisation
- query languages
- specification languages
- class libraries
- POP-IV. Programming solutions
-
- approaches to software design
- top-down / bottom up
- exploratory
- object oriented design
- prototyping method
- theorem proving assistants
- simple vs. generic
- functional
- concurrency
- features of software solutions
- POP-V. Research questions
-
- cognitive theories
- goal structure
- short-term memory
- scripts
- mental models
- ACT* / SOAR
- attention investment
- theories of design
- 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
-
- definition of PoP
- definition of programming
- historical roots of PoP
- likely future developments
- computer science education research
- exploratory