A Model Curriculum for K–12 Computer Science:

Final Report of the ACM K–12 Task Force Curriculum Committee

October, 2003


The Goals of a K–12 Computer Science Curriculum

1) introduce the fundamental concepts of computer science to all students, beginning at the elementary school
2) present computer science at the secondary school level in a way that would be both accessible and worthy
of a curriculum credit (e.g., math or science).
3) offer additional secondary-level computer science courses that will allow interested students to study it in
depth and prepare them for entry into the work force or college.
4) increase the knowledge of computer science for all students, especially those who are members of
underrepresented groups.

10 Essential Skills

1. set up a personal computer
2. use basic operating system features
3. use a word processor and create a document,
4. use a graphics or artwork package to create illustrations, slides, and images
5. connect a computer to a network
6. use the Internet to find information and resources
7. use a computer to communicate with others
8. use a spreadsheet to model simple processes or financial tables
9. use a database system to set up and access information
10. use instructional materials to learn about new applications or features.

The Current Status of K–12 Computer Science

Computer science has never been widely taught at the K–12 level in the United States. To help address this problem,
the ACM Model High School Curriculum (ACM, 1993) was developed in 1993.

A more recent curriculum model, developed by a New Jersey Teachers’ Conference (Deek, 1999), aimed to provide
a state-level standard for computer science that could be taught in all school districts. The core topics for that
curriculum include algorithms, programming, applications, information systems, communications, and technology.

