【要約】9歳の息子は紙と鉛筆でPythonを書く。だからブラウザを開くだけの環境を作っている [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
筆者が自身の息子にプログラミングを教える際、既存の学習環境が抱える「導入の難しさ」と「教育的配慮の乖離」に直面した。具体的には以下の課題がある。
- ・環境構築の複雑さ:インストールやPATH設定、OS間の差異が、学習の初期段階で大きな壁となる。
- ・既存ツールの二極化:プロ向けは設定が多すぎ、教育向けは装飾が過剰で本物の道具感が欠ける。
- ・学習の断絶:ブロックプログラミングからテキストプログラミングへの移行がスムーズではない。
// Approach
筆者は、環境構築の複雑さのみを隠蔽し、言語そのものは本物を用いるアプローチを採用した。具体的には以下の手法を用いている。
- ・WebAssemblyの活用:Pyodideを用いて、ブラウザ上でPythonが動作する環境を構築した。
- ・標準ライブラリの移植:タートルグラフィックス等をブラウザ上で動作するよう実装した。
- ・デバッグ機能の実装:一行ずつ実行し変数の値を確認できるステップ実行機能を搭載した。
- ・あえて「隠さない」設計:エラーメッセージや全角記号のミスはそのまま提示し、自力で解決する力を養う。
// Result
筆者は、ブラウザを開くだけで即座にPythonの学習を開始できる環境を実現した。これにより以下の成果が得られている。
- ・アクセシビリティの向上:タブレット等のデバイスでも、URLを開くだけで実行可能となった。
- ・学習体験の深化:紙の上で行っていたロジック追跡を、画面上でのステップ実行として再現した。
- ・今後の展望:速度を重視するユーザー向けに、ネイティブ版の提供も計画している。
Senior Engineer Insight
> 教育用ツールとして極めて理にかなった設計である。環境構築という非本質的な苦労をWebAssemblyで解決しつつ、エラー対処という本質的な学習を削ぎ落とさない姿勢は、開発体験(DX)の観点からも評価できる。ただし、Pyodideの実行速度の制約は、計算負荷の高い処理には向かない。プロトタイピングや教育用途に特化した、優れたエッジケースの解決策と言える。