ISTE Home
About ISTE
Advocacy
Educator Resources
Membership
Affiliates
All-Inclusives
Awards and Recognition
ISTE 100
Join or Renew
Member Campaigns
Member Central
Member Networking
My Profile
Podcasts
Special Interest Groups
SIG Newsletter
Join a SIG
SIG1to1 (1 to 1 Computing)
SIGAdmin (Administrators)
SIGCT (Computing Teachers)
Join SIGCT
SIGCT Officers
Journal for Computing Teachers (JCT)
JCSE Online - Journal of Computer Science Education
Past Issues
2005-2006
2004-2005
2003-2004
2002-2003
2001-2002
April 2002
February 2002
November 2001
October 2001
Submission Guidelines
SIGDE (Digital Equity)
SIGHC (Handheld Computing)
SIGILT (Innovative Learning Technologies)
SIGIVC (Interactive Video Conferencing)
SIGMS (Media Specialists)
SETSIG (Special Education Technology)
SIGTC (Technology Coordinators)
SIGTE (Teacher Educators)
SIGTel (Telelearning)
SIG Council
Volunteer
NECC
NETS
Career Center
News & Events
Professional Development
Publications
Research
Store

Printer Friendly

High School Computer Science Education: A Five-State Study

Chris Stephenson
University of Waterloo

Abstract | Introduction | Methodology | Results | Conclusions | References | Acknowledgements | Contributor | Appendix A: Survey of Resources for Teaching Computer Programming

Abstract
For many years, there has been considerable debate over the place of computer science education in the high school curriculum. Despite increasing industrial demands for highly skilled technology workers, figures released by the College Board indicate that fewer students are actually taking programming courses in high school. This article reports on a survey of more than 2,500 schools in five U.S. states. The results include information on teaching responsibilities, hardware use and purchase criteria, programming language use and purchase criteria, and teaching resource and skills upgrading preferences. This survey was supported by funding from IBM.

Though numerous research efforts have provided a body of information about teaching computer science at the college/university level, far less research has been conducted on computer science in high schools. This lack of information, in combination with no commonly applied curriculum, has resulted in many schools making important decisions about course content and instructional tools (hardware and software) in isolation. This general lack of information further complicates the efforts of colleges and universities to plan course offerings to meet the needs of incoming students.

Introduction

This survey was instituted as a means of gathering data on the current state of hardware and software use in high school computer science programs. The goal was to provide detailed and reliable information relating specifically to computer science education (as opposed to information concerning the implementation of computers across the curriculum). It was intended to fill in some of the information gaps about high school computer science. In particular, my fellow researchers and I were interested in the following:

  • teaching responsibilities,
  • hardware being used and the selection criteria,
  • grades at which computer science is offered,
  • programming languages being used and the selection criteria,
  • how teachers rank various instructional resources, and
  • how teachers rank opportunities for their own skill upgrading.

It was our hope that by collecting and disseminating this data from a number of states, we could create a snapshot that might help educators at all levels better understand the current state of high school computer science. Before examining the results of the survey, however, it might be helpful to briefly examine some of the issues that affect high school computer science.

Computers in Schools

Between 1984 and 1994, U.S. schools spent nearly $500 million to add between 300,000 and 400,000 computers to their inventory. The total number of computers in high schools increased by 57%, so that by 1994, the typical high school had 54 (median) computers (Becker, 1994). According to Coley, Cradler, and Engel (1997), by 1997, 98% of all U.S. schools had computers and the average student-to-computer ratio was 10:1. At the state level, this ratio differed greatly, from approximately 6:1 in Florida, Wyoming, Alaska, and North Dakota to 16:1 in Louisiana. The reported student-to-computer ratio in the states that were the subject of this study were as follows:

California: 2:1
New Jersey: 12:1
New Hampshire: 6:1
Massachusetts: 14:1
Washington: 2:1

Within each state, however, there are also differences from school to school. Students attending poor and minority high schools are reported to have less access to all types of technology than students attending other schools (Coley et al., 1997).

Computer Science in the Curriculum

The increasing presence of computers in education has generated a large body of research, most of which centers on the use of computers across the curriculum. The lack of research relating to high school computer science may be explained in part by the fact that computer science is not generally considered part of the core curriculum of high school education (Merritt, 1995). Figures released by the College Board in 1996, however, indicate that 24% of college-bound students had taken at least one computer programming course in high school (Commission on Technology, Gender, and Teacher Education, 2000). It also reported an overall decline in the number of college-bound students taking computer programming courses. Percentages of students taking computer programming courses in previous years were as follows:

