cognitive style, personality, and computer programming

20
Pergamon Computers in Human Behavior, Vol. 11, No. 2, pp. 241-260, 1995 Copyright © 1995 Elsevier Science Ltd Printed in the USA. All rights reserved 0747-5632/95 $9.50 + .00 0747-5632(94) 00034-4 Cognitive Style, Personality, and Computer Programming Catherine Bishop-Clark Systems Analysis Department, Miami University, Middletown, Ohio Abstract -- Within the field of computer programming there is evidence of tremendous variation among individuals achievement in programming. Cognitive styles and personality traits have been investigated as factors that may help explain some of that variability; however, they have failed to consistently explain individual differences in achievement. In the majority of these studies, computer programming has been measured as a single activity. Computer programming has been described as an activity having separate and distinct phases: problem representation, program design, coding, and debugging. It may be that certain cognitive styles and personality dimensions affect some phases but not others. The purpose of this review is twofold. First, the empirical studies on the relation between cognitive style, personality traits and computer programming are reviewed. Second, the paper provides an agenda for future research by providing a conceptual framework that organizes and relates the variety of constructs to the specific phases of writing computer programs and identifies a number of distinct gaps in this particular body of research. Within the field of computer programming there is agreement that there are tremen- dous differences among individuals' achievement in programming. Teachers of computer programming witness first hand the huge variability among students in learning and achievement. Shneiderman (1980) reports that researchers have found differences as high as 100 to 1 of programmers of similar background regarding programming performance, and Brooks (1980) reports that one of the problems in Requests for reprints should be addressed to Catherine Bishop-Clark, Miami University, 4200 East University Blvd., Middletown,OH 45042. E-mail: [email protected] 241

Upload: catherine-bishop-clark

Post on 02-Sep-2016

226 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Cognitive style, personality, and computer programming

Pergamon Computers in Human Behavior, Vol. 11, No. 2, pp. 241-260, 1995

Copyright © 1995 Elsevier Science Ltd Printed in the USA. All rights reserved

0747-5632/95 $9.50 + .00

0747-5632(94) 00034-4

Cognitive Style, Personality, and Computer Programming

Catherine Bishop-Clark

Systems Analysis Department, Miami University, Middletown, Ohio

Abstract - - Within the field of computer programming there is evidence of tremendous variation among individuals achievement in programming. Cognitive styles and personality traits have been investigated as factors that may help explain some of that variability; however, they have failed to consistently explain individual differences in achievement. In the majority of these studies, computer programming has been measured as a single activity. Computer programming has been described as an activity having separate and distinct phases: problem representation, program design, coding, and debugging. It may be that certain cognitive styles and personality dimensions affect some phases but not others. The purpose of this review is twofold. First, the empirical studies on the relation between cognitive style, personality traits and computer programming are reviewed. Second, the paper provides an agenda for future research by providing a conceptual framework that organizes and relates the variety of constructs to the specific phases of writing computer programs and identifies a number of distinct gaps in this particular body of research.

Within the field of computer programming there is agreement that there are tremen- dous differences among individuals' achievement in programming. Teachers of computer programming witness first hand the huge variability among students in learning and achievement. Shneiderman (1980) reports that researchers have found differences as high as 100 to 1 of programmers of similar background regarding programming performance, and Brooks (1980) reports that one of the problems in

Requests for reprints should be addressed to Catherine Bishop-Clark, Miami University, 4200 East University Blvd., Middletown, OH 45042. E-mail: [email protected]

241

Page 2: Cognitive style, personality, and computer programming

242 Bishop-Clark

studying introductory programming classes is the tremendous variability in achieve- ment. Cognitive styles and personality traits have been investigated as factors that may help explain some of that variability; however, they have failed to consistently explain individual differences in achievement. In the majority of these studies, com- puter programming has been measured as a single activity. Computer programming has been described as an activity having separate and distinct phases: problem repre- sentation, program design, coding, and debugging. It may be that certain cognitive styles and personality dimensions affect some phases but not others.

The distinction between cognitive styles and personality traits is far from clear. Some authors call the Myers-Briggs Type Indicator a personality measure (Myers & McCaulley, 1989); whereas, others call the same instrument a cognitive style measure (Carland & Carland, 1990). Perhaps the clearest distinction between per- sonality and cognitive style is provided by Corno and Snow (1986). They explain that cognitive styles are conceptually at the overlap between individual differences in intellectual abilities and personality characteristics. Messick (1984) defines cog- nitive styles as consistent individual differences in organizing information, and processing both information and experience. He described cognitive styles as gen- eralized habits of thought.

The idea that personality and cognitive style variables can help explain individ- ual differences in programming achievement has great intuitive appeal, and previ- ous research has indicated that certain cognitive styles and personality traits are correlated with achievement in computer programming. However, for the most part, cognitive styles and personality traits have failed to consistently explain indi- vidual differences in programming achievement. Even with the cognitive style dimensions that have a relatively large research base, the results vary consider- ably. For example, 13 separate studies (see Table 1) have investigated the correla- tion between programming achievement and field dependence/independence. Although most of the correlations are positive, they vary considerably from no significant correlation to a positive correlation of .8. Research is needed to sort out and interpret these varying results.

In the majority of these studies, computer programming has been measured as a single activity. Computer programming has been described as an activity having separate and distinct phases: problem representation, program design, coding, and debugging. It may be that certain cognitive styles and personality dimensions affect some phases but not others.

The purpose of this article is twofold. First, it provides the reader with a thor- ough review of the empirical literature relating cognitive style and personality to computer programming. Second, a conceptual framework is presented underscor- ing the cognitive styles and personality traits that have the biggest impact on each stage of computer programming. Such a framework could begin to clarify the diverse findings relating cognitive style and personality traits to programming achievement. In addition, the framework provides an agenda for researchers in the field and represents a first step toward a theory linking cognitive style and person- ality to the stages of programming.

Several techniques were used to identify studies to be included in this review. First, computerized indices including ERIC, Educational Index, Dissertation Abstracts, and Psychological Index were searched using keywords such as cognitive style, per- sonality, computer science education, and programming. Later specific searches were conducted on the major styles identified such as field dependence/indepen- dence and computer science education. In addition to the computer ized

Page 3: Cognitive style, personality, and computer programming

Cognitive style 243

Table 1. Empirical Studies Involving Cognitive Styles, Personality, and Programming

Cognitive Styles Personality Traits

Anaiytic/Holistic Bradley (1985) Cheney (1980) Webb (1984) Webb (1985)

Divergent Thinking Cathcart (1990) Clements (1986) Clements & Gullo (1984) Vaidya (1985)

Field Dependence/independence Bradley (1985) Cathcart (1990) Cavaini (1989) Corman (1986) Foreman (1988) Hassell (1982) Mohamed (1985) Stevens (1983) Testa (1973) Vaidya (1985) Webb (1984) Werth (1986) Wilson et al. (1990)

Hemispheric Lateralization Gasen & Morecroft (1990)

