見出し画像

京大が無償公開しているPythonのテキストを読んでみる、プログラミングの学び方

タイトルに書いた
「京大が無償公開しているPythonのテキスト」
というのはこちらである。

読み始めたのは昨年11月頃。
私はどうも杓子定規なところがあって、こういうのはきっちり読み終わってから記事にしようなんて思ってしまう。だが、演習などを逐一やっていたりするとなんだかんだで長引いて、さらにその間にあっちによそ見したりこっちに寄り道したりでなかなか読み終わらない。なので、もう、途中経過でもなんでも書いてしまうことにした。10年後にそれを読み返すのも面白かろうと思う(多分)。



京大がPython教科書を書いた理由

京大が何故教科書を書いたのか。
その理由については教科書に記載されている。
主に3点。以下に概略を記載する。

  • プログラミング言語の紹介ではなく、プログラミングできることを目指した

  • 初学者が躓きやすい点を意識した

  • とにかくプログラムを書くために演習を用意した

続けてこうある。

「文科系がんばれ」

実際、文系の学生たちも多く履修し合格しているそうだ。そんなこんなで、かなり初心者に向けた内容である。それは、章構成を見ても感じる。

0.まえがき
1.コンピュータとプログラミング
2.Python の実行環境と使い方
3.変数と演算,代入
4.例題:平方根を求める
5.リスト
6.制御構造
7.京都の交差点を作る
8.力試し課題
9.関数を使った処理のカプセル化
10.Turtle で遊ぶ
11.Tkinter で作る GUI アプリケーション(1)
12.Tkinter で作る GUI アプリケーション(2)
13.クラス
14.ファイル入出力
15.三目並べで学ぶプログラム開発
16.Python の学術利用
17.振り返りとこれから
18.付録:IDLE Python 便利帳
19.付録:IDLE/Python でのエラーメッセージの読み方

Version2023_10_17_01.pdf

「0.まえがき」は、この教科書について記載されている。先ほど紹介した「教科書を書くに至った理由」についても「0.2 屋上屋を重ねる理由」に記載されている。


プログラミングの学び方

「1.コンピュータとプログラミング」は、プログラミングの歴史や概要。Pythonに限らずプログラミングについて書かれている。その中に「1.7 プログラミングの学び方」というのがあって興味深い。項目だけ抜粋してみる。

1.7 プログラミングの学び方
1.7.1 プログラミングが難しい理由
1) プログラミング言語を構成している概念が分かりにくい
2) エラーへの対応ができない
3) 実現したい機能をプログラムに展開できない
4) プログラムが複雑になって分からなくなる
5) 大きなプログラムには開発手法がある

1.7.2 プログラミングの学び方
1) 動機付け:興味の持てる課題に取り組むこと
2) プログラミングの学習はたくさん読む,書くが基本です
3) 音読,訳読
4) ティンカリング:例題のプログラムをいじくって遊ぶ
5) トレース
6) エラーに対処できるようになること
7) 情報探索

Version2023_10_17_01.pdf

「プログラミング言語を構成している概念が分かりにくい」というのが少しとらえにくいだろうか。「構成している概念」って、なんだろう。変数だとか、関数だとか、スタック、排他制御、マルチタスク、そういうことか。これらがわかりにくいのか、あるいは馴染みがないので初学者にとっての障壁になるのか。


音読訳読?

もう一つ、「おや?」と思ったのがこれである。

「音読、訳読」

「英語を学ぶわけでもなし」と初めはそう感じたのだが、よくよく考えてみると案外に実践しているかもしれないと思い至った。

プログラミングの仕事は「コードを書いて動かす」というだけではない。むしろ、それ以外の仕事の方が多い。コードを書いている時間というのは全体の10分の1、いや、20分の1にも満たないかもしれない。

設計文書をいくつも書く。それぞれを審査して、間違いがあれば訂正する。もちろんソースコードも同様である。そして通常、この審査は複数人で会議形式で実施する。問題点があったら口頭で話す方が早くて的確である。その問題点に潜む背景についても言及できる。自分の作った文書・コードを審査する場合は、もちろんその文書・コードについて説明する。他の人の文書・コードの場合はそれを見ながら説明を受ける。あやふやだった語彙は名前も意味もはっきりさせないと正しく通じない。指摘されたとき、あるいは覚えのない用語が出てくることがあるかもしれない。そういう時には指摘者に質問する。そうして、一つ一つを具体的に正確にしてゆく。指摘というのは決して怒っているわけではない。指摘するのも怒るというのではない。指摘をもらったら間違っているところを教えてもらったのだから「ありがとう」と言って喜べばいいだけである。そういう機会はとりもなおさず「音読、訳読」の積み重ねなのかもしれない。

そう考えると独学というのはそれを得にくい状況かもしれない。京大でこのテキストがあるということは、このテキストに基づいた講義、もしくは演習時間があるということかと思うが、学生同士でもチェックしあってみるのもいいかもしれない。自分の作ったものを説明してみてほしい。また問題点を教えてもらってほしい。さらに人のプログラムも見てほしい。そうして問題点を指摘し、説明して欲しい。他の人の作ったものを見るのは大いに勉強になる。教科書の「プログラミングの学び方」の章にもこうある。

「2) プログラミングの学習はたくさん読む,書くが基本です」

「たくさん読む」というのは本ばかりとは限らない。他人のプログラムを読むことは実に有意義である。問題点があれば理由も含めて指摘できれば、なおよろしい。

考えてみれば、本当に多くのプログラムを見てきた。審査だけでなく他の人が作ったプログラムをデバッグ改修もしてきた。良くも悪くも学んだことは多い。


そしてPythonの環境構築

教科書を進めてみよう。
「2.Python の実行環境と使い方」は、Pythonの環境構築に関する話である。初学者であれば教科書に従うのがいいかもしれない。環境構築というのは意外に躓きやすい。しかも、躓くと抜け出せなくなることも少なくない。そうなると、もう、本当にげんなりする。プログラミングの勉強意欲も萎えようと言うものだ。環境構築で躓くというのはスタート地点にも立っていないことを意味する。それだけは避けたい。この章では環境構築についてもかなり丁寧に説明してくれている。


いよいよプログラミングする

そうして、3章以降でいよいよプログラミングに入る。ここでも書きたいことはあるのだが。

長くなったので続きはまた今度。



この記事が気に入ったらサポートをしてみませんか?