2019年5月13日 14:20 更新
ーー目次ーー
1. プログラミングとは?
2. プログラミング言語とは?どれが初心者におすすめ?
3. 絶対に挫折しないプログラミング超入門ー完全初心者のためのビジュアルプログラミングー
4. プログラミングをさらに学んでみよう!
5. スクーなら動画がわかりやすく学べる!
かいせつくん
「プログラミングについて基礎から学びたい!」
「初心者におすすめのプログラミング言語を教えて欲しい!」
そんな方のためにオススメの授業が「絶対に挫折しないプログラミング超入門ー完全初心者のためのビジュアルプログラミングー」。この授業ならWordPressの基礎について学ぶことができるよ!
なになにくん
そもそも「プログラミング」とはなんですか?
かいせつくん
「プログラム」という言葉は、そもそもIT業界特有の難しい専門用語ではなくて、世間一般で広く使われている言葉で、日本語に訳すと「実行する順番」なんだ!
つまりコンピュータ上での「プログラミング」とは、「コンピュータにさせたい仕事を順番に書き出す作業」のことだよ!
なになにくん
「プログラミング言語」とはなんですか?
かいせつくん
人間がコンピュータに仕事をさせようとしても、コンピュータは人間の言葉をそのまま理解できないから、コンピュータが理解できる言葉で指示する必要があるんだ。
この時に使用する言葉を「プログラム言語」というんだよ!
「プログラミング言語」の書き方を覚えることで、様々な命令を表現できるからコンピュータに対して効率的に指示が出せるようになるよ!
なになにくん
初心者におすすめのプログラミング言語はありますか?
かいせつくん
初心者には「スクラッチ」がおすすめ。
アメリカのマサチューセッツ工科大学メディアラボのグループが作った、小学生でも簡単にプログラミングができるソフトだよ!ウェブで自由に使うことができて、自分だけのゲームやアニメーションが誰でも作ることができるんだ!
西澤 利治 株式会社電脳商会代表取締役 プロデューサー
本業はデジタルコンテンツの制作プロデューサー。幼児教育番組「ひらけ!ポンキッキ」のディレクターを担当後、アスキー、CGプロダクションのハイテック・ラボ・ジャパンを経て、1987年にデジタルコンテンツの制作プロダクションである電脳商会を創立、現在に至る。
かいせつくん
ここでは、授業の様子を紹介していくよ!
西澤先生:今回の授業の目的ですけれども、プログラミングに挫折したことがある方、またはこれからプログラミングやってみようという方に、プログラミングの基礎に付いて理解していただくのが目的の一つです。
それからプログラミング的な考え方やプログラミング的思考についての理解というのがもう一つの目的になっています。
最大の目的はビジュアルプログラミング言語を理解することを目的としており、今回は「スクラッチ」というものを使用します。実際に講義を聞いていただいて、プログラミング的思考というのがどういうものか分かっていただけたらうれしいです。
それからスクラッチによるプログラミングは、ご自分でもやれるような基本的なテクニックを理解していただくということもゴールにしています。
プログラミングを勉強したけどうまくいかない方の話を聞くと、一番多いのは命令や文法を覚えるのが大変、特にスペルを正確に覚えるとか、エラーが出て動かないとか言うのもよく聞きます。
また、特定の言語を学んでもそのブームが過ぎたら陳腐化するので、覚えても無駄だって言う方もいらっしゃいますね。
今日これから紹介するビジュアルプログラミングは文系の方でも非常にとっつきやすいなど、色んなメリットがありますので、その辺を是非覚えていただけるとありがたいです。
今お仕事で小学校の先生とか小学生にプログラミングを教えることがあるんですが、その時大きな誤解があるのが、プログラム=コンピュータープログラムだっていう風に考える方が多いんですね。
でも実際に身近なプログラムって何だろうって考えてみると、小学生が最初に出会うプログラムって運動会のプログラムとか、なんかの発表会のプログラムだと思うんですね。
「じゃあ、その運動会のプログラムって中身はどうなってるの?」って言うと、運動会でやることを順番にまとめたものだと思います。
運動会でやる事って本当に色々あったとしても、それを開始時刻から終了時刻までどういう順番で、あるいは誰が出演するのか整理したものが運動会のプログラムなわけですね。
つまり、これがプログラムの本質だから、コンピューターのプログラムでもこれと同じで考えればいいわけです。コンピューターがやることを順番に並べて書いたもの、これがコンピューターのプログラム。
これが分からないと、あとで複雑なプログラムになってきた時に混乱してしまいます。基本的には人間がコンピューターにやらせたいことを順番にまとめたものをということです。
そのコンピュータプログラミングをまとめると、プログラムをデザインして実行するための命令を並べたものと言えます。
逆に言うとコンピューターに命令の手順を指示できるのであれば、言語で書く必要はなくて、今日ご紹介するようなビジュアルプログラミング、ブロックを積み上げるとかタイルを並べていくとか、後で写真でも出てきますがロボットの動きを制御するために、積み木みたいなブロックを差し込んでいくのもプログラムと言えると思います。
ただ複雑な構造のプログラムを書くためには、どうしてもそのブロックを並べる形がビジュアルプログラミングでは限界があるので、そこでプログラミング言語が生まれて使われてると考えください。
よくコンピュータプログラミングと似てる言葉で、コーティングというのがあげられますが、コーディングはあらかじめ設計されたプランを渡されて、その通りにコンピュータの命令を入力していくことで、必ずしも自分がプログラムをデザインする必要はなくて、仕様が与えられてそれをキーボードでその通り入力していくっていうのがコーディングです。
最近ではお子さんでもできる教育用のロボットがあったりして、コンピュータを使わないでプログラミングを学ぶっていうのも出てきています。
スペルとか文法を気にしないで、海外の展示会とかに並べても国籍とか関係なく、みんなプログラミングを楽しみながら学ぶことを実現しています。
以前テレビ番組ポンキッキーズの人気コーナーに「からだでプログラミング」っていうコーナーがありました。
これはダンボールのキューブを積み上げて、そこに書かれたパターンに合わせて自分の体を動かすというようなコーナーになっています。
実際には番組以外でも、こういったキューブを並べて、相手にその動きをプログラミングしてその通りやってもらうことで、子供たちが喜んで自分だったらこういう動きにするというのを考えてお友達にやらせるとか、とても楽しそうにやっています。
この命令キューブのパターンをどう表現するかで、自分自身でそのキューブのデザインをしたり、それを組み合わせて面白い体の動きをデザインしようとして子供たちが工夫していくんですが、その手順に分けていくっていうことがとても大事なことだと思います。
これが言語を使わないプログラミングということですが、どうしても通常大人がプログラミングを学ぶということは、プログラミング言語を学ぶことだと思われがちだと思います。
じゃあそのプログラミング言語をもう1回どういうことか考えてみると「プログラミングをデザインして表現するためのツール」ですね。
道具ですので、その中には人間が理解しやすいような文章で表現されたものもあれば、もっとマイコンを制御するようなプログラムですと命令だけを並べた機械寄りのものもあります。必ずしも人間が分かりやすいかというと、そうでもない言語もあります。
プログラミングというのは、そのプログラミング言語を用いてコーディングすることだと考える大人が多いんですが、ビジュアルプログラミングツールも含めて、単純な表現でできるということで今日はご紹介していきたいと思います。
従来のプログラミング教育っていうのが、古くはベーシックなんていう時代が1987年ぐらいからありましたが、パソコンを動かすことはベーシック言語を覚えることという時代が続いて、そのあともいろんな言語を覚えることだと言われてきました。
しかし、これまでプログラミング教育を学んできた方は、コーディングスキルを重視するもの、つまりこれが写経って言われる原因の一つでもありますが、どうやってそのプログラミングの文字を入力するかということをまず教わるんです。
キーボードを見ないで指が動かせないといけないとか、そのプログラミング言語の文法を覚えることが目的だったり、与えたサンプルプログラムを再現するっていうことが重視されていました。
そのプログラムを入力した文法のミスだったり、スペルを間違ってエラーが出たらそこで減点されるっていうやり方が多かったので、やってても面白くないですね。
こういった教育の一番の欠点だったのが、与えられた課題を解くことが重視されていたので、自分で新たな問題を見つけて、それをどういうアプローチでプログラムに置き換えるかを考えるということをあまりやらなかったんですね。
この辺の反省から今、新しいプログラミング教育の考え方が進んできています。今のプログラミング教育と言うと、プログラミング的思考を身につけることを重視します。
それが手順に分けて考えるとか、段取りに置き換えていくというようなことを言った論理的な思考であったり、創造的な思考を最優先するということです。それから解決すべき課題や手法というのを自ら生み出していくということです。
与えられた課題ではなく、そもそも自分が何が問題なのか、その問題を解くにはどうしたらいいのかということを考えていくことが重要となりました。さらに他の人たちと共同して新たな価値を創造することの重要性も非常に重視されるようになっています。
そうなってくると問題解決にどのようなコンピューターを活用できるかイメージすることが重要で、また自分の考えている意図をうまくコンピューターに伝えられるのかっていうのが重要になってきています。
またコンピューターを使ってどのように現実世界に働きかけるか、この辺りが非常に重要なポイントとしてプログラミング教育の在り方が変わってきています。
このような反省を受けて、新しいプログラミング教育ではこのビジュアルプログラミング言語を利用した教育というのが行われるようになっています。
特徴はブロックなどのシンボルを組み合わせて一つのプログラムを表現します。さっきプログラミング言語が陳腐化するって話もありましたが、今世の中に出ているビジュアルプログラミング言語の多くはスクラッチに似た操作性が採用されています。
なのでスクラッチの操作性を覚えておけば、他の言語でも応用が効きやすいようになっています。
またブロックを並べるだけだから幼稚だって思われるんですが、画面上はブロックを並べていても実際には裏でコードが自動生成されています。
なのでスクラッチではコードの生成されているところは見られないんですが、この講座の続編では実際にブロックを並べたものがどのようにコードとして生成されているのかというような、別のビジュアルプログラミング言語もご紹介する予定でいます。
スクラッチはプログラムの構造が視覚的に表されてるので、非常に直感的でわかりやすいです。むしろ文系の人の方が理解しやすいというような経験を持っています。デザイナーさんとかの方がすぐに把握するということができていました。
命令ブロックはもともと用意されているのを電子ブロックみたいに組み合わせていくだけなので、命令を表すスペルミスが起こらないんです。
あと命令ブロックには切り欠きがあるので、間違った組み合わせ、文法の間違いもできないようになっているので、うっかりミスが減って初心者でもがっかりしないで済むというメリットがあります。
スペルを覚えること、文法を覚えることがプログラミング教育なのかってていうアンチテーゼとして、問題解決をプログラミングの力で行うことが重要ということでビジュアルプログラミング言語が対応されるようになっています。