プログラムの基本(順次・分岐・反復)

プログラム

2020年度から小学校でプログラミング教育の必修化ということで色々と盛り上がっているのですが、実はですね小学校でプログラミングという教科が新しくできるわけではなくて既存の算数や理科、音楽といった教科の理解を深めるためにプログラミングを活用するというのが新しい学習指導要領なんですよ。

小学校学習指導要領(平成29年告示)

そしてそこで述べられているプログラミング教育は次のようなものなのです。

総則 第3 教育課程の実施と学習評価

情報活用能力の育成を図るため ~中略~ 各教科等の特質に応じて,次の学習活動を計画的に実施すること。

ア 児童がコンピュータで文字を入力するなどの学習の基盤として必要となる情報手段の基本的な操作を習得するための学習活動

イ 児童がプログラミングを体験しながら,コンピュータに意図した処理を
行わせるために必要な論理的思考力を身に付けるための学習活動

 

ア)についてはスマホの親指入力ではなく、ちゃんとキーボードを使って文字を入力していきましょうというもの、こちらについては、以前に書いた楽しくキー操作を覚えるにはの記事が参考になるかと思います。

 

そして、もう一つのイ)で述べられている事が論理的思考力というものです。論理的思考力ってなんだ?って思いますよね。ある定義によると「物事を整理して因果関係を見つけ、結論まで矛盾なく、シンプルなわかりやすい道筋を示すこと」とあります。

 

難しいですよね。ということで、こんな例を考えてみました。

 

 

さて、この「物忘れ防止&早起きプログラム」を解決するためにプログラムの第1の基本で順次処理・分岐分岐・反復処理のうち順次処理と条件分岐を使って論理的に解決してみたいと思います。それがこちらです。

 

 

そうです、こうやって問題を分析して、解決策をみつけ、それを行動に起こすための計画を立てていくことが論理的思考、論理的に考えて解決していくということになります。ここで順次処理と条件分岐をしめしましたが、順次処理は単純に上から順番に処理していく形式、条件分岐はYESかNOかで処理する内容がかわってくるというものです。

 

 

次にもう一つ次のような問題を解決してみましょう。

 

この問題を解決するための「お手伝い行動プログラム」をつくるために、先ほど出てこなかった反復処理を使いましょう。

はい、こうなります。男の子はゲームに必要な金額2050円以上が溜るまで毎回、お手伝いをして100円をもらう。この繰返しの処理が反復処理となります。

 

今回、絵にかいたような処理の流れをフローチャートというのですが、すべてのケースで対応できるように、問題を調査する時に抜けもれが無いように問題をより細かく分析(因数分解)したり、その問題がどのようなパターンでも適用できるように抽象化したりするということも必要な作業になるかと思います。

これが僕の考える論理的思考であり、その基本はプログラムの基本でもある順次・分岐・反復処理だと思います。今回はそんなお話でした。

コメント

タイトルとURLをコピーしました