2016年6月1日水曜日

試合での行動が消極的な理由


私の息子(小学4年)は、1年前から地域のサッカークラブに入っています。

そのクラブでは、入学前の6歳くらいから入れるようで、チームメイトの大半は、1年生前後で入部しているようで、息子は、若干出遅れた感がありました。

コーチ陣も、クラブに所属している子の親が教えてくれています。

ただ、コーチも教育のプロではないので、いわゆる習い事のサッカークラブのように体系的に教えてもらえるわけではないようです(担当コーチにもよるのですが)

なので、息子は、インステップキックもちゃんと蹴れず、強いキックが蹴れないため、練習中のミニゲームや、試合では消極的なプレー(というより、ボールが自分のところに来るのを怖がっている?)になっているように感じました。

ただ、学校のクラスメイトと休み時間や放課後に行うミニゲームでは、積極的なプレーをしているらしく、「ゴールを決めた」「アシストした」と報告してくれます。

つまりは、クラブチームでは、大半が自分より上手い子なため、モチベーションが低いのではないかと考え、その原因は、強いキックが蹴れないことにあるのではないかと思いました。
(もちろんリフティングができないとか他にも理由はあると思いますが)


放課後のゲームで使用しているボールは、若干空気が抜けているらしく良く飛ぶ(浮く?)らしく、強く蹴れてると感じているようです。

ということで、キックを上達させるコツを考えます。

2016年4月13日水曜日

テクニックじゃない算数の教育が必要

テクニックじゃない算数の教育が必要~小学生のためのプログラム~

結構前のことになりますが、小学生の息子の算数のテスト結果で、「掛け算の文章問題」で、計算式で、掛ける順番が間違っているといって「×」になっていたことがありました。


答えは「○」でした。

うわさには聞いた「掛け算の順番問題」でした。



問題は、


「3人の子供に、5枚づつクッキーを配ると、全部で何枚必要か?」

といった感じのものです。



この場合、計算式としては、「 3 × 5 」か「 5 × 3 」が考えられますが、息子は「 3 × 5 」と書いて「×」になりました。

私も、最初は、なぜ「×」なのかわかりませんでした。(ひっかけ問題や、なぞなぞの類?とも疑ったりしました)

調べてみると、小学生の算数(特に横浜市の教育指導要領では?)、掛け算の順番については、指導通りでない場合は、「×」とするようになっているらしいです。

その指導とは、なんでしょう。

上の問題の場合、

まずは1人に何枚配るか?(5枚)を考えて、それから何人いるか?(3人)を考えます。

1人に5枚づつで3人いるのだから

5 + 5 + 5 つまり 「 5 × 3 」ということのようです。


どうでしょう? わかりましたでしょうか?


わかりません




ですから、まず、1人でいくつかを先にして、何人いるかを後から掛けるということです。



ぜんぜん、わかりません

なんで、「 3 × 5 」じゃダメなんですが?
答えは、同じ「15」じゃん。


(困った先生は)

「文章内で「~づつ」と書いてある方を前にして掛けます」
とか、
「答えの単位(上の場合、”枚”)と書いてある方を前にして掛けます」
そうじゃないと「×」になります。

といったような指導することも多いようです。

テストで正解するためのテクニックとしての解き方を教えているわけですね。


なぜ、掛け算の順番に、こだわるのでしょうか。

調べてみると、掛け算の順番に、こだわる理由は、掛け算の場合(足し算もそうですが)文章に出てくる順番で掛けても正解できてしまいます。

しかし、掛け算の次に習う割り算では、そうはいきません。


たとえば、


「3人の子供に15枚のクッキーを、同じ数づつ分けるには、何枚づつになるでしょう?」

といった問題の場合、出てきた順番通りですと「 3 ÷ 15 」としてしまい、間違ってしまいます。


こういった問題を解くには、正しい順番で計算できるようになる必要があります。



そのために、単位となる数(係数:けいすう)と変動する数(変数:へんすう)を正しく理解させるために、計算式の順序に、こだわったのが、元々の考え方のようです。



