Standards in this Framework
Standard | Description |
---|---|
I.1.A | Understands computing as a way of expressing creativity, solving problems, enabling communication, and fostering innovation in a variety of fields and careers |
I.1.B | Knows the obstacles to equal access to computing among different groups and the impact of those obstacles |
I.1.C | Understands beneficial and harmful effects of computing innovations and the trade-offs between them |
I.2.A | Knows different methods of protecting intellectual property rights and the tradeoffs between them in a variety of contexts (e.g., Creative Commons, open source, copyright) |
I.2.B | Understands ethical and unethical computing practices and their social, economic, and cultural implications |
I.2.C | Knows privacy and security issues regarding the acquisition, use, and disclosure of information in a digital world |
II.1.A | Understands abstraction as a foundation of computer science |
II.1.B | Knows how to use pattern recognition, problem decomposition, and abstraction to develop an algorithm |
II.1.C | Understands number base conversion and binary, decimal, and hexadecimal number systems |
II.1.D | Understands how to develop and analyze algorithms expressed in multiple formats (e.g., natural language, flowcharts, pseudocode) |
II.2.A | Is familiar with the limitations of computing in terms of time, space, and solvability as well as with the use of heuristic solutions that can address these limitations |
II.2.B | Understands searching and sorting algorithms; can analyze sorting algorithms for correctness and can analyze searching algorithms for correctness and efficiency |
II.2.C | Understands simple recursive algorithms (e.g., n factorial, sum of first n integers) |
II.2.D | Is familiar with the use of randomization in computing |
III.1.A | Understands how to write and modify computer programs in a text-based programming language |
III.1.B | Understands how to analyze computer programs in terms of correctness |
III.1.C | Knows the concepts of extensibility, modifiability, and reusability |
III.1.D | Understands the three basic constructs used in programming: sequence, selection, and iteration |
III.1.E | Understands how to use standard operators (i.e., assignment, arithmetic, relational, logical) and operator precedence to write programs |
III.1.F | Understands how to use variables and a variety of data types |
III.2.A | Understands how to write and call procedures with parameters and return values |
III.2.B | Knows the concepts of event-driven programs that respond to external events (e.g., sensors, messages, clicks) |
III.2.C | Is familiar with usability and user experience (e.g., ease of use and accessibility) |
III.2.D | Is familiar with dictionaries/maps, stacks, and queues |
III.2.E | Understands how to use debugging techniques and appropriate test cases |
III.2.F | Is familiar with characteristics of well-documented computer programs that are usable, readable, and modular |
III.2.G | Is familiar with techniques to obtain and use feedback to produce high-quality code (e.g., code reviews, peer feedback, end user feedback) |
III.2.H | Knows how to use libraries and APIs |
III.2.I | Understands programming techniques to validate correct input and detect incorrect input |
III.2.J | Is familiar with the features and capabilities of integrated development environments (IDEs) |
III.2.K | Is familiar with the differences between low- and high-level programming languages |
III.2.L | Is familiar with different programming paradigms |
III.2.M | Knows object-oriented programming concepts |
III.2.N | Is familiar with program compilation and program interpretation |
IV.1.A | Understands bits as the universal medium for expressing digital information |
IV.1.B | Is familiar with concepts of data encryption and decryption |
IV.1.C | Knows how to use computational tools, including spreadsheets, to analyze data in order to discover, explain, and visualize patterns, connections, and trends |
IV.2.A | Is familiar with the use of computing in simulation and modeling |
IV.2.B | Is familiar with methods to store, manage, and manipulate data |
IV.2.C | Is familiar with a variety of computational methods for data collection, aggregation, and generation |
V.1.A | Knows that operating systems are programs that control and coordinate interactions between hardware and software components |
V.1.B | Is familiar with computing systems embedded in everyday objects (e.g., Internet of Things [IoT], ATMs, medical devices) |
V.1.C | Knows the capabilities, features, and uses of different types of computing systems (e.g., desktop, mobile, cluster) |
V.1.D | Is familiar with computers as layers of abstraction from hardware (e.g., logic gates, chips) to software (e.g., system software, applications) |
V.1.E | Is familiar with the steps required to execute a computer program (fetch-decodeexecute cycles) |
V.1.F | Is familiar with trade-offs between local, network, and cloud computing and storage |
V.1.G | Is familiar with communication between devices |
V.2.A | Knows components of networks |
V.2.B | Is familiar with factors that have an impact on network functionality |
V.2.C | Is familiar with how Internet and Web protocols work |
V.2.D | Is familiar with digital and physical strategies for maintaining security |
V.2.E | Is familiar with concepts of cybersecurity |
V.2.F | Is familiar with the components that make up the Web (e.g., HTTP, HTML, browsers, servers, clients) |