Standards in this Framework
| Standard | Description |
|---|---|
| CPA.1.1a | Develop complex applications using input, calculations, and output |
| CPA.1.1b | Develop complex applications using control structures (loops, if else, select, etc.) |
| CPA.1.1c | Develop complex applications in object-oriented programming |
| CPA.1.1d | Develop complex applications using data structures |
| CPA.1.1e | Develop complex applications using files (sequential files) |
| CPA.1.2a | Analyze and solve recursive functions or methods |
| CPA.1.2b | Utilize recursive algorithms to solve a problem |
| CPA.1.2c | Identify the base case, recursive case, and action of each recursive function or method |
| CPA.1.2d | (Optional) Understand the use of a recursive helper function or method |
| CPA.1.3a | Create and use overloaded constructors and methods |
| CPA.1.3b | Create and use overloaded operators (C++) |
| CPA.2.1a | Develop a binary search |
| CPA.2.1b | Compare the efficiency and appropriateness of sequential and binary searches |
| CPA.2.2a | Sort arrays using iterative sorting algorithms (selection, insertion, bubble) |
| CPA.2.2b | Recognize recursive sorting algorithms (merge, quick, heap) |
| CPA.2.2c | Recognize sorting data structures using quadratic (n2) and binary (n log n) sorts |
| CPA.2.2d | Compare the efficiency of different sorting algorithms |
| CPA.3.1a | Initialize multidimensional arrays |
| CPA.3.1b | Input and output data into and from multidimensional arrays |
| CPA.3.1c | Perform operations on multidimensional arrays |
| CPA.3.1d | Perform searches on multidimensional arrays |
| CPA.4.1a | Declare stack structures |
| CPA.4.1b | Initialize stacks |
| CPA.4.1c | Check for empty and full stacks |
| CPA.4.1d | Push on to and pop off values from stacks (Last in, First out) |
| CPA.4.1e | Develop an application that utilizes stacks |
| CPA.4.2a | Declare queue structures |
| CPA.4.2b | Check for empty and full queues |
| CPA.4.2c | Initialize queues |
| CPA.4.2d | Enqueue values onto and dequeue values off of queues (First in, First out) |
| CPA.4.2e | Develop an application that utilize queues |
| CPA.5.1a | Create classes with minimal extraneous relationships (high cohesion and low coupling) |
| CPA.5.1b | Demonstrate and use composition and aggregation (HAS-A) relationships |
| CPA.5.1c | Demonstrate the use of class variables (static variables) |
| CPA.5.1d | Understand the principle of encapsulation as it relates to object-oriented programming |
| CPA.5.2a | Utilize class hierarchies (parent-child relationships, superclass-subclass relationships) |
| CPA.5.2b | Demonstrate IS-A relationships |
| CPA.5.2c | Override methods. Understand how to call the overriding method from the child |
| CPA.5.2d | Demonstrate the protected modifier |
| CPA.5.2e | Call a parent class constructor from the child’s constructor |
| CPA.5.3a | Create and implement abstract classes |
| CPA.5.3b | Implement interfaces (purely abstract classes) |
| CPA.5.3c | Know difference between abstract & interface classes |
| CPA.5.4a | Demonstrate that a parent object variable can hold an instance of a child class |
| CPA.5.4b | Determine IS-A relationships via code (e.g. instanceof, typeof, isa) |
| CPA.5.4c | Demonstrate typecasting via method calls of inherited objects |
| CPA.6.1a | Create an activity diagram |
| CPA.6.1b | Create a class diagram for the class hierarchy of a program |
| CPA.6.1c | Create a sequence diagram for a method |
| CPA.6.1d | Translate diagrams to code |
| CPA.7.1a | Students will understand that API’s allow programs to talk to each other |
| CPA.7.1b | Students will demonstrate the use of an API in the development of a program |
| CPA.8.1 | Create an individual program of significant complexity. |
| CPA.8.1a | Create design documentation for the project |
| CPA.8.1b | Follow accepted object-oriented programming methodology when writing the code |
| CPA.8.2 | Compile a portfolio of the individual and group programs developed. |
| CPA.8.2a | Include sample design work |
| CPA.8.2b | Include sample program source code |
| CPA.9.1a | Explain the impact software can have on society (i.e., privacy, piracy, copyright laws, ease of use, etc.) |
| CPA.9.1b | Explain the ethical reasons for creating reliable and robust software |
| CPA.9.1c | Describe how computer-controlled automation affects a workplace and society |
| CPA.9.2 | Students will understand the ethical use of AI in coding and how it impacts the programming field. |
| CPA.9.2a.i | Know when AI use is appropriate |
| CPA.9.2a.ii | Understand when and how to disclose the use of AI |
| CPA.9.2b.i | Understand why it is risky to let AI write your code without human oversight. |
| CPA.9.2b.ii | Know the importance of understanding programming concepts. |
| CPA.9.2c.i | Understand the importance of reviewing all AI generated code for accuracy. |
| CPA.9.2c.ii | Understand that AI tools can be helpful for debugging code, but it’s important to double-check their suggestions using your own programming knowledge |
| CPA.9.2d.i | Ethical use of AI-written software requires human oversight, bias awareness, security testing, transparency, and accountability to ensure software is fair, safe, and responsible. |