見出し画像

楽しいから作りたくなるプロセスが大事 〜Springin’ではじめるプログラミング #1〜

はじめまして。しくみデザインの大場健史です。エンジニアとして、主にアプリの開発を担当しています。ビジュアルプログラミングアプリ「Springin’」の開発も僕がやっています。

今回しくみデザインがクリエイティブ教育ラボを立ち上げるにあたり、Springin’のベースにある考え方やコンセプトをお伝えする特集を企画しました。この記事はその第1回。Springin’の実際の画面を見ながらの具体的な解説に入る前に、Springin’が目指すものやその背景をまずは書いてみようと思います。

「とにかく動く」までの時間を最短にする

子どもだけでなく、さまざまな人がプログラミングを学ぼうとしています。プログラミング言語もたくさんあるし、プログラミングを学ぶ教材もたくさんあります。ネット上にエンジニアの人が書いたノウハウ記事もたくさんあるし、Schooやドットインストールのような、動画を見ながら学べるサービスもたくさんあります。

ただ、プログラミングの勉強って挫折する人が多いのも事実。挫折する原因としてよく挙げられるのは2つあります。
ひとつは具体的な目標がないまま勉強をスタートしてしまうこと。なんとなく「プログラミングは必要そうだから勉強しよう」と本を買ったり、チュートリアルをこなしてみたのはいいものの、「で、僕、なんでプログラミング勉強してるんだっけ?」となってしまいます。そうなるとモチベーションは続きません。小さくて単純なものでもいいので、「こんなものを作ってみたいな」という目標を持っておくことが大切です。

そしてもうひとつが自分が作りたいアプリケーションを動かすまでにかかる時間が長いこと。作りたいものがあっても、それを実現するための準備に手間取ってしまって、プログラムを書くことが楽しくなるまでにかかる時間が長くかかってしまうことです。楽しくない時間が長いと、その間にモチベーションが落ちてしまいます。Springin’を開発する上で一番気にしたのは、作りはじめてから楽しいと思うまでのステップをなるべく短くすることでした。

Springin’はアイテムを作って、それを「シーン」と呼ぶキャンバスのようなものの上にアイテムを配置することから作品作りがスタートしますが、シーンの上にアイテムを置いて、プレイボタンを押せばすぐにアイテムを動かすことができます。丸を2つ置いてプレイボタンを押せば、特に何も設定しなくても、それだけでおはじきアプリが完成します。

こうやってまずはとにかく動くようになれば「次はこうしたい」「こういうものを作りたい」というフェーズに移りやすくなります。作りたいものがイメージできたら、そこからは好奇心で作品作りに進めますし、プログラミング教育のある種のキモとも言えるトライアンドエラーのスパイラルに入り込むことができます。

アイテムの「属性」、そしてアイテム同士の「関係性」を設定する

そして作りたいものができたら、それをどう実現するかを考え、組み合わせていく必要があります。ここで組み合わせるものは、自分でつくったものばかりではありません。現代のプログラミングでは、自分以外の人が作って公開してくれているプログラムと組み合わせたり、一部の処理そのものを任せてしまったりすることが普通です。

Springin’では「属性」と「関係性」を設定して、組み合わせることで、機能を実現していきます。

例えばボールの壁当てを考えたとき、ボールを壁にぶつけてたときに、ボールは壁にぶつかって跳ね返ってくる必要がありますよね。また壁当ての壁が動いてしまうのはおかしいので、壁は固定したいです。Springin’はこのとき「高反発」と「ピン」という属性、そして壁とボールの関係性をビジュアルで設定することができます。

プログラミングに限った話ではありませんが、何かを実現しようとしたとき、その実現手法は1つではありません。ものごとを実現するにはいくつかのアプローチがあること、そしてそれらを比較検討して、トライアンドエラーを繰り返しながら作りたいものに近づけていくプロセスが重要です。そのプロセスを体験できるように、Springin’に準備している属性は原則的にシンプルなものにとどめています。

Springin’は橋渡しのツール

プログラミング教育は、目の前の問題を抽象化・概念化して、それをアルゴリズムに落とし込むような応用的な解決能力を身につけることが本質のはず。プログラムを書けるコーダーを養成するものではないはずです。その上ではコーディング以前の考え方を身につけることが重要です。

Springin’にはifやfor、whileのようなプログラミング言語にある制御構文そのものはありませんが、属性と関係性を組み合わせることで同等の処理が実現可能です。

とはいえ、Springin’は万能なツールではありません。そして「次に進みたい」というクリエイターをSpringin’やその他のプログラミングツールに閉じておく必要もありません。大人たちが作っているようなWebアプリやスマートフォンアプリを作りたくなっていると思うんですね。だとしたら、もうそれは実際に作ってみる環境を与えてあげる必要があります。

その橋渡しのためのクリエイティブ教育のツールになるように、Springin’は設計されています。


と、ここまでSpringin’の設計思想や考え方を述べてきました。今後もこのようなSpringin’でのプログラミングの楽しみ方をお伝えする記事を増やしていこうと考えています。

またSpringin’を使ったアプリのつくりかたも紹介しています。現在は夏休みに向けてゲームの作り方を特集していて、現在はシューティングゲームの作り方を紹介しています。

次回からは実際に操作しながら、Springin’でのプログラミングを体験していただこうと思います。それではまた!