Algorithms and Programming 9th/10th Computer Science Standards
| 9-10.AP.01 | Design and develop a software artifact by leading, initiating, and participating in a team (e.g. pair programming, agile software development). (Grades 9-12) |
| 9-10.AP.02 | Demonstrate how diverse collaboration, both inside and outside of a team, impacts the design and development of software products (e.g. students show their own artifacts and demonstrate and reflect how diverse collaboration made a product better). (Grades 9-12) |
| 9-10.AP.03 | Compare a variety of programming languages available to solve problems and develop systems. (Grades 9-10) |
| 9-10.AP.04 | Explore security issues that might lead to compromised computer programs (e.g. ambiguous function calls, lack of error checking of the input, buffer overflow, SQL injection attacks, denial of service attacks). (Grades 9-12) |
| 9-10.AP.05 | Classify and define the different types of software licenses in order to understand how to apply each one to a specific software example. (Grades 9-12) |
| 9-10.AP.06 | Understand the notion of hierarchy and abstraction in high-level languages, translation, instruction sets, and logic circuits. (Grades 9-10) |
| 9-10.AP.07 | Explore issues surrounding mobile computing by creating a mobile computing application (e.g. App Inventor). (Grades 9-10) |
| 9-10.AP.08 | Create software solutions by applying analysis, design, implementation and testing techniques. (Grades 9-10) |
| 9-10.AP.09 |
Demonstrate code reuse by creating programming solutions using APIs and libraries (e.g. using text to speech in App Inventor, using Twitter API). (Grades 9-10)
|
| 9-10.AP.10 | Illustrate the flow of execution and output of a given program (e.g. flow and control diagrams). (Grades 9-10) |
| 9-10.AP.11 | Illustrate how mathematical and statistical functions, sets, and logic are used in computation. (Grades 9-10) |
| 9-10.AP.12 | Design algorithms using sequence, selection, iteration and recursion. (Grades 9-10) |
| 9-10.AP.13 | Explain, represent, and understand natural phenomena using modeling and simulation (Grade 9-10). |
| 9-10.AP.14 |
Describe the concept of parallel processing as a strategy to solve large problems. (Grades 9-10)
|
| 9-10.AP.15 | Compare and evaluate software development processes used to solve problems (e.g. waterfall, agile). (Grades 9-10) |
| 9-10.AP.16 | Decompose a complex problem into simpler parts using predefined functions and parameters, classes, and methods. (Grades 9-10) |
| 9-10.AP.17 | Demonstrate the value of abstraction to manage problem complexity. (Grades 9- 10) |
| 9-10.AP.18 | Evaluate and improve program quality using various debugging and testing methods and examine the difference between verification and validation. (Grades 9-12) |
| 9-10.AP.19 | Evaluate programs written by others for readability and usability. (Grades 9-10) |
Algorithms and Programming 11th/12th Computer Science State Standards
| 11-12.AP.01 | Analyze the notion of intelligent behavior through programs that learn and adapt, play games, do image recognition, perform text analysis, and control the behavior of robots. (Grades 11-12) |
| 11-12.AP.02 | Create collaborative software projects using version control systems, Integrated Development Environments (IDEs), and collaborative tools. (Grades 11-12) |
| 11-12.AP.03 | Demonstrate an understanding of the software life cycle process (e.g. by participating on a software project team). (Grades 11-12) |
| 11-12.AP.04 | Modify an existing program to add additional functionality and discus the positive and negative implications (e.g., breaking other functionality). (Grades 11-12) |
| 11-12.AP.05 | Explain the value of heuristic algorithms to approximate solutions for intractable problems. (Grades 11-12) |
| 11-12.AP.06 | Decompose a computational problem through data abstraction and modularity. (Grades 9-12) |
| 11-12.AP.07 | Critically examine algorithms and design an original algorithm (e.g. adapt, remix, improve). (Grades 11-12) |
| 11-12.AP.08 | Evaluate efficiency, correctness, and clarity of algorithms. (Grades 11-12) |
| 11-12.AP.09 | Compare and contrast simple data structures and their uses (e.g. arrays, lists, stacks, queues, maps, trees, graphs). (Grades 11-12) |
| 11-12.AP.10 | Decompose a problem by creating functions and classes. (Grades 11-12) |
| 11-12.AP.11 | Use variable scope and encapsulation to design programs with cohesive and decoupled components. (Grades 9-12) |
| 11-12.AP.12 | Classify problems as tractable, intractable, or computationally unsolvable. (Grades 11-12) |
| 11-12.AP.13 | Understand and explain the use of concurrency (e.g. separate processes into threads and divide data into parallel streams, have students self sort by height). (Grades 11-12) |
| 11-12.AP.14 | Evaluate the qualities of a program such as correctness, usability, readability, efficiency, portability and scalability through a process such as a code review. (Grades 11-12) |