ただ、生徒全員に理解してもらうのは、とても大変ですので、ついついテクニックだけの指導になってしまったのではないかと思います。(本質を理解されていない教員も少なからずいるようですが)



学習塾でも、テクニックのみを教えるところも多いのではないでしょうか?


ですが、それだけだと、みんな算数キライになっちゃいますね。
こんな窮屈で納得できない勉強はつまらないですもんね。


ちゃんと、納得/理解してもらえるまで、トコトン教えて頂きたいと思ってます。

大変だとは思いますが、学校でプログラミングを教えるよりは、ずっと楽だとは思うのですがね。
(プログラミング教育が必修科目になった際には、まずは算数/数学の先生が教えることになる気がします。。。)



2016年4月3日日曜日

ネコ、ボタン連打で走る(小学生のためのプログラム<スクラッチ編>~その6~)

ネコ、ボタン連打で走る~小学生のためのScratch入門~

前回までは、実行ボタン(緑の旗)を押すことで、ネコが画面の右端に走っていきました。

今回は、キーボードの「スペースキー」が押されるたびに移動するようにしてみましょう。

キーボード入力を使ってみましょう

スクラッチを起動してください。

下のように、プログラムを作ってください。




「(スペース)キーが押されたとき」から始まっているブロックのかたまりは、「スペース」キーが押されるたびに実行されるプログラムです。

ただ、このままだと「よーい、ドン」と言う前に、「スペース」キーを押しても移動してしまいますね。

「よーい、ドン」と言うまで「スペース」キーを押しても移動しないようにするには、どうしたらよいでしょうか?


変数を使えば、できそうですね。



変数「スタート」を用意します。
そして、最初に変数「スタート」に「0」を入れています。
そして、「よーい、ドン」と言った後に変数「スタート」に「1」を入れます。

スペースキーが押されて動くプログラム側では、変数「スタート」が「1」の時に
移動するようにしています。

「よーい、ドン」と言うまでは、変数「スタート」は「0」になっているので、スペースキーが押されても動かないようになります。

どうでしょう?

なんだか、ゲームが作れそうな気がしてきませんか?

次回からゲームの作成をしていきたいと思います。


<追記>

このプログラムだと、スペースキーを「押しっぱなし」にしても動いてしまいますね。



スクリプトを修正して、「<<スペースキーが押された>ではない>まで待つ」を追加してみてください。

スペースキーが一回押されるたびに、「スペースキーが押されたではないまで待つ」ということはスペースキーが”離される”まで待つという意味になります。(ちょっと分かりづらいですね)

これで、スペースキー連打で動くようになったと思います。

ネコ、スピードを変えながら走る(小学生のためのプログラム<スクラッチ編>~その5~)

ネコ、スピードを変えながら走る~小学生のためのScratch入門~

今回は、ネコの走るスピードを変えながら走るようにしてみましょう。


走るスピードを変える方法は、いろんなやり方がありますが、今回は、「(10)歩動かす」ブロックの数字を変えることでスピードが変わるようにしてみましょう。

変数を使ってみましょう

スクラッチを起動してください。


「(端に触れた)まで繰り返す」ブロックの中に「(10)歩動かす」ブロックが入っています。
これは、端に触れるまで「10歩」ずつ移動するということです。

なので、、この1回で移動する歩数を変えることで、スピードの変化を付けます。

まずは、「変数」を用意します。

変数は、歩数のような数字は、名前などの文字を入れておく箱のようなものです。

プログラムでは変数をつかってプログラムしておき、変数の中身を変えることで動きを変えることができます。

まずは、「変数」の中にある「新しい変数を作る」をクリックします。




変数名は、「歩数」にしておきます。
そして、「OK」をクリックします。



すると上のようになると思います。

そうしたら、「□歩数」を、「(10) 歩動かす」の数字の部分に、ドラック&ドロップします。



実行したらどうでしょう?

あれ?その場で走るだけで移動しませんね。

これは、変数「歩数」の中身が「0」になっているからです。

歩数の中身を入れてみましょう。

