ブラウザ上でpythonの記述・実行ができるGoogle Colaboratory(以下Colab)。
これに「学習モード」なるものが実装されたと聞いて、python初心者の私がいじってみました。
学習モードってなに
今までのGeminiは「〇〇するコード作って」と言えば完成品を出してくれる便利な「コード生成器」でした。
しかし、新しく実装された学習モードに切り替えると、Geminiは「メンター(先生)」に変身します。
- すぐには正解を教えない
- 解き方のヒントをステップ・バイ・ステップで伴走してくれる
- なぜその関数を使うのか、エラーの根本原因を問いかけてくれる
「答えを教えてもらう」のではなく、「自力で書けるように誘導してもらう」モードです。
学習モードへ切り替える方法
サイドパネルのGeminiチャットを開き、入力欄の左下にある設定アイコン(画像参照)をクリックします。
メニューが表示されるので、「学習モード」を選択すれば切り替え完了です!
デフォルトに戻したいときも、同じ手順で簡単に切り替えられます。

学習モードが選べない時は?
もしアイコンを押してもメニューが出ない場合は、一度ページをリロードするか、Googleアカウントにログインし直してみると解決することがあります。
学習モードを使ってみる
学習モードに設定して、質問を入れます。
といっても、何を聞いたらいいかわからなかったので
「forとifしか使えない初心者です。何したらいい?」と
思いっきり丸投げしてみました。
さすがに何やるかくらいは自分で決めろよって突き放されるかと思いきや

いきなり英語で返ってきて少しビビりましたが「It's great」って誉められちゃいました。
「じゃあ、みんなが通る定番の問題に挑戦してみようか!」とポジティブに、私のレベルに合わせた簡単な練習問題っぽいものを作ってくれました。
「どうやったらリストの中から1つずつ取り出して、偶数かどうか判定できると思う?」と、こちらの思考を促すような問いかけまでセットです。これが「学習モード」の伴走力か。
チャットで指示を出すだけでなく、ノートブック側に直接「問題文」と「コードの土台」を書き込んでくれました。
1から10までのリストが入った numbers という変数も用意されています。
「ここから先は君が書いてみてね」という、まさにワークショップを受けているような感覚です。
じゃあ頑張って書いてみるね。
for i in numbers:
if i % 2 = 0:
print(i)
「いい感じ!でもちょっと問題あるね。i%2に0を代入したいの?違うよね」(意訳)
そう、「間違い」を教えるのではなく、「今のあなたのコードはこういう意味になっちゃってるよ」と気づかせてくれるんです。
あ、間違えた。if i % 2 == 0: こうだね。
「素晴らしい!ちゃんと修正できたね。じゃあ実行して期待どおりの結果がでるか確認してね。次は、その偶数をリストにしてみようか」(意訳)
こう?
g=[]
for i in numbers:
if i % 2 == 0:
g.append(i)
print(g)
「完璧! [2, 4, 6, 8, 10] が表示されたね。これは、リスト g にすべての偶数が正しく格納されたってこと。これをすると何が便利だと思う?」
新しいリストを使ってなにかやるときだよね。例えばこの中から4の倍数を出すとかリストの中身を足し算するとか?
「そのとおり!次は何をやる?リスト内包表記やってみる?」
「うん、リスト内包表記を説明して」
「リスト内包表記は・・・[expression for item in iterable if condition]で・・・元のコードの range(1, 11) の部分はリスト内包表記のどの部分に該当すると思う?」
やばい、そろそろついていけなくなってきた(焦)
Gemini先生、褒め上手なのはいいんですが、たまに「iterable(反復可能オブジェクト)」とか「expression(式)」とか専門用語をぶっこんできます。
とりあえず見様見真似で
X=[i%2 for i in range(1,11)]
「良いスタートですね!range(1, 11) が反復可能オブジェクト(iterable)であることは正解。元のコードで加算されていたものがexpressionだよ」
これでどう?
print[g+i for i in range(1,11) if i%2])
「惜しい!g+i ではなく、リストに含めたい要素は何だったっけ?if i%2 は i が奇数の場合に真になるけどそれでいいの?リストの合計を求めるには、sum() 関数を使うといいよ。あ、あとprintのあとのカッコがぬけてるよ」
こんなふうに細かく刻んでヒントをくれるので必死でついていきます。
print(sum([i for i in range(1,11) if i%2==0]))
「素晴らしいですね!まさにそれが私が意図していたリスト内包表記での書き換えです。この書き方にするとどんな利点があると思う?」
「コードが1行で済むとか、可読性が上がる・・・のか・・・?」
「そう!リスト内包表記はpythonで推奨される書き方(Pythonic)だから読みやすいし保守性UPだよ」
こんな感じで和気あいあいと学習が進みます。
コードの書き方だけじゃなくて、考え方とか何のためにやるのかなんてことまで教えて(考えさせられて)くれます。
会話履歴はその場かぎり
ここで私、うっかりGoogleColaboの画面を閉じてしまいました。
あわてて開きなおしたのですが、チャット画面は真っ白(ぼーぜん)。
「今までの会話の履歴を再現して」
「ごめんむり」
コンテキストはリセットされてしまいました。どうやらモデルも切り替わってしまったようです。
でも、ノートブックに残っているコードを読み取って続きのステップを提案してくれました。

