なぜオリジナル教科書を作成するのか? 100万人がダウンロードしたテキストの目標
しかし、すでに書店にはPythonのテキストが数多く並んでいる。なぜ喜多教授は、わざわざオリジナルの教科書を書き起こしたのだろうか?
「私達の目標はPythonを学ぶことではない。プログラミングができるようになることが目標」だったからと喜多教授は語る。また教員は、初心者の学生がよく間違えるポイントについても熟知している。学生がプログラミング自体の考え方を身に付けられる、より良い教材を届けたいとの思いから、オリジナルのテキストを作成することに決めたそうだ。
また喜多教授は、お金のない学生でもプログラミングを学び、その知識を友人などにシェアしてもらいたいとの思いから、このテキストを一般公開することに決めたという。京都大学の学術情報リポジトリ「KURENAI」にアップされたテキストは、Twitter(現X)での投稿をきっかけに大きく話題となり、現在までに累計で100万件以上のダウンロードを達成している。
授業について、この科目の目標は大きく3つ設定されている。1つ目は、Pythonを使ってプログラムを実行することについて基本操作を習得する。次に、Pythonプログラムを構成する基本的な要素・機能を学習する。そして最後が、簡単なプログラムを自ら設計し、実装、テストすることだ。授業を受講する学生の多くはプログラミング未経験の大学1年生。しかも、彼らは高校時代タブレットやスマートフォンに親しんで来たため、PCそのものを使う機会は限られていたという。そのような学生が、週に2時間15週の講義を通して、開発環境の構築から順次変数やリストなどの考え方を学んでいき、最後の自由課題ではオセロゲームなどを制作してくるというから驚きだ。
京大生でも間違える!? プログラミング初心者の落とし穴とは
次に喜多教授は、プログラミングを学習し始めたばかりの京大生がつまずきがちなポイントを紹介した。まずは、口頭で記号を伝えることの難しさ。喜多教授が例として挙げたのは、「*(アスタリスク)」だ。実はこの記号を「アスタリスク」と発音できる新入生は少ないらしい。記号の発音が分からないため意思の疎通ができず、プログラミング学習につまずく初心者が多いのだという。
伝わり方の難しさは、紙面にもある。喜多教授はテキストでの伝わり方の誤解を防ぐために、「K2PFE」という教育用フォントの開発も行っている。半角や全角の違い、またインデントの表記などに配慮したK2PFEは、プログラミング初心者の「文字は合ってるはずなのに、なぜかうまくいかない?」という問題を軽減する。
またプログラムでしばしば現れる表現「x₌x+1」は、単に変数xの値を1増やすことを表すが、ここにも学生が陥りやすい落とし穴があるという。はじめてプログラミングに触れる人にとっては、このような記述は数学の方程式のように見える。実際、学生たちは、方程式としては解けないことにとまどうとか。これは数学を学んできたバックグラウンドが足枷になってしまうケースだが同時に、xなら変数として扱うことには高校までの数学的思考から慣れているので、変数の利用の導入には使いやすいとのことである。
また喜多教授は、「for you」問題も取り上げた。「for」という単語は、英語としては「for you」の例のように「~のために」という意味を持つが、プログラミングでは繰り返しを表す文として使われる。学生がそれまでに勉強してきた数学や英語との共通の背景知識は活用しつつ、考え方を変えるべき点については丁寧に伝えて行くことが重要だ。