I m pulsivity/Reflectivity Alspaugh (1972) Cathcart (1990) Clements (1986) Clements & Guilo (1984) VanMerrienboer (1988)

Active AIspaugh (1972)

Computer Anxiety Chin & Zecker (1985) Nowaczyk (1983)

Dominant Alspaugh (1972)

Introversion/Extroversion Chin & Zecker (1985) Kagan & Esquerra (1984) Kagan & Douthat (1985) Newsted (1975)

Hostility Kagan & Douthat (1985)

Locus of Control Chin & Zecker (1985) Homer & Maddux (1985) Nowaczyk (1983) Wesley et al. (1985) Wilson et al. (1989)

Myers Briggs Personality Type Calaway (1982) Carland & Carland (1990) Corman (1986) Evans & Simkin (1989) Werth (1986) Wipkey & Stevens (1984)

Need For Uniqueness Kagan & Esquerra (1984)

Neuroticism Kagan & Douthat (1985)

Risk Taking Kagan & Esquerra (1984)

Rules and Controls Kagan & Esquerra (1984)

Self-Monitoring of Expressive Behavior Kagan & Douthat (1985)

Social Desirability Alspaugh (1972) Kagan & Douthat (1985) Kagan & Esquerra (1984)

Stable Alspaugh (1972)

Type A Behavior Corman (1986) Kagan & Douthat (1985) Kagan & Esquerra (1984)

Vigorous Alspaugh (1972)

Page 4: Cognitive style, personality, and computer programming

244 Bishop-Clark

searches, manual searches were performed on the last 10 years of some of the most relevant journals including Communications of the ACM, Journal of Research on Computers in Education, Journal of Educational Computing Research, SIGSCE Bulletin, and SIGSCE conference proceedings. Additional articles were identified by searching bibliographies of identified papers. Selection criteria was that the arti- cle must relate cognitive style or personality to computer programming. Three reviews have been published, which give the reader glimpses of the work sur- rounding cognitive style, personality, and computer programming (Kagan, 1988; Pocius, 1991; Sharma, 1986).

The remainder of this article is organized in several sections. It begins by summa- rizing the empirical literature relating cognitive style and personality variables to programming, respectively. The cognitive styles discussed in some detail include: field dependence/independence, analytic/holistic, impulsivity/reflectivity, and diver- gent thinking; the personality traits include: locus of control, introversion/extro- version, and the Myers Briggs Type Indicator dimensions. These variables are discussed because they are the most frequently investigated within the realm of computer programming. While other variables have been studied (see Table 1), they have not been studied with any regularity. Following the review of the empirical studies is a summary of the literature providing the theoretical rationale behind dividing the activity of programming into components. Derived from these two lit- erature bases, a model is proposed for conceptualizing the impact of cognitive styles and personalities on the specific stages of programming. Lastly, while observations and implications of the review are discussed throughout the article, the last section provides some summary comments on the literature base as a whole.

COGNITIVE STYLES

Field Dependence~Independence

As illustrated in Table 1, the most frequently investigated dimension of cognitive style as it relates to computer programming is field dependence/independence. The research of field dependence/independence dates back to the late 1940s (Witken, Moore, Goodenough & Cox, 1977). Similar to most cognitive styles, field indepen- dence and field dependence represent two opposite ends of a continuum. Field inde- pendence describes a tendency to provide structure to a situation that is relatively unstructured. When perceiving information, a field independent person is likely to overcome the organization of the field and restructure it. Field dependence describes an orientation toward the environment. The surrounding field is likely to have a strong impact on the persons perception of an item in the field. Although many dif- ferent measures have been used to measure the construct of field dependence/inde- pendence, the Group Embedded Figures Test (GEFT) and Embedded Figures Test (EFT) are the most common. Thirteen empirical studies examined the relation between field dependence/independence and computer programming (see Table 1). Two studies (Cathcart, 1990; Mohamed, 1985) investigated whether the activity of computer programming caused a person to become more field independent. Cathcart (1990) concludes that experience with LOGO among fifth grade students may cause elementary students to become more field independent. Although Mohamed (1985) did not find a statistically significant difference, the experimental group did have more pronounced increases in field independence than did the control group.

Page 5: Cognitive style, personality, and computer programming

Cognitive style 245

The remaining 11 studies investigated whether field dependence/independence is related to computer programming achievement. Two studies (Vaidya, 1985; Webb, 1984) reported that the level of field dependence/independence did not have a signifi- cant impact on performance. No correlations were reported in these studies. The remainder of the studies did report correlations. Although the correlations vary consid- erably (.08 to .80), aU of the correlations are positive (see Figure 1). That is, in all studies the more field independent students tested, the higher their programming achievement score. The overall average weighted correlation is .45. Cohen (1988) labels an effect size as small if the correlation r = .1, medium if r = .3 and large if r = .5.

The consistency of a positive relationship among different languages, different age groups, and different measures of field dependence/independence clearly reveal that field independence is positively related to achievement in a computer programming classes. It should be noted that issues surrounding the validity of the tests used to measure field dependence/independence are controversial. Some researchers argue that because the GEFT and EFT are timed tests, they are mea- sures of cognitive ability, not cognitive styles (McKenna, 1984).

Analytic/Holistic The analytic/holistic (French, Ekstron, & Price, 1963) construct is similar to field dependence/independence. Analytic problem solvers utilize a structured approach to decision-making and tend to reduce problems to a core of underlying causal relationships. They tend to be very logical in their problem solving. On the other hand, holistic problem solvers emphasize common sense and intuition, and use

Correlations Smallest to Largest

0.9

0.8

0.7

._~ 0,6

0.5 (..)

"6 0.4

E

0.3

0.2

0.1

Hasseil Ca'~aiani Werth Wilson Stevens Foreman Webb Wilson Hassell Bradley Testa

Study

Figure 1. Correlations of field dependence/independence and prog ramming .

Page 6: Cognitive style, personality, and computer programming

246 Bishop-Clark

trial-and-error to adjust their problem solving activities. The Gestault Completion test (French et al., 1963) is most often used to measure this dimension.

The four studies (Bradley, 1985; Cheney, 1980; Webb, 1984, 1985) that correlate analytic/holistic styles to computer programming achievement reveal contradictory results. Both of Webb's studies involved younger children and report that when using the Gestalt Completion test, the tendency toward holistic and analytic processing had little relation to programming achievement scores. Bradley also studied younger chil- dren and found a correlation of .52 between the holistic processing and LOGO posttests. In other words, the more holistic the style the higher the grade. It should be noted, however, that this hypothesis was not predicted a priori. Finally, Cheney stud- ied 35 college BASIC students and found the exact opposite of Bradley. Cheney found a correlation of .82; the higher the analytic score the higher the programming test score. Based on these four studies, it is difficult to come to any conclusions regarding the relationship between analytic/holistic and computer programming. Adding even more confusion to the interpretation is the lack of conceptual clarity regarding just what this construct is measuring. Although some authors (Bradley, 1985; Webb, 1984, 1985) clearly separate the constructs of field dependence/inde- pendence and analytic/holistic by utilizing different measuring instruments, others (Cheney, 1980) use the term field independent to be synonymous with analytic.

