プログラムはChatGPTに指示して作ってもらう時代だ。
ちょっとしたコツは必要なので、それを学生に教えた方がタイパ、コスパが良い。
横浜国大の大学院生用の授業で、「材料・素材系のデータサイエンス」を教えている。
プログラミングを授業に含めるか、悩んできた。
特に化学には化学特有の問題があるので、プログラムが書けるに越したことがない。
化学系プログラマーの育成は必要か?
というブログに1年近く前に書いた。
このところ状況が一変している。いわゆる生成系AIがものすごく発達してしまったのだ。AIには常識が無いなんて、とてもでは無いが言えない。
という訳で、授業が始まってしまってから、急遽授業構成を大きく変えている。
例えばフッ素化オレフィンの物性推算式を構築している。(これは地熱発電などの用途に使う大気寿命の短い、地球温暖化係数の小さい化合物の検討)
単純にExcelの回帰計算を行えば、回帰係数が手に入る。
回帰係数を使って例えば分子量を計算するには、回帰係数とテーブルの値から計算式を作る。回帰係数はセルの位置を動かさないで指定するので、$で囲む。
いくつもの物性値を計算するので、自動化するプログラムを作成してしまいたい。(検討の本筋では無いので時間はかけたくない)
前提としては目標物性はB列、C列ーK列(この場合Kなだけでケースバイケース)の2行目から説明用のデータが入っている。
具体的には次のようなプログラムだ。
右下を摘んで引っ張るとテキストエリアが広がる。上のテキストエリアに回帰係数をエクセルからコピペする。(既に入れてある)
そしてスキーム作成ボタンを押すと計算式が得られるのでコピーして、エクセルの邪魔にならないところの2行目にペーストする。
とても簡単なプログラムなので、プログラミングの知識があれば、10分もあれば作成できるだろう。
そうしたことができるIT/DX/AI/MI人材にリスキルしようとか掛け声がかかっているのはご存じだろう。
でも、化学系の学生は化学を学ぶのに忙しいのだ。(統計や数学より化学実験が楽しいっていうのはあるかもしれないが)
実はこのプログラムはChatGPTが作ってくれたものだ。
次のような指示書をChatGPTに流し込んだ。
次のプログラムを作ってください
htmlファイルを作成する。
UTF-8を使います
CoefficintというIDを持つテキストエリアを作成する。
MakeSchemというIDを持つ"スキーム作成”という名称のボタンを作成する
ClearというIDを持つ”消去”という名称のボタンを作成する
SchemeというIDを持つテキストエリアを作成する
Javascriptのプログラムをhtmlファイルに作る。
MyResという変数を作り""を代入する。
ColNameという配列を作り、順次、””、"+C2*","+D2*","+E2*","+F2*","+G2*","+H2*","+I2*","+J2*","+K2*"を代入する
MyClearという名称の関数を作り、Clearボタンが押されたら実行する。
変数MyResに""を代入する
CoefficintというIDを持つテキストエリアに""を代入する
SchemeというIDを持つテキストエリアに""を代入する。
MyClear関数終了
MyMakeSchemという名称の関数を作り、MakeSchemというIDを持つボタンが押されたら実行する。
CoefficintというIDを持つテキストエリアの中身を変数に代入する
その変数を改行ごとに分割し、Coeff配列に代入する。
0からCoeff配列の最後まで繰り返す
MyResにColName配列とcoeff配列を順次付け加える
繰り返す。
MyResをSchemeというIDを持つテキストエリアに書き込む
1箇所だけ、ループのところで間違いがあった。テキストの結合の後に改行を付け加えてしまった。
ColName配列とcoeff配列を改行なしで順次付け加える
とかに変えれば良いのだろうか?
化学系の自分らが作りたいプログラムなんて、やることはたかが知れている。
GUIの種類とキーワードをいくつか覚えれば、後は手順書を作る=アルゴリズムを組み立てれば、後はChatGPTがやってくれる。
作ってみて動かしてみて、思い通りに動いていなかったら、指示書を書き換える。
この繰り返しは、化学系の実験そのものだ。違和感は無いだろう。
色々なパーツごとの指示書の作り方のノウハウを作っている。
新しい時代のプログラミングの指南書になるかもな。なんてたって、プログラム言語の種類だって最初で変えられる。
「量子コンピュータ用のChatGPT APIを作成しろ」って指示書を作ったらどうなるのだろうか?