見出し画像

未来のプログラミング教育 #1

 こんにちは。改めてご挨拶させて頂きます。石川工業高等専門学校5年の寺本大輝と申します。昨年12月にハックフォープレイ株式会社を設立し、ゲームを遊んでプログラミングが出来る hackforplay の開発と運営を一人で行っております。

 今回は、hackforplayの目指すプログラミング教育を言葉にすることで、今後の道筋を明確にする事を目的として、未来のプログラミング教育という題で記事を書いております。数多くある考え方のひとつとしてご理解頂きますようお願い申し上げます。


作るプログラミングと学ぶプログラミングの混同

 私は高専で5年間プログラミングを学びました。高専とは高等専門学校のことで、高校と短大がひとつになったような学校です。私の地元石川にある高専の電子情報工学科に入学し、一年生(16歳)の時からプログラミングの授業をして頂きました。

 授業は決して簡単な内容ではなく、プログラミングの基礎を総ざらいにするような内容でした。最初にWindowsアプリケーションを作ることで変数や型などの感覚を掴み、C言語に移ってポインタやデータ構造、メモリアロケーションの概念、ソートや探索などのアルゴリズムについても勉強します。(ようするに基礎とされるもののほぼ全てを学びます)

 そういった授業を通してたくさん技術を身につけていく中で、私は不遜にもひとつの疑念を感じていました。それは、

 授業のプログラミングを楽しめる人とそうでない人がいる。その違いは、その人の考え方にも表れ、進路にも大きな影響を与えている。

という事です。確かにプログラミングを国語や数学と同じ学問であると位置付ければ、得意不得意があるのは当然だと思います。しかし楽しめていないからといってテストの得点が低い訳では無いという場合が多く存在します。

 つまり、学問としての評価とは違う、何か別の評価によって、「私にプログラミングなんて出来っこない」と考えてしまって、結果的に将来に対する不安にも繋がっているのです。

 私はこの疑念に対し、ひとつの仮説を持っています。それは、

 作るプログラミングと学ぶプログラミングという、本来異なるはずの2つの見方が入り混じり、正しい評価が受けられない現状にある

というものです。

 元々プログラミングは、システムを作るための道具でした。いわば器具のひとつという位置付けであり、「便利な何かを作ってこそプログラミング」だったのです。これが、作るプログラミングです。

 一方、授業で学ぶ場合は、プログラミングの扱い方を知る事が授業の目的なので、別に何も作れなくても、知識があれば良いのだという評価がなされます。これが、学ぶプログラミングです。

 この2つは学生からすれば大きく違います。評価方法が異なるからです。

 ところが、この2つの見方はよく交錯してしまいます。例えば、社会人として働いている方からすれば、「作るプログラミング」の方が感覚的に正しいと感じられると思います。普通、会社ではそう評価されているからです。そういった価値観をもつ方と学生が話すと、学生が「作るプログラミング」としての成果を上げておらず、評価が低くなってしまう事があります。

 こういった話を聞くと「学生が可哀想」と思われるかも知れませんが、当の本人は自分が可哀想だとは思いません。頑張って勉強しているのに評価が低いのだから、自分に才能がないと判断するでしょう。これが、考え方を変えてしまう原因です。

 このような行き違いが生じてしまうのであれば、ひとつの意見として、私はこう思います。

学生は、もっとポジティブな勘違いをしていい。

 プログラミングをしている自分自身を、もっと高く評価していいと私は考えています。そのための方法として、既に作られたものを自分で作り変えることで、最小限のコストで結果を手に入れるというはどうでしょうか。

 私はそれを「作り変えるプログラミング」と呼び、hackforplayを通して新しいプログラミング教育として提案させて頂きたいと思っています。

作り変えるプログラミング

 基礎学習を通して、すでにあるものを作り変えてみるというのが、私の考える「作り変えるプログラミング教育」です。具体的には、作り変えられることを前提としたプログラムを用意し、それを学生に教材として配布する事で実現出来ます。

 何も書かなくてもプログラムを動かすことが出来るため、オリジナリティの追求に力を注ぐことが出来るのではないかと私は考えています。

 また、この方法は、今まで行われてきた基礎学習とも親和性が高いと言えます。プリントを穴埋め問題にして、実際に動くプログラムに置き換えれば実現出来るからです。

 このような考え方に基づいて作られているのが、hackforplayです。自分の書いたコードが仮想(ゲーム)の世界に変化をもたらすことで、プログラミングを学んでいこうというものです。

 現在はRPG風のゲームを合計7ステージ公開させて頂いています。これらのステージはすべて、動いているゲームの中でリアルタイムにコードを実行させることで実現しています。

 発想自体は新しいものではなく、こういったゲームは今までにもありました。ではhackforplayのどこに新規性があるのかというと、おそらく「普通のゲームでは出来ないことをしている」ことにあると思います。

 壁があれば迂回するのが普通のゲームなら、壁の存在すら消してしまうのがhackforplayです。それに比べると従来のプログラミングゲームは、コードを書いて壁を迂回しよう、という感じのものが多いと思います。しかしこれについては好みの問題もあるので、まだ調査が必要でしょう。

 ちなみに現在、女の子向けのプロダクトとして、hackforplay(COSTUME)という新しいhackforplayを開発しております。いつ公開出来るかはまだ断定出来ませんが、面白いものだと思いますので、ぜひご覧頂きたいと思っております。


 さて、この続きは次章にさせて頂きたいと思います。まとまりのない内容ですが、宜しければ続けてご覧頂ければと思います。


未来のプログラミング #2



この記事が気に入ったらサポートをしてみませんか?