Please enable JavaScript to use CodeHS

Standards Framework

for Utah Computer Programming 2

83

Standards in this Framework

Standard Description
UT.CP2.1.1a Declare and initialize arrays/lists of all applicable types.
UT.CP2.1.1b Perform data input to and output from arrays/lists.
UT.CP2.1.1c Perform operations on arrays/lists including sort arrays.
UT.CP2.1.1d Iterate through the structure (i.e., for-each, enhanced for, or iterators).
UT.CP2.1.2a Declare and initialize a dynamic array/list.
UT.CP2.1.2b Add and remove items from the array/list.
UT.CP2.1.2c Output data from arrays/lists.
UT.CP2.1.2d Perform operations on arrays/lists.
UT.CP2.1.2e Iterate through the structure (i.e., for-each, enhanced for, or iterators).
UT.CP2.1.2f Use a loop to iterate through the structure.
UT.CP2.1.3a Compare string values.
UT.CP2.1.3b Find the length of a string.
UT.CP2.1.3c Copy part or all of string values into other strings.
UT.CP2.1.3d Concatenate string values.
UT.CP2.1.3e Locate substring positions.
UT.CP2.1.3f Insert strings into other strings.
UT.CP2.2.1a Create and initialize sequential files.
UT.CP2.2.1b Store data to sequential files.
UT.CP2.2.1c Retrieve data from sequential files.
UT.CP2.2.1d Update sequential files.
UT.CP2.2.2a An API (Application Programming Interface) is a set of rules and protocols that enables different software applications to communicate with each other and exchange data or functionality.
UT.CP2.2.2b An API is like a bridge that lets different software systems exchange data or use each other's features without needing to know what's happening behind the scenes.
UT.CP2.2.2c Know the different types of APIs (ex: REST, SOAP, GraphQL, WebSocket, Database API, etc.).
UT.CP2.2.2d Implement or demonstrate an API.
UT.CP2.2.2e Demonstrate how to use an API in program development.
UT.CP2.3.1a Understand that variables and functions/methods/procedures have scope, which influences where they can be declared and accessed.
UT.CP2.3.1b Declare and access local variables in a program.
UT.CP2.3.1c Declare and access global variables in a program.
UT.CP2.3.2a Understand the correlation between arguments (inputs) and parameters (variables).
UT.CP2.3.2b Understand that functions/methods/procedures may or may not require arguments.
UT.CP2.3.2c Understand that functions/methods/procedures may or may not return values.
UT.CP2.3.2d Define functions/methods/procedures:
UT.CP2.3.2d.i with parameters
UT.CP2.3.2d.ii without parameters
UT.CP2.3.2d.iii with return values
UT.CP2.3.2d.iv without return values
UT.CP2.3.2d.v default parameters
UT.CP2.3.3a Identify repetitive or redundant code in an application.
UT.CP2.3.3b Understand the role abstraction plays in computer programming.
UT.CP2.3.3c Demonstrate how to abstract multiple steps into a function/method/procedure.
UT.CP2.3.3d Identify the characteristics of a well-defined function/method/procedure (examples: shorter code, efficiency, reduced memory consumption, high reliability, readability, abstraction).
UT.CP2.4.1a Instantiate objects.
UT.CP2.4.1b Use object data members (i.e., Java's arr.length).
UT.CP2.4.1c Use object member functions (methods).
UT.CP2.4.2 Demonstrate the ability to create user-defined classes.
UT.CP2.4.2a Create and use data members (instance variables).
UT.CP2.4.2b Create a constructor to initialize the data members.
UT.CP2.4.2c Create and use member functions (methods).
UT.CP2.5.1 Demonstrate the ability to comprehend code outcomes.
UT.CP2.5.1a Tracing - Cognitively following the passes of a loop, nested function calls, change in value of global and local scoped variables, etc.
UT.CP2.5.1b Debugging - Utilizing 3rd party tools (IDEs) to step through a program and troubleshoot.
UT.CP2.5.1c Testing - Validating the outputs of a program and testing its robustness (i.e., boundary conditions, invalid inputs, unexpected scenarios, incorrect results, etc.).
UT.CP2.6.1a Formalize specifications.
UT.CP2.6.1b Choose proper input parameters.
UT.CP2.6.1c Choose appropriate data structures and processing.
UT.CP2.6.1d Design appropriate output.
UT.CP2.6.1e Use appropriate test data.
UT.CP2.6.1f Write good documentation.
UT.CP2.6.2a Divide a project among programmers.
UT.CP2.6.2b Present work to a group.
UT.CP2.6.2c Coordinate work with others in the group.
UT.CP2.6.2d Complete assigned work according to predetermined deadlines.
UT.CP2.6.2e Participate in a peer performance evaluation.
UT.CP2.6.2f Demonstrate professionalism in team relationships, communication, timeliness, and attitude.
UT.CP2.7.1a Explain the ethical reasons for creating reliable and robust software.
UT.CP2.7.1b Explain the impact software can have on society (i.e., privacy, piracy, copyright laws, ease of use, etc.).
UT.CP2.7.1c Show how security concerns can be addressed in an application (i.e., biometrics, passwords, information hiding, etc.).
UT.CP2.7.1d Describe how computer-controlled automation affects a workplace and society.
UT.CP2.7.1e Give examples of ways to protect information on computer systems (attacks, viruses, malware, etc.).
UT.CP2.7.2a Responsible use of AI, which includes recognizing when to use AI, using appropriate prompts to produce desired output, determining accuracy of information, how AI has contributed to a product, and communicating that clearly.
UT.CP2.7.2b The importance of transparency and documentation, both in their own use of AI tools and in verifying the authenticity of others' work.
UT.CP2.7.2c How AI influences all work, including the evolving boundaries and tightening restrictions around intellectual property and copyright.
UT.CP2.7.3a Academic integrity and attribution.
UT.CP2.7.3b Know when AI use is appropriate.
UT.CP2.7.3c Understand disclosing when you use AI.
UT.CP2.7.3d Understanding vs. over-reliance on AI.
UT.CP2.7.3e Verifying and debugging AI generated code.
UT.CP2.7.3f Reviewing the code to make sure there are no coding errors.
UT.CP2.7.3g Ethical implications of AI written software.
UT.CP2.8.1a Identify the members of a computer programming/software engineering team: team leader, analyst, senior developer, junior developer, and client/subject matter expert.
UT.CP2.8.1b Describe work performed by each member of the computer programming/software engineering team.
UT.CP2.8.1c Investigate trends and traits associated with computer programming/software engineering careers (creativity, technical, leadership, collaborative, problem solving, design, etc.).
UT.CP2.8.1d Discuss related career pathways.