Impulsivity/Reflectivity

The cognitive style construct of impulsivity/reflectivity was identified by Kagan in the mid-1960s (Kagan, Rosman, Day, Albert, & Phillips, 1964) and is most often operationalized using the Matching Familiar Figures Test. It refers to the degree to which a subject reflects on different hypotheses in situations when many alterna- tives are available. In a problem solving situation, impulsives are more likely to choose and act upon the first alternative; whereas, reflectives are more likely to spend time considering the effects of their choices. Messer (1976) provides an excellent review of the impulsivity/reflectivity cognitive dimension.

Five studies have been conducted, which investigate the relation between the cog- nitive style of impulsivity/reflectivity and computer programming. Two studies found that the more reflective a student, the higher the programming achievement score (Alspaugh, 1972; VanMerrienboer, 1988). The three studies that investigated whether a programming class would cause a person to become reflective reveal contradictory results. In all three studies, the subjects were grade school students. Programming groups scored significantly higher than the nonprogramming groups on some portion of degree of reflectiveness (Cathcart, 1990; Clements & Gullo, 1984). Both studies concluded that programming experience may increase a student's degree of reflec- tiveness. One of Clements' later studies (1986) found that programming experience did not have a significant effect on degree of reflectiveness with first grade students but did with third grade students. Although the research on this particular style is lim- ited, the studies available suggest that the higher the degree of reflectiveness, the higher the programming achievement score. They also suggest that the degree of reflectiveness may be increased via a programming class.

Divergent Thinking Divergent thinking (Torrance, 1972) refers to the tendency to converge toward or diverge from hypothesis generation. Convergent thinking is thinking that proceeds

Page 7: Cognitive style, personality, and computer programming

Cognitive style 247

toward a single answer. Divergent thinking is thinking that moves outward from the problem in many different directions and is sometimes referred to as creative thinking (Mayer, 1983; Vaidya, 1985). As it relates to cognitive style, divergent thinking describes a preference for one or the other of these modes of thinking. The Torrance Test of Creative Thinking (Torrance, 1972) is used most often to opera- tionalize divergent thinking.

Four studies investigated the relation between divergent thinking and computer programming (Cathcart, 1990; Clements, 1986; Clements & Gullo, 1984; Vaidya, 1985). All four studies involved young children and the LOGO programming lan- guage. LOGO is a programming language for children designed by Seymour Papert (1980). Clements and Gullo (1984) and Clements (1986) found significant differences from pretest to posttest on the overall divergent thinking score in the LOGO programming group. Cathcart (1990) similarly found divergent thinking skills significantly increased for those receiving the LOGO instruction. Vaidya (1985) investigated whether scores for divergent thinking could explain differences among preschool children who were sophisticated LOGO learners (n = 5), children who were confused learners (n = 5) and children who could not learn LOGO (n = 4). Although the first two groups scored higher on the divergent thinking test than the third, the results were not statistically significant due to the small group sizes. Clearly, the research investigating convergence-divergence is limited. Unlike field dependence/independence, analytic/holistic, and impulsivity/reflectivity, all the research in this area has revolved around young children and the changes that occur as a result of experience using the LOGO programming language. Within these constraints the existing studies give limited evidence that experience with LOGO may cause children to become more divergent thinkers.

PERSONALITY TRAITS

Although the literature on cognitive style reveals several constructs that have been studied repeatedly, the empirical base regarding personality and computer pro- gramming is less developed and more scattered. Although Table 1 reveals that a number of personality factors have been studied, the majority are associated with only one or two studies. The three factors that have been studied with some regu- larity are locus of control, introversion/extroversion, and dimensions of the Myers- Briggs Type Indicator. As the table reveals, many other personality variables have been studied, but not with the same frequency as those listed above and therefore yield no conclusive findings applicable to a generalized understanding of program- ming achievement.

Locus of Control

Individuals with a strong internal locus of control (Rotter, 1966) feel they have the ability to influence their world and that their performance is a consequence of their own actions. Those with a strong external locus of control consider their performance as being due to factors outside their control. The Rotter Locus of Control Scale (Rotter, 1966) is the most often used to operationalize the construct. In an extensive review of the literature Findley and Cooper (1983) concluded that an internal locus of control is positively correlated with academic achievement.

Page 8: Cognitive style, personality, and computer programming

248 Bishop-Clark

Six empirical studies have attempted to identify whether locus of control is relat- ed to computer programming performance (Chin & Zecker, 1985; Hornet & Maddux, 1985; Nowaczyk, 1983; Wesley, Krockover, & Hicks, 1985; Wilson, Mundy-Castle, & Sibanda, 1990). Homer and Maddux investigated whether expe- rience with LOGO would cause a change in locus of control among junior high stu- dents. They found no significant differences between the group that received LOGO instruction and the group that did not. When studying 32 college students in an introductory computer science class, Chin and Zecker found that locus of con- trol was a significant predictor of programming success and accounted for 14% of the total variance in their regression model. Nowaczyk found when studying 286 college students that locus of control was not a significant variable in his ability to predict programming success; however, he noted that the majority of the students tested as being internals, and he did not have a sufficiently large range of scores. Wilson, Mundy-Castle, and Cutts (1989) found that for 15 black Zimbabwean females, LOGO scores were negatively related to internal locus of control; for 38 white Zimbabwean females, unrelated; and for 16 black and 36 white Zimbabwean males, positively related to internal locus of control. Unlike previous studies, locus of control was measured using the Intellectual Achievement Responsibility Questionnaire rather than the Rotter Locus of Control instrument. Last, Wesley, Krockover and Hicks reported that internals showed greater knowledge of comput- er hardware, software, programming, applications, and society issues; however, the programming component on which this review is focused is embedded in an over- all measure of computer literacy. The different instruments used, the varying results, and the large difference in sample size prevents one from making any rea- sonable conclusions regarding the relationship between locus of control and com- puter programming.

Introversion~Extroversion

Achievement in mathematics and science has been associated with certain person- ality traits including introversion (Kagan & Douthat, 1985). Extroversion is described as a tendency to be social, lively, talkative, and expressive; introversion describes a person that is quiet, introspective, and reserved (Eysenck, 1958). In the studies relating introversion to success in computer programming, introversion is most commonly measured by the Eysenck Personality Inventory (Eysenck, 1958). Introversion has also been defined using the Myers Briggs Type Indicator (dis- cussed in the following section).

Four empirical studies investigate whether introversion contributes to predicting computer programming achievement (Chin & Zecker, 1985; Kagan & Douthat, 1985; Kagan & Esquerra, 1984; Newsted, 1975). Kagan et al. (1984, 1985) found in her 1984 study that extroversion was negatively correlated with achievement on Fortran exams. However, her 1985 study indicated that ability to master BASIC was unrelated to any of the personality traits assessed - - including introversion. Chin and Zecker (1985) found no significant correlation between introversion and success in computer programming, but their study was limited to 32 college stu- dent volunteers. Newsted (1975) sent a survey to college students and assessed introversion/extroversion via one question. He did not find the dimension to be sig- nificant in predicting success.

