プログラム上達の早道は写経

2023年9月22日(金)は、ほぼフルメンバーの参加でした。

  • 18時00分~18時25分 タイピング練習
  • 18時25分~18時55分 各自の課題
  • 18時55分~19時00分 5分休憩
  • 19時00分~19時50分 各自の課題
  • 19時50分~20時00分 あとかたづけ

メンバーがそろっていたので、座学をしようかとも考えました。しかしながら、新メンバーが最初の導入部分を終わっていないので見送りです。もう少しプログラムに慣れてもらってから、少しずつ座学をします。

タイピング練習

今回のタイピングの練習は、英語入力です。使う教材は、下のサイトのWebアプリです。

https://manabi.benesse.ne.jp/gakushu/typing/

メンバーのタイピングの正タイプ率が90%弱~97%で、最近特に上昇が顕著です。実用的には、正タイプ率が95%くらいあるとタイピングが苦になりません。いくら入力速度が速くても、間違いが多いとそのたびに消さないとならないからです。

この調子だと、年内に全員100字90%オーバー狙えるかも。

各自の課題

各自の課題は、ものづくりチームとゲームづくりチームに分かれて取り組みます。

新メンバーは引き続き、導入メニューとしてRaspberryPi Pico(ラズPico)で入門プログラムに取り組みます。

LEDの明るさを変えるプログラム

今回は、導入メニューの最初に取り組んだLチカを改良します。LEDの明るさを無段階に変えるプログラムを作ります。このプログラムが完成すると、ホタルのようにじわっと光ったり消えたりするようにLEDを点滅できます。

これには、PWMという技術を使います。PWMとは、Pulse Width Modulationのことで、ラズPicoを使ったプログラムではこれから色んな場所で出てきます。たとえば、モーター制御もPWMを使います。

ちなみに、取り組んだLチカプログラムの一部は下記のとおりです。これは、ラズベリーパイ財団公式のコードです。

import time
from machine import Pin, PWM

pwm = PWM(Pin(25))
pwm.freq(1000)

for i in range(10):
    print(i)
    duty = int(255 / 10 * i)
    pwm.duty_u16(duty * duty)
    time.sleep(1)

ゲームづくりは写経

今回はじめて紹介するのは、ゲーム作りチームの取り組みです。

ものづくりチームと違って、ゲーム作りチームは見た目が地味です。下の写真は、メンバーが100行くらいコードで動くゲームを作っているところです。腕を組んで、なにか考えているよう。

タイトルのとおり、プログラムの上達の一番の近道は写経をすることです。写経とは、お手本のプログラムをとにかく写すこと。あたかもお経を書き写すように思えることから、俗に「写経」といいます。

プログラム中身の理解はとりあえず置いて、どのようにプログラムを書くのかに注力します。ひたすら写経を続けていると、コードの意味もわかってきます。ちなみに私の場合はVBですが、学生時代に写経で覚えました。

写真右にある紙にゲームのコードが書いてあって、一字ずつ入力していきます。意味も分からず写経をするのはかなりつらいけれど、プログラムが動いたときの感動は忘れられません。がんばれ!