Please enable JavaScript to use CodeHS

Standards Framework

for Utah Computer Programming Advanced

69

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.