In short, three of the four studies did not find introversion related to computer pro- gramming; however, as described above, the studies have several methodological

Page 9: Cognitive style, personality, and computer programming

Cognitive style 249

weaknesses. More research is needed before any conclusions can be made regarding the relationship between introversion/extroversion and computer programming.

Myers-Briggs Type Indicator Dimensions

The Myers-Briggs Type Indicator (MBTI) is an instrument designed to measure four dimensions of an individual 's personality: introversion/extraversion, sensing/intuitive, thinking/feeling, and judging/perceiving (Myers & McCaulley, 1989). The MBTI is based on Jung's (1971) theory of psychological types. Each of the poles represents opposite preferences, and for every pair of items an individual prefers one pole over the other. Introversion/extraversion refers to a person's orien- tation toward the world. Extraversion describes an attitude where attention is drawn out toward objects and people. Introversion describes an attitude where attention is drawn toward the inner world of ideas. The second category (sensing/intuitive) refers to ways in which a person perceives information. A sensing person tends to perceive observable facts through the five senses. An intuitive person perceives information based on the meanings, relationships, and possibilities beyond the infor- mation gathered from the senses. The thinking/feeling dimension relates to ways in which a person makes decisions. Individuals with high scores on the feeling pole make decisions based on their own feelings and the feelings of others. Those on the opposite end base their decisions on objective, impersonal, and logical analysis of a situation. The last dimension refers to a person's orientation toward the outer world. Judgers prefer to work in a linear, orderly manner; whereas, perceptives would rather live a flexible, spontaneous life. The four dimensions (each with two poles) can be combined to identify 16 different personality types.

Six empirical studies investigated the relationship between the MBTI and com- puter programming (Calaway, 1982; Carland & Carland, 1990; Corman, 1986; Evans & Simkin, 1989; Werth, 1986; Whipkey & Stevens, 1984). Carland and Carland (1990) described the personality profile of a business information systems class and the teaching implications of that particular profile. The remaining articles used the scores on the four dimensions of the MBTI as well as a variety of demo- graphic and aptitude measures as independent variables in linear regression models to predict programming success. In both Werth's and Corman's studies, the dimen- sions of the MBTI did not enter their regression equations as being significant variables. Consistent with these findings, Calaway (1982) found no significant dif- ferences between the score on each of the preference indices and the computer apti- tude scale. Evans and Simkin (1989), on the other hand, found a number of the MBTI dimensions to be significant in predicting homework achievement and a variety of test grades in a computer programming course. Sensing, introversion, thinking, judging, and intuition were significant variables in the regression equa- tion with positive coefficients. Feeling was also significant with a negative coeffi- cient. The finding (Evans & Simkin, 1989) that thinkers and judgers achieve higher grades on programming tasks makes intuitive sense. Computer programming is an activity that demands logical impersonal analysis (thinking), which typically in- volves a quite structured methodology (judging).

Although only tangentially related to this review, several researchers attempt to profile the typical computer programmer using the MBTI (Ketler, 1992; Lyons, 1985; Sitton & Chmelir, 1984; Smith, 1989). These studies indicate that a high per- centage of computer programmers and systems analysts are introverted, sensing, thinking, and judging.

Page 10: Cognitive style, personality, and computer programming

250 Bishop-Clark

Other Personality Variables

A variety of other personality measures have been studied as they relate to comput- er programming achievement. The majority of them have been included as a part of either Alspaugh's (1972) or Kagan's (Kagan & Douthat, 1985; Kagan & Esquerra, 1984) studies. These researchers investigated whether a variety of personality vari- ables correlated computer programming achievement. Although no generalizations can be made, the studies are listed in order of personality type in Table 1 for the readers convenience.

STAGES OF PROGRAMMING

Although almost all of the studies reviewed in the previous section treated comput- er programming as a single activity, computer programming has been described as an activity involving distinct phases, each of which requires different abilities (Brooks, 1977; Shneiderman, 1980). In Pennington's (1982) review of the theories of expert programming skills, she concludes that although the details of the theo- ries differ, some common descriptions of programming subtasks can be formulated. She and other writers (Curtis, 1986; Pea & Kurland, 1983) have organized the the- ories and the empirical studies of programming into four subtasks: (1) understand- ing the problem, (2) designing, (3) coding, and (4) comprehending and debugging. Researchers have argued that existing and future empirical studies need to be inter- preted in terms of the component skills (Cavaiani, 1989; Pea & Kurland, 1983; Pennington, 1982).

The theoretical bases for dividing problem solving into distinct stages has been developed by several problem solving theorists (Heller & Greeno, 1979; Newell & Simon, 1972; Polya, 1957). They have developed theories that define a set of cogni- tive subtasks for each stage. Ben Shneiderman (1980) describes these subtasks with regard to computer programming as problem representation, planning and design, coding, and debugging. Shneiderman's subtasks directly correspond to Polya's (1957) four stages of problem solving: understanding the problem, devising a plan, carrying out the plan, and checking the result. These four subtasks involve very dif- ferent skills and quite varied activities. For instance, the skills and activities involved in designing a computer program are quite different from the skills and activities involved in debugging code. In fact, each of these four subtasks has been studied independently and in several cases, the subtask has been further divided (Pea & Kurland, 1983). The sections that follow correspond to Schneiderman's sub- tasks: problem representation, planning and design, coding, and debugging.

Problem Representation

It is generally agreed that in solving a problem, the problem solver begins by setting up some form of "problem representation" in working memory. In an introductory programming classroom environment, the specifications of a program are usually clearly outlined. In a nonclassroom environment, understanding or representing the problem requires programmers to interact with others in such a way that they come to understand the problem and the requirements of a particular program or system. Empirical research on problem representation indicates that novices tend to focus on surface aspects of the problem and that they have few predefined mental schemas

Page 11: Cognitive style, personality, and computer programming

Cognitive style 251

they can retrieve (Adelson, 1984; Jeffries, Turner, Poison, & Atwood, 1981; Koubek, Salvendy, Dunsmore, & Lebold, 1989; McKeithen, Reitman, Reuter, & Hirtle, 1985).

Design

Design is an activity recognized by both software practitioners and cognitive psychologists. In this phase, planning and design strategies are combined with programming knowledge to transform a mental representation into a logical solu- tion. Scholtz and Wiedenbeck (1990) have found that even experienced program- mers have their greatest difficulties and spend the largest amount of their time in design activities.

Structured programming is a technique of writing programs that encourages organization, modularity, documentation, and structure. For years, the software community has advocated spending more time in the design phase. In fact, Brooks (1982) suggests that one-third of all the time a program team spends on the soft- ware project should be spent on design. The rationale is that the more time spent in design, the less time needed for modification and maintenance. Tools such as struc- ture charts, pseudocode, Nasi-Shneiderman charts, and even CASE tools are used at the elementary level to assist beginning students in the design phase.