1987: 45
1990: 40
1993: 30

These results are supported by Coley et al. (1997), who report that in 1997, only 29% of 17-year-old U.S. students had taken at least one programming course.

Many scientists and educators argue, however, that knowledge of the fundamental concepts of computer science is essential for understanding the technology that increasingly facilitates the business, governmental, and personal interactions our society. As Merritt (1995) notes:

The discipline of computer science has permeated our culture in much the same way as, for example, nuclear physics (atoms and molecules) has or as genetics (DNA, chromosomes and genes) has. Atoms, molecules, genes and chromosomes are now part of the K–12 curriculum. Similarly, I maintain that computer science (not just computer technology) needs to be part of K–12 education. (p. 483)

Support for this argument is provided by Proulx (1995) who identifies the core computer science concepts that should be part of the high school curriculum. These concepts include:

  • algorithms;
  • programming languages;
  • computer architecture;
  • operating systems and user support;
  • social, ethical, and professional context; and
  • applications.

Historically, resistance to high school computer science among college/university educators is based on the belief that it was not being taught "properly" and so would be better left until college. Taylor and Mountfield (1991) addressed this opinion directly and concluded that the research did not support the claim by university professors that high school computer science was detrimental to student performance at the college/university level. The researchers concluded, however, that the methodology taught contributed more than the course content to success in college.

Teacher Preparation

Concerns about the way computer science is taught in high schools may also be connected to the larger issue of teacher preparation and professional development. Schollmeyer (1996) points out, for example, that many computer science teachers currently working in high schools received their initial preparation in another field, most commonly math or science. Heermann (1991) also notes that in Virginia, 71% of teachers who taught computer science/data processing reported some training in computer education, while only 22% indicated that computer science was their primary field of expertise. In addition, very few high school computer science teachers self-identify as being "very knowledgeable" in programming, have industrial programming experience, or have a solid foundation in data structures and more advanced topics (Schollmeyer).

This concern about teacher preparedness extends beyond original teacher preparation experience to the ability to learn and implement new technologies and teaching strategies as they emerge. In his discussion of teacher training for cross-curricular use of computers, Becker (1994) notes that investment in the "people" costs of using technology has not had the same priority as spending on hardware and software. Becker identifies these people costs as:

  • formal teacher training,
  • coordination and management of technology resources,
  • technical support, and
  • the time required for informal and latent growth of professional competence and integration with other curricular goals.

In a similar vein, Stager (1995) contends that no single method of professional development can provide teachers with the array of experiences they require to continue to build their technical and pedagogical skills. Rather, school districts must provide a combination of traditional workshops, in-classroom collaborations, mentoring, conference participation, and residential workshops to enable teachers to learn at their own pace.

Programming Language

As is the case at the college/university level, choice of an instructional programming language for high schools is the most commonly (and loudly) debated issue. The lack of consistency and consensus as to which programming language is most suitable for instructional purposes is reflected in the variety of opinions expressed by researchers who have attempted to evaluate the benefits and drawbacks of specific programming languages.

Schollmeyer (1996), for example, notes that although the use of BASIC does not preclude the writing of good programs, its structure tends to encourage novice programmers to develop habits such as writing first and thinking later, which must then be unlearned at the college/university level. Schollmeyer further argues that Pascal has a number of features that encourage the development of desirable programming practices such as modularity and top-down design, which are required at the college/university level. These features include the use of functions and procedure calls, variable declarations, and clean control structures.

Wittenburg (in Burd, Spies, Wittenburg, & Workman,1997) argues that although visual programming tools such as Visual Basic are useful in the hands of expert users for rapid application development and prototyping, "they tend to drag the focus of the course away from solving problems using a programming language toward interface design" (p. 389). This latter concern is echoed by Martin (1999), who concludes that students of poorer ability tend to be confused by Visual Basic’s profusion of features. The "potentially more nerdy" students, on the other hand, get carried away with these features to the detriment of their programming ability and these students’ programs ultimately demonstrate a surface knowledge of Visual Basic rather than an understanding of programming concepts. Martin’s concerns about Visual Basic in an educational environment, include:

  • student misconceptions that objects such as command buttons were procedures,
  • allowing students to be lazy in defining variable data types unless a type is declared, and
  • students writing unfriendly programs.

