Standards in this Framework
Standard | Lessons |
---|---|
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) |
|