Code.orgを試す

プログラム

前回のCode Of Hourの主催団体がCode.orgが展開しているプログラミング教育サイトを試してみることにしました。まずはhttps://code.org/にアクセス。こちらがトップページです。

トップページにある左上のコースカタログをクリックするとこのような画面へ

このようにCode.orgでは年齢区分によって教材が分かれており、各コースをクリックすると、そのコースのレッスン一覧が表示されます。

ここでアンプラグドとは、電気を使わないという意味でもともとは音楽業界の用語であったが、ここではコンピュータを使わずに紙と鉛筆で勉強するというレッスンです。

しかし、このCode.orgの残念なところは、本家がアメリカなので基本英語ということ、多くは日本語に翻訳されているのですが、初っ端のこのアンプラグドのPDFダウンロードは日本語に対応していません(涙)

でも、理想はアンプラグド授業から始めるのがよいのでしょうが、次のコンピュータを使うジグソーパズルから初めてもよいと思います

ジグソーパズルのレッスンは、マウスの操作方法を覚えるようなレッスンなので、そこの紹介は一旦、はずしプログラムっぽいなーっていうのが始まる迷路シーケンスから説明するとこのようなものです。

クラス1では4~6才とあるので、あまり文字は出てこずに矢印で表現していきます。とはいえこのクラス1では【順次処理】と【繰返し処理(ループ)】までを勉強できるので結構、本格的です。こちらがループ処理の課題の例

そしてクラス1の年齢ではちょっと早いかなと思いますが、クラス1~クラス4までの全般にわたって、このブロックの組合せで作ったプログラム(ビジュアル言語)をJavaScript(スクリプト言語)に変換するとどうなるかというのがみることができます。

小学校高学年くらいになると、このブロックで作って最後にJavaScriptであらわすとどうなるというのを観る事で、次のステップの言語に進みやすくなるかと思います。

 

クラス2からは矢印ではなく文字が入ってきます。そして【条件分岐(IF文)】がはいってきて、更に本格的になっていきます。ビジュアル面が易しいですが、結構、頭を使いますよ。実行するとプログラムのどの部分を実行させているかがわかるので理解が進みます。間違えるとTNT爆弾が破裂するのも、あっ間違えたという実感がわいていいですね。

そしてこのプログラムでは、何度も何度も歩かせるという処理を書くのですが、正直僕も入力するの疲れました。この後に【反復処理(ループ)】がでてくるのですが、これがループ処理をやったら便利っていうモチベーションにつながります。上手い進め方ですね。

 

更にレッスン4まで進めると、算数の領域にも入ってきます。三角形や四角形ですねここで角度の概念がでてきて、四角形は内角90度なんだ、六角形の内角は120度(外角で表現すると-60度)ということが理解できて、算数な苦手なコの助けにもなります。

プログラム的な観点でいうとループ処理の入れ子で表現されることができること、普通のループだと1次元処理(直線)ですが、入れ子をつかうと2次元処理(平面)、更に入れ子にすると3次元処理(立体)が表現できます。

これって、結構、今後プログラムをやっていくなかで重要でループの入れ子を上手く考えることができるというのは重要なスキルになります。

もちろん入れ子を使わないでプログラムを書くことも可能ですがそれだとプログラムが長くなりますよね。このように論理的に書いていくと短くてシンプルなコードになるということを理解してもらうのにとてもいいステップです。こちらが入れ子を使わずに愚直に書いたコードの例です。無駄に長くなりますよね。

そして更に進むと関数の概念がでてきます。

今まで書いた四角形を描くというプログラム、六角形を描くプログラムを関数と呼ばれるひとまとめにして、それを呼び出すというレッスンです。ここでは関数と引数を用いて三種類の長さの異なる図形を描いています。

毎回、毎回、三角形を描くプログラムを書くのは大変ですよね。そういったものをパッケージ化してしまって、使う時にそれを部品として呼んでくるというのが関数です。各関するの詳細を開くとその関数の中身がでてきます。

そして、ここでは引数という概念も覚えます。三角形は内角が60度の直線に囲まれたものというなので、長さを外から与えてあげれば小さな三角形も大きな三角形も作ることができます。その外から与えてあげるのが引数であり、このケースでは一辺の長さとなります。

勿論、これもJavaScriptで詳細が見えます。関数名はちょっとわかりにくいのがついてますけどね。

 

さて、このCord.org。正直いって、凄い、凄すぎる。無料でここまでできるの?という感想です。【順次処理】【反復処理】【条件分岐】に加えて「入れ子処理」、「関数(引数)」、Code.org内には「ソートアルゴリズム」までも勉強できるページもありました。入れ子処理などは、プログラムを知っている人間がサポートしてあげないと気づかない部分かもしれないですが、それでも自習でここまでできるのはすごいです。

さらには勉強をすすめていく合間にIT業界の有名人がプログラムについて熱く語ってくれてやる気が維持できますよね。

ただ残念なのがすべてが日本語ではないこと、このビルゲイツ氏の動画もイタリア語などには対応していたものの日本語ではなかったです。これを機会に英語に興味を持ってくれるというのがいいんですけどね。ちょっとそこだけが日本人にとってはハードルかと

ということで、このCord.orgはお勧めです。Scratchに入る前にここのレッスンをこなしていったらかなりプログラムを書くということを理解できるのではないかと思います。その上で、Scratchなどの自由にコードをかけるビジュアル言語を使っていくのが教育ステップとしてよいのではないかないでしょうか

Learn computer science. Change the world.
Every student has the potential to change the world. Help them get started. #CSforGood

コメント

タイトルとURLをコピーしました