オブジェクト指向の考え方を学ぶ
水曜日のクラブ活動は、それぞれの課題に取り組ました。生成AIをやってみたり、写経をしてみたり。
メニュー
- 18時00分~18時30分 タイピング練習・アルゴロジック
- 18時30分~21時00分 プログラミング各自の進み具合で
タイピング練習とアルゴロジック
タイピング練習とアルゴロジックはいつものとおりです。
無料タイピング https://manabi.benesse.ne.jp/gakushu/typing
アルゴ2は、IFがでてきて、難易度が上がります。わたしもかなり悩みます。
課題をやりつつ、写経
下のメンバーは、太陽系シミュレーターを作りたいと言っていたので、それに取り組みます。これは、結構ハードです。
百数十行で終わるプログラムもおもしろいのですが、太陽系シミュレーターのように結構な行数のプログラムに腰を据えて取り組むのもおもしろいのです。完成度がぜんぜん違うので。
となると、タイピングがある程度まともにできないと、時間ばかりかかって進みません。成果を感じられないので、そのうち飽きてしまうと、なんともったいないことか。
ということで、光都ICTクラブでは、タイピング練習をしっかりしています。
生成AIの課題は、テキスト分析
生成AIプログラミングに取り組んでいるメンバーには、前回の回答例をわたして確認してもらいました。出来上がりの同じ機能のプログラムなのに、プログラムの長さや品質が変わってくるということを体感してもらいました。プロンプトによって、大きく結果が変わってきます。
それを踏まえたうえで、今回の課題。テキストファイル(英文)を入力したら、頻出単語をグラフで出力させるというプログラムを作ります。
中高生が取り組むので、近い将来大学などでおそらく取り組むと想定できるデータ加工をプログラムで実装します。とりあえずはグラフが出力されたらOK。プログラムを使うと、いろんなことができるという、まずは引き出しを増やせればよいかと考えています。
ちなみに、テキストの題材は夏目漱石の『三四郎』の冒頭を機械翻訳で英語にしたもの。英文の内容に興味を持ってくれたメンバーもいました。
さて、つぎは何にしようか。
RaspberryPi Picoでオブジェクト指向をイメージする
最近のプログラムでは、ゴリゴリのオブジェクト指向は使わないものの、オブジェクト指向的な考え方は必須につき、オブジェクト指向を勉強しています。
実際にあるものを見ながら、プログラムを読んだほうが良かろうということで、RaspberryPi Picoを題材にしました。ここ1カ月で大活躍の反射神経ゲームです。
ピンにLEDがつながっており、LEDの点灯をピンの電圧出力で制御します。MicroPythonの公式ドキュメントンは、下のようにPinクラスが定義してあると紹介されています。
from machine import Pin
# ピン #0 を出力ピンとして作成
p0 = Pin(0, Pin.OUT)
# 値をロー、ハイと順に設定
p0.value(0)
p0.value(1)
# ピン #2 をプルアップ抵抗付きの入力ピンとして作成
p2 = Pin(2, Pin.IN, Pin.PULL_UP)
これにより、Pinの内部回路を意識せずに、電圧(3.3V)を「出力する」「出力しない」という単純な考え方でプログラミングできます。
プログラム中、プルアップという言葉がでてきたので、メンバーに説明するのが、これがまた難しいのです。
普通科に通う高校生だと、電気回路についての知識は中学生の理科で習った程度です。「電圧計は回路に並列に接続するって習ったよね」から始まり、わかりやすい例え話を探しつつ、理解してもらいます。
プログラムは仮想空間の話で、電気回路は実態のある話です。それを結びつける技術は、書ききれないほどに楽しく、なんぼでもしゃべり続けてしまいます。自制して、楽しく学べるところまで。
そのうち、もっと高度なところに取り組めたらいいなあ。