Design (sometimes referred to as planning) has been the topic of both theoretical and empirical work. The theories of planning offered by both Jeffries et al. (1981) and Miller and Goldstein (1977) suggest planning is an iterative, stepwise refine- ment process that proceeds mostly top-down, breadth first. Shneiderman and Mayer (1979) also suggest that the general plan for writing a program proceeds from very general solutions to more specific solutions to very specific solutions. Shneiderman explains that this stage requires "detailed knowledge of the problem domain, experience in the application area and creative insight" (1980, p. 42). Scholtz and Wiedenbeck (1992) studied the protocols of experienced programmers learning a new language. They present a model of planning in a new programming language, which is mostly a depth-first process that also uses a top-down strategy. They found the experienced programmers draw extensively on plans that have been proven successful in other languages.

Pennington (1982), in her review of the literature, summarizes three primary activities in the design phase of computer programming: identifying the modules, specifying the interrelationship among modules (i.e., identifying control struc- tures), and identifying the relevant variables and data structures. Beginning pro- grammers generally begin by first learning to identify relevant variables and then learning to identify the appropriate control structures. As the solutions to problems become larger, it becomes important to learn to identify modules and interactions among modules.

Coding

Pea and Kurland (1983) outline three general categories of cognitive demands for generating program code: ability to engage in hypothetical symbolic execution of code, ability to learn the coding templates, and ability to keep the goal at hand. Coding a program involves translating a refined version of the program design into programming code. The process of coding requires a detailed understanding of the syntax of a language and requires an attention to the specifics of the language such

Page 12: Cognitive style, personality, and computer programming

252 Bishop-Clark

as spacing. The coding phase is considered a much simpler set of activities than program design. According to Brooks (1982), only one-sixth of the time allocated to a software project should involve the actual writing of code.

Syntactic and Semantic Knowledge

The separation of the phases of design and coding overlaps with the distinction between semantic and syntactic knowledge. In Shneiderman's (Shneiderman, 1980; Shneiderman & Mayer, 1979) model of programmer behavior, he describes two kinds of knowledge that programmers develop: semantic knowledge and syntactic knowledge. Semantic knowledge has to do with the general concepts important to programming but are independent of any specific programming lan- guage. It includes low level concepts such as what an assignment statement does, intermediate notions such as summing the contents of an array, and high level concepts such as searches and sorts. Programmers can design procedural algo- rithms with little regard to the language in which the algorithm will eventually be implemented.

Syntactic knowledge, on the other hand, is precise, detailed, and arbitrary knowledge about how the constructs in a particular language must be implemented. For example, in BASIC, syntactic knowledge includes keywords (such as LET, INPUT, and PRINT), rules for creating variable names, symbols (such as * and/) and punctuation marks (such as commas, blank spaces, and colons). In order for a program to work, semantic solutions must be converted to syntactic solutions.

There is a direct link between the design phase of computer programming and semantic knowledge. In particular, semantic knowledge is the domain knowledge necessary to accomplish the task of design. Similarly, syntactic knowledge is the domain knowledge necessary to code a solution. Syntactic knowledge is much less important to the student designing a solution, but critical when coding a solution. Likewise, semantic knowledge is critical to the student designing but less relevant to the student attempting to show exact code.

Debugging

The last stage, debugging, is sometimes described as both comprehending and debugging a program. It involves understanding code and finding and correcting errors in existing programs. It requires persistence and an incredible attention to detail. Debugging can be a frustrating and emotionally challenging activity. Consistent with the distinction in the previous paragraph, Shneiderman (1980) out- lines two types of errors that occur during the debugging stage: syntactic and semantic. Syntactic errors are errors caused by an incorrect use of the syntax of the language (or errors that occurred during the coding stage). They are easier to iden- tify and fix. Semantic errors are errors in design or composition. These are more troublesome because they may be subtle and often may require programmers to restructure their thinking. Debugging as an activity has been highly investigated both within the domain of programming (Cavaiani, 1989; Nanja & Cook, 1987; Pennington, 1987) and outside the domain of programming.

Computer programming is a complex task. Theories exist that identify a number of distinct subtasks, each of which is different in task and different in cognitive demands. Although empirical evidence comparing the components is rare, some evidence suggests that ability in one subtask of computer programming is not relat-

Page 13: Cognitive style, personality, and computer programming

Cognitive style 253

ed to ability in another subtask (Collins & White, 1984), and that the variables influencing one component of programming are not necessarily the same variables influencing another component (Ions, 1982).

PROPOSED RESEARCH MODEL: COMBINING COGNITIVE STYLE, PERSONALITY, AND STAGES OF PROGRAMMING

Although some of the studies investigating cognitive style, personality, and its relation to computer programming measure achievement via the grade on pro- gramming assignments, the majority measured achievement by class grade (e.g., a summary of program grades, exam grades, and quiz grades). This measure makes results difficult to interpret because exam grades may be a better assessment of a person's ability to take exams than it is of his/her ability to write a program. The majority of the studies that look specifically at computer programming generally treat computer programming as a single activity. As outlined in the previous sec- tion, computer programming can be viewed as an activity involving several dis- tinct stages.

Research is needed to investigate whether cognitive styles are related to the stages of programming differently. Figure 2 proposes a model for conceptualizing the points at which a particular cognitive style or personality trait may have its biggest impact and provides researchers with an agenda for future research in this area. Figure 2 shows the four stages of programming in a circular form to empha- size the iterative nature of a programmer's work. A particular cognitive style or personality variable may influence each of the four stages of programming to some degree; however, the tasks and abilities required for each subtask differ. The theory behind each of the cognitive styles and personality variables suggests that they are likely to impact some stages more than others. The personality and cognitive style variables that appear most relevant to each stage are shown on the diagram and the rationale for each is described below. The model is based on theory and not empiri- cal work. In other words, the model was largely developed by overlapping the the- ory behind each cognitive style construct and the theory separating programming into stages.

Problem Representation

The dimensions that appear most relevant to the problem representation phase of computer programming are the personality factor of introversion/extroversion and the cognitive style of field dependence/independence. Clearly, the personality trait of introversion/extroversion will affect each of the four stages to some degree. However, since this first phase requires more human interaction with users and clients, it seems likely that introversion would especially affect the first phase. The impact of introversion may be more apparent in real world programming exercises than in student programming exercises. With student programs, program specifica- tions are usually clearly specified by an instructor and are relatively simple. Real world programming problems are typically ill-defined, and the programmer is often required to create his or her own specifications. Introverts are more likely to attempt to understand a situation with books and internal thoughts rather than dis- cussing the problem with clients or peers. It may be that introverts have a difficult time achieving a problem representation consistent with the clients due to their

Page 14: Cognitive style, personality, and computer programming

254 Bishop-Clark

Introversion/ Extroversion

)1 Locus of Control

P repbrleesmntation ~ ~ I Design I

