HOME総合情報概要・基本データ刊行物教養学部報636号(2022年5月 9日)

教養学部報

第636号 外部公開

<本の棚> 森畑明昌 著 『考え方から学ぶ プログラミング講義 Pythonではじめる』

山口 泰

 最近、日本のプログラミング教育は大きく変化している。小学校においては二〇二〇年度からプログラミング教育が必修化され、中学校では二〇二一年度から必修である技術・家庭科の「D情報の技術」でプログラミングの内容が拡充された。さらに高等学校では選択必修であった情報科において、二〇二二年度からプログラミング教育を含んだ「情報Ⅰ」が必修化される。二〇二五年度からは大学入学共通テストに「情報Ⅰ」が組み込まれ、多くの国立大学で受験を求める情勢となっている。結果として二〇二五年度以降に入学する大学生は、(少なくとも指導要領の上では)それまでとは比較にならないほどプログラミングについて学んでくることになる。大学や大学卒業後の活動に与える影響が明らかになるのは、十年ほど後になるだろうが、今が端境期にあることは間違いない。
 プログラミング教育に限らず、新しい科目Xを学ぶ際に「Xは何の役に立つのか」という疑問を聞くことがある。知識や技能を身につけることは必ず何かの役に立つはずであるし、基本的にヒトは知識欲を持っているはずで、何故それほどまでに現世利益にこだわるのか、私なぞは疑問に感じないでもない。しかし、森畑明昌氏は本書においてプログラミングを知らない初学者のために、非常に丁寧に説明を繰り広げようとされている。
 第1章ではプログラミングを学ぶ意義と学び方について解説されている。さらに第2、3章においてプログラムとコンピュータとの関連性やプログラミング言語など、プログラミングの前提となる事柄について簡潔かつ十分に説明し、第4章でプログラミングの基礎である変数や条件分岐などの基本的な構成要素を紹介している。そのうえで、後半の第5〜8章において具体的な問題を題材にして、プログラミングの考え方と書き方を説明している。いずれの章においても、対象を表現するためのデータとその表現のモデル化から始まり、データの処理手順をモジュール単位で構成する過程を示すとともに、計算量によってアルゴリズムの処理時間を評価できることなど、プログラミングにおいて普遍的に利用される重要な考え方を説明している。第1章でも書かれているように本書ではプログラミング言語としてPythonを用いているが、内容としては個別の言語に依らずプログラミング一般に必要とされる事項を扱っている。
 プログラムの題材としても、興味深く役立ちそうなものが取り上げられている。第5章では株価を対象にした時系列データの分析、第6章ではシーザー暗号を対象とした暗号解読、第7章では婚活パーティにおける男女組合せの安定マッチング、第8章では完全情報零和ゲームである指の数ゲームの候補手選択という問題を扱っている。時系列データは日常生活でも様々な場面で出てくるもので、この一、二年で言えばCOVID─19の新規感染者数や重症者数の変遷などは毎日のように耳に入ってくる。また安定マッチングを求めるGale-Shapleyアルゴリズムは進学選択における進学先決定にも利用されており、前期課程の学生にとっては欠かせない知識と言っても良いだろう。近年評判の機械学習につながる話題も多く、それぞれ機械学習との関連性についても紹介されている。
 本書では数式がほとんど出てこないことも特徴と言える。購入金額の計算例や計算量の見積もり例などに計算式が出てくるが、具体的な数値と四則計算のみ[たとえば(198+280+980)×1.1という程度]である。算数・数学関連で前提となる知識は平均や出現頻度くらいで、中学生であれば十分に理解できる内容となっている。数式や数学に苦手意識のある人にも読みやすく配慮されているのは間違いない。ただし、本を読むだけでプログラミングが身につくわけではない。実際、第1章のプログラミングの学び方にも、自分でプログラムを書くことが重要であると書かれている。単に本書を読むだけでなく、実際にプログラムを書くことによって、プログラミングに対する理解を深められるであろうし、本書の読者にはそうしてもらいたいと思う。

image636_6_4.jpg
      提供 東京大学出版会

(広域システム科学/情報・図形)

第636号一覧へ戻る  教養学部報TOPへ戻る

無断での転載、転用、複写を禁じます。

総合情報