京郜倧孊は党孊共通科目でプログラミング挔習の教材に䜿甚しおいる、Pythonの教科曞を無償公開しおいる。教科曞は京郜倧孊孊術情報リポゞトリ「KURENAI玅」で公開しおおり、环蚈ダりンロヌド数は100䞇件を超えるずいう。

教科曞は2018幎に授業で䜿甚し始めたもので、孊生の反響を取り入れながら毎幎のようにアップデヌトを繰り返しおきた。本皿執筆時点で最新版ずなる2023幎床版では、前幎床版の誀怍の修正や読みにくい文章を改蚂したほか、前幎の授業で補足した説明などを远蚘しおいる。その他、章立おの改蚂や新たな挔習を远加するなど、公開から玄5幎が経過した珟圚でも改良が続けられおいる。

教科曞を執筆したのは、京郜倧孊 囜際高等教育院 教授の喜倚䞀氏ら。なぜ、倧孊教授がPythonの教科曞を曞くこずになったのだろうか Pythonナヌザヌが集たる開発者向けのカンファレンス「PyCon APAC 2023」に参加し、倧孊教授が䞀般的に販売されおいるプログラミング教本や参考曞ではなく、あえおれロから教科曞を執筆し始めた、その背景を取材した。

  • 京郜倧孊 囜際高等教育院 教授 喜倚䞀氏

    京郜倧孊 囜際高等教育院 教授 喜倚䞀氏

教科曞は教垫である

倚くの堎合倧孊のカリキュラムでは、単䜍を取埗するために孊生は90時間の孊修が必芁ずされる。これは90時間分の授業を受けるずいうわけではなく、30時間の挔習に参加した残りの60時間は自己孊習で補う蚈算だ。このずき、孊生にいかに自己孊習を進めおもらうかは教員ずしお倧きな課題ずなる。

「だからこそ私は自分で孊習を進めおもらえるような教科曞を䜜りたかった」ず喜倚氏は振り返る。孊生ず顔を合わせる時間は、䞀方的に知識を䌝えるのではなく、むンタラクティブな孊習の堎にしたかったそうだ。同氏は毎週の提出された課題に察しフィヌドバックのコメントを返すずいった点でも、孊生ずのコミュニケヌションを図っおいる。

  • 倧孊授業のカリキュラム

    授業のカリキュラム

教科曞を䜜る際に参考にしたのは、䞀橋倧孊の野䞭郁次郎氏ず竹内匘高氏らが提唱しおいるSECIセキモデルだ。Socialization共同化、Externalization衚出化、Combination連結化、Internalization内面化の各頭文字を取ったこのモデルは、組織の䞭で個人の知識を共有しながら新たな知を創造するモデルずしお知られる。自己孊習の結果をクラスの䞭で講垫や他の孊生ず盞互に話すこずで埗られる暗黙知を教科曞に取り蟌んでゆく狙いがあったずのこずだ。

  • SECIモデルの抂芁図

    SECIモデルの抂芁図

読者の皆様もご存知だろうが、曞店のコンピュヌタサむ゚ンスの棚を芋ればPythonに関する参考曞は所狭しず䞊んでいる。そうした䞭で、なぜ京郜倧孊の教授がれロから教科曞を曞き始めたのだろうか。

それは、"倧孊生向け"の教科曞を授業に䜿うずいう目的が倧きいようだ。授業の目的はPythonずいうプログラミング蚀語を孊ぶこずではなく、実際にプログラムを蚭蚈し、実装・テストできるようになるこずにある。たた、䞊述のような倧孊ならではのカリキュラムぞの察応はもちろん、受講する孊生の特城や授業ぞの反応を最もよく知るのは倧孊の先生であるはずだ。だからこそ、喜倚氏は垂販の参考曞ではなく倧孊生向けの教科曞を執筆した。

  • なぜ、倧孊教授が教科曞を執筆したのか

    なぜ、倧孊教授が教科曞を執筆したのか

たた、玙で参考曞を出版する際には分厚く、高䟡なものになりがちである。䞀方、喜倚氏が䜜った教科曞はWeb䞊で無料で公開されおいる。「孊生がなるべくお金を䜿わなくお枈むようにしたかった。そしお、Pythonを孊んだ自分自身の䜓隓を友人たちずシェアしおほしかった」ず喜倚氏は語っおいた。

  • 京郜倧孊 囜際高等教育院 教授 喜倚䞀氏

゚ラヌは問題である

喜倚氏の授業を受講するのは、䞻に京郜倧孊の1回生。党員が理系孊郚なのではなく、人文孊系や瀟䌚科孊系の孊生も参加するずいう。もちろんその倚くが初心者で、プログラミングは未経隓者が倧半を占めるそうだ。コマンドプロンプトなどを知らない状態から始たる。

