Instruction Guide: Advanced Flow Charts
In this Lesson we have 1 Primary Instruction Resources::
- The resource is EV3 Advanced FlowCharts PowerPoint
This lesson is a follow up to the initial EV3 Introduction to FlowCharts. The goal of the lesson is to introduce the idea of a predefined process (or subroutine in Computer Science language).
Walk students through the EV3 Advanced FlowCharts PowerPoint presentaion, noting the following:
Slide 1
This slide develops the idea that "obstacle detection" is actually a looped, parallel branch structure:
- Assuming students have had at least some some exposure to the EV3 Trainer: Switches lesson, they should recognize the initial portion of the flow chart as a merged parallel branch that represents obstacle detection.
- Adding the second part of the flow chart reveals a sensor-controlled looped parallel branch which will implement obstacle detection over a prescribed distance.
- The final piece reveals a 90 degree turn at the end of the obstacle detection movement.
Slide 2
The first section of the flowchart reveals two instances of the previous flowchart place sequentially. Help students to recognize this is obstacle detection performed over an L-shape pattern. Next, reveal the loop that repeats this L-shape pattern four times. Help students to recognize this flowchart performs obstacle detection over two rectangular laps.
- Point out that this flowchart is rather large, very busy and somewhat hard to read/follow
- Ask students what the flowchart would look like if it was based on looping a rectangular pattern twice (rather the L-shaped, four time): it would be roughly twice as big/busy/hard-to-read.
Slide 3
This slide reviews the four element of flow charts covered in the first Flow Chart lesson and introduces a fifth - the predefined process. A predefined process (or subroutine in Computer Science language) is a named, set of instructions that can be used ("called" in Computer Science) by another program. This corresponds to a My Block in EV3-G, which is covered in this My Blocks Lesson. The following slide will illustrate this idea.
Slide 4
This slide starts by repeating the flowchart for the obstacle detection over a segment, followed by a turn program. We now give this flowchart a name, "Obstacle Detect" and label its flow chart with this new name
- We have now created a predefined process called "Obstacle Detect", and defined it as this series of blocks from Start to End.
This makes creating the flowchart much easier: only three blocks between Start and End (compared to the screen-full in Slide 2). This is accomplished by using (calling) our newly created "Obstacle Detect" predefined process twice - the first instance implementing obstacle detection for a "distance=L" and the second instance for a "distance=S".
-
Ask students how this flowchart would change if we used a rectangle-shape (instead of L-shape) to implement the challenge
- There would be four instance of the predefined process and only loop twice.
Slide 5
This optional final slide shows students where the predefined process block can be found in LucidChart.
- All the elements used in the lesson are on the top line of the menu, including the sub-process block
- The drag-and-drop feature provides easy alignment of blocks
- After dropping a block, labeling is one click away
- Clicking the output terminal of a block begins drawing the next arrow with a menu for what type of block to place next
- Decision blocks automatically label the Yes/No branches
The only default setting that is non-ideal is that the arrow-shape defaults to arced, whereas programming flowcharts usually use orthogonal arrows (this change in one extra click).
Gliffy is another on line drawing software which support Flow Charts well - including the self-feedback loop.
Assessment
The Advanced Fow Charts Task Assignment Sheet let students practice these new concepts on an everyday example.
Note: there is no separate EV3-G-based Task Assignment, since students may apply these concepts to EV3-G examples on any subsequent programming lesson challenge.