l m 1 Dependence/Independence

Reflective ~ Impulsive

° °"oo'oo I I I I

Thinking Feeling

Figure 2. Styles and personalities related to the stages of computer programming.

internal orientation. As computer programming is a field that is dominated by introverts (Myers & McCaulley, 1989), this may partially explain why computer systems are notorious for not meeting customer specifications.

Because field dependence/independence is a construct that is focused on how one perceives information, Figure 2 suggests that field dependence/independence is a second factor that may especially influence problem representat ion. Empirical studies (Cavaini, 1989; Foreman, 1988; Stevens, 1983) indicate that students who test as field independent consistently earn higher grades in comput- er programming classes than their field dependent counterparts. When perceiving information, a field independent person is better at identifying and isolating rele- vant information from a complex situation. They are described as people who impose structure on a seemingly unstructured situation. The way in which one perceives information will directly relate to one's representation of the problem. As the cognitive styles of field dependence/independence are focused on perceiv- ing information, one would expect them to have a strong impact on the represen- tation phase.

Planning and Design

Not only is field dependence/independence expected to have a strong effect on problem representation, it is also expected to be especially relevant to planning and design. Designing the solution for a computer program requires students to identify relevant parts of a problem and structure the parts in ways that will solve the pro- gram at hand. Designing a computer program requires students to use the "restruc- turing skills" like those described in field independence. Cognitive style theory

Page 15: Cognitive style, personality, and computer programming

Cognitive style 255

would suggest that field independent students would be more successful in design- ing problem solutions than their field dependent counterparts.

The degree of reflectiveness in a person's cognitive style may also be strongly related to the planning and design phase of computer programming. Research indi- cates that one of the characteristics of novice programmers is they spend little time in the planning and design phase (Webb, Ender, & Lewis, 1986). Instead, novices jump immediately into coding, whereas experts spend more time in the planning and design phase. The student with a reflective orientation is more likely to consid- er the effects of a particular design before jumping into coding. Although this has been traditionally explained by the novice/expert difference, there may be a deeper explanation suggesting that as programmers become more experienced, their cog- nitive styles become more reflective, hence expert programmers spend more time in the planning and design phase. Alternatively, reflective types may be more likely to continue programming and, therefore, become experts. Although the former explanation is counter to the theory of cognitive style (cognitive styles are consis- tent), recall that several researchers (Cathcart, 1990; Clements & Gullo, 1984) found that experience in programming did increase reflectivity.

Coding

One of the problems novice programmers experience in the coding stage of pro- gramming is that they sometimes give meaning to data or variable names that should be approached as meaningless. For instance, if a variable is named mini- mum, the student will assume the variable will automatically take on the minimum value. The thinking/feeling dimension of the MBTI describes the ways in which one makes decisions. The problem of interpreting and giving meaning to variables may be especially a problem for feeling type students rather than detached, analyti- cal, thinking type students. It may be that the coding stage is more problematic with feeling types.

Debugging

Debugging is an activity that requires a student to choose from an enormous num- ber of possibilities, from what specific changes to make in a program to a general- ized strategy regarding correcting errors. A student's tendency toward a reflective style and an internal locus of control may have the largest impact at the debugging stage of developing software.

Teachers of introductory programming students witness firsthand that some stu- dents appear to debug programs without any consideration of effects. In fact, it appears that some students' debugging strategies are random and haphazard. Other students, however, approach debugging in a methodological and systematic manner considering effects of changes before actually making the change. As in the plan- ning and design phase, the reflective programmer is more likely to consider the effects of a change before actually making the change. Theory would suggest the reflective programmer would be more successful in the debugging stage of com- puter programming.

Chin and Zecker (1985) suggest that locus of control may have the largest impact in the debugging phase of writing computer programs. The debugging phase is often the most frustrating and requires a great deal of persistence. Chin and Zecker report- ed that Ducette and Wolk (1972) found that internals are willing to persist at a task

Page 16: Cognitive style, personality, and computer programming

256 Bishop-Clark

and are more willing to delay immediate rewards. Given that debugging is a task requiring much persistence and rewards are often delayed, it follows that those with a more internal locus of control may be more successful. Internals have persistence, and they believe that the proper working of a program is a function of their own activity. Externals, on the other hand, may have more of a sense that the program is not working because of a faulty machine rather than their own actions.

DISCUSSION

There are several consistent themes that have emerged through this review. First, this review illustrates that the research in the area has followed two directions. The first and less researched direction is whether the activity of computer programming influences cognitive style or personality. There is some indication that certain cog- nitive styles may be influenced by the activity of computer programming. In partic- ular, several studies suggest that programming experience may cause students to become more field independent, more reflective, and more divergent thinkers.

The more researched area is whether cognitive style is correlated with program- ming success or if it can be used as a factor to predict achievement. The construct of field independence is the most researched and a number of independent studies consistently reveal a positive relationship between degree of field independence and achievement in computer programming classes. In addition, there is consistent evidence that high reflectivity is positively related to programming achievement. Finally, there is limited evidence indicating locus of control, introversion, and cer- tain factors of the MBTI are related to programming achievement. As already noted, there are not enough empirical studies to reach conclusions regarding these three factors.

There are a number of themes that emerge in the process of evaluating and reviewing the empirical literature:

First, the research investigating changes in cognitive styles does not have a large empirical base. Indeed, the most researched dimension regarding changes in style (impulsivity/reflectivity) includes only three studies. All of the studies regarding changes in cognitive style are also limited to classes that have a duration of between 10 and 16 weeks. A longitudinal study of programming students as they enter and then exit a university or technical school may be fruitful. Similarly, a longitudinal study of programmers as they move from novices to experts may provide the most compelling evidence on the likelihood and extent of changes in cognitive style.

Second, few of the studies predicting programming achievement use covariates in their computations. It is likely that confounding variables exist in the quantita- tive studies such as overall achievement and GPA. For example, it could be that field independent students have a higher GPA in general and field independence contributes nothing beyond GPA in identifying success in a programming class.

Third, almost all of the literature relating cognitive style and personality variables is quantitative in nature. While this kind of research is appropriate for questions of prediction and change, it gives little insight into the question of how a particular cog- nitive style or personality variable affects the problem solving process of computer programming. Case studies and protocol analysis of two programmers with opposite personalities or opposite cognitive styles may provide a different kind of insight on the relationship between cognitive styles and personality to computer programming.

Page 17: Cognitive style, personality, and computer programming

Cognitive style 257

Fourth, all of the studies involve classroom settings. Although the classrooms range from preschool to upper level university classes, none of the studies investi- gate professional programmers in a job setting.

Fifth, all of the studies involve traditional (procedural) programming languages such as BASIC, Fortran, COBOL, Pascal, and LOGO. There are no studies involv- ing other types of computer programming languages such as Lisp or Prolog. In addition, no studies involve fourth generation languages or object-oriented lan- guages. Given the growing interest in the object-oriented paradigm, research is needed to see if the same set of cognitive styles correlate with success in object- oriented programming.

