太子プログラミングクラブ2-8~同じことはまとめてしまおう~
2025年4月25日は、太子プログラミングクラブ「初級コース第2期」の8回目を実施しました。
タイピング練習
はじめはタイピング練習から。タイピング練習で使うツールは、いつものです。
- 無料タイピング
https://manabi.benesse.ne.jp/gakushu/typing/ - 寿司打
https://sushida.net
初心にもどって、わたしのタイピングの様子を観察してもらいました。よく観察してほしいのは、指の動き(位置)と視線です。
口では何度も説明しているものの、実際にタッチタイピングをしている姿を見ると、違った感想が出てきました。
練習していくうちに、自分のクセが強くなってきます。それを軌道修正するには、自分で気づく必要があります。いくらわたしが口先介入しても改善されないのは仕方のないことかもしれません。
各メンバーが、わたしとの違いについて何らかの気づきがあったようです。これで記録が伸びるといいなあ。
アルゴロジックを解く
タイピングの次は、アルゴロジックを解いていきます。
ジュニア問題からチャレンジ問題になって、そろそろ難しくなってきた模様です。できるまで同じ問題に取り組み続けるのもよいですが、いったん飛ばして先の問題に取り組むのもよいのです。なぜなら、先の問題を解くことによって、解けなかった問題を解くヒントが得られることもあるからです。
できなかったらいつまでもそこにこだわるのではなく、先に進みましょう。これはプログラミングにも言えることです。
関数を理解しよう
わたしがくどいほどに何度も何度も言っていることの一つに、「繰り返しをまとめよう」ということがあります。プログラミングにおいて、繰り返し同じことを書くことは、よいことがありません。
具体的には、以下の点がデメリットとしてあげられます。
- コード全体が長くなる→読みにくくなる、修正しにくくなる
- 修正するとき、修正箇所が多くなる→手間がかかる、修正忘れがありうる
関数は、害悪のもととなるコードの繰り返しを減らす工夫の一つです。もちろん関数の機能はそれだけはないけれど、先人たちの血と涙の結晶なのです。
さて、わたしは関数の説明をするときに、自動販売機の例をよく出します。
「160円入れて、コーラのボタンを押したら、コーラのペットボトルが出てくるでしょう。スプライトが出てきたら、俺は怒るよ!」
「160円」と「コーラのボタンを押す」というのが入力(引数)で、「コーラのペットボトル」が出力(戻り値)です。このように、入力が決まったら、自動的に出力が決まるものが「関数」なのです。
関数とは何かをわかってもらうために、いろいろ考えながら書いてみたけれど、難しかったようです。なんども同じことをやってみたいと思います。
先に楽をするとたいてい後で苦労をする
ところで、コードの冗長性についてWebの集合知を調べていたら、こんなことが書いてありました。
プログラムの世界では、先に楽をするとたいてい後で苦労をする。後で楽をするためにはどんな苦労も厭わない、極端に言えばそんな姿勢がよいプログラムの素地となる。
これは、わたしの経験上もそのとおりだと思います。やっつけで書いたコードは、あとから修正が難しいのです。
最近はやらない「若い時の苦労は買ってでもせよ」というのは、こういうことなのかなと思うのです。
余りの計算の法則性に気づいてほしい
小学校では四則演算は出てきても、あまりを求める「%」なんて演算は出てきません。モジュロ演算といって、アニメ映画の「サマーウォーズ」で、ちょこっとだけ言葉が出てきます。
Excelでは、モジュロ関数が用意してあります。ですが、学校の授業でモジュロ演算子が出てきた記憶は、プログラムの授業でしかないように記憶します。
だから苦手なのは当たり前です。でも、苦手は克服できます。ここのところの余り計算で、小学生のメンバーが理解しにくいところがわかってきました。フォローしたいと思います。
そして、かんたんな法則があるので、その法則に気づいてほしいと思っています。