Instruction Guide: Advanced Flow Charts

This lesson is a follow up to the initial Introduction to Flow Charts. The goal of the lesson is to introduce the idea of a predefined process (or subroutine in Computer Science language). Do do this, the lesson starts with a review of some different Decision block structures (these were covered in the first lesson, however students have only recently had the opportunity to take advantage of some of these) and then uses the Sentry Challenge II as an example to develop the Subprocess idea. As a result, the first several slides may be useful to help students who get bogged down in the Sentry Challenge, Phase 2.

Walk students through the Advanced Flow Charts PowerPoint presentaion, noting the following:


Slide 1

This slide is a review from the earlier Flow Chart lesson and shows several different Decision block structures. At the time students first saw this, they had only used the "Wait-for" style of decision. Since then, they have had reason to use branching structures and looped branches, so these may take on better meaning this time through.

Slide 2

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 NXT Video Trainer 2: Obstacle Detection 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 as 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.

Some students may volunteer that this is flow chart for one segment of the Sentry Challenge Phase 2. The following slide helps make this point.

Slide 3

The first section of the flow chart reveals two instances of the previous flow chart 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 flow chart performs obstacle detection over two rectangular laps, in other words, Sentry Challenge Phase 2.

  • Point out that this flow chart is rather large, very busy and somewhat hard to read/follow
  • Ask students what the flow chart would look like if the Sentry Challenge 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 4

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 NXT-G, which students may have stumbled across and will be covered in in an advanced lesson. The following slide will illustrate this idea.

Slide 5

This slide starts by repeating the flow chart for the obstacle detection over a segment, followed by a turn program. We now give this flow chart 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 flow chart for the Sentry Challenge Phase 2 much easier: only three blocks between Start and End (compared to the screnn-full in Slide 3). 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 flow chart 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 6

This optional final slide shows students where the predefined process block can be found in LucidChart.

LucidChart.com 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.

Assessment

The Advanced Fow Charts Task Assignment Sheet let students practice these new concepts on an everyday example.

Note: there is no separate NXT-G-based Task Assignment, since students may apply these concepts to NXT-G examples on any subsequent programming lesson challenge.