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

親なら知っておきたい子どもが学校で学んでいる「プログラミング的思考」とはPhoto: Adobe Stock

プログラミング的思考

 コンピュータを使って実行できる解決策を生み出すための思考プロセスのことをコンピュテーショナル思考(プログラミング的思考)という。

 たとえば、書感想文を書くとしよう。この問題を解決するなら、本を読んで、感想文の計画を立て、読んだ内容について書きはじめる、というのがふつうの手段だ。

 同じ問題をコンピュテーショナル思考(プログラミング的思考)を使って解決するとしたら、どんな方法が考えられるだろう?

 それぞれの登場人物どうしが会話した回数について、データを集めて、その情報をグラフに描く、というのがひとつの手だ。

 そのデータを自動で分析してくれるプログラムを開発する、なんて方法もあるかもしれない。そのグラフは、物語の登場人物どうしの関係について、データの証拠を与えてくれる。きみのプログラムの出力とデータを使えば、読書感想文に何を書けばいいのかがおのずと決まるというわけだ。

プログラミング的思考を構成する4つの考え方

 コンピュテーショナル思考(プログラミング的思考)には、大きく分けて、4つの考え方がある。

親なら知っておきたい子どもが学校で学んでいる「プログラミング的思考」とは

1.分解
いざ解決策を練りはじめる前に、問題のすべての要素を理解しておこう。すべての要素が理解し終わったら、いよいよ問題を小さな作業へと分解する段階だ。
分解することによって、問題がぐんと解決しやすくなるのだ。

2.パターン認識
パターンとは、何度も繰り返される出来事のこと。前に、似たような問題の解決策を考えたことは?
それを思い出すだけで、別の作業をこなすのに使える解決策を思いつきやすくなる

3.抽象化
抽象化とは、問題の大事な部分だけに着目し、解決策を見つけるのに役立たない、細かな部分を無視すること。

4.アルゴリズム設計
アルゴリズム設計とは、毎回、同じ解決が得られるように従うべき手順を書き出すこと。
アルゴリズムによって実行された解決策は、使い回しがきくのだ。だから、アルゴリズム設計が一番重要だとする人も多い。

理解度チェック

親なら知っておきたい子どもが学校で学んでいる「プログラミング的思考」とは
親なら知っておきたい子どもが学校で学んでいる「プログラミング的思考」とは

(※本原稿は『アメリカの中学生が学んでいる 14歳からのプログラミング』を抜粋・再編集したものです)