Instruction Guide: Advanced Flow Charts

In this Lesson we have 1 Primary Instruction Resources::

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. will give teacher a free education account which will allow you set up separate accounts for each of your teams and have them "share" their folders with you, so you can go paperless with your flowcharts.  The LucidChart basic Flowchart menu is ideal for this lesson:
  • 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).

If you are not using LucidChart, skip this slide and do a live demonstration with your tool-of-choice.

Gliffy is another on line drawing software which support Flow Charts well - including the self-feedback loop.


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.