Make a list of sub-problems to consider while addressing a larger problem.
Understand the connections between computer science and other fields.
Identify ways that teamwork and collaboration can support problem solving and innovation.
Use developmentally appropriate multimedia resources (e.g., interactive books and educational software) to support learning across the curriculum.
Construct a set of statements to be acted out to accomplish a simple task (e.g., turtle instructions).
Use technology tools (e.g., multimedia and text authoring, presentation, web tools, digital cameras and scanners) for individual and collaborative writing, communication and publishing activities.
Construct a program as a set of step-by-step instructions to be acted out (e.g., make peanut butter and jelly sandwich activity).
Identify factors that distinguish humans from machines.
Collaborate with peers, experts and others using collaborative practices such as pair programming, working in project teams and participating in-group active learning activities.
Use a variety of multimedia tools and peripherals to support personal productivity and learning throughout the curriculum.
Implement problem solutions using a programming language, including: looping behavior, conditional statements, logic, expressions, variables and functions.
Demonstrate dispositions amenable to open-ended problem solving and programming (e.g., comfort with complexity, persistence, brainstorming, adaptability, patience, propensity to tinker, creativity, accepting challenge).
Recognize that computers are devices that execute programs.
Use developmentally appropriate, accurate terminology when communicating about technology.
Describe what distinguishes humans from machines, focusing on human intelligence versus machine intelligence and ways we can communicate.
Use predefined functions and parameters, classes and methods to divide a complex problem into simpler parts.
Describe a software development process used to solve software problems (e.g., design, coding, testing, verification).
Explain how sequence, selection, iteration, and recursion are building blocks of algorithms.
Describe a variety of programming languages available to solve problems and develop systems.
Compare and contrast simple data structures and their uses (e.g., arrays and lists).
Discuss the impact of modifications on the functionality of application programs.
Use logical reasoning to explain how some simple algorithms work and to detect and correct errors in algorithms and programs
Understand simple Boolean logic [for example, AND, OR and NOT] and some of its uses in circuits and programming.
Understand how instructions are stored and executed within a computer system;
Develop and apply their analytic, problem-solving, design, and computational thinking skills