top of page
執筆者の写真寺田 秀弥

スクラッチの次はパイソンと決めた理由


ベルジェールは、子どもたちがスクラッチの次に学ぶ言語としてパイソンを選びました。その理由を説明したいと思います。



スクラッチは、子どもたちをプログラミングの世界に迎え入れた


スクラッチは、MITが開発したビジュアルプログラミング言語です。スクラッチは、マウスの操作だけでプログラムをつくることができます。ブロックをジグソーパズルのようにつなぎ合わせ、音やアニメーションを使ってデジタル作品を作ることができるようになったのです。

スクラッチによってプログラミングのハードルは飛躍的に下がり、多くの子どもたちをプログラミングの世界に迎え入れました。



スクラッチが、子どもたちを惹きつけるものとは


スクラッチが子どもたちをプログラミングに惹きつける光の部分を考えてみます。

スクラッチは、命令を表すブロックを画面にならべることで、命令そのものも、命令の結果であるキャラクタや背景の動きも、画面上でリアルタイムに確認できます。スクラッチはプログラミングを視覚的に理解することができること、これが最大の魅力です。

もし子どもたちが最初に学ぶプログラミング言語がテキスト型だとしたら、多くの子どもたちはプログラミングを理解する前に挫折するかもしれません。

子どもたちの考えがリアルタイムにキャラクターや背景に反映されて動くこと、そして考えどおりに動かなくても誤りをすぐ確認でき、そしてすぐ修正できることが、子どもたちに物作りの実感を与えます。これこそが、プログラミングを学ぶ醍醐味ではないでしょうか。



スクラッチにも限界がある


画面上でブロックを組み合わせて作品を作ることには、わかりやすいがゆえの制約があります。ブロックは物理的に一定の大きさがあります。画面も縦と横にスクロールすれば巨大な平面にちがいありませんが、同時に見ることができるのはあくまでも目の前の画面の大きさでしかありません。

ですから子こどもたちがつくろうとしている作品が大きくなると、作品のプログラムを理解するには縦横に何度もスクロールをすることになり、全体を見渡して理解することができません。トップダウンで階層的に理解できないことは致命的となります。

また作品が大きいとプログラムを修正したり追加する時に、どこに影響するかを調べることは簡単ではありません。試行錯誤しながら物作りをするというプログラミング的思考にとって、これは大きな制約となります。

またキャラクターや背景の動きは、画面を見ながら仲間たちと共有はできるのですが、プログラムは簡単には共有できません。プログラムが大きくなると仲間に説明することも、仲間が理解することも困難になります。そして、ひとつの作品を複数の仲間と共同して作成することは不可能に近いと言っていいと思います。

したがってスクラッチは、小さな世界で自分の考えを作品として制作するという点では素晴らしい言語ですが、その世界から少し踏み出そうとすると、スクラッチ自身の特性が大きな足かせとなります

ここにスクラッチの限界があります。

プログラミングによって創造力や思考力の育成を図ることが目的であれば、スクラッチから早くステップアップして、もっと広いフィールドで自由にプログラミングを経験をさせるべきではないかと思います。


スクラッチの限界から抜け出すには

スクラッチからステップアップする時に、スクラッチの次に何を学ぶかという悩ましい問題が立ちふさがります。

子どもたち自身がプログラミング言語を選択することは、特殊な環境に置かれていないかぎり難しいことです。では親が代わって選択できるかと言えば、それも難しいと言わざるをえません。インターネットで調べても、実績を踏まえた効果の検証がされている文献や記事は見当たりません。

子どもたちにとってプログラミングが必要であるという議論は盛んにされているのですが、スクラッチにかぎらずビジュアルプログラミング言語からどのようにステップアップするかはまだ模索中と言えるのではないでしょうか。

これはプログラミング言語の問題にとどまらず、プログラミング教育全体の青写真についても言えます。多くの小学生がプログラミングを学んだ後に、中学・高校・大学でどのようなシナリオでプログラミング的思考を育てていくのかイメージは固まっていません。きっと識者の会議では議論されているとは思うのですが、まだ現実的な姿までブレークダウンされているとは思えません。



IT業界では言語をどのように選択しているか


世の中には数百種類のプログラミング言語があると言われています。なぜこんなに種類があるのかと言えば、解決すべき問題が多様化し、それに伴い問題解決へのアプローチも多様化し、最適なツールを開発していたらこれだけ多くのプログラミング言語が出来上がったということでしょう。