Sixth, while the empirical literature suggests that several cognitive styles and personality traits may be related to programming success, it does not suggest at what stage or how. The author presents a framework that may help evaluate at which stage a particular style or personality has its biggest impact. Research is needed, which either isolates one particular stage (such as debugging) or compares achievement at the various stages. Protocol analyses of students with opposite per- sonalities or opposite cognitive styles may be quite fruitful in assessing the impact in more detail.

CONCLUSION

In summary, the work relating cognitive styles and personality traits to comput- er programming has been both scattered and difficult to interpret. It may be that the relation between cognitive styles and personality with computer program- ming is too complex to investigate at a high level. For instance, it may be that certain cognitive style dimensions such as introversion/extroversion and field dependence/independence have a big impact on the first stage of programming, problem representation, but not others. Measuring achievement as an overall programming grade or as a class grade would obscure any observable relation- ship. Studying the impact of cognitive style and personality variables on the specific stages of computer programming may help untangle some of the contra- dictory results.

A framework is presented that suggests the cognitive styles and personality traits having the biggest impact on each of the four stages of programming. Such a frame- work provides an agenda for researchers in the field and represents a first step toward a theory linking cognitive style and personality traits to the stages of programming.

REFERENCES

Adelson, B. (1984). When novices surpass experts: The difficulty of a task may increase with exper- tise. Journal of Experimental Psychology: Learning, Memory, and Cognition, 10, 422-433.

Alspaugh, C. (1972). Identification of some components of computer programming aptitude. Journal of Research in Mathematics Education, 3(2), 89-98.

Bradley, C. (1985). The relationship between students' information processing styles and LOGO pro- gramming. Journal of Educational Computing Research, 1, 427-433.

Brooks, R. (1977). Towards a theory of the cognitive processes in computer programming. International Journal of Man-Machine Studies, 9, 737-751.

Brooks, R. (1980). Studying programmer behaviors experimentally: The problems of proper method- ology. Communications of the ACM, 23, 207-213.

Page 18: Cognitive style, personality, and computer programming

258 Bishop-Clark

Brooks, R. (1982, March). A theoretical analysis of the role of documentation in the comprehension of computer programs. Proceedings of the Conference on Human Factors in Computer Systems. Washington, DC: US Department Of Commerce.

Calaway, F. W. (1982). An exploration of computer aptitude (Doctoral dissertation, Memphis State University, 1982). Dissertation Abstracts International, 43, 2280A.

Carland, J. A. & Carland, J. W. (1990). Cognitive styles and the education of computer information systems students. Journal of Research on Computing in Education, 23(1), 115-126.

Cathcart, W. (1990). Effects of LOGO instruction on cognitive style. Journal of Educational Computing Research, 6, 231-242.

Cavaiani, T. P. (1989). Cognitive styles and diagnostic skills of student programmers. Journal of Research on Computing in Education, 21, 411-420.

Cheney, P. (1980). Cognitive style and student programming ability: An investigation. AEDS Journal, 13, 285-291.

Chin, J., & Zecker, S. (1985, March). Personality and cognitive factors influencing computer pro- gramming performance. Paper presented at the Annual Meeting of Eastern Psychological Association, Boston, MA. (ERIC Document Reproduction Service No. ED 261666).

Clements, D. (1986). Effects of LOGO and CAI environments on cognition and creativity. Journal of Educational Psychology, 78, 309-318.

Clements, D., & Gullo, D. (1984). Effects of computer programming on young children's cognition. Journal of Educational Psychology, 76, 1051-1058.

Collins, R. W., & White, K. B. An investigation of componential relationships in programming. AEDS Journal, 18, 123-129.

Cohen, J. (1988). Statisticalpower analysis for the behavioral sciences (2nd Ed.). Hillsdale, NJ: Erlbaum. Cooper, H. (1989). Integrating research: A guide for literature reviews. Newbury Park, CA: Sage

Publications, Inc. Corman, L. (1986). Cognitive style, personality type, and learning ability as factors in predicting the

success of the beginning programming student. SIGSCE Bulletin, 18(4), 80-89. Corno, L., & Snow, R. (1986). Adapting teaching to individual differences among learners. In

M. Wittock (Ed.), Handbook of research on teaching. New York: Macmillan. Curtis, B. (1986). Five paradigms in the psychology of programming. In M. Helander (Ed.),

Handbook of human-computer interaction (pp. 87-103). North-Holland: Elsevier. Ducette, J., & Wolk, S. (1972). Locus of control and extreme behavior. Journal of Consulting and

Clinical Psychology, 39, 253-258. Egan, D. E. (1988). Individual differences in human computer interaction. In M. Helander (Ed.),

Handbook of human-computer interaction (pp. 543-568). North-Holland: Elsevier. Evans, G., & Simkin, M. (1989). What best predicts computer proficiency. Communications of the

ACM, 32, 1322-1327. Eysenck, H. (1958). A short questionnaire for the measurement of two dimensions of personality.

Journal of Applied Psychology, 42, 14-17. Findley M. J., & Cooper, H. M. (1983). Locus of control and academic achievement: A literature

review. Journal of Personality and Social Psychology, 44, 419-427. French, J. W., Ekstron, R., & Price, L. (1963). Kit of reference tests for cognitive factors. Princeton,

NJ: Educational Testing Service. Foreman, K. (1988, January). Cognitive style, cognitive ability and acquisition of initial program-

ming competence. Paper presented at the Annual Meeting of the Association for Educational Communications and Technology, New Orleans, LA. (ERIC Document Reproduction Service No. ED 295 638).

Heller, J., & Greeno, J. (1979). Information processing analyses of mathematical problem solving. In R. W. Tyler, & S. H. White (Eds.), Testing, Teaching, and Learning. Washington, DC: US Department of Health, Education, and Welfare.

Homer, C., & Maddux, C. (1985). The effect of Logo on attributions toward success. Computers in the Schools, 2(3), 45-54.

Ions, D. (1982). Cognitive correlates of programming tasks in novice programmers. Proceedings of the Human Factors in Computer Systems (pp. 219-222). New York, NY: ACM.

Jeffries, R., Turner, A., Poison, P., & Atwood, M. (1981). The processes involved in designing soft- ware. In J. Anderson (Ed.), Cognitive skills and their acquisition (pp. 497-518). Hillsdale, NJ: Lawrence Erlbaum Associates.

Jung, C. G. (1971). Psychological types (H. G. Baynes, translation revised by R. E C. Hull). Volume 6 of the collected works of C. G. Jung. Princeton, N J: Princeton University Press. (Original work published in 1921).

Page 19: Cognitive style, personality, and computer programming

Cognitive style 259

Kagan, D. (1988). Learning how to program or use computers: A review of six applied studies. Educational Technology, 28(3), 49-51.

Kagan, D., & Douthat, J. (1985). Personality and learning fortran. International Journal of Man- Machine Studies, 22, 395-402.

Kagan, D., & Esquerra, R. (1984). Personality and learning BASIC. Journal of Instructional Psychology, U, 10-16.

