Below are lists of the Computational Thinking Practices, Big Ideas, and Course Content in Unit 6. For more information on the Unit 6 Standards, please refer to the 2020 Course and Exam Description document.
Practice 2
Skill 2.B: Implement and apply an algorithm.
Practice 4
Skill 4.B: Determine the result of code segments.
Big Idea 1: Creative Development (CRD)
Big Idea 2: Data (DAT)
Big Idea 3: Algorithms and Programming (AAP)
a. Develop data abstraction using lists to store multiple elements.
b. Explain how the use of data abstraction manages complexity in program code.
AAP-1.D.1: Data abstraction provides a separation between the abstract properties of a data type and the concrete details of its representation.
AAP-1.D.2: Data abstractions manage complexity in programs by giving a collection of data a name without referencing the specific details of the representation.
AAP-1.D.3: Data abstractions can be created using lists.
AAP-1.D.4: Developing a data abstraction to implement in a program can result in a program that is easier to develop and maintain.
AAP-1.D.5: Data abstractions often contain different types of elements.
AAP-1.D.6: The use of lists allows multiple related items to be treated as a single value. Lists are referred to by different names, such as array, depending on the programming language.
DAT-1.A.5: Abstraction is the process of reducing complexity by focusing on the main idea. By hiding details irrelevant to the question at hand and bringing together related and useful details, abstraction reduces complexity and allows one to focus on the idea.
AAP-1.D.7: The exam reference sheet provides the notation [value1, value2, value3, …] to create a list with those values as the first, second, third, and so on items. For example,
● aList ← [value1, value2, value3,...] creates a new list that contains the values value1, value2, value3, and … at indices 1, 2, 3, and … respectively and assigns it to aList.
● aList ß [] creates a new empty list and assigns it to aList.
● aList ß bList assigns a copy of the list bList to the list aList. For example, if bList contains [20, 40, 60], then aList will also contain [20, 40, 60] after the assignment.
AAP-1.D.8: The exam reference sheet describes a list structure whose index values are 1 through the number of elements in the list, inclusive. For all list operations, if a list index is less than 1 or greater than the length of the list, an error message is produced and the program will terminate.
AAP-2.N.2: List procedures are implemented in accordance with the syntax rules of the programming language.
AAP-2.E: Students will write and evaluate expressions using relational operators.
AAP-3.A: Students will use abstraction to manage complexity in a program.
AAP-3.A: Students will determine the result of code segments.
CRD-2.C: Students will identify inputs to a program.
CRD-2.C.5: Students will learn how to execute program statements through even triggers rather than through the sequential flow of control.
CRD-2.F.3: Some ways investigation can be performed are as follows:
collecting data through surveys
user testing
interviews
direct observations
AAP-2.E.2: The exam reference sheet provides the following relational operators: =, ≠, >, <, ≥, and ≤.
● a = b
● a ≠ b
● a > b
● a < b
● a ≥ b
● a ≤ b
These are used to test the relationship between two variables, expressions, or values. A comparison using a relational operator evaluates to a Boolean value. For example, a = b evaluates to true if a and b are equal; otherwise, it evaluates to false.
AAP-2.F.1: The exam reference sheet provides the logical operators NOT, AND, and OR, which evaluate to a Boolean value.
AAP-2.F.2: The exam reference sheet provides the NOT condition, which evaluates to true if condition is false; otherwise it evaluates to false.
AAP-2.F.3: The exam reference sheet provides condition1 AND condition2, which evaluates to true if both condition1 and condition2 are true; otherwise it evaluates to false.
AAP-2.F.4: The exam reference sheet provides condition1 OR condition2, which evaluates to true if condition1 is true or if condition2 is true or if both condition1 and condition2 are true; otherwise it evaluates to false.
AAP-2.F.5: The operand for a logical operator is either a Boolean expression or a single Boolean value.
AAP-4.A.1: A problem is a general description of a task that can (or cannot) be solved algorithmically. An instance of a problem also includes specific input. For example, sorting is a problem; sorting the list (2,3,1,7) is an instance of the problem.
AAP-4.A.2: A decision problem is a problem with a yes/no answer (e.g., is there a path from A to B?). An optimization problem is a problem with the goal of finding the "best" solution among many (e.g., what is the shortest path from A to B?).
AAP-4.A.3: Efficiency is an estimation of the amount of computational resources used by an algorithm. Efficiency is typically expressed as a function of the size of the input.
AAP-4.A.4: An algorithm’s efficiency is determined through formal or mathematical reasoning.
AAP-4.A.5: An algorithm's efficiency can be informally measured by determining the number of times a statement or group of statements executes.
AAP-4.A.6: Different correct algorithms for the same problem can have different efficiencies.
AAP-4.A.7: Algorithms with a polynomial efficiency or slower (constant, linear, square, cube, etc.) are said to run in a reasonable amount of time. Algorithms with exponential or factorial efficiencies are examples of algorithms that run in an unreasonable amount of time.
AAP-4.A.8: Some problems cannot be solved in a reasonable amount of time because there is no efficient algorithm for solving them. In these cases, approximate solutions are sought.
AAP-4.B.1: A decidable problem is a decision problem for which an algorithm can be written to produce a correct output for all inputs (e.g., “Is the number even?”).
AAP-4.B.2: An undecidable problem is one for which no algorithm can be constructed that is always capable of providing a correct yes-or-no answer.
AAP-4.B.3: An undecidable problem may have some instances that have an algorithmic solution, but there is no algorithmic solution that could solve all instances of the problem.
CRD-2.F.4: Program requirements describe how a program functions and may include a description of user interactions that a program must provide.
a. Develop data abstraction using lists to store multiple elements.
b. Explain how the use of data abstraction manages complexity in program code.
AAP-1.D.1: Data abstraction provides a separation between the abstract properties of a data type and the concrete details of its representation.
AAP-1.D.2: Data abstractions manage complexity in programs by giving a collection of data a name without referencing the specific details of the representation.
AAP-1.D.3: Data abstractions can be created using lists.
AAP-1.D.4: Developing a data abstraction to implement in a program can result in a program that is easier to develop and maintain.
AAP-1.D.5: Data abstractions often contain different types of elements.
AAP-1.D.6: The use of lists allows multiple related items to be treated as a single value. Lists are referred to by different names, such as array, depending on the programming language.
AAP-1.D.7: The exam reference sheet provides the notation [value1, value2, value3, …] to create a list with those values as the first, second, third, and so on items. For example,
● aList ← [value1, value2, value3,...] creates a new list that contains the values value1, value2, value3, and … at indices 1, 2, 3, and … respectively and assigns it to aList.
● aList ß [] creates a new empty list and assigns it to aList.
● aList ß bList assigns a copy of the list bList to the list aList. For example, if bList contains [20, 40, 60], then aList will also contain [20, 40, 60] after the assignment.
AAP-1.D.8: The exam reference sheet describes a list structure whose index values are 1 through the number of elements in the list, inclusive. For all list operations, if a list index is less than 1 or greater than the length of the list, an error message is produced and the program will terminate.
AAP-2.E: For relationships between two variables, expressions or values:
Write expressions using relational operators.
Evaluate expressions that use relational operators.
AAP-2.E.1: A Boolean value is either true or false.
AAP-2.E.2: The exam reference sheet provides the following relational operators: =, ≠, >, <, ≥, and ≤.
● a = b
● a ≠ b
● a > b
● a < b
● a ≥ b
● a ≤ b
These are used to test the relationship between two variables, expressions, or values. A comparison using a relational operator evaluates to a Boolean value. For example, a = b evaluates to true if a and b are equal; otherwise, it evaluates to false.
AAP-2.F: For relationships between Boolean values:
Write expressions using logical operators.
Evaluate expressions that use logic operators.
AAP-2.F.1: The exam reference sheet provides the logical operators NOT, AND, and OR, which evaluate to a Boolean value.
AAP-2.F.2: The exam reference sheet provides the NOT condition, which evaluates to true if condition is false; otherwise it evaluates to false.
AAP-2.F.3: The exam reference sheet provides condition1 AND condition2, which evaluates to true if both condition1 and condition2 are true; otherwise it evaluates to false.
AAP-2.F.4: The exam reference sheet provides condition1 OR condition2, which evaluates to true if condition1 is true or if condition2 is true or if both condition1 and condition2 are true; otherwise it evaluates to false.
AAP-2.F.5: The operand for a logical operator is either a Boolean expression or a single Boolean value.
AAP-2.N: For list operations:
Write expressions that use list indexing and list procedures.
Evaluate expressions that use list indexing and list procedures.
AAP-2.N.2: List procedures are implemented in accordance with the syntax rules of the programming language.
AAP-3.A: For procedures:
Write statements to call procedures.
Determine the result or effect of a procedure call.
AAP-3.E: For generating random values:
Write expressions to generate possible values.
Evaluate expressions to determine possible results.
AAP-4.A.1: A problem is a general description of a task that can (or cannot) be solved algorithmically. An instance of a problem also includes specific input. For example, sorting is a problem; sorting the list (2,3,1,7) is an instance of the problem.
AAP-4.A.2: A decision problem is a problem with a yes/no answer (e.g., is there a path from A to B?). An optimization problem is a problem with the goal of finding the "best" solution among many (e.g., what is the shortest path from A to B?).
AAP-4.A.3: Efficiency is an estimation of the amount of computational resources used by an algorithm. Efficiency is typically expressed as a function of the size of the input.
AAP-4.A.4: An algorithm’s efficiency is determined through formal or mathematical reasoning.
AAP-4.A.5: An algorithm's efficiency can be informally measured by determining the number of times a statement or group of statements executes.
AAP-4.A.6: Different correct algorithms for the same problem can have different efficiencies.
AAP-4.A.7: Algorithms with a polynomial efficiency or slower (constant, linear, square, cube, etc.) are said to run in a reasonable amount of time. Algorithms with exponential or factorial efficiencies are examples of algorithms that run in an unreasonable amount of time.
AAP-4.A.8: Some problems cannot be solved in a reasonable amount of time because there is no efficient algorithm for solving them. In these cases, approximate solutions are sought.
AAP-4.B.1: A decidable problem is a decision problem for which an algorithm can be written to produce a correct output for all inputs (e.g., “Is the number even?”).
AAP-4.B.2: An undecidable problem is one for which no algorithm can be constructed that is always capable of providing a correct yes-or-no answer.
AAP-4.B.3: An undecidable problem may have some instances that have an algorithmic solution, but there is no algorithmic solution that could solve all instances of the problem.
DAT-1.A.5: Abstraction is the process of reducing complexity by focusing on the main idea. By hiding details irrelevant to the question at hand and bringing together related and useful details, abstraction reduces complexity and allows one to focus on the idea.
CRD-2.C: Students will identify inputs to a program.
CRD-2.C.5: Students will learn how to execute program statements through even triggers rather than through the sequential flow of control.
CRD-2.F.3: Some ways investigation can be performed are as follows:
collecting data through surveys
user testing
interviews
direct observations
CRD-2.F.4: Program requirements describe how a program functions and may include a description of user interactions that a program must provide.