このような環境の中で、IT業界ではプログラミング言語を次のような理由から選んでいます。

■人気のある言語を選ぶ

人気のある言語による開発は技術者を集めやすいですし、書籍やインターネットの情報が多いことから開発が容易になります。

■システム/アプリケーションの特性から言語を選ぶ

サーバー・パソコン・スマートフォン・OSといったシステムの種類や、ビジネス系・組み込み系・ウェブ系といったアプリケーションの特性から言語を選んでいます。

■仕事で使っている言語を使い続ける

古い言語を使って開発したシステムが多く残っている会社は、開発生産性が高い言語が登場しても現行の言語を使い続けます。日本ではその傾向が強いようです。



スクラッチの次にどの言語を選んだらいいのか


子どもたちがスクラッチでプログラミングの楽しさを知りプログラミングの基本を学んだ後に、学習する言語はどのように選んだらいいでしょうか。

子どもや保護者が、子どもプログラミングの大会出場を目指すといった目標があればスクラッチを使い続けることもありえます。また子どもが、iphoneやandroidのゲームやウェブサイトをつくりたいというはっきりとした目標があるケースは、目標に応じた言語がほぼ絞られます。


それ以外のケースでは、子どもたちが学ぶ目標をまず考えるべきではないでしょうか。

ベルジェールでは、子どもたちがはじめて接するテキスト型言語ではあらかじめつぎのようなことを知っておくべきだと考えています。

■プログラミングの基本的な考え方は、テキスト型の言語もスクラッチと変わりがないこと

■プログラムは、小さな部品が積み重なってだんだん大きなプログラムになること

■大きなプログラムは、自分の力だけでつくるわけではなく人がつくった部品(組み込み関数や外部ライブラリなど)を使うということ

■部品の種類は多くあり、これらを理解して使いこなすことがプログラミングでは大切であること


これらを理解した上で、自由な発想で試行錯誤をしながら、次のようなプログラミング的思考を身につけることが重要であると考えます。

■プログラミングとは、問題解決をすること

■問題解決は、問題発見・モデル化・コーディング・評価をくり返すこと

■モデル化は、分解・抽象化・一般化・組み合わせを順にくり返して考えること

 ・分解:大きな動きを解決可能な小さな動きに分けること

 ・抽象化:目的に応じて必要な性質だけを取り出すこと

 ・一般化:ものごとの類似性や関係性を見出すこと

 ・組合せ:試行錯誤しながらより良い手順を作り出すこと


では、これらのプログラミングの原理やプログラミング的思考を学ぶためには、何がプログラミング言語選定の必須条件となるのでしょうか?


それは、プログラミング言語そのものが、理解しやすくプログラミングがやさしいという特性だと考えています。プログラミング言語自身の難解さに挫折して、投げ出してしまうようなことがことがあれば不幸なことです。せっかくスクラッチで楽しさを知ってステップアップしようとしたにもかかわらず、返り討ちに合ってプログラミングの世界から離れることになっては残念なことです。



ベルジェールがスクラッチの次の言語としてパイソンを選んだ理由とは


ベルジェールが、スクラッチの次の言語としてパイソンを選んだのは、パイソンが「少ないコード量で簡単にプログラムがかける」「コードが読みやすい」といった特性を持っているからです。これが最大の理由です。


さらに付け加えますと、パイソンは

■人工知能(AI)、Web開発、教育の分野など広い分野で使われている

■google,youtube,facebook,line,instagramなどでも採用されいる

■近年さまざまなプログラミング言語ランキングでも、トップや上位に食い込んでいる

■データ解析やAIの分野で広く使われていることから、今後も人気が高まる


また海外の教育の実態として

■イギリスの小中学校ではパイソンが多く採用されている

■中国では、学校のプログラム言語が次々とパイソンに切り替えられている


以上の理由から、ベルジェールではスクラッチの次に使う言語としてパイソンを選びました。



パイソンを選んだ後に考えなくてはならないこと


パイソンを選んだ後には、次のような疑問点がでてくるのではないかと思います。

■子どもたちがパイソンを本当に理解し使いこなせるか

■アルファバットや英単語をどう考えたらいいか

■キー入力をどう考えたらいいか

■使いこなすにはどのくらいの期間が必要となるか



これらの疑問には、パイソンの教材を作成した経験とスクラッチを長年教えてきた経験から気づいたことを含めいずれブログでお話をしようと思います。

Comments


bottom of page