京都大学が2019年に公開した「プログラミング演習 Python」は、その分かりやすさやクオリティの割に無料ということで当時話題になりました。一応京大生向けに書かれた教科書ではありますが、Python初心者であれば非常に役立つPDFとなっていますので当サイトでも紹介したいと思います。
京都大学 「プログラミング演習 Python」とは?
「プログラミング演習 Python」は、京都大学関係者の方が京大生向けに作成したPythonの教科書です。京都大学ではPythonが全学部共通科目として設定されており、その講義で使う“レジュメ”として位置づけられている様です。
内容はプログラミングとは何か、何故プログラミングを共通科目として履修するのかといったイントロダクションから関数、簡単なプロダクトの開発、ライブラリを使ったデータ分析やグラフ化の知識・方法まで幅広くカバーした、市販の2,000円くらいする“Pythonの初心者向け教本”に匹敵するボリュームを抑えています。
作成したのは喜多 一氏、森村, 吉貴氏、岡本 雅子氏の計3名。いずれも京都大学各機関に所属する研究者です。19年度版は喜多氏の単独著者名義でしたが、版を改める毎に作成者が増えているようですね。
教科書は無料で公開されている
教科書自体はPDFで公開されていますが、学内イントラ等で配布されている訳ではなくインターネット上で一般公開されています。
公開場所は京都大学学術情報リポジトリ「KURENAI」と呼ばれる京都大学図書館機構が公開している機関リポジトリ。他大学のそれ同様、京大のリポジトリもオープンアクセス形式になっています。無論検索エンジンでのインデックスもされており、ブラウザがあれば誰でも閲覧やDLが出来る仕様になっています。会員登録等は要りません。
「プログラミング演習 Python」の内容
本記事執筆段階では最新である21年度版は、次のような構成となっています。
- 0.まえがき
- 1.コンピュータとプログラミング
- 2.Pythonの実行環境と使い方
- 3.変数と演算、代入
- 4.リスト
- 5.制御構造
- 6.京都の交差点を作る
- 8.Turtleで遊ぶ
- 9.Tkinterで作るGUIアプリケーション(1)
- 10.Tkinterで作るGUIアプリケーション(2)
- 11.クラス
- 12.ファイル入出力
- 13.三目並べで学ぶプログラム開発
- 14.Pythonの学術利用
- 15.振り返りとこれから
- 16.IDLE Python便利帳
- 17. IDLE/Python でのエラーメッセージの読み方
なお実行環境はWindows 10、Pythonのバージョン3から構成された配布パッケージ・Anacondaで進めていく想定となっています。
「プログラミング演習 Python」が学習初心者に良い理由
具体的なコンテンツは実物を見ていただくとして、全体を通してこの教本が初心者にとって良いと思う部分を3つ挙げてみました。
ITの“基本の基”からライブラリ活用までカバー
たとえば「1. コンピュータとプログラミング」という章では、そもそもプログラムがどのような歴史を辿ってきたか、コンピューターはどんな仕組みで動いているのかといった「コンピューター概論」のような導入が展開されています。これから独学でPythonを勉強したいという方には若干冗長かも知れませんが、プログラミングスクールの講師や民間企業のプログラマが書いた一般的な教本には見られない、学術機関ならではの重厚なテキストとなっています。これはプログラミング初心者でなくても読む価値ありです。一方、一般書ではスルーされがちな“ファイルパス”や“CSV”のような非IT人材には意外と馴染みの少ない用語も都度説明されています。これもありがたいですね。
もちろん本題のPythonについても一通り解説されており、Anacondaのインストールからリスト、繰り返し処理、関数、モジュールやライブラリの使い方まで幅広くカバーしています。PDFだからソースコードもそのままコピペが出来るのも初心者には嬉しいポイント。
毎年改訂・改良されている
Pythonに限らず、プログラミングやWeb開発の教本は月日が経つと徐々に役立たなくなります。OSや言語のバージョンアップ、UIの大幅な変更は勿論、数年前までは「最前善のやり方」だったものが「あまり好ましくない」ものに型落ちすることは少なくありません。
「プログラミング演習 Python」は初版が2019年なのでまだそこまでの変更はありませんが、それでも20年、21年と毎年続けて改訂されていることが明らかになっています。
例えば21年度版でIDLEについて2章に渡って解説されていますが、19年版では「IDLE/Python でのエラーメッセージの読み方」がありません。恐らくIDLEでエラーが起こった際の対処法も書いて欲しい、あるいは載せた方が良いという声が出たために追加されたと思われます。また19年度・20年度版では第10章として掲載されていたリストの解説が4章に移植され、for文の扱いなどが見直されていました。
いくら変化が多いとはいえ、教本を毎年改訂出版することは珍しいと思います。それが出来るのはPDFデータ1つをインターネット上で配布している故の強みですね。
22年度版はまだ出ていませんが、21年10月にWindows 11がリリースされたのでこの辺りの修正が入るかも知れません。
PDFとして扱いやすい
少々マニアックな視点になりますが、「プログラミング演習 Python」はPDFファイルとして非常に使いやすいものになっています。
目次の一つ一つに内部リンクが貼ってあるのもそうですし(意外と貼ってないPDFファイル、多くないですか?)、表、プログラム(コード)、演習(いわゆる練習問題)各カテゴリ別の目次やリンクまで作成されています。繰り返し参照することを想定した、学習者にとって非常に使いやすい仕様です。先述の毎年改訂同様、Webサイトの操作性や可読性には及びませんが、それでもPDFの機能やメリットを最大限に活かしていることが伺えます。
「プログラミング演習 Python」の気を付けるべき点は?
これだけのボリュームを無料で、しかも毎年改訂して公開しているだけで十二分にありがたい教本なのですが、『プログラミングの知識0だけどこれからPythonを独学でマスターしたい』という方全てにオススメ出来るかは確認が必要です。
『本当の初心者向け』の教本より難易度は高め
「プログラミング演習 Python」はプログラミング初心者の新入生向けに、それも文理問わず理解出来るよう作成されています。
ただ全体を流し読みすると分かる通り、イントロダクション部分に一部実写画像が挿入されているほかはほぼ文章とコードだけで構成されています。『はじめてのPython~…』的なタイトルの一般書だと大体イラストやカラーチャートの挿入、ページのレイアウトが読みやすいよう工夫されていることが多いので、少なくとも読みやすさだけで言えば一般書の方がだいぶ上に感じました。
もちろん実際には講義の中で詳細な補足があるでしょうし、一般書と違って講師からのフィードバック、また同級生同士で聞き合えるような学習環境がありますので、京大生にとっては決して一般書に劣る教材にはならないでしょう。
ライブラリやモジュールの解説が少ない
PandasやNumPyなど一部ライブラリは解説されていますが、それ以外はほとんど触れられていません。例えばdatatime、pillow、reなどはあらゆる教科書や解説サイトでも基本的なライブラリとして紹介されていますが、「プログラミング演習 Python」ではいずれも記載がありませんでした。
本書は、いわゆる日常の事務作業や業務効率化ではなく『学術用途としてのPython』を教えているという前提があるんだと思います(文中でもそのような言及があります)。PandasやNumPyが紹介されているのは数値を扱うライブラリだからでしょう。Pythonはライブラリやモジュールを覚えるだけで出来ることがかなりありますから、あくまで業務で使える実践的なPythonをマスターしたい方にはちょっと向いてないような気がしました。
それでも一回読んでみて
…などとマイナスポイントを挙げてはみましたが、多くの方が仰るようにこのクオリティを無料で公開してくれる(しかも毎年改訂してくれる)のは本当に素晴らしいので、Pythonの独学や基本の復習をしたい方はぜひ読んでみてください。
「0.2 屋上屋を重ねる理由」にて
本書は学習の方向付けとして Python を用いたプログラミングの基本を解説していますが,プログラミング言語の仕様を網羅的に紹介するものではありません.別途,Python についての解説書などを用意して受講されることをお勧めします.
と書かれているように、実際には本書に加えて市販の教本や当サイトのようなブログを併用するのが現実的な学習方法と言えそうです。それぞれの足りない情報を補いながら進めるのが良いでしょう。