「(歩数)を( 0 )にする」ブロックを「スクリプト」タブにドラック&ドロップしてください。

そうしたら、歩数を「10」にしてください。



今度は、どうでしょう?
ちゃんと走りましたね。

歩数の数字を「2」に変えてみてください。
移動するスピードが遅くなったと思います。

この変数「歩数」の中身を変えることで、スピードが変えることができました。

次に、歩数の中身を、1から10の間で、バラバラになるようにしてみましよう。

「演算」の「(1)から(10)までの乱数」ブロックを「スクリプト」タブにドラック&ドロップしてください。

そうしたら、「(歩数)歩動かす」ブロックの上に追加してください。



これで、実行してみてください。

どうでしょうか?
早くなったり、遅くなったりしたと思います。

次回は、キーボードのボタンを押すたびにネコが移動するようにしてみようと思います。


ネコしゃべって走る(小学生のためのプログラム<スクラッチ編>~その4~)

ネコ、しゃべって走る~小学生のためのScratch入門~


前回、ネコが画面の端を走っていくようにしました。
今回は、もう少し処理を追加してみましょう。

実行する度に、ネコを左端に移動させるのは、面倒なので、実行時にスタート地点に移動するようにしてみます。

前処理(準備処理)を追加しましょう

スクラッチを起動してください。

実行する度に、ネコを左端に移動させるのは、面倒なので、実行時にスタート地点に移動するようにしてみます。

※前処理(準備処理)で、処理を始める前の準備を行うのはプログラムの基本です。

「動き」の「x座標を(   )、y座標を(   )にする」を「スクリプト」タブにドラック&ドロップしてください。

「(緑の旗)がクリックされたとき」の次に、挟んでください。

そうしたら、「x座標を(-191)、y座標を(5)にする」としてください。

また、スタート時に、ネコが「よーい、ドン」と言って走り出し、最後に「ゴール」と言うようにもしてみましょう。

「見た目」の「(こんにちは!)と(2)秒言う」を2つ、「(こんにちは!)と言う」を2つ、「スクリプト」タブにドラック&ドロップしてください。

そうしたら、下のようにしてください。




「(ドン)と(0.3)秒言う」の下に「( )と言う」と文字が入っていないブロックがありますが、ネコの吹き出しを消すためのものです。
これがないと、ずーっと「ドン」と言い続けながら走ってしまいます。



実行してみましょう。

どうでしょう、うまく動いたでしょうか?

次回は、ネコが早く走ったり遅くなったりするようにしてみましょう。
(変数を使います)

2016年3月28日月曜日

構造化プログラミング(小学生のためのプログラム<スクラッチ編>~その3~)

構造化プログラミングについて~小学生のためのScratch入門(番外編)~

前回の記事で、同じ動作をさせる方法は一つではないことを書きました。

ただ動けば良いというのであれば、どんな方法でも良いでしょうが、読みにくいプログラムは、得てして、うまく動かない(バグがある)ことが多いです。しかも直しにくかったりもします。

そこで、先人の知恵である「構造化プログラミング」を理解してプログラミングすると、プログラムがキレイに書けるようになると思います。

「構造化プログラミング」は、今の時代、古いと言われ学校や新人研修でも教えてくれなくなっているようです。

ただ、長年プログラムを作っている経験からすれば、やはり「構造化プログラミング」を理解している方が良いと思います。(特に複数メンバーでプログラムを作成したりする場合は)

ですので、今回は、「構造化プログラミング」の基本的なことについて書こうと思います。


構造化プログラミングの目的は、「良いプログラムを書けるようにする」ことです。

良いプログラムとは、「正しく動く」のはもちろん、「プログラムが正しく動くことを証明する」ということです。

「プログラムが正しく動くことを証明する」とは、実際にプログラムを動かして確認(テスト)するのではなく、プログラム自体が正しく動くことが理解される必要があるということです。

正しくプログラムを理解してもらうには、理解しやすいプログラムである必要があります。


要するに、「分かりやすい構造で、正しく動くプログラムを書きましょう」ということです。


