Algorithms & Programming
An algorithm is a sequence of steps designed to accomplish a specific task. Algorithms are translated into programs, or code, to provide instructions for computing devices. Algorithms and programming control all computing systems, empowering people to communicate with the world in new ways and solve compelling problems.
By the end of grade 2
• Individuals develop and follow directions as part of daily life.
• A sequence of steps can be expressed as an algorithm that a computer can process.
• Real world information can be stored and manipulated in programs as data (e.g., numbers, words, colors, images).
• Computers follow precise sequences of steps that automate tasks.
• Complex tasks can be broken down into simpler instructions, some of which can be broken down even further.
• People work together to develop programs for a purpose, such as expressing ideas or addressing problems.
• The development of a program involves identifying a sequence of events, goals, and expected outcomes, and addressing errors (when necessary).
By the end of grade 5
Different algorithms can achieve the same result.
• Some algorithms are more appropriate for a specific use than others.
• Programming languages provide variables, which are used to store and modify data.
• A variety of control structures are used to change the flow of program execution (e.g., sequences, events, loops, conditionals).
• Programs can be broken down into smaller parts to facilitate their design, implementation, and review. Programs can also be created by incorporating smaller portions of programs that already exist.
• Individuals develop programs using an iterative process involving design, implementation, testing, and review.
By the end of grade 8
Individuals design algorithms that are reusable in many situations.
• Algorithms that are readable are easier to follow, test, and debug.
• Programmers create variables to store data values of different types and perform appropriate operations on their values.
• Control structures are selected and combined in programs to solve more complex problems.
• Programs use procedures to organize code and hide implementation details. Procedures can be repurposed in new programs. Defining parameters for procedures can generalize behavior and increase reusability.
• Individuals design and test solutions to identify problems taking into consideration the diverse needs of the users and the community.
By the end of grade 12
• Individuals evaluate and select algorithms based on performance, reusability, and ease of implementation.
• Programmers choose data structures to manage program complexity based on functionality, storage, and performance trade-offs.
• Trade-offs related to implementation, readability, and program performance are considered when selecting and combining control structures.
• Complex programs are designed as systems of interacting modules, each with a specific role, coordinating for a common overall purpose. Modules allow for better management of complex tasks.
• Complex programs are developed, tested, and analyzed by teams drawing on the members’ diverse strengths using a variety of resources, libraries, and tools.