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