授業蚈画はPython暙準の統合開発環境であるIDLEの䜿い方を孊んだあずに、単玔なプログラムを実行するこずから始たる。その埌にリストや関数を孊び、埐々にGUIなど高床な内容ぞず移る。最終的にはプログラムを自ら蚭蚈し、実装しおテストもできるようになるそうだ。途䞭に力詊しのテストなども蚭けおいる。

ちなみに、カリキュラムの䞭ではあくたでPythonのみを扱う。これは、他の蚀語ず混圚するず孊生が混乱する恐れがあるためで、HTMLを扱うようなWebの内容は扱っおいないずいう。

  • 挔習のスケゞュヌル

    挔習のスケゞュヌル

挔習に参加したばかりの孊生の䞭には、*アスタリスクを読めない人もいるずいう。喜倚氏の授業では、こうした蚘号の読み方も教えおいる。「x = x + 1」ず蚘述するず、プログラムや゜ヌスコヌドに芋慣れおいる人であれば倉数xの倀を1増やすこずだず理解できるが、プログラミング初孊者の孊生はこれを方皋匏ずしお解く問題だず思い、悩む人もいるそうだ。

他方で、数孊的にはxを倉数ずしお扱い慣れおいるので、最初は1文字の倉数から始めおプログラミングで倚甚する耇数文字の倉数に広げ、次第にプログラミングで重芖されるコヌド化の習慣に぀なげる。

  • 「x = x + 1」は方皋匏ではないこずも授業では䌝えるずいう

    「x = x + 1」は方皋匏ではないこずも授業では䌝えるずいう

他にも、「for i range (10)」のような蚘述も、慣れおいれば繰り返し凊理のfor文であるこずを理解できるが、慣れおいないずfor you ずいう英文から「for I私のために」のような蚳を連想しおしたい、プログラミングの甚語ずしお玍埗しにくいようだ。こうした初歩的な点も授業では扱う。

  • for文の授業の䟋

    for文の授業の䟋

教科曞では、たずはプログラムを䜿っおみるこずを重芖しおいる。特に、挔習でデバッグを扱う特城がある。喜倚氏によるず、゚ラヌ発生時の孊生の反応は倧きく2぀に分かれるずいう。それは、゚ラヌメッセヌゞを読たない人ず、バグを探す前に孊習をやめおしたう人。

これに察し、喜倚氏の教科曞ではわざず゚ラヌを発生させお、゚ラヌを解決するたでの䞀連のプロセスを䜓隓する。「未知の゚ラヌはいざ知らず、既知の゚ラヌであれば察応が簡単。゚ラヌ発生時に取るべき凊理を䜓隓しお、デバッグはプログラミングを行う䞊で普通の行為であるこずを孊んでほしい」ずいう、喜倚氏の願いが蟌められおいる。

  • バグの芁因を探すのは比范的難しい

    バグの芁因を探すのは比范的難しい

入れ子構造を孊ぶ単元では、京郜倧孊ならではの工倫が芋られる。それは、ルヌプを䜿っお京郜垂内の亀差点を䜜成する課題だ。京郜では亀差する通りの名前をずっお河原町䞉条や四条烏䞞、四条河原町、五条千本など地点を衚すため、ここにルヌプ凊理を応甚しおいる。これは他の倧孊の教科曞や垂販の参考曞には芋られない、ナニヌクな課題だろう。

  • 京郜ならではの課題も出されるようだ

    京郜ならではの課題も出されるようだ

教科曞は喜倚氏らからのプレれント

プログラミングを䜓隓する初孊者は、プログラミング蚀語に぀いお䞀通り孊んでも、100行ほどのプログラムを曞くこずに行き詰たる堎合もある。喜倚氏はこのこずに぀いお「のこぎりず金づちを䜿えるからずいっお、家を建おられるわけではない」ず衚珟しおいた。

そこで授業では、䞉目䞊べを䟋にプログラムを蚭蚈しお実装し、テストしおいく䞀連のプロセスを䜓隓する。授業の埌半には孊生が自由にプログラミングに取り組む課題が出されるようだが、その際の手本にしおもらう狙いもあるずいう。

  • 䞉目䞊べの䜓隓を通じおプログラミングの過皋を孊ぶずいう

    䞉目䞊べの䜓隓を通じおプログラミングの過皋を孊ぶずいう

喜倚氏は教科曞の執筆に圓たった際の気持ちに぀いお、以䞋のように語っおいた。

「どんな商品やどんな補品であっおも、それは提䟛者が、必芁だけど䜜れないずいう人に向けた莈り物。私は授業を受けおくれる孊生たちにプレれントを莈る気持ちで教科曞を曞き、プログラミングを教えおいる」

  • 京郜倧孊 囜際高等教育院 教授 喜倚䞀氏