2016年の発売直後から大きな話題を呼び、中国・ドイツ・韓国・ブラジル・ロシア・ベトナムなど世界各国にも広がった「学び直し本」の圧倒的ロングセラーシリーズ「Big Fat Notebook」の日本版が刊行された。藤原和博氏(朝礼だけの学校 校長)「プログラミングは新しい言語の獲得だ」、野田クリスタル氏(お笑い芸人・マヂカルラブリー)「プログラミングがやりたくなる! まるでゲームの攻略本みたい!」、尾原和啓氏(元グーグル・IT評論家)「プログラミングを通して、ビジネスにも応用できる考え方が見えてくる!」と絶賛されている。本記事では、全世界700万人が感動した同シリーズのプログラミング編『アメリカの中学生が学んでいる 14歳からのプログラミング』より、本文の一部を抜粋・掲載します。

【アメリカの中学生が勉強するプログラミングノート】コンピュータ科学の5つの研究分野とは?Photo: Adobe Stock

コンピュータ科学の5つの研究分野

【アメリカの中学生が勉強するプログラミングノート】コンピュータ科学の5つの研究分野とは?

 コンピュータ科学の研究分野は、主に次の5つに分けられる。

1.コンピューティングシステム

 コンピューティングシステムとは、プログラムを実行して、情報を処理する装置のこと。たとえば、デスクトップコンピュータ、ノートパソコン、携帯電話なんかがそうだ。

 電子機器の多くは、小さなコンピュータが内蔵されていて、プログラムで動いている。たとえば、皿洗い機、テレビ、スマートウォッチ、それから、一部の電球がその例だ。

2.アルゴリズムとプログラミング

 アルゴリズムやプログラミングには、コンピュータに「こうしなさい」と命令する、プログラム(コード)を書く作業が含まれる。

 そのなかには、iTunes、Safari、Google Chrome、Robloxみたいに、たくさんの命令に従って実行される、ものすごく複雑なプログラムもあれば、「Hello, World!」というメッセージを出力するだけの、シンプルなプログラムもある。

【アメリカの中学生が勉強するプログラミングノート】コンピュータ科学の5つの研究分野とは?

 プログラムを書く作業は、大きく分けると、次のふたつのステップからなる。

【アメリカの中学生が勉強するプログラミングノート】コンピュータ科学の5つの研究分野とは?

 コンピュータは確かに強力だけど、実は、あまり賢くない。

 人間に指示されたとおりのことしか実行できないからだ。

 プログラムは、作業に必要な指示をコンピュータに与えるもの、と考えるとわかりやすいかもしれない。

3.データ分析

 データ分析とは、データの意味を理解するのに役立つ事実を、収集、保存、整理、調査すること。たとえば、性格テストのプログラムをつくるとしたらどうする?

 性格についての質問(「きみは大人数でわいわいゲームをするのが好き?」とか「空き時間はどう過ごすのが好き?」など)への答えを収集し、その答えを保存して、相手の性格を理解するために調べてみる必要があるだろう。

 じゃあ、あるゲームの勝者を決めたいときは? みんなのゲームスコアを収集し、保存して、いちばんスコアの高い人を調べればいい。大量のデータを保存、共有、計算するのが得意なコンピュータは、データの分析にぴったりというわけだ。

【アメリカの中学生が勉強するプログラミングノート】コンピュータ科学の5つの研究分野とは?

4.ネットワークとインターネット

 ネットワークとは、お互いに接続されたデバイス(コンピュータ、ノートパソコン、サーバなど)のグループのこと。情報だけじゃなく、プリンタなどの資源まで共有することもある。

 インターネットとは、世界じゅうのコンピュータを結ぶネットワークのこと。どうすれば、いままでよりも効率的で安全に、デバイスどうしで情報を共有できるだろう?

 それを考えるのも、ネットワークやインターネットについて研究するひとつの目的といえる。

5.コンピューティングの影響

 コンピュータは、みんなの生活、文化、安全、法律、行動にどんな影響を及ぼすだろう?

 それについて考えることが、コンピューティングの影響を理解する、ひとつの目的だ。

 新しいテクノロジーをつくれるからといって、必ずしもつくったほうがいいとはかぎらないからだ。

 この新しいテクノロジーは、みんなの生活にどんな影響を及ぼすだろう? いつでも、そういう視点で考えることが必要なのだ。

 たとえば、だれかのスマートフォンに侵入して、大切にしている写真をみんな消してしまうプログラムを、きみがつくってしまったら大変なことになるのはわかるはずだ。

プログラムをする前に考えるべき疑問

 プログラムをする前に、しっかりと下記のことを考えるクセをつけよう。

・その人の生活に及ぼす影響はないか?
・その人ときみとの友情に及ぼす影響はないか?
・そういうプログラムを使うのは犯罪ではないか?
・その新しいテクノロジーは、みんなの生活にとってプラスなっているか? マイナスなっていないか?