Computer Science K to 12
Competencies and Skills and Blueprint
The test design below describes general testing information. The blueprints that follow provide a detailed outline that explains the competencies and skills that this test measures.
Test Design
Format | Computer-based test (CBT) |
---|---|
Number of Questions | Approximately 80 multiple-choice questions |
Time | 2 hours and 30 minutes |
Passing Score | A scaled score of at least 200 |
Competencies, Skills, and Approximate Percentages of Questions
Pie chart of approximate test weighting outlined in the table below.
Competency | Approximate Percentage of Total Test Questions | |
---|---|---|
1 | Knowledge of computational thinking and problem solving | 15% |
2 | Knowledge of data types and structures | 15% |
3 | Knowledge of programming logic | 20% |
4 | Knowledge of programming languages | 20% |
5 | Knowledge of computer hardware, software, and networking | 10% |
6 | Knowledge of the historical aspects and social issues related to computer technologies | 10% |
7 | Knowledge of computer science pedagogy | 10% |
Competencies and Skills
Competency 1—Knowledge of computational thinking and problem solving
-
Analyze a problem and apply appropriate solution strategies.
-
Apply the steps of algorithmic problem solving when designing solutions to problems.
-
Apply the stages of the software development life cycle (i.e., problem definition, analysis, design, testing, implementation, maintenance).
-
Determine and select an appropriate algorithm for a given problem.
-
Predict outputs of algorithms for a given input.
-
Identify an appropriate set of data necessary for testing a computer solution.
Competency 2—Knowledge of data types and structures
-
Distinguish between constants and variables and between local and global identifiers.
-
Distinguish between integer, real number, character, string, Boolean, and object data types.
-
Recognize and convert between binary, decimal, and hexadecimal number systems.
-
Identify characteristics and uses of data structures, including arrays, linked lists, stacks, queues, and sets.
-
Distinguish between instance, class, and local variables in an object-oriented design.
-
Identify components of class declarations for an object-oriented program and distinguish between public and private access specifiers.
Competency 3—Knowledge of programming logic
-
Distinguish between error types (e.g., syntax, runtime, logic) and apply principles of debugging.
-
Identify principles, characteristics, and uses of internal and external program documentation.
-
Analyze the characteristics and functions of object-oriented and procedural languages.
-
Select the appropriate algorithmic sequence, conditional, iteration, and recursive constructs for a given purpose.
-
Analyze characteristics and applications of searching (i.e., sequential, binary) and sorting (i.e., selection, insertion, merge) algorithms.
-
Analyze the characteristics and applications of propositional logic (e.g., De Morgan's laws).
Competency 4—Knowledge of programming languages
-
Identify characteristics and apply concepts of the Scratch™1 programming language learning environment from the MIT Media Library.
-
Analyze segments of Java®2 code containing sequential, conditional, or iteration statements.
-
Analyze segments of Java® code involving methods, interacting objects, or passing parameters.
-
Apply principles of data types and data manipulation (e.g., string methods, arithmetic operations) in the Java® programming language.
-
Apply principles of abstraction, encapsulation, inheritance, and polymorphism in the Java® programming language.
Competency 5—Knowledge of computer hardware, software, and networking
-
Identify the hardware components of a computer system and their functions (e.g., input, output, processing, storage).
-
Analyze the advantages, disadvantages, or both of various data storage technologies.
-
Identify the characteristics and uses of various types of software (e.g., system, application).
-
Apply features and functions of application and productivity software (e.g., word processing, spreadsheet, database, multimedia authoring, Web development software).
-
Identify concepts and terminology related to networks (e.g., network protocols, Open Systems Interconnection model, client-server, cloud computing).
-
Identify characteristics and uses of network devices (e.g., servers, routers, switches, access points, workstations).
Competency 6—Knowledge of the historical aspects and social issues related to computer technologies
-
Identify examples of appropriate use (e.g., software license types, archival copying, fair use of copyrighted materials) and misuse (e.g., plagiarism, music and video piracy) of intellectual property.
-
Identify milestones in the historical development of computer technology and important contributions of individuals or groups to the development of computer technology.
-
Analyze cultural, legal, and ethical issues and responsibilities of digital citizens, organizations, and government entities (e.g., privacy issues related to Internet use, data protection).
-
Analyze issues related to malicious software, social engineering, and security awareness.
-
Identify concepts and terminology related to security countermeasures (e.g., firewalls, antivirus programs, filtering software, encryption) that prevent, detect, and correct breaches.
-
Analyze security issues related to maintaining the confidentiality, integrity, and availability of information.
Competency 7—Knowledge of computer science pedagogy
-
Apply appropriate and effective classroom management strategies for teaching computer science (e.g., laboratory work, cooperative learning, electronic communications).
-
Apply appropriate and effective instructional strategies for teaching computer science (e.g., independent learning, case studies, role-playing, manipulatives, visualizations, simulations, modeling, team software development).
-
Apply appropriate and effective formative and summative assessment strategies for teaching computer science (e.g., rubrics, portfolios).
-
Apply appropriate and effective accommodations, adaptations, and strategies that ensure the equitable use of technology for diverse student populations (e.g., students with exceptionalities, English language learners, students from various socioeconomic levels).
-
Determine characteristics and apply uses of instructional technologies (e.g., collaborative online tools, social networking, computer-based learning, mobile devices).
-
Recognize opportunities, skills, and paths related to college and career readiness in the field of computer science.
-
Apply practices for planning and developing curricula that meet state and national standards and recognize resources for ongoing professional support and development.
1 The Scratch trademark is the property of MIT.
2 Java is a registered trademark of Oracle and/or its affiliates.