Other researchers, however, argue that the design of an effective graphical user interface (GUI) requires a wider range of skills than those of software implementation and that these skills, particularly those applying to human–computer interfacing (HCI), are essential for students (Culwin, 1999). Workman (in Burd et al., 1997) that visual programming places a natural emphasis on designing a clear and attractive user interface and makes interesting application such as multimedia and the Internet accessible to beginning students.

Object-oriented programming languages are becoming increasingly important in state-of-the-art software development and thus have achieved popularity with practitioners and educators alike. As a result, an increasing number of educators are using an object-oriented programming language somewhere in the curriculum (Luker, 1994; Mazaitis, 1993; Stephenson & West, 1998). As Kolling and Rosenberg (1996) note, the inclusion of object-oriented languages, however, has given rise to a number of questions, including:

  • when to teach the first object-oriented language,
  • what set of concepts to include in or exclude from the course, and
  • which programming language to use.

C++ has become an industry standard, despite the fact that the language itself is not standardized (Weiss, 1997). Moylan (1992) argues, however, that C++ provides poor support for modularity, minimal error checking, and continues the tradition that everything should be legal. These characteristics allow programmers to create unreadable code and limit the compiler’s ability to detect errors. He further argues that the extended features of C++ are extremely complex, and thus programmers often misuse them.

As Weiss (1997) notes, Java attempts to simplify C++ by removing unnecessary features and cleaning up bad design decisions. As a result, many C++ features, such as templates, operator overloading, and pointers, are not part of Java. Standing (1999) also notes the extendibility of Java as an instructional language, pointing out that as a multifaceted language, Java brings together a host of software technologies, thus allowing a top-down approach in teaching and an emphasis on computer science concepts.

A number of researchers contend, however, that despite its improvements on C++, Java should in no way be considered a simple or easy language to learn. As a result, many educators do not consider it suitable for novice programmers (Andreae et al., 2000; Biddle & Tempero, 1999). The most-commonly noted Java complexity relates to its I/O model. Though standard output in Java is relatively straightforward, standard input (e.g., from the keyboard) requires several declarations to set up the input stream and conversion methods to read numeric values. As Lewis (2000) notes, these steps are often considered unnecessarily complex for introductory students. Biddle and Tempero also identify a number of challenges that Java using educators must be aware of, including:

  • poor enforcement of encapsulation,
  • differences between primitive and object types,
  • implicit pointers, and
  • problems associated with genericity, or the use of generics or parameterized classes.

One of the problems with this entire debate concerning instructional programming language choice, according to Milbrandt (1993), is that it focuses on technical language features rather than conceptual/pedagogical considerations. He proposes that individual high school educators choose programming language based on:

  • ease-of-use,
  • structured design,
  • powerful computing capacity,
  • simplicity of syntax,
  • inclusion of variable declaration,
  • easy input/output and output formatting,
  • use of meaningful keyword names,
  • allowances for expressive variable names, and
  • the presence of a one-entry/one-exit structure.

He also notes the importance of immediate feedback to the learner/programmer and of good diagnostic tools for testing and debugging.

Other Factors Affecting High School Computer Science

Earlier research has shown that computer science is affected by a number of external factors. Brilliant and Wiseman (1996), for example, point out that competition for jobs, has led to increasing pressure to teach a programming language that is believed to be commonly used in the computing industry. Kavanagh (1998) also notes that industry, and most specifically potential employers, can exert a great deal of pressure over local curriculum and delivery methods.

Industry and academia also can be seen to exert curriculum influence in a more direct fashion. For example, in the absence of any kind of national computer science curriculum, the Association for Computing Machinery (ACM) and the Institute of Electrical and
Electronics Engineers (IEEE) have been playing a major role in defining model curricula for both college and high school computer science.

Baker, Chapman, Kmoch, Larson, and Walker (1998) point out that the Advanced Placement exam in Computer Science also affects high school computer science. The AP is a set of intensive college-level curricula and examinations sponsored by the College Board and administered by Educational Testing Service. It gives motivated high school students an opportunity to earn advanced placement, college credit, or both in computer science and other disciplines.

Part of the mandate of this survey, therefore, was to determine the extent to which all of these factors, internal and external, are perceived to play a role in today’s high school computer science classroom.

Methodology >>

Copyright © 2002, ISTE (International Society for Technology in Education). All rights reserved.

Customer Service: iste@iste.org   1.800.336.5191   1.541.302.3777 (Int'l)   1.541.302.3778 (fax)
Visit the ISTE Career Center for educational technology jobs, resources, and listings.