現役システムエンジニアによる小学生に分かるようにプログラミング方法を解説します。 プログラミングを通じITへの理解や論理的な考え方を育成します。 また、ときどきサッカーや水泳の上達方法などについても書いていきます。
2016年6月22日水曜日
いかに蹴り足に体重を乗せれるか
息子がチームで自信を持ってボールを受けられるようにするには、チームメイトからの信頼を得る必要があります。
そのためには、「ドリブルが上手い」「強いキックが蹴れる」と認められやすいのではないでしょうか。
せっかくパスを受けても、シュートがヘナヘナでは、本人も自信を無くしてしまい、ボールを受けるのが怖くなったりすると思います。
練習を見ても、同じように蹴っていても強く蹴れる子と、そうでない子がいます。
インステップキックでは、「軸足をボールの横に、しっかり踏み込んで、足首を伸ばして、固定した状態で蹴る」と教わっていると思いますが、思い通りには蹴れていないようです。
いずれは、強く蹴れるようになるとは思いますが、その前に、ヤル気を無くしてしまうこともありますので、邪道かもしれませんが、別の方法で、強いキックを蹴れるようにアドバイスしてみました。
それは・・・
正面から助走して「ボールの少し手前に踏み込んで、蹴る」ということです。
走っているときは、通常、右足、左足と交互に体重が移動していると思います。
その体重移動を使って、蹴り足に体重を乗せて蹴ってみるということです。
その際、足首は固定させずに、足首でボールを蹴るように伝えました。
その結果、強いキックが蹴れるようになり、多少は自信を持ってボールを受けるようになったように思います。
一度、自信を持たせられれば、他のキックの練習や試合など積極的に動くようになり、自然と上達していくのではないでしょうか。
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枚のクッキーを、同じ数づつ分けるには、何枚づつになるでしょう?」
こういった問題を解くには、正しい順番で計算できるようになる必要があります。
そのために、単位となる数(係数:けいすう)と変動する数(変数:へんすう)を正しく理解させるために、計算式の順序に、こだわったのが、元々の考え方のようです。
ただ、生徒全員に理解してもらうのは、とても大変ですので、ついついテクニックだけの指導になってしまったのではないかと思います。(本質を理解されていない教員も少なからずいるようですが)
学習塾でも、テクニックのみを教えるところも多いのではないでしょうか?
ですが、それだけだと、みんな算数キライになっちゃいますね。
こんな窮屈で納得できない勉強はつまらないですもんね。
ちゃんと、納得/理解してもらえるまで、トコトン教えて頂きたいと思ってます。
大変だとは思いますが、学校でプログラミングを教えるよりは、ずっと楽だとは思うのですがね。
(プログラミング教育が必修科目になった際には、まずは算数/数学の先生が教えることになる気がします。。。)
2016年4月3日日曜日
ネコ、ボタン連打で走る(小学生のためのプログラム<スクラッチ編>~その6~)
ネコ、ボタン連打で走る~小学生のためのScratch入門~
前回までは、実行ボタン(緑の旗)を押すことで、ネコが画面の右端に走っていきました。
今回は、キーボードの「スペースキー」が押されるたびに移動するようにしてみましょう。
今回は、キーボードの「スペースキー」が押されるたびに移動するようにしてみましょう。
キーボード入力を使ってみましょう
スクラッチを起動してください。
下のように、プログラムを作ってください。
スクラッチを起動してください。
下のように、プログラムを作ってください。
「(スペース)キーが押されたとき」から始まっているブロックのかたまりは、「スペース」キーが押されるたびに実行されるプログラムです。
ただ、このままだと「よーい、ドン」と言う前に、「スペース」キーを押しても移動してしまいますね。
「よーい、ドン」と言うまで「スペース」キーを押しても移動しないようにするには、どうしたらよいでしょうか?
変数を使えば、できそうですね。
変数「スタート」を用意します。
そして、最初に変数「スタート」に「0」を入れています。
そして、「よーい、ドン」と言った後に変数「スタート」に「1」を入れます。
スペースキーが押されて動くプログラム側では、変数「スタート」が「1」の時に
移動するようにしています。
「よーい、ドン」と言うまでは、変数「スタート」は「0」になっているので、スペースキーが押されても動かないようになります。
どうでしょう?
なんだか、ゲームが作れそうな気がしてきませんか?
次回からゲームの作成をしていきたいと思います。
<追記>
このプログラムだと、スペースキーを「押しっぱなし」にしても動いてしまいますね。
スペースキーが一回押されるたびに、「スペースキーが押されたではないまで待つ」ということはスペースキーが”離される”まで待つという意味になります。(ちょっと分かりづらいですね)
これで、スペースキー連打で動くようになったと思います。
ネコ、スピードを変えながら走る(小学生のためのプログラム<スクラッチ編>~その5~)
ネコ、スピードを変えながら走る~小学生のためのScratch入門~
今回は、ネコの走るスピードを変えながら走るようにしてみましょう。
走るスピードを変える方法は、いろんなやり方がありますが、今回は、「(10)歩動かす」ブロックの数字を変えることでスピードが変わるようにしてみましょう。
走るスピードを変える方法は、いろんなやり方がありますが、今回は、「(10)歩動かす」ブロックの数字を変えることでスピードが変わるようにしてみましょう。
変数を使ってみましょう
スクラッチを起動してください。
「(端に触れた)まで繰り返す」ブロックの中に「(10)歩動かす」ブロックが入っています。
これは、端に触れるまで「10歩」ずつ移動するということです。
なので、、この1回で移動する歩数を変えることで、スピードの変化を付けます。
まずは、「変数」を用意します。
変数は、歩数のような数字は、名前などの文字を入れておく箱のようなものです。
プログラムでは変数をつかってプログラムしておき、変数の中身を変えることで動きを変えることができます。
まずは、「変数」の中にある「新しい変数を作る」をクリックします。
変数名は、「歩数」にしておきます。
そして、「OK」をクリックします。
すると上のようになると思います。
そうしたら、「□歩数」を、「(10) 歩動かす」の数字の部分に、ドラック&ドロップします。
実行したらどうでしょう?
あれ?その場で走るだけで移動しませんね。
これは、変数「歩数」の中身が「0」になっているからです。
歩数の中身を入れてみましょう。
「(歩数)を( 0 )にする」ブロックを「スクリプト」タブにドラック&ドロップしてください。
そうしたら、歩数を「10」にしてください。
今度は、どうでしょう?
ちゃんと走りましたね。
歩数の数字を「2」に変えてみてください。
移動するスピードが遅くなったと思います。
この変数「歩数」の中身を変えることで、スピードが変えることができました。
次に、歩数の中身を、1から10の間で、バラバラになるようにしてみましよう。
「演算」の「(1)から(10)までの乱数」ブロックを「スクリプト」タブにドラック&ドロップしてください。
そうしたら、「(歩数)歩動かす」ブロックの上に追加してください。
これで、実行してみてください。
どうでしょうか?
早くなったり、遅くなったりしたと思います。
次回は、キーボードのボタンを押すたびにネコが移動するようにしてみようと思います。
ネコしゃべって走る(小学生のためのプログラム<スクラッチ編>~その4~)
ネコ、しゃべって走る~小学生のためのScratch入門~
前回、ネコが画面の端を走っていくようにしました。
今回は、もう少し処理を追加してみましょう。
実行する度に、ネコを左端に移動させるのは、面倒なので、実行時にスタート地点に移動するようにしてみます。
前回、ネコが画面の端を走っていくようにしました。
今回は、もう少し処理を追加してみましょう。
実行する度に、ネコを左端に移動させるのは、面倒なので、実行時にスタート地点に移動するようにしてみます。
前処理(準備処理)を追加しましょう
スクラッチを起動してください。
実行する度に、ネコを左端に移動させるのは、面倒なので、実行時にスタート地点に移動するようにしてみます。
※前処理(準備処理)で、処理を始める前の準備を行うのはプログラムの基本です。
「(緑の旗)がクリックされたとき」の次に、挟んでください。
そうしたら、「x座標を(-191)、y座標を(5)にする」としてください。
また、スタート時に、ネコが「よーい、ドン」と言って走り出し、最後に「ゴール」と言うようにもしてみましょう。
「見た目」の「(こんにちは!)と(2)秒言う」を2つ、「(こんにちは!)と言う」を2つ、「スクリプト」タブにドラック&ドロップしてください。
そうしたら、下のようにしてください。
「(ドン)と(0.3)秒言う」の下に「( )と言う」と文字が入っていないブロックがありますが、ネコの吹き出しを消すためのものです。
これがないと、ずーっと「ドン」と言い続けながら走ってしまいます。
実行してみましょう。
どうでしょう、うまく動いたでしょうか?
次回は、ネコが早く走ったり遅くなったりするようにしてみましょう。
(変数を使います)
2016年3月28日月曜日
構造化プログラミング(小学生のためのプログラム<スクラッチ編>~その3~)
構造化プログラミングについて~小学生のためのScratch入門(番外編)~
前回の記事で、同じ動作をさせる方法は一つではないことを書きました。
ただ動けば良いというのであれば、どんな方法でも良いでしょうが、読みにくいプログラムは、得てして、うまく動かない(バグがある)ことが多いです。しかも直しにくかったりもします。
そこで、先人の知恵である「構造化プログラミング」を理解してプログラミングすると、プログラムがキレイに書けるようになると思います。
「構造化プログラミング」は、今の時代、古いと言われ学校や新人研修でも教えてくれなくなっているようです。
ただ、長年プログラムを作っている経験からすれば、やはり「構造化プログラミング」を理解している方が良いと思います。(特に複数メンバーでプログラムを作成したりする場合は)
ですので、今回は、「構造化プログラミング」の基本的なことについて書こうと思います。
構造化プログラミングの目的は、「良いプログラムを書けるようにする」ことです。
良いプログラムとは、「正しく動く」のはもちろん、「プログラムが正しく動くことを証明する」ということです。
「プログラムが正しく動くことを証明する」とは、実際にプログラムを動かして確認(テスト)するのではなく、プログラム自体が正しく動くことが理解される必要があるということです。
正しくプログラムを理解してもらうには、理解しやすいプログラムである必要があります。
要するに、「分かりやすい構造で、正しく動くプログラムを書きましょう」ということです。
では、どうしたら分かりやすい構造になるのでしょう。
「構造化プログラミング」では、「順次(じゅんじ)」、「分岐(ぶんき)」、「反復(はんぷく)」の3つの構造でプログラムを書けば、分かりやすい構造になるとしています。
この3つの構造を順に説明します。
ただ動けば良いというのであれば、どんな方法でも良いでしょうが、読みにくいプログラムは、得てして、うまく動かない(バグがある)ことが多いです。しかも直しにくかったりもします。
そこで、先人の知恵である「構造化プログラミング」を理解してプログラミングすると、プログラムがキレイに書けるようになると思います。
「構造化プログラミング」は、今の時代、古いと言われ学校や新人研修でも教えてくれなくなっているようです。
ただ、長年プログラムを作っている経験からすれば、やはり「構造化プログラミング」を理解している方が良いと思います。(特に複数メンバーでプログラムを作成したりする場合は)
ですので、今回は、「構造化プログラミング」の基本的なことについて書こうと思います。
構造化プログラミングの目的は、「良いプログラムを書けるようにする」ことです。
良いプログラムとは、「正しく動く」のはもちろん、「プログラムが正しく動くことを証明する」ということです。
「プログラムが正しく動くことを証明する」とは、実際にプログラムを動かして確認(テスト)するのではなく、プログラム自体が正しく動くことが理解される必要があるということです。
正しくプログラムを理解してもらうには、理解しやすいプログラムである必要があります。
要するに、「分かりやすい構造で、正しく動くプログラムを書きましょう」ということです。
では、どうしたら分かりやすい構造になるのでしょう。
「構造化プログラミング」では、「順次(じゅんじ)」、「分岐(ぶんき)」、「反復(はんぷく)」の3つの構造でプログラムを書けば、分かりやすい構造になるとしています。
この3つの構造を順に説明します。
順次(順構造)
「順次」は、プログラムの記述されている順番に処理が実行される構造です。
「処理1」「処理2」の順番に実行されます。
この「処理1」や「処理2」はスクラッチでいう「見た目」や「動き」などの1つのブロックに該当します。
分岐(判断)
「分岐」は、ある条件が成り立つ場合のみ、処理を実行する構造です。
上の場合は、判断条件が成り立つ場合に、処理1、成り立たない場合に、処理2が実行されます。
反復(繰り返し)
「反復」は、繰り返しの条件が満たされている間、処理を繰り返す構造です。
上の場合は、条件が成立している間、処理1を実行し、条件が成立しなくなったら、次の制御に移ります。
処理1の実行より先に条件の判定を行っている(前判定)ので、条件によっては、1度も処理1を実行しない場合があります。
上の場合は、処理1の実行の後に条件の判定(後判定)を行っているので、条件によらず、必ず1度は処理1を実行することになります。
以上の3つの構造でプログラムを書くと、分かりやすいプログラムになります。
スクラッチには、分岐、反復に対応したブロックが用意されているので、スクラッチでプログラムを作っていると、構造化プログラミングの基本が理解できるようになると思います。
登録:
投稿 (Atom)



















