このページでは、プログラミングを教えるのであればこのようなものが欲しい、というつもりで作成したコンテンツを紹介しています。




はじめに


プログラミングの導入としてよく利用されるのが、今ならスクラッチでしょう。スクラッチを利用したプログラミングの授業をやっている小学校も多いかと思います。多くの授業は、キャラクターを動かしたり、簡単なゲームをつくったりしてプログラミングに親しんでもらうことに主眼を置いていると思われます。言うなれば、他人がつくったプログラムを自分で書き写すことで、プログラミングで使われるパーツや必要な処理方法をつかんでもらいましょうという感じでしょうか。しかし、このような体験だけで自分でプログラムを組み立てることができるようになる人は、ほんの一部でしょう。

ところで、プログラムは様々な処理を組み合わせて作られています。すると、様々なパーツと処理が組み合わされたプログラムを見て、個々のパーツと処理の意味をそれぞれ理解しなければならないことになります。これだと、それぞれの処理やパーツがどのような意味を持つのかを明確に理解するのは結構難しいです。それぞれの処理とパーツへの理解があってこそ、それらを思い通りに組み上げられる(=プログラミングができる)ようになると、私は思うのです。

自分がFORTRAN77BASICでプログラミングを初めて学習したときのことを思い出すと、「IF ~ THEN …」や「FOR ~」などの基本的な処理を使った数行のプログラムを作成して、動作を確認しながら理解を深めたものです。同じようなことをスクラッチでやってもよいのですが、短いプログラムでは単純なことしかできないので、初心者には意味も分かりにくいし、おもしろくないでしょう。

そこで、特定の処理やパーツの性質をわかりやすく表現するプログラムを作ってはどうかと思いました。すなわち、その動作のコアとなる部分を組み立ててもらうことで、その処理やパーツの意味を理解してもらおうという意図があります。ここでは、様々な条件下で「ネコがバナナをゲットする」ためのプログラムを通して、プログラミングの基本を学んでもらいます。



プログラム一覧


各リンクを押すと、そのプログラムの説明が書かれた場所に移ることができます。余裕ができたら、そのうちプログラムを追加します。


レベル1 (繰り返し)
どんなプログラムでも「繰り返し」は必ずと言ってよいほど出てきます。ここでは、ネコを特定の方向に決まった回数動かすプログラムを作成します。

レベル2 (条件分岐①)
その時の状況に応じてプログラムの動作を変えることは、プログラミングの基本中の基本です。ここでは、旗の位置でネコの進行方向を変えるプログラムを作成します。

レベル3 (条件分岐②)
レベル2と同じように、状況に応じて動作を変えるプログラムです。ここでは、ゲートが開いたときだけにネコが通過できるようなプログラムを作成します。

レベル4 (論理和・論理積①)
動作を決める条件がより複雑になります。ここでは、ゲートが開くだけでなく、穴がふさがれているときにだけネコが通過できるようなプログラムを作成します。

レベル5 (論理和・論理積②)
動作を決める条件がレベル4とは異なります。ここでは、穴にふたがされているか、穴の上に橋がかけられているときにネコが通過できるようなプログラムを作成します。

レベル6 (変数の利用)
状況に応じて外部から動作を指定できるようにすることも重要です。ここでは、2つあるゲートのうち、開いている方のゲートを通過するようにネコに指示できるプログラムを作成します。

レベル7 (配列の利用)
1つの変数に複数のデータが格納されている配列の利用は、プログラミングをするためには重要です。ここでは、ロボットが出す合言葉に対して適切な答えを返すようにできるプログラムを作成します。

レベル8 (アルゴリズム①)
ここからは、パーツや処理を組み合わせてより高度な処理を実現するためのアルゴリズムを学習します。ここでは、大きさの順番に並べ替えることができるようにするプログラムを作成します。

レベル9 (アルゴリズム②)
ここでは、すべての島を通って最後にバナナの場所にたどり着くような道筋を見つけるプログラムを作成します。


レベル1からはじめる