Standards in this Framework
| Standard | Description |
|---|---|
| CP1.1.1a | Be aware of several programming languages and their purposes or use cases (Python - data science; Java - desktop application and server-side software; SQL - databases; JavaScript - web apps; C# - desktop applications; R - math and graphs; C++ - video games and desktop applications; C - operating systems and embedded systems). |
| CP1.1.1b | Describe the difference between an interpreted language vs a compiled language. |
| CP1.1.1c | Identify characteristics of high-level and low-level languages. |
| CP1.1.2a | Use an IDE to develop, compile, and run programs. |
| CP1.1.2b | Understand the difference between syntax, run-time, and logic errors. |
| CP1.1.2c | Understand the process of debugging (finding and fixing errors), including strategies such as guess and check, deactivating sections of code, looking for typos or incorrect syntax, making the problem smaller, asking a team member for help, printing or watching variable values, using a debugging tool, and considering what changed since the code last worked. |
| CP1.2.1a | Demonstrate proper use of white space (between lines and indentation). |
| CP1.2.1b | Use appropriate naming conventions for identifiers (variables, methods, functions, and file names). |
| CP1.2.1c | Understand the appropriate use of constants versus variables in programming style. |
| CP1.2.1d | Construct identifiers with meaningful format; camelCase and underscore. |
| CP1.2.1e | Implement appropriate output formatting (decimal places, dollar signs, and correct placement of variable data in a sentence). |
| CP1.2.2a | Identify the members of a computer programming/software engineering team: team leader, analyst, senior developer, junior developer, and client/subject matter expert. |
| CP1.2.2b | Project Analysis: Identify specifications and understand requirements to create a solution to a problem. |
| CP1.2.2c | Planning/Design: Design an algorithm to solve the problem using appropriate documentation (single, multi-line, and/or documentation comments, flowcharts, etc.). |
| CP1.2.2c.i | Define an algorithm. |
| CP1.2.2c.ii | Break the problem down into its subcomponents using top-down design. |
| CP1.2.2d | Implementation: Write the code, with comments, to implement the algorithm. |
| CP1.2.2e | Testing: Test program for verification of errors and proper functionality. |
| CP1.2.2f | Release and Maintenance: Release the solution and provide updates when necessary. |
| CP1.3.1a | Understand the difference between input and output. |
| CP1.3.1b | Understand there are different types of input (file, keyboard, mouse, microphone). |
| CP1.3.1c | Understand there are different types of output (speakers, monitor, printer, file). |
| CP1.3.1d | Write a program that receives input from a keyboard and produces output to the display. |
| CP1.3.2a | Differentiate between primitive data types (boolean, integer, float, and string). |
| CP1.3.2b | Identify proper use of primitive data types (when to use one versus another). |
| CP1.3.2c | Declare a variable and assign it a value using the assignment operator. |
| CP1.3.2d | Understand the difference between declaring and initializing a variable. |
| CP1.3.3a | Use basic arithmetic operators (modulus [MOD or %], multiplication, integer division, float division, addition, subtraction). |
| CP1.3.3b | Use basic comparison operators (<, >, ==, >=, <=). |
| CP1.3.3c | Use basic assignment operator (=). |
| CP1.3.3d | Understand order of operations for all operators (Parenthesis, Exponent, Multiplication, Division, Modulus [MOD or %], Addition, Subtraction). |
| CP1.3.3e | Use basic logical operators (AND, OR, NOT). |
| CP1.3.3f | Use operands in conjunction with arithmetic, relational, and logical operators. |
| CP1.3.4a | Understand how operators and operands are used to form expressions. |
| CP1.3.4b | Identify and implement syntactically correct expressions (possible examples: A OR B, 5==6, x != 3.142, x = 4, y + 7). |
| CP1.3.5a | Understand and properly define scope, local variable, and global variable. |
| CP1.3.5b | Understand what functions are and what they are used for (readability, reusability, modularity, abstraction). |
| CP1.3.5c | Understand the difference between a built-in function and user defined function. |
| CP1.3.5d | Utilize built-in functions. |
| CP1.3.5e | Understand that functions may or may not require arguments (input(s)). |
| CP1.3.5f | Understand that functions may or may not return value(s) (output(s)). |
| CP1.3.6 | Understand and implement complex data types. |
| CP1.3.6a | Understand the difference between simple and complex / primitive and reference data types. |
| CP1.3.6b | Declare a string variable in a program. |
| CP1.4.1 | Understand and implement IF statements in a program. |
| CP1.4.1a | Understand when to use an IF statement and demonstrate correct use of an IF statement. |
| CP1.4.1b | Understand when to use an ELSE-IF statement and demonstrate correct use of ELSE-IF statements. |
| CP1.4.1c | Understand when to use an ELSE statement and demonstrate proper use of an ELSE statement. |
| CP1.4.1d | Understand when to use a nested IF statement and demonstrate proper use of a nested IF statement. |
| CP1.4.1e | Read a program and know which IF statement will execute during a given situation and which will be ignored. |
| CP1.4.2 | Understand and implement basic loop structures in programs. |
| CP1.4.2a | Understand when to use a for-loop (when you know the number of times you are going to iterate) and demonstrate proper use of for-loops. |
| CP1.4.2a.i | Understand the three components of a for-loop: an initial value (i = 0), a condition (i < 7), and an update expression (i = i + 1). |
| CP1.4.2b | Understand when to use a while-loop (when you want to stop iterating when a boolean condition is no longer true) and demonstrate proper use of a while-loop. |
| CP1.4.2c | Understand when to use nested loops and demonstrate proper use of nested loops. |
| CP1.4.2d | Identify the various ways that loops can end (break, met condition, condition fail). |
| CP1.4.2e | Design loops so they iterate the correct number of times. |
| CP1.4.2f | Understand what causes an infinite loop. |
| CP1.4.3 | Understand and implement expressions and complex conditions in control structures. |
| CP1.4.3a | Create expressions using relational operators (example: a > 6, x != 7, y > 4). |
| CP1.4.3b | Form complex conditions using logical operators (example: a > 6 AND x != 7 OR y > 4). |
| CP1.4.3c | Incorporate complex conditions in loop structures (example: while a player's health is greater than 50 and player is not dead). |
| CP1.4.3d | Understand a Truth Table. |
| CP1.5.1 | Investigate career opportunities, trends, and requirements related to computer programming/software engineering careers. |
| CP1.5.1a | Understand the role each team member plays in a computer programming/software engineering team: team leader, analyst, senior developer, junior developer, and client/subject matter expert. |
| CP1.5.1b | Describe work performed by each member of the computer programming/software engineering team. |
| CP1.5.1c | Investigate trends and traits associated with computer programming/software engineering careers (creativity, technical, leadership, collaborative, problem solving, design, etc.). |
| CP1.5.1d | Discuss related career pathways. |
| CP1.6.1 | Develop the knowledge and skills to use Artificial Intelligence responsibly and effectively in CTE courses (USBE Board statement on Artificial Intelligence). |
| CP1.6.1a | Practice responsible use of AI, which includes recognizing when to use AI, using appropriate prompts to produce desired output, determining accuracy of information, understanding how AI has contributed to a product, and communicating that clearly. |
| CP1.6.1b | Understand the importance of transparency and documentation, both in their own use of AI tools and in verifying the authenticity of others' work. |
| CP1.6.1c | Understand how AI influences all work, including the evolving boundaries and tightening restrictions around intellectual property and copyright. |
| CP1.6.2 | Understand current ethical issues dealing specifically with computer programming and information in society. |
| CP1.6.2a | Explain the impact software can have on society (i.e., privacy, piracy, copyright laws, ease of use, etc.). |
| CP1.6.2b | Explain the ethical reasons for creating reliable and robust software. |
| CP1.6.2c | Describe how computer-controlled automation affects a workplace and society. |
| CP1.6.3 | Understand the ethical use of AI in coding and how it impacts the programming field. |
| CP1.6.3a | Practice academic integrity and attribution: know when AI use is appropriate, explain why you should not rely only on AI to write your code, and understand disclosing when you use AI. |
| CP1.6.3b | Balance understanding vs. over-reliance on AI: verify and debug AI-generated code, review the code to make sure there are no coding errors, and understand that AI tools can be helpful for debugging but you should double-check their suggestions using your own programming knowledge. |
| CP1.6.3c | Understand the ethical implications of AI-written software. |