LoginSignup
1
1

More than 3 years have passed since last update.

プログラミング教育をサポートしよう!!

Last updated at Posted at 2019-05-14

2020年度小学校プログラミング教育必修化

システム開発って難しいですよね。多くのプロジェクトが失敗して、なかなか成功しません。
たとえ、要件定義がうまくいっても、設計で失敗。実装まで漕ぎついても、出来上がったものが要件を満たしていないなんてことがよくあります。

とある教科書の内容

とある教科書とその補足資料に示してあった人感センサーライトの例でおさらいしてみましょう。

要件定義

人が近づくと明かりがつき、しばらくすると消えるプログラムをつくり、発光ダイオードをつけたり、消したりしてみましょう。
要件定義.png

設計書

システムエンジニアのみなさん、このようなフローチャートのようなものを書いていませんか?
そもそもフローチャートって書きますか?
設計図.png
「人勧センサー」の分岐で、「感知したら」の否定は「感知しなかったら」の方が良いと思います。なぜなら、「感知しなくなったら」というのは、感知している状態から感知していない状態へ遷移したことを示唆する表現になっていませんか。そうです、これらはいわゆるイベント(トリガー)のことですよね。
「感知したら」イベントと「感知しなくなったら」イベントを用意して、それぞれのイベントハンドラで、「オン」と「オフ」とを行います。イベントって、フローチャートでは、どうやって表現するんでしたっけ???このひし形は、状態変化を待っているようにも、見えます。
もう一つ、開始直後って、オンですか?オフですか?
フローチャートって動作しないから、検証が本当に難しいです。図示しても、日本語の曖昧な表現が残ってしまいます。これらが設計を難しくしている要因でもありますよね。

実装(プログラミング)

さぁ、プログラマーのみなさん、設計書をもとに、レッツ、プログラミング!!
実装.png
あれ、あれぇー、フローチャートには分岐が1つしかなかったのに、センサーブロックが2つになっちゃいましたね。「ずっとくりかえす」は、プログラマーさんがフローチャートの行間(矢印)からしっかりと読み取れましたね。

納品

それでは、完成ということでお客様へ納品しました。そしたら、しばらくして、「しばらくしても消えない」とお客様からご意見をいただきました。なぜでしょうか?

  • 人が近づいていない状態で、開始する
    ⇒ 発光ダイオードは消えている(1~2秒間ついているかもしれない)
  • 人が近づく
    ⇒ 発光ダイオードがつく
  • しばらくすると
    ⇒ あれ?消えない・・・
  • 人が離れると
    ⇒ 発光ダイオードが消える

プログラミング教育

さて、どこに問題があったのでしょうか。プログラミングがバグっているのでしょうか(小学生の流行語)。
2020年度から小学校でもプログラミング教育が必須化されます。ソフトウェア開発で日ごろからプログラミングを経験しているシステムエンジニアやプログラマーのみなさん、その経験をプログラミング教育に生かしてみませんか?

補足

ここに登場するとある教科書とは、次の内容解説資料である「新しい理科 | 2年度用 小学校教科書のご紹介 | 東京書籍」(編集上の留意点)から、抜粋したものです。
https://ten.tokyo-shoseki.co.jp/text/shou/rika/introduction/page08.html

実は、「しばらくすると消える」んです。なぜならば、電源にコンデンサーを使っているからです。

FireShot Capture 091 - 新しい理科 - 2年度用 小学校教科書のご紹介 - 東京書籍 - ten.tokyo-shoseki.co.jp.png

瑕疵対応

改めて、システムエンジニアとプログラマーは、お客様と要件を再確認し、設計を見直し、プログラムを修正することにしました。
人感センサーライト.png

小学校プログラミング教育の手引

いったいこの教科書はどうして、こうなっちゃったのかなー。
小学校プログラミング教育の手引(第二版)(PDF:3,685KB)を見ると、もっと的確なプログラム例(p.26)が示されていますよね。この記号の意味が分かるなら、あのフローチャートのようなものって必要でしたか?
FireShot Capture 056 -  - www.mext.go.jp.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1