Cognitive Neuroscience of Memory for Software Engineers
1. A COGNITIVE NEUROSCIENCE PERSPECTIVE ON
MEMORY FOR PROGRAMMING TASKS
Chris Parnin, Georgia Institute of Technology
2. In the year 2042, super
programmers strapped in SQUIDs
(superconducting quantum
interference devices) build
programs to save the earth from
certain doom.
4. COGNITIVE NEUROSCIENCE
Understanding how the functions
of the physical brain can yield
the thoughts and ideas of an
intangible mind.
George Miller and Michael Gazzaniga
5. Benefits?
Image no more keyboards.
Direct measures of function
and understanding.
Better predictions and
constraints from models.
COGNITIVE NEUROSCIENCE
17. AUTOMATIC MEMORY
We cannot anticipate important events.
We cannot always devote top-down resources to encode and select memory.
Initial memory is largely formed without conscious effort.
18. HIPPOCAMPUS ANATOMY
Grand Central of the senses
Connections to sensory
processing and semantic
recognition. Connections to
frontal regions.
Brain Hashtable
Hippocampal neurons cannot
store directly, index to original
source.
Recording factors
Novel, engaging,
high-frequency…
19. SNOWBALL TO BOULDER
Hippocampal LTP
Formed and tagged
for storage.
Consolidated memory
Replayed and stored at
original regions.
Top-down associations
Properties our bound
to memory. “Rehearsal” is
activation of speech motor.
28. Often do not associate name with memories of programming.
NAME IS NOT ENOUGH
29. TOOL DESIGN: MEMORY
• Auto-association
– Better distinct cues for learning?
• Spatial memory?
– Spatial stability, isolation
• Prospective memory?
– Better reminders than a compile error or TODO?
• Forgetting?
– Code history and provenance
30. THEORIES (BETA)
Visual Chunks
Initial formation of memory.
“Below the method with
lots of strings”
Iterative Comprehension
Top-down experiences
will bind and update partial
representations.
Concepts form.
Navigational Jitter
Tabs, scrolling
huge files,
little understanding
-- need memory aids.
31. EXPERIMENTS
Gender differences in brain activity during programming?
Neurogenesis in programmer’s brain?
Place cells (spatial) during programming navigation?
Your idea?
32. MUSCLES OF THE MIND
Subvocal
speech
EMG
(electromyography)
Cognition
33. 0 100 200 300 400 500 600 700 800 900
Subvocal
Debug
Select
Click
Search
Edit
Formulating
Problem
Found
useful code
Formulating
solution
EditingFound
useful code
Evaluating
Moments of interest and difficulty