In spite of these efforts, a survey conducted in 2002 (http://www.acm.org/education/k12/research.html) confirms
that neither the 1993 ACM model nor any other model has achieved widespread recognition or implementation in
the United States.

Structure of a K–12 Computer Science Curriculum

K–8 Level I—Foundations of Computer Science
9 or 10 Level II—Computer Science In the Modern World
10 or 11 Level III—Computer Science as Analysis and Design
11 or 12 Level IV—Topics in Computer Science

Grade-Level Breakdowns

Grades K–2: Upon completion of grade 2, students will:
1. Use standard input and output devices to successfully operate computers and related technologies.
2. Use a computer for both directed and independent learning activities.
3. Communicate about technology using developmentally appropriate and accurate terminology.
4. Use developmentally appropriate multimedia resources (e.g., interactive books, educational software,
elementary multimedia encyclopedias) to support learning.
5. Work cooperatively and collaboratively with peers, teachers, and others when using technology.
6. Demonstrate positive social and ethical behaviors when using technology.
7. Practice responsible use of technology systems and software.
8. Create developmentally appropriate multimedia products with support from teachers, family members, or
student partners.
9. Use technology resources (e.g., puzzles, logical thinking programs, writing tools, digital cameras, drawing
tools) for problem solving, communication, and illustration of thoughts, ideas, and stories.
10. Gather information and communicate with others using telecommunications, with support from teachers,
family members, or student partners.
11. Understand how 0s and 1s can be used to represent information, such as digital images and numbers.
12. Understand how to arrange (sort) information into useful order, such as a telephone directory, without using
a computer.

Grades 3–5: Upon completion of grade 5, students will:
1. Be comfortable using keyboards and other input and output devices, and reach an appropriate level of
proficiency using the keyboard with correct fingering.
2. Discuss common uses of technology in daily life and the advantages and disadvantages those uses provide.
3. Discuss basic issues related to responsible use of technology and information, and describe personal
consequences of inappropriate use.
4. Use general-purpose productivity tools and peripherals to support personal productivity, remediate skill
deficits, and facilitate learning throughout the curriculum.
5. Use technology tools (e.g., multimedia authoring, presentation, Web tools, digital cameras, scanners) for
individual and collaborative writing, communication, and publishing activities to create presentations for
audiences inside and outside the classroom.
6. Use telecommunications efficiently to access remote information, communicate with others in support of
direct and independent learning, and pursue personal interests.
7. Use online resources (e.g., e-mail, online discussions, Web environments) to participate in collaborative
problem-solving activities for the purpose of developing solutions or products for audiences inside and
outside the classroom.
8. Use technology resources (e.g., calculators, data collection probes, videos, educational software) for
problem-solving, self-directed learning, and extended learning activities.
9. Determine which technology is useful and select the appropriate tool(s) and technology resources to address
a variety of tasks and problems.
10. Evaluate the accuracy, relevance, appropriateness, comprehensiveness, and bias that occur in electronic
information sources.
11. Develop a simple understanding of an algorithm, such as text compression, search, or network routing,
using computer-free exercises (see Appendix for examples).

Grades 6–8: Upon completion of grade 8, students will:
1. Apply strategies for identifying and solving routine hardware and software problems that occur during
everyday use.
2. Demonstrate knowledge of current changes in information technologies and the effects those changes have
on the workplace and society.
3. Exhibit legal and ethical behaviors when using information and technology and discuss consequences of
4. Use content-specific tools, software, and simulations (e.g., environmental probes, graphing calculators,
exploratory environments, Web tools) to support learning and research.
5. Apply productivity/multimedia tools and peripherals to support personal productivity, group collaboration,
and learning throughout the curriculum.
6. Design, develop, publish, and present products (e.g., Web pages, videotapes) using technology resources
that demonstrate and communicate curriculum concepts to audiences inside and outside the classroom.
7. Collaborate with peers, experts, and others using telecommunications tools to investigate educational
problems, issues, and information, and to develop solutions for audiences inside and outside the classroom.
8. Select appropriate tools and technology resources to accomplish a variety of tasks and solve problems.
9. Demonstrate an understanding of concepts underlying hardware, software, algorithms, and their practical
10. Discover and evaluate the accuracy, relevance, appropriateness, comprehensiveness, and bias of electronic
information sources concerning real-world problems.
11. Understand the graph as a tool for representing problem states and solutions to complex problems (see
Appendix for examples).
12. Understand the fundamental ideas of logic and its usefulness for solving real-world problems (see Appendix
for examples).

Level II—Computer Science in the Modern World

1. Principles of computer organization and the major components (input, output, memory, storage, processing,
software, operating system, etc.)
2. The basic steps in algorithmic problem-solving (problem statement and exploration, examination of sample
instances, design, program coding, testing and verification)
3. The basic components of computer networks (servers, file protection, routing protocols for
connection/communication, spoolers and queues, shared resources, and fault-tolerance).
4. Organization of Internet elements, Web page design (forms, text, graphics, client- and server-side scripts),
and hypermedia (links, navigation, search engines and strategies, interpretation, and evaluation).
5. The notion of hierarchy and abstraction in computing, including high-level languages, translation
(compilers, interpreters, linking), machine languages, instruction sets, and logic circuits.
6. The connection between elements of mathematics and computer science, including binary numbers, logic,
sets, and functions.
7. The notion of computers as models of intelligent behavior (as found in robot motion, speech and language
understanding, and computer vision), and what distinguishes humans from machines.
8. Examples (like programming a telephone answering system) that identify the broad interdisciplinary utility
of computers and algorithmic problem solving in the modern world.
9. Ethical issues that relate to computers and networks (including security, privacy, intellectual property, the
benefits and drawbacks of public domain software, and the reliability of information on the Internet), and
the positive and negative impact of technology on human culture.
10. Identification of different careers in computing and their connection with the subjects studied in this course
(e.g., information technology specialist, Web page designer, systems analyst, programmer, CIO).

Level III—Computer Science as Analysis and Design

1. Fundamental ideas about the process of program design and problem solving, including style, abstraction,
and initial discussions of correctness and efficiency as part of the software design process.
2. Simple data structures and their uses
3. Topics in discrete mathematics: logic, functions, sets, and their relation to computer science
4. Design for usability: Web page design, interactive games, documentation
5. Fundamentals of hardware design
6. Levels of language, software, and translation: characteristics of compilers, operating systems, and networks
7. The limits of computing: what is a computationally “hard” problem? (e.g., ocean modeling, air traffic
control, gene mapping) and what kinds of problems are computationally unsolvable (e.g., the halting
8. Principles of software engineering: software projects, teams, the software life cycle
9. Social issues: software as intellectual property, professional practice
10. Careers in computing: computer scientist, computer engineer, software engineer, information technologist.

Level IV—Topics in Computer Science

These electives include, but are not necessarily limited to:
• Advanced Placement (AP) Computer Science
• A projects-based course in which students cover a topic in depth.
• A vendor-supplied course, which may be related to professional certification.

Desktop Publishing,
Presentation Design
Design and Development of Web Pages
Web Programming
A+ Certified Technician
Certified Internet Webmaster (CIW)