Lesson Plan: Chapter 13
Connecting to CSTA Standards
|6-8||Algorithms & Programming||Algorithms||2-AP-10||Developing and Using Abstractions: 4.4, 4.1|
|6-8||Algorithms & Programming||Program Development||2-AP-16||Developing and Using Abstractions, Creating Computational Artifacts, Communicating About Computing: 4.2, 5.2, 7.3|
Use flowcharts and/or pseudocode to address complex problems as algorithms.
Complex problems are problems that would be difficult for students to solve computationally. Students should use pseudocode and/or flowcharts to organize and sequence an algorithm that addresses a complex problem, even though they may not actually program the solutions. For example, students might express an algorithm that produces a recommendation for purchasing sneakers based on inputs such as size, colors, brand, comfort, and cost. Testing the algorithm with a wide range of inputs and users allows students to refine their recommendation algorithm and to identify other inputs they may have initially excluded.
Incorporate existing code, media, and libraries into original programs, and give attribution.
Building on the work of others enables students to produce more interesting and powerful creations. Students should use portions of code, algorithms, and/or digital media in their own programs and websites. At this level, they may also import libraries and connect to web application program interfaces (APIs). For example, when creating a side-scrolling game, students may incorporate portions of code that create a realistic jump movement from another person's game, and they may also import Creative Commons-licensed images to use in the background. Students should give attribution to the original creators to acknowledge their contributions.
In this chapter, students think about two important aspects of programming: visualizing problems using tools such as flowcharts, and building on the work of others with attribution. They move from their work with Micro:bit and MakeCode Arcade into some more traditional programming environments, dabbling in front-end development with A-Frame. By using a flowchart to organize their thoughts around how friends and enemies behave in a gamified forest environment, they think about the questions that have to be asked and answered when developing a software system. Furthermore, they start to build out the world that they envision from their flowchart work, using A-Frame, an online tool to build 3D worlds.
|Lower level students||Higher level students|
|Can create a flowchart, explain how it reflects and guides their thinking around the various interactions that visitors can have with the protected, petrified grove. They can also start building part of their vision in A-Frame, following the project recipe.||Can expand their flowchart to encompass a larger aspect of this forest world, and build more interaction opportunities in the forest world.|
Using flowcharts to map out interactions is a useful skill to develop as a software engineer, before ever writing any code. It's also a useful skill when you need to make any decision with multiple inputs and outputs. Ask students to create flowcharts to describe their weekend routine as a family, or how they decide which club to join at their school. What are all the things that must be considered? Can they map them in a flowchart format using Google Drawings?
- A-Frame: "A-Frame is an open-source web framework for building virtual reality experiences". Visit the web site at A-Frame.io.
- Algorithm: A sequence of steps used to solve a given problem. They can be used to make simple calculations or very complicated mathematical processing.
- CDN: A Content delivery network, used to help avoid the bottlenecks created by large files streamed over the internet.
- Creative Commons license: A public license used for software that is used when the author wants to be able to share their work freely for non-commercial uses over the internet.
- Flowchart: A diagram representing a process or workflow, used to help visualize tasks needed to accomplish a task.
- 3D: 3 dimensions, a geometrical depiction of an object from the perspective of its width, height, and depth (as opposed to the 2D representation of an object's width and height only).
Students can be assessed on their grasp of using flowcharts to solve algorithmic problems. Ask them to pick a daily task and create a flowchart about it.
|Research how algorithms are mapped in flowchart form. Give three examples and explain what they describe.||Write a summary of three famous algorithms (try sorting algorithms) and explain how they are used.|
Q1: You use A-Frame to build this type of scene on the web:
Q2: A CDN is used to:
a. Cause audio to play in your apps
b. Enhance security in your apps
c. Import external assets into your applications
Q3: Flowcharts can be described as:
a. A chart that shows all the elements of an application
b. A way to describe the flow of an application
c. A visualization of decision-making processes
- The Wikipedia article on Algorithms includes a handy flowchart of a basic Euclidean algorithm.
- Algorithm Visualizer
- Article on Visualizing Algorithms
Assignment and Rubric: Pave the Way
Modify the flowchart you created earlier to add more types of behaviors that might enable or disable access to a protected area. It’s your world, so you can change how you want it to work!
Think about the creatures who might inhabit this world and decide whether they might be classified as friend or enemy. How will you know? What patterns will you observe in their behavior to determine their objective? Which ones will protect the petrified wood, and which will try to steal it or inadvertently damage it? Build a flowchart to map out the behaviors of several types of protectors and several potential marauders. You probably guessed it, but your next steps will be to build a game within this world to protect the forest from invaders.
|The student maps a flowchart with at least 5 nodes and 5 predators described||The student maps a flowchart with at 3 nodes and 3 predators described||The flow chart is incomplete|
*tip: prior to saving as a PDF, select the 'light' mode at the top using the 'sun' icon.