Define a simple function that represents a more complex task/problem and can be reused to solve similar tasks/problems.
Use logical reasoning to predict outputs given varying inputs.
Individually and collaboratively, decompose a problem and create a sub-solution for each of its parts (e.g., video game, robot obstacle course, making dinner).
Individually and collaboratively compare algorithms to solve a problem, based on a given criteria (e.g., time, resource, accessibility).
Create a program, individually and collaboratively, that implements an algorithm to achieve a given goal.
Implement problem solutions using a programming language, including all of the following: looping behavior, conditional statements, expressions, variables, and functions.
Understand hardware and software components of a computing device; troubleshoot hardware and software problems.
Differentiate tasks/problems best solved by computing systems or by humans.
Understand that network components carry out specific functions to connect computing devices, people, and services.
Create a new representation, define functions, and use decomposition.
Write, debug, and analyze advanced algorithms and basic programs.
Understand how computing devices represent and manipulate information.
Describe current events and emerging technologies in computing and the effects they may have on education, the workplace, individuals, communities, and global society.
Identify and describe the use of sensors, actuators, and control systems in an embodied system (e.g., a robot, an e-textile, installation art, smart room).
Use a variety of computing devices [e.g., probes, sensors, handheld devices, Global Positioning System (GPS)] to individually and collaboratively collect, analyze, and present information for content-related problems.
Identify steps involved in diagnosing and solving routine hardware and software problems (e.g., power, connections, application window or toolbar, cables, ports, network resources, video, sound) that occur during everyday computer use.
Explain why some problems can be solved more easily by computers or humans based on a general understanding of types of tasks at which each excels.
Describe how humans and machines interact to solve problems that cannot be solved by either alone (e.g., “big data” experiments that involve drawing conclusions by analyzing vast amounts of data).
Define a simple function that represents a more complex task/problem and can be reused to solve similar tasks/problems. \
Use decomposition to define and apply a hierarchical classification scheme to a complex system, such as the human body, animal classification, or in computing.
Design solutions that use repetition and conditionals.
Use logical reasoning to predict outputs given varying inputs.
Individually and collaboratively, decompose a problem and create a sub-solution for each of its parts (e.g., video game, robot obstacle course, making dinner).
Recognize that more than one algorithm can solve a given problem.
Recognize that boundaries need to be taken into account for an algorithm to produce correct results.
Use functions to hide the details in a program.
Trace programs step-by-step in order to predict their behavior.
Use an iterative approach in development and debugging to understand the dimensions of a problem clearly.