コンテンツへスキップ

小学生が直面するスクラッチの難しさ:感覚的に操作できるがゆえの問題点と解決案

最終更新日:2024年3月3日

ad-earth-shop-online

スクラッチの難しさ

スクラッチは、ブロックをドラッグアンドドロップするだけでプログラミングできるという利点がありますが、それが逆に問題を引き起こすこともあります。特に、小学生が直面するスクラッチの難しさの一つに「同時実行処理を簡単にプログラミングできてしまう」ということが挙げられます。

同時実行処理とは

同時実行処理とは、複数の処理を同時に行うことです。スクラッチでは、緑の旗やキーボードなどのイベントブロックを使って、複数のキャラクターにそれぞれ別々の動きをさせることができます。これは、同時実行処理を簡単にプログラミングできるという意味では素晴らしいことです。

scratch-difficulty1

スクラッチでは、上記のように数個のブロックを使うだけで簡単に同時実行処理がプログラミングできます。このコードを実行すると以下のような結果となります。公衆電話をクリックすると、他の電話のプログラムが同時に実行されることが分かります。

感覚的に操作できるがゆえの問題点

同時実行処理は、とても難しいプログラミングの技術です。プログラマーとして働いている社会人でも、その概念を理解し、正しく実装できる人間は限られています。また、同時実行処理の結果は常に同じになるとは限らないので、あるときはうまくいき、あるときはうまくいかない、といった現象がよく発生します。そして何より、スクラッチには排他制御の仕組みがないので、同時実行処理を正しく実装することは不可能なのです。

解決案:シーケンス図を使って同時実行処理の流れを把握する

同時実行処理の難しさを解決する方法の一つは、シーケンス図という図表を使うことです。シーケンス図とは、時間の流れに沿ってイベントや処理を表す図表です。シーケンス図では、時間やオブジェクト(キャラクターや背景など)、オブジェクト間のメッセージ(イベント)を矢印で表します。シーケンス図を使うと、同時実行処理の流れが視覚的に分かりやすくなります。

記入例
記入例「背景が【戦闘開始】というメッセージを送ったとき」

もちろん、シーケンス図が同時実行処理の問題をすべて解決してくれるわけではありません。それでも、同時に実行されているプログラムを把握することでプログラミングがしやすくなりますし、デッドロック(同時実行中のプログラムが先に進まなくなる)になっているコードを発見しやすくなります。

まとめ

小学生が、同時実行処理や排他制御などの概念を理解し、プログラミングすることは難しいと思います。この難しさを解決する方法の一つは、シーケンス図を使って同時実行処理の流れを把握することです。独学で理解するには難しい内容だと思うので、プログラミング教室の先生などに質問してアドバイスを受けることをおすすめします。

最終更新日:2024年3月3日

広告

最終更新日:2024年3月3日

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA