コーヒータイム -Learning Optimism-

18歳のわが子に読書をすすめるために、まずわたしが多読乱読しながらおすすめを探しています。英語書や中国語書もときどき。

<英語読書チャレンジ 6/100> Patrica Foster “Python Programming for Beginners: A Kid’s Guide to Coding Fundamentals”

思いつきで英語の本100冊読破にチャレンジ。ページ数100以上、ジャンルはなんでもOK、最後まできちんと読み通すのがルール。期限は2023年3月末まで。

 

なぜこの本を読むことにしたか

なぜわたしはこの本を読むために時間を使うのか。

①世界の見方を根底からひっくり返す書物、

②世界の見方の解像度をあげる書物、

③好きだから読む書物

この本は②。最近気になる投資分野として、IT関連技術についての初心者向け解説書を手当たり次第に読んで勉強している。ちなみにほかに気になるのはエネルギー、化学産業(とくに医薬品)、食品、あとは不動産。プログラミングは大学時代にちょこっとかじっただけだから、まずは入門書の中でも基礎から説明してくれる児童向け解説書を読んでみた。

 

本書の位置付け

本書は10歳〜14歳のプログラミング未経験者を想定して、大人の監督者のもとで学習することを前提としている。Python言語のダウンロードの仕方から始まり、プログラミングの基礎、用語、考え方などについてやさしい説明を与えたあと、テーマごとに演習問題に取組ませることで、読者が段階的にPythonに習熟出来るようつくられている。たとえばプログラミングは①入力 (Input) 、②出力 (Output)、③演算 (Math)、④条件付き実行 (Conditional execution)、⑤反復 (Repetition) を必ず含むということや、Pythonに標準搭載されている統合開発環境 (Integrated DeveLopment Environment, IDLE) の利用の仕方、などから説明している。

 

本書で述べていること

Pythonプログラミング言語としてシンプルな構造をもち、初心者がプログラミングを始めるにあたりPythonを選択するのはすばらしいことである。

たとえば、Pythonでは変数が整数 (Integer) なのか、あるいは浮動小数 (Floating point numbers) なのか、コンピュータが入力値を参照して判別してくれるし、変数は特定のデータタイプをもたせないことができる(すなわち、整数としたある変数に、後から文字列も格納できる)。ほかのプログラミング言語ではプログラマー自身が定義しなければならない。

基本的な事項を学んだあとは、Pythonに標準装備されているモジュール "Turtle" でカメのお絵描きを楽しむ。カメの歩みで図形を描いてみたり、カメの色を変えてみたり、さまざまな視覚表現を楽しむ。いわば、Windowsに標準装備されているお絵描きソフト・ペイントブラシのPython版体験であろう。

 

感想いろいろ

海外の児童向けプログラミング本を読むのは初めてだけれど、子どもが面白がってくれるようよく工夫されていて、たとえ話(「変数とはいわばコンテナみたいなもので、中身を変えることができるんだ」「繰返しループはきみたちがゲームをするときによく見るものだ。同じバトルを何度か繰返すことがあるだろう?」)、遊び心満載のプログラミング例がたくさんあるから、大人が読んでも勉強になる。

 

あわせて読みたい

プログラミングのみならず、アルゴリズムを学ぶには『Pythonで学ぶアルゴリズムの教科書』が良い。高校数学程度のベクトルや行列の知識があればなおわかりやすいが、なくても読み進められる。

本書ではデータ構造や探索方法をはじめ、さまざまなアルゴリズムをプログラミング例題とともに学ぶことができる。たとえばデータ構造としては以下のものがあるが、「木」のデータ構造(および木探索)はディープラーニングでよく使用される。

  • スタック(最後の入力データを最初に取り出す)
  • キュー(最初の入力データを最初に取り出す)
  • リスト(データの前後のつながりとデータそのものがセットになる構造)
  • 木(データが枝分かれして伸びていく形式)
  • グラフ(複数のノードが線で結ばれた形式)

著者はアルゴリズムについてこう述べている。

もちろんアルゴリズムは高速に越したことはないですが、高速な処理ほど高度な内容になり、実装に時間がかかる傾向にあります。複数のアルゴリズムを学び、色々な知識を身につけ、開発するソフトウェアの内容やハードのスペックに応じてアルゴリズムを使い分けられるようになれば、一流のプログラマーと言えるでしょう。

コンピュータの基礎教養としてパターソン&ヘネシーの教科書は外せない。参考までに私が読んだときの感想をおいておく。

【おすすめ】コンピュータサイエンス専攻必携の教科書〜パターソン&ヘネシー『コンピュータの構成と設計(第5版)』 - コーヒータイム -Learning Optimism-

 

Pythonはよく機械学習向きのコンピュータ言語として紹介されるけれど、機械学習人工知能についての必読書として『人工知能は人間を超えるか?』がある。参考までに感想をおいておく。

【おすすめ】『人工知能は人間を超えるか ディープラーニングの先にあるもの』(松尾豊著) - コーヒータイム -Learning Optimism-