技術者だけで世界はよくならない! 普通の大人がプログラミングを学ぶ必要性とは?

「やらずに死ねないプログラミング」というやや煽り気味のタイトルですが、この連載では、子どもたちがこれからの社会を生き抜くための「プログラミング」や「プログラミグ的思考」の話題ではなく、大人がプログラミングを学ぶことをテーマに据えてお話しします。

美術系大学でプログラミングを教える

絵画、彫刻、グラフィックやプロダクトデザイン、幼児教育といったさまざまな分野で活動した表現者であるブルーノ・ムナーリが著した、子供向けの造形教育絵本「木をかこう」の書き方をプログラミングに置き換えて制作したグラフィック。多摩美術大学情報デザイン学科「プログラミング演習」や、慶應義塾大学環境情報学部「デザインとプログラミング」の授業で「再帰関数」を学ぶ際の例として筆者が制作した教材を、今回アレンジして作成した。どの木も「枝が二つに分岐する」という単純なルールを11回繰り返して描かれているが、角度や枝の長さのランダム性によって個性も表れている。ソースコードはopenprocessing.orgで公開。ブラウザで変化を体験することも可能。画像参照:https://www.openprocessing.org/sketch/801900

さて、少し自己紹介をしながらこの連載の方向性を描いてみたいと思います。私は電子工学系の大学を卒業してから、コンピューターとアートの専修学校(現在は大学院大学に改組)で学び、2003年ごろに東京でグラフィックデザイナーとしてキャリアをスタートしました。

2006年に、UI/UXデザイン、Webサイトやオンラインメディアのデザインやコンサルティングを行う会社を立ち上げ、その後10年ほど経営をした後に再び学びたくなり、現在は社会人博士課程に身を置いて情報可視化を中心としたテーマで研究活動や表現活動を行っています。

デザインの会社経営をはじめたのと時を同じくして、美術大学で学生にプログラミングを教えてほしいという依頼があり、以後13年間、大学生に非常勤でプログラミングを教え続けています。

これまでにいくつかの美術大学や総合大学で講義を担当してきましたが、そこに共通しているのは

という3つの点です。

プログラミングを教える上で、この3つはどれも難しい条件です。1.は数学や物理の基本的な考え方を前提に話を進めることはできませんし、2.は地味で基礎的な内容が続きがちなので、挫折につながりやすい。3.は知識を得るだけでなく、得た知識を自分で応用したりさらに探求したくなるような仕掛けが必要となります。

年次の低い学生の授業ですから、おおむね必修かそれに準ずる扱いとなることが多く、目的意識ややりたいことのはっきりした学生だけが集まって授業を行うというわけではありませんでした。そのため、プログラミングをはじめて学んでいく過程で障害になりやすい3つの点を考慮に入れて、モチベーションを維持することついて、常に知恵を絞っていました

非エンジニアでもプログラミングを学びはじめる人たち

2016年から2017年ごろくらいからでしょうか、エンジニアリングや職務とは直接関係のない社会人からプログラミングを学んでみたいという声を聞くようになり、それ以降、大学の外で何度かセミナーや個人レッスンのような形でお手伝いするようになりました。

当時はまだ「プログラミング教育」というワードがそれほど一般には浸透していなかったと思います。しかし、このころを振り返ってみると、世間一般の目線で見るコンピューターやプログラミングに対してのイメージが変わっていく出来事が多く起こりました。

一例を挙げると、リオデジャネイロ五輪の閉会式で行われたフラッグハンドオーバーセレモニーでは、ライゾマティクスによるテクノロジーとライブパフォーマンスをリアルタイムで融合させた大規模で卓越した演出が人々の感動を呼び大きな話題となりました。

また、チームラボが手がける「学ぶ!未来の遊園地」が各地で開催され、子どもたちの手描きの絵や、体を使ったアクションとコンピューターの共創によって作り出される世界が、見事に多くの人の心を捉え、その後その発展系である大型の常設施設「ボーダーレス」がお台場にオープンし反響を呼んでいます。

そのほか、AIが人に勝つのは不可能と言われていた囲碁の世界で傑出した才能と強さを誇る世界最強棋士がグーグル傘下の企業が開発したAIである「AlphaGo」に破れるといった出来事もセンセーショナルに報道されました。

このようなことが立て続けに起こったことで人の創造性や好奇心が掻き立てられ、プログラミングやコンピューターを仕事の道具や職業的スキルとして見る視点から、創造的で知的探求の対象として見る視点へとシフトしたことで、プログラミングへの興味を抱く人が増えたと考えることもできそうです。

大人がコンピューターを学べる環境は驚くほど少ない

AI、ビッグデータ、IoT、5Gなど、情報処理や通信技術の革新を背景として、ビジネスや社会システムそのものが大きく変わろうとしている中で、その担い手としてプログラミングスキルをもった人を増やすことは社会全体の重要なミッションです。

しかし一方で、単なるビジネストレンドや問題解決手法として技術を習得する人ばかりでなく、コンピューターの働きに明るく、メリットやリスクを含め社会にとってどのような選択肢と可能性があるのかについて想像したり、考えたり、議論できる人を増やすこともまた重要です。

将来のある子どもたちや学生が、充実したプログラミングや科学教育を受けられる環境づくりが大切であることは言うまでもありませんが、技術革新のスピードを考えれば、現在、現役のプレイヤーである大人たちにそれは不要と言うことはできないでしょう。

そう考えたとき、大人がプログラミングを通じてコンピューターの本質を学べる環境は、若い人たちに比べると驚くほど少ないのが現実ではないでしょうか。コンピューターという機械への探究心に目覚め、プログラミングの世界に足を踏み入れた方の声を聞くと、先に挙げた3つの難しさが学びの実践の足かせになっているということが多いように感じます。

いくつか典型的な例をあげると、自分が知りたいことをどう言葉で表現していいかわからないために、検索して調べられない。プログラミングの入門本に書いてあるプログラム自体は理解できるけれど、それ以上のことを独自に考えられない。あるいは、人の感情に訴えるような美しさはどうやってプログラムするのかがわからないといった内容です。

一般的にプログラミングと言ってもさまざまな専門領域があり、それぞれに体系化された知識を学ぶ必要があります。そうした方法でしっかりとプログラミングを身につけた方からすると、このような状況に陥ることは少ないかもしれません。しかし今後は特定の領域の専門に特化した能力を身に着ける学び方だけでなく、領域をまたぎ俯瞰的に見るような学び方も重要になってくるでしょう。そういう意味で、美術大学という少し特殊な現場で試行錯誤してきた私の経験手がかりになることもあるように感じています。

この連載の目指すところ

本連載では、このような観点から、ロボットやアプリやWebやデータ分析といった具体的なものづくりのスキルやロジックの視点よりも一段高い視点をもって、社会人にプログラミングを通じた創造的な探求への入り口を開き、継続して歩みを進めるためのサポートとして役立つ情報をお伝えできればと思います。

そうはいっても、まずは大人が楽しむためのきっかけづくりを目指していきます。肩の力を入れすぎずお付き合いいただければと思います。

どうぞ、よろしくお願いいたします。

© Valed.press