Experience: 2nd year, 1st quarter
Practice: Developing and Using Abstractions, Creating computational artifacts, Testing and refining computational artifacts, and Communicating about computing
Concept: Algorithms, Control, Modularity, and Program Development
Overview and Purpose
Coders use a variety of blocks and sprites to animate a mini research project about creatures that fly. The purpose of this project is to reinforce the concept of parallelism by simultaneously triggering two or more algorithms that simulate flight.
Objectives and Standards
- I will trigger two or more algorithms when a sprite is tapped.
- I will learn about different creatures that can fly.
- How can we trigger two or more algorithms when a sprite is tapped?
- What can we learn about different creatures that can fly?
- I will create an interactive diorama that simulates flying in multiple sprites.
- How can we create an interactive diorama that simulates flying in multiple sprites?
1A-AP-10 Develop programs with sequences and simple loops, to express ideas or address a problem.
- Programming is used as a tool to create products that reflect a wide range of interests. Control structures specify the order in which instructions are executed within a program. Sequences are the order of instructions in a program. For example, if dialogue is not sequenced correctly when programming a simple animated story, the story will not make sense. If the commands to program a robot are not in the correct order, the robot will not complete the task desired. Loops allow for the repetition of a sequence of code multiple times. For example, in a program to show the life cycle of a butterfly, a loop could be combined with move commands to allow continual but controlled movement of the character. (source)
1A-AP-12 Develop plans that describe a program’s sequence of events, goals, and expected outcomes.
- Creating a plan for what a program will do clarifies the steps that will be needed to create a program and can be used to check if a program is correct. Students could create a planning document, such as a story map, a storyboard, or a sequential graphic organizer, to illustrate what their program will do. Students at this stage may complete the planning process with help from their teachers. (source)
1A-AP-08 Model daily processes by creating and following algorithms (sets of step-by-step instructions) to complete tasks.
- Composition is the combination of smaller tasks into more complex tasks. Students could create and follow algorithms for making simple foods, brushing their teeth, getting ready for school, participating in clean-up time. (source)
1A-AP-11 Decompose (break down) the steps needed to solve a problem into a precise sequence of instructions.
- Decomposition is the act of breaking down tasks into simpler tasks. Students could break down the steps needed to make a peanut butter and jelly sandwich, to brush their teeth, to draw a shape, to move a character across the screen, or to solve a level of a coding app. (source)
1A-AP-14 Debug (identify and fix) errors in an algorithm or program that includes sequences and simple loops.
- Algorithms or programs may not always work correctly. Students should be able to use various strategies, such as changing the sequence of the steps, following the algorithm in a step-by-step manner, or trial and error to fix problems in algorithms and programs. (source)
1A-AP-15 Using correct terminology, describe steps taken and choices made during the iterative process of program development.
- At this stage, students should be able to talk or write about the goals and expected outcomes of the programs they create and the choices that they made when creating programs. This could be done using coding journals, discussions with a teacher, class presentations, or blogs. (source)
Practices and Concepts
Practice 4: Developing and Using Abstractions
- "Abstractions are formed by identifying patterns and extracting common features from specific examples to create generalizations. Using generalized solutions and parts of solutions designed for broad reuse simplifies the development process by managing complexity." (p.78)
- P4.4. Model phenomena and processes and simulate systems to understand and evaluate potential outcomes. (p.79)
Practice 5: Creating computational artifacts
- "The process of developing computational artifacts embraces both creative expression and the exploration of ideas to create prototypes and solve computational problems. Students create artifacts that are personally relevant or beneficial to their community and beyond. Computational artifacts can be created by combining and modifying existing artifacts or by developing new artifacts. Examples of computational artifacts include programs, simulations, visualizations, digital animations, robotic systems, and apps." (p.80)
- P5.1. Plan the development of a computational artifact using an iterative process that includes reflection on and modification of the plan, taking into account key features, time and resource constraints, and user expectations. (p.80)
- P5.2. Create a computational artifact for practical intent, personal expression, or to address a societal issue. (p.80)
Practice 6: Testing and refining computational artifacts
- "Testing and refinement is the deliberate and iterative process of improving a computational artifact. This process includes debugging (identifying and fixing errors) and comparing actual outcomes to intended outcomes. Students also respond to the changing needs and expectations of end users and improve the performance, reliability, usability, and accessibility of artifacts." (p.81)
- P6.1. Systematically test computational artifacts by considering all scenarios and using test cases." (p.81)
- P6.2. Identify and fix errors using a systematic process. (p.81)
Practice 7: Communicating about computing
- "Communication involves personal expression and exchanging ideas with others. In computer science, students communicate with diverse audiences about the use and effects of computation and the appropriateness of computational choices. Students write clear comments, document their work, and communicate their ideas through multiple forms of media. Clear communication includes using precise language and carefully considering possible audiences." (p.82)
- P7.2. Describe, justify, and document computational processes and solutions using appropriate terminology consistent with the intended audience and purpose. (p.82)
- "Control structures specify the order in which instructions are executed within an algorithm or program. In early grades, students learn about sequential execution and simple control structures. As they progress, students expand their understanding to combinations of structures that support complex execution." (p.91)
- Grade 2 - "Computers follow precise sequences of instructions that automate tasks. Program execution can also be nonsequential by repeating patterns of instructions and using events to initiate instructions." (p.96)
- "Programs are developed through a design process that is often repeated until the programmer is satisfied with the solution. In early grades, students learn how and why people develop programs. As they progress, students learn about the tradeoffs in program design associated with complex decisions involving user constraints, efficiency, ethics, and testing." (p.91)
- Grade 2 - "People develop programs collaboratively and for a purpose, such as expressing ideas or addressing problems." (p.97)
- "Algorithms are designed to be carried out by both humans and computers. In early grades, students learn about age-appropriate algorithms from the real world. As they progress, students learn about the development, combination, and decomposition of algorithms, as well as the evaluation of competing algorithms." (p.91)
- Grade 2 - People follow and create processes as part of daily life. Many of these processes can be expressed as algorithms that computers can follow." (p.96)
- "Modularity involves breaking down tasks into simpler tasks and combining simple tasks to create something more complex. In early grades, students learn that algorithms and programs can be designed by breaking tasks into smaller parts and recombining existing solutions. As they progress, students learn about recognizing patterns to make use of general, reusable solutions for commonly occurring scenarios and clearly describing tasks in ways that are widely usable." (p.91)
- Grade 2 - "Complex tasks can be broken down into simpler instructions, some of which can be broken down even further. Likewise, instructions can be combined to accomplish complex tasks." (p.97)
- The process of finding and correcting errors (bugs) in programs. (source)
- To find and remove errors (bugs) from a software program. Bugs occur in programs when a line of code or an instruction conflicts with other elements of the code. (source)
- An action or occurrence detected by a program. Events can be user actions, such as clicking a mouse button or pressing a key, or system occurrences, such as running out of memory. Most modern applications, particularly those that run in Macintosh and Windows environments, are said to be event-driven,because they are designed to respond to events. (source)
- The computational concept of one thing causing another thing to happen. (source)
- Any identifiable occurrence that has significance for system hardware or software. User-generated events include keystrokes and mouse clicks; system-generated events include program loading and errors. (source)
- A programming structure that repeats a sequence of instructions as long as a specific condition is true. (source)
- In a loop structure, the program asks a question, and if the answer requires an action, it is performed and the original question is asked again until the answer is such that the action is no longer required. For example, a program written to compute a company’s weekly payroll for each individual employee will begin by computing the wages of one employee and continue performing that action in a loop until there are no more employee wages to be computed, and only then will the program move on to its next action. Each pass through the loop is called an iteration. (source)
- The computational concept of running the same sequence multiple times. (source)
- Refers to processes that occur simultaneously. Printers and other devices are said to be either parallel or serial. Parallel means the device is capable of receiving more than one bit at a time (that is, it receives several bits in parallel). Most modern printers are parallel. (source)
- The computational concept of making things happen at the same time. (source)
- Imitation of the operation of a real-world process or system. (source)
- The process of imitating a real phenomenon with a set of mathematical formulas. Advanced computer programs can simulate weather conditions, chemical reactions, atomic reactions, even biological processes. In theory, any phenomena that can be reduced to mathematical data and equations can be simulated on a computer. In practice, however, simulation is extremely difficult because most natural phenomena are subject to an almost infinite number of influences. One of the tricks to developing useful simulations, therefore, is to determine which are the most important factors. (source)
More vocabulary words from CSTA
- Potential subjects: History, language arts, media arts, science
- Example(s): This project could connect with science classes as it models an environment or system. This project could also connect with language arts standards if coders are writing out interesting facts rather than recording themselves speaking the facts. If modified to be a mini research project about historical creatures that can fly, this project could integrate with both history and science. Another option for integrating with language arts is to explore fictional creatures that can fly. Click here to see other examples and share your own ideas on our subforum dedicated to integrating projects.
- Scientists and researchers often create models or simulations of environments in order to better understand the processes and systems at play. In this project we are creating a fictional model or simulation. If this project is expanded to include historical or fictional creatures that can fly, this project can integrate with history and language arts. Click here to visit a website dedicated to exploring potential careers through coding.