それは与えられた欲望か?
生きることにこだわりを。魚住惇です。 今回もちょっとしたこだわりに、お付き合いください。
プログラミングの自動採点環境を整えたい
先週、いや、それ以前からずっとラズパイ4をいじっているわけですが、大きな目的があります。
前回の繰り返しにもなりますが、まずこのスクショを。
昨年度の3学期の情報Ⅰの授業で取り組んだ、プログラミングの課題です。言語はPythonです。内容は逐次探索で、配列の中に入っている数値の中から、目的の数値を探すというものです。
教科書で扱っている探索プログラムは2種類で、逐次探索の方が単純です。配列の最初から最後まで順番に見ながら目的の数値と比べて、一致するなら”発見”と画面に表示するという単純な仕組みです。
単純とは言っても、forとifを組み合わせるので、高校生にとっては応用編として扱っています。少なくとも勤務校ではこれが応用編です。
Pythonの動作環境はコンピュータ室のWindowsノートパソコンで、Miniconda3がインストールしてあります。
本当ならVSCodeを使わせたいんですけどね。コンピュータ室のWindowsはローカルユーザーで自動サインインするように設定されているので、VSCodeをインストールしても前に使っていたユーザーの内容が見えてしまうんですよ。
これを避けるためには一人一台タブレット端末を授業で活用するしかないんですが、生徒が使っている端末がSurface Goで、画面の大きさが10インチしかありません。VSCodeを使うと、画面が狭いなと感じます。
僕自身もこう見えてエディタにはこだわりがあるので、できればそのこだわりを授業にも活かしたいというか、生徒にもわかってほしいという思いが正直あります。
ただ、端末がね。エディタもこだわるとスペックを必要とするので、必要最低限、高機能ではなくて軽く動作するエディタを選ばなくてはなりません。結果、Miniconda3に付属しているIDLEのエディタを使うのが手っ取り早いかなと判断しました。
そして、書いたプログラムをどうやって提出するのか。Scratch時代には.sbファイルをコンピュー室の共有フォルダに提出させるという手法をとっていましたが、時代はオンラインで提出の時代。ロイロノートのカードにソースコードをコピペして提出という手法に切り替えました。
ところがこの手法だと、このソースコードを僕がチェックして、動作するかどうかを確かめなければなりません。課題は1〜15まであって、生徒はおよそ220人います。そのまま掛け算すると3300です。つまり毎年魚住は、3300回ほど生徒が書いたコードを頭の中で実行していることになります。
これがかなり頭のリソースを食うんですよ。本当にしんどい。
さらに厄介なのが、LINEなどで友人らからソースコードを手に入れて、それをそのまま貼り付けてくる生徒たちです。まぁそんなことをされてもね、大抵わかるんですよ。僕はPythonでインデントを下げる際はTabを推奨しているわけですが、メッセージアプリを介したり、手書きのメモなどから知り得たソースコードをそのままカードに入力しただけでは、Tabが入っていません。
つまりPythonだとforやifが正しく動かないということです。これは提出されたコードをパッとみただけでも、「あ、この生徒は動かないコードをそのまま提出してきたな」と判断できます。
それでもその生徒に「このプログラムは動かないよ」と注意しても、「動きます!動くはずです!」と繰り返し主張してきます。その生徒は既に課題を終えた他の生徒からコードを入手して、それをそのまま入力したはずと思っているので、当然の主張です。お互いにソースコードを見ながら話をしているだけなので、これでは話が平行線です。
じゃあどうするのか。提出された内容をIDLEにコピペして、僕が1回1回動作検証するのか。でもそれならパッと見て判断した方が早い。
以上の経緯があって、プログラミングの課題を自動で判定できる仕組みを整えようという計画を立てました。機械に判定してもらって、ダメならダメ、ヨシならヨシで、その場で表示される方が、お互いにとってメリットがあると思ったのです。
そこで昔少しだけ使ったことがあるmoodleというLAMPで動くLMSの機能を調べてみると、問題の出題方法にCodeRunnerというプログラムのコードをmoodle上で実行できて、その場で判定できる仕組みが存在したので、なんとか利用できないか試してみることにしました。
今僕が困っているのがこの部分です。CodeRunnerそのものはプラグインをmoodleに入れるだけで動作するようになりました。問題は実際にコードを実行してくれる部分です。
デフォルトでは"jobe2.cosc.canterbury.ac.nz"というドメインが入っています。多分、ニュージーランドのカンタベリー大学にあるサーバです。
デフォルトではここのサーバを使ってコードを実行するようになっており、専用のAPIキーが挿入されていました。
動作テストを何度かやっていたところで初期動作テスト用の命令を使い切ってしまったようで、「早く自分でサーバを用意してね!」みたいなメッセージがmoodle上に表示されるようになりました。
どうやってコードを実行させるサーバを立ち上げるかは、全部GitHubに掲載されているので、やれんことはないと思うんですが、
いかんせん全部が英語で、内容を読み解くのに苦戦しています。
JobeServerというのを立ち上げる必要があって、RaspberryPiでも実績があるそうなのでDockerでコンテナをビルドして起動してはいるんですが、そのコンテナのURLをmoodleに追加してもエラーが出ました。
現在その段階で止まっています。はてどうしたものか。
JobeServerを有償で公開しているところのサービスを利用しようとすると、最低でも毎月5ドルはかかります。そりゃプログラムのコードを実行できる環境、つまりコンピュータそのものを用意してくれるんだから、お金はかかるわな。
あともうちょいでできる気がするので、なるべくお金がかからない方法で、実践したいものです。
あまり調べてはいませんが、情報Ⅰの授業を行う上での便利なサービスは登場していると思います。既にオンラインでのプログラミング学習サービスも高校生向けにカスタマイズされているものもあるはずです。
でもそれらを利用しようとなると、どうしても教材費として費用がかかりそうですし、何より学校外のサーバにアカウントを登録して生徒に使わせることにもなります。
これがmoodleを入れたラズパイでできるなら、校内にサーバを立てて、そこでプログラミングの課題の採点ができるわけですよ。その仕組みを、自分で作ってみたい。
ここまでサーバを立てるようになると、Docker専用のサーバが欲しくなります。ラズパイで大丈夫かしら。それに、arm64だとDockerの手軽に使えるイメージが少ないのも悩みどころです。今はそれを、自分でビルドすることでなんとかなってるんですけどね。
いつかamd64でそこそこのUbuntuサーバを用意したいと思います。費用で考えたらラズパイを買い足すのも手ですね。
それは与えられた欲望か?
愛聴しているPodcast、うちあわせCastで、欲望についての話がありました。
リサーチのはじめかた ――「きみの問い」を見つけ、育て、伝える方法 (単行本) | トーマス・S・マラニー, クリストファー・レア, 安原 和見 |本 | 通販 | Amazon
この『リサーチのはじめかた』という本の紹介を通して、どうやって自分の興味関心の先にあるものを見つけるのかという話をされていました。
確かに日本の教育では、欲張りは謙虚さと相反してよくない結果をもたらすというイメージを植え付けます。おとぎ話からこち亀に至るまで、やりすぎると損をするようなエピソードが多いなと思います。
そして最近では、情熱の大切さにフォーカスが当たり、「好きなことを仕事にしょう」だとか、心のときめきを大切にしなさいだとか。自分の心が何に反応するのかで行動することが良いことだという論調が増えてきたように思います。
学校現場でも、一斉授業教育をやってきた時代から、個人がそれぞれ探求活動を行う時間が確保される時代に変化しました。
今の時代は、その生徒がどれほどそのことについて真剣に考え、その答えに辿り着いたか。これを教師側がいかに受け止めるかが求められていることを、ひしひしと感じています。進路選択もその一つです。
ただ僕は最近、人が何かしらに関心を向いているとして、それが本当に自発的な関心なのかどうかが気になるようになりました。
例えば、本日2023年9月13日には、AppleがiPhone15を発表しました。「素晴らしい製品です。USB-Cです。カメラが高性能です。」
これに対して「うおおお欲しい!」と視聴者が反応すれば、それはAppleが消費者に購買意欲を促すことに成功したということです。
正直な話、僕にとってiPhoneは、新しいものが出る度に買うべき存在でした。結婚するまでは。
妻のゆかさんにとってiPhoneは、日用品であり、壊れたら買い替えるくらいの認識でした。
この差が、それが「与えられた欲望」かどうかの境目のような気がしました。
僕はこの差を、最も身近な存在で確認することで、やっと認識できました。それまでは、iPhoneを毎年買い替えないのは、情熱が足りないからだと思っていました。
それが結婚という、2つの価値観が交差する営みを経て、自分自身が抱いている感情が、実は与えられたものだということに気づいたのです。
そこからかな、テレビを見なくなったのは。一度そういう視点から物事を見ることができるようになってからは、メディアから大量に降り注いでくる情報が、同じようなものに見えるようになりました。
人に商品を買ってもらうためには、いかにそれが必要で、欲しいものだと思い込ませるか。
探究活動をしましょう。自分の興味関心があることについて調べて、まとめましょう。取り組んだ活動のレポートを書きましょう。実際に学校でこういう活動をやらせてみるとわかるんですが、自分が推しているアイドルについて探究しだす生徒が一定数いるんですよ。本当にそれが興味関心の先なのか。与えられた欲望だってことに、気づいてくれよ。
しかしながら、与えられた欲望が全て悪いかと言えば、そうでもないこともわかります。僕が今、こうして教師をしているのは、小学生時代に良い先生に出会ったからです。
将来の夢は、それまで生きてきた経験から出てくるものです。スポーツ選手のほとんどは、幼少期からその競技に夢中になっています。親が与えた情熱とも言えます。与えられたすべての欲望は、悪でしょうか。
自分に欲望や興味関心の対象があるとして、それが自発的なものか。それとも、誰かによって与えられたものなのかどうか。
今回の落としどころは、それらを正しく認識しているかどうかだと考えました。
ちなみにですが、僕はよく、自分に勧めてくるものよりも、誰かが何かに夢中になっているその姿を見て、興味を持ったりします。
どうしてその人がそこまで夢中になれるのかが気になるからです。それと、何かに熱中している姿は、見ていて素敵だなと思います。
人のこだわり、見たり聞いたりするのが僕は大好きです。あなたのこだわり、コメント等で教えてください。今回のnewsletterは以上となります。
え?iPhone15?欲しいに決まってるじゃないですか。Plusの256が狙いです。