Kagan, J., Rosman, B., Day, D., Albert, J., & Phillips, W. (1964). Information processing in the child: Significance of analytic and reflective attitudes. Psychological Monographs, 78 (1, Serial No. 578).

Ketler, K. (1992). Recruiting fourth-generation programmers. Information Systems Management, 9(64), 64-67.

Koubek, R. J., Salvendy, G., Dunsmore, H. E., & Lebold, W. K. (1989). Cognitive issues in the pro- cess of software development: Review and reappraisal. International Journal of Man-Machine Studies, 30, 171-191.

Lyons, M. (1985). The DPpsyche. Datamation, 31, 103-110. Mayer, R. (1983). Thinking, problem solving, cognition. New York: W, H. Freeman and Company. McKenna, F. P. (1984). Measures of field dependence: Cognitive style of cognitive ability. Journal of

Personality and Social Psychology, 47, 593-603. McKeithen, K. B., Reitman, J. S., Reuter, H. H., & Hirtle, S. C. (1985). Knowledge organization and

skill differences in computer programmers. Cognitive Psychology, 17, 26-85. Messer, S. (1976). Reflection impulsivity: A review. Psychological Bulletin, 83, 1026-1052. Messick, S. (1984). The nature of cognitive styles: Problems and promise in educational practice.

Educational Psychologist, 19(2), 59-74. Miller, M., & Goldstein, I. (1977, August). Structured planning and debugging. In Proceedings of the

Fifth International Joint Conference on Artificial Intelligence. Cambridge, MA: Carnegie-Mellon University.

Mohamed, M. (1985). The effects of learning Logo computer language upon the higher cognitive pro- cesses and the analytic/global cognitive styles of elementary school students. (Doctoral Dissertation, University of Pittsburg). Dissertation Abstracts International.

Myers, I. B., & McCaulley, M. (1989). Manual: A guide to development and use of the Myers-Briggs Type Indicator. Palo Alto, CA: Consulting Psychologists Press.

Nanja, M., & Cook, R. C. (1987). An analysis of the online debugging process. In G. Olson, S. Sheppard, & E. Soloway (Eds.), Second Workshop of Empirical Studies of Programmers (pp. 172-184). Norwood, NJ: Ablex.

Newell, A., & Simon, H. (1972). Human problem solving. Englewood Cliffs, NJ: Prentice-Hall. Newsted, P. (1975). Grade and ability predictions in an introductory programming course.

Association of Computing Machinery SIGSCE Bulletin, 7, 87-91. Nowaczyk, R. (1983, March). Cognitive skills needed in computer programming. Paper presented at

the Southeastern Psychological Association Meeting, Atlanta, GA. (ERIC Document Reproduction Service No. ED 236466).

Papert, S. (1980). Mindstorms: Children, computers and powerful ideas. New York: Basic Books, Inc. Pea, R., & Kurland, D. (1983). On the cognitive prerequisites of learning computer programming

(Tech. Rep. No. 18). New York: Bank Street College of Education. (Eric Document Reproduction Service No. ED 249 931).

Pennington, N. (1982). Cognitive components of expertise in computer programming: A review of the literature (Tech. Rep. No. 46). Ann Arbor, MI: University of Michigan Center for Cognitive Science.

Pennington, N. (1987). Comprehension strategies in programming. In G. Olson, S. Sheppard, & E. Soloway (Eds.), Second Workshop of Empirical Studies of Programmers (pp. 100-113). Norwood, NJ: Ablex.

Pocius, K. (1991). Personality factors in human computer interaction: A review of the literature. Computers in Human Behavior, 7, 103-135.

Polya, G. (1957). How to solve it. Garden City, NY: Princeton University Press. Rotter, J. B. (1966). Generalized expectancies for intended versus external control of reinforcement.

Psychological Monographs: General and Applied, 80(1), 1-28. Scholtz, J., & Wiedenbeck, S. (1990). Learning second and subsequent programming languages:

A problem of transfer. International Journal on Human-Computer Interaction, 2, 51-71. Scholtz, J., & Wiedenbeck, S. (1992). The role of planning in learning a new programming language.

International Journal of Man-Machine Studies, 37, 191-214.

Page 20: Cognitive style, personality, and computer programming

260 Bishop-Clark

Sharma, S. (1986). Learners' cognitive styles and psychological types and intervening variables influ- encing performance in computer science courses. Journal of Educational Technology Systems, 15(4), 391-399.

Shneiderman, B., & Mayer, R. (1979). Syntactic/semantic interactions in programmer behavior: A model and some experimental results. International Journal of Computer and Information Sciences, 8, 219-238.

Shneiderman, D. (1980). Software psychology: Human factors in computer and information systems. Cambridge, MA: Winthrop Publishers, Inc.

Sitton, S., & Chmelir, G. (1984). The intuitive computer programmer. Datamation, 30, 131-141. Smith, D. (1989). The personality of the systems analyst: An investigation. Computer Personnel, 30,

12-14. Stevens, D. (1983). Cognitive processes and success of students in instructional computer courses.

AEDS Journal, 16(4), 228-233. Torrance, E. P. (1972). Torrance tests of creative thinking: Figural test. Lexington, MA: Personnel

Press. Vaidya, S. (1985). Individual differences among young children in LOGO environments. Computers

and Education, 9(4), 221-226. VanMerrienboer, J. (1988). Relationship between cognitive learning style and achievement in an

introductory computer programming course. Journal of Research on Computing in Education, 29, 181-185.

Webb, N. (1984). Microcomputer learning in small groups: Cognitive requirements and group pro- cesses. Journal of Educational Psychology, 76, 1076-1088.

Webb, N. (1985). Cognitive requirements of learning computer programming in group and individual settings. AEDS Journal, 18(3), 183-193.

Webb, N., Ender, P., & Lewis, S. (1986). Problem solving strategies and group learning computer pro- gramming. American Educational Research Journal, 23, 243-261.

Werth, L. (1986). Predicting student performance in a beginning computer science class. ACM- SIGSCE Bulletin, 18, 138-142.

Wesley, B. E., Krockover, G. H., & Hicks, C. R. (1985). Locus of control and acquisition of computer literacy. Journal of Computer-Based Instruction, 12, 12-16.

Whipkey, K. L., & Stephens, J. T. (1984). Identifying predictors of programming skill. ACM-SIGCSE Bulletin, 16, 36-42.

Wilson, D., Mundy-Castle, A., & Sibanda, P. (1990). Field differentiation and LOGO performance among Zimbabwean schoolgirls. Journal of Social Psychology, 130(2), 277-279.

Wilson, D., Mundy-Castle, A., & Cutts, J. (1989). Academic locus of control and LOGO performance among Black and White Zimbabwean girls and boys. Journal of Social Psychology, 129, 565-567.

Witken, H., Moore, C., Goodenough, D., & Cox, P. (1977). Field-dependent and field-independent cognitive styles and their educational implications. Review of Educational Research, 47(10), 1-64.