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

アメリカの中学生が学ぶアルゴリズムの授業【全世界700万人が感動したプログラミングノート】Photo: Adobe Stock

アルゴリズム

 アルゴリズムを使うのは、人間もコンピュータも同じだ。アルゴリズムとは、従うことのできるプロセスやステップのこと。

 たとえば、料理のレシピは、人間と一部のコンピュータ、その両方が使えるアルゴリズムの一例といえる。

アメリカの中学生が学ぶアルゴリズムの授業【全世界700万人が感動したプログラミングノート】

 アルゴリズムは、一定の作業を繰り返すための明確な指示を与えるものと考えるとわかりやすい。

 ただ、同じ作業をこなすのにも、いろいろなアルゴリズムが使える。

 たとえば、割り算の方法には、筆算もあれば、同じ数を繰り返し引いていくやり方もある。

 どちらの方法でも、答えは同じになるけど、筆算を使うほうがいいと思わない?

 コンピュータ科学者は、常によりよいアルゴリズムを追求しつづけているのだ。

 じゃあ、よりよいアルゴリズムとはなんだろう?

 それは、より高速で、シンプルで、効率的なアルゴリズムだ。

 アルゴリズムが便利なのは、より効率的な作業の実行方法を与えてくれるからなのだ。

アメリカの中学生が学ぶアルゴリズムの授業【全世界700万人が感動したプログラミングノート】

アルゴリズムを研究する

 アルゴリズムの開発は、それ自体がコンピュータ科学の一分野で、数学の研究と重なるところが多い。たとえば、数学者とコンピュータ科学者が、100年近く前から研究している問題として、巡回セールスマン問題というものがある。

アメリカの中学生が学ぶアルゴリズムの授業【全世界700万人が感動したプログラミングノート】

 巡回セールスマン問題の目的は、セールスマンにとっての最短ルートを求めるいちばん効率的なアルゴリズムを開発すること。この問題は、実生活にも応用できる。

 たとえば、配送トラックの運行管理者は、最短ルートアルゴリズムを使って、その日の最善の配送計画を決めている。

 つまり、最短ルートアルゴリズムは、トラック会社の時間とお金を節約するのに役立っているというわけだ。

プログラム

 コンピュータ科学者の仕事は、ある問題の解決策を練り、その解決策をアルゴリズムに変え、そのアルゴリズムをコンピュータが理解できるプログラムへとプログラミングし直すこと。

 つまり、プログラムとは、アルゴリズムをコンピュータが理解できる指示へと変換(プログラミング)したものなのだ。

 アルゴリズムは、ほとんどの人が理解できる形で書かれることが多いけれど、コンピュータプログラムを読んで、すんなりと理解できる人は、あんまりいない。プログラムは、ふつうの人にはなじみのない数字、文字、記号の羅列(られつ)だからだ。

 でも、コンピュータには、一発でその意味がわかるのだ。

 プログラミング言語を使って、コンピュータに超具体的な指示を与えるのがプログラマだ。プログラミング言語は、さまざまな数字、文字、記号、形式を組み合わせて、コンピュータが理解できる形の指示を与えるものといえる。

アメリカの中学生が学ぶアルゴリズムの授業【全世界700万人が感動したプログラミングノート】
アメリカの中学生が学ぶアルゴリズムの授業【全世界700万人が感動したプログラミングノート】
アメリカの中学生が学ぶアルゴリズムの授業【全世界700万人が感動したプログラミングノート】

プログラミングの始まり

 コンピュータのプログラミングのことをコーディングともいう。コーディングの歴史は、なんと19世紀までさかのぼるというから意外だ。

 世界初のプログラマのひとりと考えられているのが、エイダ・ラブレスだ。ラブレスは、1843年に、解析機関という機械式のコンピュータのためのアルゴリズムを書いたことで知られる。

アメリカの中学生が学ぶアルゴリズムの授業【全世界700万人が感動したプログラミングノート】
アメリカの中学生が学ぶアルゴリズムの授業【全世界700万人が感動したプログラミングノート】

 解析機関は、パンチカードを使ってつくられた単純なプログラムを実行できるようになっていた。パンチカードは、解析機関が命令として読み取る穴が開いていて、解析機関のプログラミングに使われたそうだ。

アメリカの中学生が学ぶアルゴリズムの授業【全世界700万人が感動したプログラミングノート】

 ラブレスは、解析機関に命令を与えれば、ほかにもいろんな作業を実行できると考えた。

 つまり、解析機関はプログラミング可能だと理解していた、というわけだ。

 ラブレスは、解析機関の計算以外の可能性に目をつけた最初の人物といえるだろう。