2016年の発売直後から大きな話題を呼び、中国・ドイツ・韓国・ブラジル・ロシア・ベトナムなど世界各国にも広がった「学び直し本」の圧倒的ロングセラーシリーズ「Big Fat Notebook」の日本版が刊行された。藤原和博氏(朝礼だけの学校 校長)「プログラミングは新しい言語の獲得だ」、野田クリスタル氏(お笑い芸人・マヂカルラブリー)「プログラミングがやりたくなる! まるでゲームの攻略本みたい!」、尾原和啓氏(元グーグル・IT評論家)「プログラミングを通して、ビジネスにも応用できる考え方が見えてくる!」と絶賛されている。本記事では、全世界700万人が感動した同シリーズのプログラミング編『アメリカの中学生が学んでいる 14歳からのプログラミング』より、本文の一部を抜粋・掲載します。
コンピュータ科学の5つの研究分野
コンピュータ科学の研究分野は、主に次の5つに分けられる。
1.コンピューティングシステム
コンピューティングシステムとは、プログラムを実行して、情報を処理する装置のこと。たとえば、デスクトップコンピュータ、ノートパソコン、携帯電話なんかがそうだ。
電子機器の多くは、小さなコンピュータが内蔵されていて、プログラムで動いている。たとえば、皿洗い機、テレビ、スマートウォッチ、それから、一部の電球がその例だ。
2.アルゴリズムとプログラミング
アルゴリズムやプログラミングには、コンピュータに「こうしなさい」と命令する、プログラム(コード)を書く作業が含まれる。
そのなかには、iTunes、Safari、Google Chrome、Robloxみたいに、たくさんの命令に従って実行される、ものすごく複雑なプログラムもあれば、「Hello, World!」というメッセージを出力するだけの、シンプルなプログラムもある。
プログラムを書く作業は、大きく分けると、次のふたつのステップからなる。
コンピュータは確かに強力だけど、実は、あまり賢くない。
人間に指示されたとおりのことしか実行できないからだ。
プログラムは、作業に必要な指示をコンピュータに与えるもの、と考えるとわかりやすいかもしれない。
3.データ分析
データ分析とは、データの意味を理解するのに役立つ事実を、収集、保存、整理、調査すること。たとえば、性格テストのプログラムをつくるとしたらどうする?
性格についての質問(「きみは大人数でわいわいゲームをするのが好き?」とか「空き時間はどう過ごすのが好き?」など)への答えを収集し、その答えを保存して、相手の性格を理解するために調べてみる必要があるだろう。
じゃあ、あるゲームの勝者を決めたいときは? みんなのゲームスコアを収集し、保存して、いちばんスコアの高い人を調べればいい。大量のデータを保存、共有、計算するのが得意なコンピュータは、データの分析にぴったりというわけだ。
4.ネットワークとインターネット
ネットワークとは、お互いに接続されたデバイス(コンピュータ、ノートパソコン、サーバなど)のグループのこと。情報だけじゃなく、プリンタなどの資源まで共有することもある。
インターネットとは、世界じゅうのコンピュータを結ぶネットワークのこと。どうすれば、いままでよりも効率的で安全に、デバイスどうしで情報を共有できるだろう?
それを考えるのも、ネットワークやインターネットについて研究するひとつの目的といえる。
5.コンピューティングの影響
コンピュータは、みんなの生活、文化、安全、法律、行動にどんな影響を及ぼすだろう?
それについて考えることが、コンピューティングの影響を理解する、ひとつの目的だ。
新しいテクノロジーをつくれるからといって、必ずしもつくったほうがいいとはかぎらないからだ。
この新しいテクノロジーは、みんなの生活にどんな影響を及ぼすだろう? いつでも、そういう視点で考えることが必要なのだ。
たとえば、だれかのスマートフォンに侵入して、大切にしている写真をみんな消してしまうプログラムを、きみがつくってしまったら大変なことになるのはわかるはずだ。
プログラムをする前に考えるべき疑問
プログラムをする前に、しっかりと下記のことを考えるクセをつけよう。
・その人の生活に及ぼす影響はないか?
・その人ときみとの友情に及ぼす影響はないか?
・そういうプログラムを使うのは犯罪ではないか?
・その新しいテクノロジーは、みんなの生活にとってプラスなっているか? マイナスなっていないか?