Assessment Design and

Field 054: Computer Science

The assessment design below describes general assessment information. The framework that follows is a detailed outline that explains the knowledge and skills that this assessment measures.

Assessment Design

Format Computer-based test (CBT)
Number of Questions Computer-based test (CBT); 125 multiple-choice questions
Time 2 hours and 45 minutes total appointment time
  • 15 minutes for CBT tutorial and nondisclosure agreement
  • 2 hours and 30 minutes testing time
Passing Score 220
Additional InformationComputer Science Style Conventions PDF



Domain Range of Competencies Approximate Percentage of Assessment Score
I Algorithmic Thinking and Data Analysis 0001–0003 28%
II Programming Concepts 0004–0007 36%
III Computing Systems, Networks, and the Internet 0008–0009 18%
IV Impacts of Computing and Learning Environments 0010–0011 18%
Domain I–Algorithmic Thinking and Data Analysis

0001 Understand problem solving and algorithm development.


  1. Demonstrate knowledge of the iterative problem-solving process.
  2. Apply knowledge of decomposing a problem into simpler parts.
  3. Apply characteristics of algorithmic thinking, including the use of flowcharts and pseudocode.
  4. Demonstrate knowledge of the use of sequence, selection, iteration, and recursive thinking in algorithm design.
  5. Demonstrate knowledge of the concept of abstraction for managing program complexity.
  6. Demonstrate knowledge of how program components fit together to complete the problem-solving process.

0002 Understand characteristics of algorithms.


  1. Demonstrate knowledge of the practical application of algorithms.
  2. Interpret flow of control in an algorithm.
  3. Predict output of a given algorithm (e.g., program tracing).
  4. Select an algorithm to solve a given problem.
  5. Evaluate an algorithm in terms of correctness.
  6. Evaluate algorithms in terms of complexity and efficiency, including a basic interpretation of big-O notation.
  7. Apply knowledge of the characteristics and uses of searching (i.e., linear and binary) and sorting algorithms (e.g., bubble, selection).

0003 Understand data analysis, modeling, and simulation.


  1. Demonstrate knowledge of tools and techniques for locating, collecting, and storing small-scale and large-scale data sets from a variety of sources (e.g., files, database).
  2. Identify data and use a variety of tools (e.g., database, spreadsheet, algorithms) and techniques (e.g., search, filter, transform, visualize) to analyze data and identify patterns.
  3. Demonstrate knowledge of the use of models and representations to describe and evaluate processes and phenomena.
  4. Apply knowledge of computer models and data analysis techniques for analyzing and simulating real-world problems.
Domain II–Programming Concepts

0004 Understand programming concepts and program design and development.


  1. Apply knowledge of characteristics of programming languages (e.g., functional, compiled, object oriented), including block-based languages.
  2. Apply knowledge of the software development process (e.g., design, testing, maintenance) and methodologies (e.g., waterfall, iterative, agile).
  3. Apply knowledge of programming style and good programming practices (e.g., indenting, spacing, comments, naming conventions, camelCase) and program documentation.
  4. Apply knowledge of tools related to the development of computer artifacts (e.g., IDEs, APIs, libraries, mobile device simulators).
  5. Apply knowledge of common programming errors and procedures for testing and debugging computer programs.
  6. Demonstrate knowledge of a variety of concepts related to programming (e.g., event driven, heuristic algorithms, parallel processing, artificial intelligence).

0005 Understand characteristics and uses of data types.


  1. Demonstrate knowledge of language-defined data types (e.g., integer, float, Boolean).
  2. Apply properties of strings and string methods (e.g., length, substring, concatenation).
  3. Apply knowledge of constants, variables, and classes in various contexts.
  4. Apply a basic knowledge of data structures (e.g., arrays, lists, queues).

0006 Understand operators and control structures.


  1. Apply arithmetical operators as defined by the language (e.g., addition, subtraction, multiplication, integer division, modular arithmetic).
  2. Apply relational operators in various contexts (e.g., greater than, less than, equal to).
  3. Interpret logical operators in various contexts (e.g., AND, OR, NOT).
  4. Apply knowledge of conditional selection structures (e.g., if, if-else), including nesting.
  5. Apply knowledge of iterative control structures (e.g., while, for), including nesting.

0007 Understand concepts of object-oriented design and programming.


  1. Demonstrate knowledge of principles of modularization and characteristics of program modules (e.g., functions/methods, objects, classes).
  2. Analyze the characteristics and uses of inheritance and classes in object-oriented programming.
  3. Demonstrate knowledge of concepts and principles related to object-oriented design and programming (e.g., abstraction, information hiding, encapsulation, constructors).
  4. Apply knowledge of function calls, parameters, and parameter-passing techniques.
Domain III–Computing Systems, Networks, and the Internet

0008 Understand terminology and concepts related to computing systems.


  1. Demonstrate knowledge of characteristics of program modules (e.g., functions, objects) and modularization strategies.
  2. Demonstrate knowledge of how information (e.g., text, image, sound) can be represented digitally by binary data.
  3. Demonstrate knowledge of characteristics of binary, decimal, and hexadecimal number systems.
  4. Demonstrate knowledge of basic computer architecture and peripherals (e.g., processors, memory, storage, sensors).
  5. Demonstrate knowledge of the characteristics and functions of operating systems.
  6. Apply knowledge of strategies for troubleshooting basic hardware and software problems.

0009 Understand networks and the Internet.


  1. Demonstrate knowledge of terminology and concepts related to computer networks (e.g., client, server, bandwidth, protocol).
  2. Identify the basic structure and features of the Internet.
  3. Demonstrate knowledge of concepts related to data transfer on the Internet (e.g., routing, packet switching, https).
  4. Demonstrate knowledge of terminology and concepts related to mobile technologies (e.g., apps, wireless connectivity, security) and the interaction between mobile devices and networks.
  5. Demonstrate knowledge of cybersecurity issues related to networks and the Internet (e.g., firewalls, data encryption, malware).
Domain IV–Impacts of Computing and Learning Environments

0010 Understand social and global issues related to computer technology.


  1. Demonstrate knowledge of significant events (e.g., vacuum tube, transistors, integrated circuit, Turing test) and influential contributors (e.g., Charles Babbage, Ada Lovelace, Grace Hopper, Clarence Ellis) in the history of computer science.
  2. Demonstrate knowledge of the responsible use of technology, social media, and digital citizenship, including appropriate etiquette, cyberbullying, and consequences of misuse.
  3. Demonstrate knowledge of the impact of technology on society (e.g., environment, economy, financial markets, medicine, education) and the influence of society on technology.
  4. Demonstrate knowledge of issues related to the ethical and legal use of computers and information (e.g., big data, privacy, confidentiality, information sharing, intellectual property rights, hacking).
  5. Demonstrate knowledge of issues related to the equitable use of technology (e.g., language, disabilities, access to technology, culture, socioeconomic status).

0011 Understand effective learning environments.


  1. Demonstrate knowledge of issues related to the safe and effective use of technology and digital citizenship, including online safety and privacy of electronic student information.
  2. Apply knowledge of principles and concepts related to an inquiry-based computer science curriculum.
  3. Apply knowledge of issues related to diversity in computer science education and strategies for fostering an inclusive computing learning environment.
  4. Apply knowledge of developmentally appropriate instructional strategies and practices to support the diverse needs of all learners.
  5. Demonstrate knowledge of effective approaches for promoting collaboration and developing communication skills.
  6. Demonstrate knowledge of issues related to mobile computing, computer literacy, computational thinking, and collaboration and communication in computer science.