ノートブック(コードやテキストセル)はGoogleドライブに自動保存されるので安心ですが、Geminiとの会話履歴はブラウザ上のメモリに一時的に置かれているだけのようです。
そのため、ブラウザのタブを閉じたりリロードしたりすると会話メモリはリセット(揮発)してしまいます。
大事な解説はテキストセルにメモしておくようにしましょう
さて、気を取り直して、次は私がプライベートでやりたいと思っている課題を投下してみます。
いきなり難しい課題を提示してみる
「特定のドライブにあるjpgファイルを右回転させたい」
Gemini先生、はりきって緑色のセル(解説付き)を生成し始めました。


ライブラリ?インストール??
怪しげなニオイがしますが、言われるがまま再生ボタンを押し・・・
ちょっとまって。
これ、完成コードちゃう?
「学習モード」なんだから、「まずはファイルを開く関数を調べてごらん?」とかじゃないん??
初心者がいきなり画像処理に挑むと、環境構築やライブラリの壁で挫折しがちなので、Gemini先生は「まずは動くものを見てモチベーションを維持させよう」と判断したのかもしれませんね。
端的に言うと 「お前にはまだ早すぎる。(まずはコピペでいいから動かせ)」
先生の設定を覗いてみる
Geminiの設定画面から、自分専用のカスタム指示(システムプロンプト)を作成することもできます。
「編集」→「ノートブックの設定」→「AIアシスタント」
デフォルト設定は目玉マークをクリックすると出てきます。

「新しいカスタム指示を追加」から、自分好みの先生を作ることも可能です。
デフォルトと同じようにモデルへのプロンプトを書いて保存すればOK。
まとめ
そんなわけで、Google Colabの「学習モード」を触ってみて感じた、向いている人と注意点です。
- 向いている人
- 「コピペで動けばOK」ではなく、コードの意味を理解したい人
- 独学中で、身近に質問できる先輩がいない人
- その場のタスクを通じてピンポイントにPythonicな書き方を学びたい人
- AIに添削と解説をしてもらいたい人
- 注意点
- チャット履歴の保存機能はないので、こまめにノートに残そう
- タスクが複雑だと「普通に正解を答えるモード」に戻ることがある
私がポンコツすぎるので、どれくらい複雑なところまでできるのか確認できないのが残念ですが、この「学習モード」でどこまでできるようになるのか、しばらく試してみたいと思います。
皆さんも苦手な構文をGemini先生にぶつけてみてください。もしかしたら意外な発見があるかもしれません。
参考リンク

