どのように考えてコーディングしているのか、実践~

2月7日(金)は、雪のため参加者がすくない状況でした。

  • 18時00分~19時50分 Paizaの問題を解く実践
  • 19時50分~20時00分 後片付け

コーディングをするときの考え方~Paizaの問題を例に~

この日、テクノは雪模様にて参加者が少人数でした。ゴリゴリ進めるのはやめて、Paizaの問題を題材に練習したいと思います。

プログラムを組むときは、何らかの課題があってコーディングをします。通常何らかの課題は、自然言語で示されます。(言語化されてないこともあります)

そこで、Paizaのコーディング問題を題材にして、自然言語で与えられたものを、どのように考えてコードに変換しているのかを、わたしの思考を元にメンバーに追体験してもらいます。

「プログラミング」が必修になって、いろんなところでプログラミングという言葉を聞くようになりました。しかし、文科省の狙いはここです。「課題をプログラムで解決する力をつける」のが大きな狙いです。ロボットやゲームを作ることが狙いではないので要注意です。

思考をなぞるのだ

実は、タッチタイピングが十分に速いメンバーから、Paizaの問題に取り組ませていました。ところが、なかなか上位のスキルレベルに到達できないという声を聞いていました。

そこで今回の取組です。上位スキルレベルの人は、どのように考えてコーディングをしているのか、それを知るチャンスです。

わたしは、これを「思考をなぞる」と表現します。抽象的ではあるものの、思考がなぞれれば、いくらでも応用が効くのです。

もちろん、具体的解を欲しがる人が多いのは知っています。しかし、それでは応用できる範囲が狭まってしまいます。それはわたしがクラブを主催する本意ではありません。

時間がかかって苦しいけれども、上級者の思考をなぞれるようになってほしいと思います。

Paizaは不正を監視しているらしい……どうやって?

いい質問が出ました。Paizaは、スキルチェック問題を不正(ズル)をしていないかどうか監視しているそうです。では、どのように監視しているのでしょうか?

Paizaの会員は80万人以上いますので、ひとりひとり入力している様子を人間が目で監視するわけにはいきません。Paizaと会員の接点であるブラウザの回答コード入力を、プログラムに監視させていると思われます。ではどうやって?

わたしはPaizaの監視プログラムの詳細を知っているわけではないので、あくまで推察です。

コードを入力するにあたって、自分の頭で考えているときと、生成AIに解かせたときでは、入力の様子に違いが出るはず。

例えば、以下のようなところ。

  • 自分の頭で考えてコーディング
    • 少し書いて、実行して、やり直して……
    • 全部手入力
    • 時間がかかる
  • 生成AIに解かせてコーディング
    • 全部できあがって実行
    • コピペ
    • 比較的短時間

わたしがPaizaで監視する立場なら、上記のような仮説を立てて監視プログラムを作ります。

実際に運用してサンプル数をかせげば、もっと違う知見が出てくるかもしれません

こういう質問が出てくるようになるのは、大変良い傾向です。一気に飛躍しそうな予感です。