では、どうしたら分かりやすい構造になるのでしょう。

「構造化プログラミング」では、「順次(じゅんじ)」、「分岐(ぶんき)」、「反復(はんぷく)」の3つの構造でプログラムを書けば、分かりやすい構造になるとしています。

この3つの構造を順に説明します。

順次(順構造)

「順次」は、プログラムの記述されている順番に処理が実行される構造です。



「処理1」「処理2」の順番に実行されます。

この「処理1」や「処理2」はスクラッチでいう「見た目」や「動き」などの1つのブロックに該当します。




分岐(判断)

「分岐」は、ある条件が成り立つ場合のみ、処理を実行する構造です。



上の場合は、判断条件が成り立つ場合に、処理1が実行されます。



上の場合は、判断条件が成り立つ場合に、処理1、成り立たない場合に、処理2が実行されます。



反復(繰り返し)


「反復」は、繰り返しの条件が満たされている間、処理を繰り返す構造です。


上の場合は、条件が成立している間、処理1を実行し、条件が成立しなくなったら、次の制御に移ります。

処理1の実行より先に条件の判定を行っている(前判定)ので、条件によっては、1度も処理1を実行しない場合があります。



上の場合は、処理1の実行の後に条件の判定(後判定)を行っているので、条件によらず、必ず1度は処理1を実行することになります。


以上の3つの構造でプログラムを書くと、分かりやすいプログラムになります。

スクラッチには、分岐、反復に対応したブロックが用意されているので、スクラッチでプログラムを作っていると、構造化プログラミングの基本が理解できるようになると思います。


2016年3月27日日曜日

ネコもっと走る(小学生のためのプログラム<スクラッチ編>~その2~)

ネコ、もっと走る~小学生のためのScratch入門~

前回、ネコを繰り返し移動させるところをやりましたが、ネコの絵が変わらないのでスーッと滑っていく感じで、走っているようには見えませんでした。

ですので、今度は絵を交互に変えて走っているようにしてみましょう。

コスチュームを切り替えましょう

スクラッチを起動してください。

前回作成したファイルを読み込んでください。

「コスチューム」タブを選択してください。



少し違うネコの絵(コスチューム2)があると思います。

今表示しているコスチューム1とコスチューム2を交互に表示してみましょう。

「見た目」の「次のコスチュームにする」ブロックを「スクリプト」タブにドラック&ドロップして、
次のようにしてください。


そして、緑の旗をクリックしてください。







どうでしょう。走っているように見えましたか?

だけど、画面の右端で、ずっと走ってますね。

止める時は、右上の赤い丸「」をクリックしてください。

今度は、画面の端に着いたら、止まるようにしてみましょう。


「制御」の「(   ) まで繰り返す」を「スクリプト」タブにドラック&ドロップしてください。



そして、「ずっと」ブロックと入れ替えてください。
不要になった「ずっと」ブロックは、消してください(欄外へドラック&ドロップ)


次に、「調べる」の「(  )に触れた」ブロックを


「スクリプト」タブにドラック&ドロップしてください。
そして、「( )に触れた」の選択部分を「端」を選んで


にしてください。
そうしたら、「(  )まで繰り返す」ブロックの空いているところにドラック&ドロップして、


のようにしてください。

そうしたら、ネコを左端に、ドラックしてから実行してみましょう。
ただし、ネコを左端に、くっつけると動かないので、少し離してください。

そうしたら、緑の旗をクリックして実行してみましょう。



どうでしょうか?ネコが右側に走っていき、画面の端で止まったでしょうか?


このように動くスクリプトは、次のようにしても同じように動きます。



同じことをさせる方法は一通りではありません。
色々なやり方を考えることもプログラムを作成するには重要です。
(そのためには、他の人が作ったプログラムを読むことは、とても良いことです)

ただ、もっと大きなプログラムを作るときには、分かりやすく間違い(バグ)のないプログラムを作るにはコツがあります。

その一つが「構造化プログラミング」というものです。

次回、その辺りのことを解説したいと思います。