【初心者向け解説】プログラミング教育の第一歩「フローチャート」とは?
フローチャートは簡単
プログラミング教育で切っても切り離せないもの。それがフローチャートです。
プログラムの設計やロジカルシンキングの解説などに登場するため、理数的な印象を持っている方もいらっしゃるようですが、全く難しいものではありません。
この記事を読めば、難しいことを考えることなく、スッキリとフローチャートが理解できます。
【動画で内容をチェック!】
【フローチャートからプログラムを書いてみた!分岐処理はこちらでチェック!】
フローチャートは身近な存在
この記事をご覧になっているあなたはフローチャートとは無縁と考えていませんか?そんなことは絶対にありえません。
例えば、家を出ると真っ黒な雲が空一面を覆い尽くしていた場合、傘を持っていくか持っていかないかを考えてしまいますよね?この時点でみなさまの頭の中には立派なフローチャートが完成しています。
それではこれを図に書いてみましょう。
傘を持っていくかどうか?を考えるフローチャート
これでOKです。簡単ですよね。
もう少しだけ具体的に考えるとすれば、ひし形の部分に「天気予報の降水確率が70%以上かどうか?」などの詳細な条件を書くことが必要ですが、あくまで雰囲気を掴んでいただければ大丈夫です。
フローチャートは身近な存在です。我々が普段の生活で必ず行なっている行動は全てフローチャートで表現できます。
フローチャートの書き方
フローチャートは先程の「傘を持っていくかどうか?」といった制御(ロジック)を図形と線をつなぎ合わせて作成します。今回の記事で登場する図形はつぎの3点です。
もちろん、前述で登場したプログラムの設計などを行う場合においてはより複雑な記述は必要となりますが、複雑なだけで基本は同じです。
ロボットを制御するためのフローチャート
それでは少し視点を変えて、ロボットを制御するためのフローチャートを書いてみましょう。
ロボットの分野で言うとお掃除ロボットがわかりやすいでしょう。一定のタイミングで動き始めたあと、
- 直進
- 衝撃検知
- 方向転換
- 直進
といった動作を繰り返しています。ご自宅や家電量販店などで動いている様子を見かけたら観察してみると動きの単純さがわかると思います。
ついでにこれもフローチャートで表してみましょう(終了の基準を1時間経過したかどうかとしています)。
実際はもっと複雑な処理だと思いますが、実際に動きを見ているとこのような感じの動きを繰り返しています。
繰り返しとなりますが、フローチャートは複雑なものでも、特殊な学習やトレーニングが必要なものでもなく、我々が普段から頭の中で考えていることなのです。
また、記述の中で3種類の図形と線の組み合わせで解説をしていますが、これらも方法によって若干種類は異なりますが、基本は同じです。例えば上記の場合は以下のような種類を用いています。
- 四角:処理(何かしらの行動)
- 楕円:処理の開始および終了
- ひし形:判断
- 線:処理の流れ
これらのパーツをパズルのように組み合わせることで何かしらの目的を達成する処理が完成します。
フローチャートで作成できる処理の種類
前述のとおり、処理や判断を組み合わせることでフローチャートは簡単に作成できます。
そして作成できるフローチャートも大きくわけるとたった3種類の流れしかありません。
①順次処理
順次処理は処理を上から順番に実行する流れです。フローチャートの基本形となります。
②分岐処理
分岐処理は処理の途中で判断が入ります。判断の結果によって次の処理が変わる流れです。
前述の傘を持つか持たないかの例は分岐処理を利用しています。
③繰り返し処理
繰り返し処理はある回数分、同じ処理を繰り返す流れです。
前述のロボット掃除機の例は繰り返し処理を利用しています。
以上の3種類を組み合わせてフローチャートを完成させます。
フローチャートはあくまでも処理の流れを示したものです。よく、アルゴリズムという言葉と一緒に使われることもあるので混同してしまう方もいらっしゃるようですが、アルゴリズムはいうなればパターン化したフローチャートのことを示します。
フローチャートはもっとシンプルに処理の流れを表現する手段とだけ覚えておきましょう。
フローチャートだけでできるプログラム
フローチャートは基本的に紙とペンさえあればどこでも学べます。これを俗に「アンプラグド(コンピュータを使わない)教育」とも呼びますが、これには欠点もあります。
動作が確認できず、成功体験を得にくい可能性があるのです。
紙の上で書いたフローチャートをあみだくじのようになぞって結果を確認するのも楽しいのですが、もっと可視化を重視する場合にはフローチャートのようなものを用いてプログラムをするアプリケーションを活用するのもひとつの選択肢です。
今回は簡単な紹介のみにとどめますが、興味のある方は調べてみると面白いかもしれません。
①Scratch
プログラミング教育の中では有名なScratchは処理命令の書かれたブロックを組み合わせることによってアプリケーションが作成できます。まさに今回取り上げたフローチャートの書くパーツを組み合わせるようなイメージです。画面もわかりやすく、かつ、無料で利用できるので試してみてはいかがでしょうか。
②VISCUIT
VISCUITは前述のScratchよりも対象年齢が低めに設定されており、もっとシンプルな組み合わせでアプリケーションが作成できます。言葉の読み書きがまだ苦手な子どもたちが楽しめる画面構成なので、大人がなれるには少々苦戦するかもしれませんが、シンプルに楽しむにはオススメです。
③Swift Playgrounds
Swift PlaygroundsはAppleが提供している無料の学習用アプリケーションです。iPad上でチュートリアルに従いながらキャラクターに指示を出すことで課題をクリアしながらSwiftのプログラミングを学習します。ScratchやVISCUITとは異なり、iPhoneやiPadのアプリケーション開発で採用されているSwiftというプログラミング言語の基本を習得することが目的となっているので毛色が異なるうえ、対象年齢も少々高い印象です(推奨は小学校高学年以上)が、アプリケーション開発に興味がある子どもたちであればハードルは低そうです。
https://www.apple.com/jp/swift/playgrounds/
もっとシンプルに「フローチャートを書くことに特化したツール」
フローチャートとプログラムを組み合わせるのはちょっと・・・という方には、シンプルにフローチャートを書くことに注力してみるのも良いかもしれません。
以下は、フローチャートを書くことに特化しているツールをご紹介します。
①draw.io
draw.ioは、Web上でフローチャートを書く練習をするためには申し分のない機能を提供しています。Web上での使用のため特別なソフトウェアをインストールは不要です。また、作成したフローチャートは、Googleドライブなどのクラウドサービスに保管できるので、いつでもどこでもフローチャートを書く環境が整います。
②cacco
caccoはdraw.ioと同様にWeb上でフローチャートが書けるツールです。draw.ioも同様ですが、フローチャート以外の図形も書くことができます。また、そのための雛形(テンプレート)はcaccoの方が多い印象で、かつ、他のメンバーとの共同作業をに便利な機能も多数提供してくれています。
https://cacoo.com/
【フローチャートだけではなくプログラムも初めてみたくなったらこちらもチェック!】