Why Is Programming (Sometimes) so Difficult? Programming as Scientific Discovery in Multiple Problem Spaces

Jin Woo Kim, F. Javier Lerch

Research output: Contribution to journalArticle

29 Citations (Scopus)

Abstract

Our theoretical framework views programming as search in three problem spaces: rule, instance, and representation. The main objectives of this study are to find out how programmers change representation while working in multiple problem spaces, and how representation change increases the difficulty of programming tasks. Our theory of programming indicates that programming is similar to the way scientists discover and test theories. That is, programmers generate hypotheses in the rule space and test these hypotheses in the instance space. Moreover, programmers change their representations in the representation space when rule development becomes too difficult or alternative representations are available. We conducted three empirical studies with different programming tasks: writing a new program, understanding an existing program, and reusing an old program. Our results indicate that considerable cognitive difficulties stem from the need to change representations in these tasks. We conclude by discussing the implications of viewing programming as a scientific discovery for the design of programming environments and training methods.

Original languageEnglish
Pages (from-to)25-50
Number of pages26
JournalInformation Systems Research
Volume8
Issue number1
DOIs
Publication statusPublished - 1997 Jan 1

Fingerprint

programming
training method
test theory
Programming

All Science Journal Classification (ASJC) codes

  • Management Information Systems
  • Information Systems
  • Computer Networks and Communications
  • Information Systems and Management
  • Library and Information Sciences

Cite this

@article{42d5cd90f3014c58baa4abcce5e3af3f,
title = "Why Is Programming (Sometimes) so Difficult? Programming as Scientific Discovery in Multiple Problem Spaces",
abstract = "Our theoretical framework views programming as search in three problem spaces: rule, instance, and representation. The main objectives of this study are to find out how programmers change representation while working in multiple problem spaces, and how representation change increases the difficulty of programming tasks. Our theory of programming indicates that programming is similar to the way scientists discover and test theories. That is, programmers generate hypotheses in the rule space and test these hypotheses in the instance space. Moreover, programmers change their representations in the representation space when rule development becomes too difficult or alternative representations are available. We conducted three empirical studies with different programming tasks: writing a new program, understanding an existing program, and reusing an old program. Our results indicate that considerable cognitive difficulties stem from the need to change representations in these tasks. We conclude by discussing the implications of viewing programming as a scientific discovery for the design of programming environments and training methods.",
author = "Kim, {Jin Woo} and Lerch, {F. Javier}",
year = "1997",
month = "1",
day = "1",
doi = "10.1287/isre.8.1.25",
language = "English",
volume = "8",
pages = "25--50",
journal = "Information Systems Research",
issn = "1047-7047",
publisher = "INFORMS Inst.for Operations Res.and the Management Sciences",
number = "1",

}

Why Is Programming (Sometimes) so Difficult? Programming as Scientific Discovery in Multiple Problem Spaces. / Kim, Jin Woo; Lerch, F. Javier.

In: Information Systems Research, Vol. 8, No. 1, 01.01.1997, p. 25-50.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Why Is Programming (Sometimes) so Difficult? Programming as Scientific Discovery in Multiple Problem Spaces

AU - Kim, Jin Woo

AU - Lerch, F. Javier

PY - 1997/1/1

Y1 - 1997/1/1

N2 - Our theoretical framework views programming as search in three problem spaces: rule, instance, and representation. The main objectives of this study are to find out how programmers change representation while working in multiple problem spaces, and how representation change increases the difficulty of programming tasks. Our theory of programming indicates that programming is similar to the way scientists discover and test theories. That is, programmers generate hypotheses in the rule space and test these hypotheses in the instance space. Moreover, programmers change their representations in the representation space when rule development becomes too difficult or alternative representations are available. We conducted three empirical studies with different programming tasks: writing a new program, understanding an existing program, and reusing an old program. Our results indicate that considerable cognitive difficulties stem from the need to change representations in these tasks. We conclude by discussing the implications of viewing programming as a scientific discovery for the design of programming environments and training methods.

AB - Our theoretical framework views programming as search in three problem spaces: rule, instance, and representation. The main objectives of this study are to find out how programmers change representation while working in multiple problem spaces, and how representation change increases the difficulty of programming tasks. Our theory of programming indicates that programming is similar to the way scientists discover and test theories. That is, programmers generate hypotheses in the rule space and test these hypotheses in the instance space. Moreover, programmers change their representations in the representation space when rule development becomes too difficult or alternative representations are available. We conducted three empirical studies with different programming tasks: writing a new program, understanding an existing program, and reusing an old program. Our results indicate that considerable cognitive difficulties stem from the need to change representations in these tasks. We conclude by discussing the implications of viewing programming as a scientific discovery for the design of programming environments and training methods.

UR - http://www.scopus.com/inward/record.url?scp=0346613452&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=0346613452&partnerID=8YFLogxK

U2 - 10.1287/isre.8.1.25

DO - 10.1287/isre.8.1.25

M3 - Article

AN - SCOPUS:0346613452

VL - 8

SP - 25

EP - 50

JO - Information Systems Research

JF - Information Systems Research

SN - 1047-7047

IS - 1

ER -