Hakkun javascript
Contents
ブロックからコードへ
8x9CraftはJavaScriptによるコードのプログラミングを学ぶことを目的として開発をしています。そのため、ブロックエディタによるプログラミングからコードによるプログラミングへの移行はどこかでやらなければ、発展したワークを行うことができません。 理由は、ブロックでは限られたことしかできないからです。
本ページでは、ブロックからコードへ移行するための手順を説明します。
ブロックからJavaScriptに移行するタイミング
コードのプログラミングができると判断するポイントは次の2つです。
- キーボードタイピングに慣れていること。
- 順序処理、繰り返し処理を理解できていること。
タイピングに慣れているかどうかの判断
8x9Craftでは、上記の2つがクリアできていれば、コードによるプログラミングの移行の準備ができていると判断しています。
キーボードがどの程度慣れていればOKと判断してよいのかというところですが、8x9Craftでは、キーボードが速く叩けるかどうかは問題としていません。重要なのはアルファベットが読めるかどうか、もっと具体的にいうとアルファベットの大文字小文字が区別できるか?と、それから、コンマやセミコロンといった特殊な文字の名前と打ち方を知っているかです。 これが出来ていて、タイピングに対する苦手意識が極端でなければ、タイピングに慣れていると判断をしています。 そのような理由のため、タイピングの練習には、ローマ字入力による日本語のタイピングはあまりおすすめをしないです。 これらは、基本大文字によるタイピングのみの練習なので、どこかで大文字小文字の区別によるタイピングを教える必要があるからです。 そこで、最初は大変ですが、海外のタイピングソフトを使うのも良いと思います。
順序処理、繰り返し処理に慣れているかどうかの判断
次に、順序処理、繰り返し処理の理解についてですが、はっくんビルディング、あるいは、はっくんスプリントで、ブロックによるプログラミングを苦労せずにできているのであればできていると判断しています。 とくに、はじめてはっくんビルディングでも、おっと思えるような手順で作れるような子は、プログラミングが未経験であっても理解できていると判断できます。
移行の方法
移行は、はっくんビルディング、あるいは、はっくんスプリント、はっくんタワーをJavaScriptによるコードでやらせることから始めます。 このとき、JavaScriptとは何か?オブジェクトとは、変数とは等、ワークに必要のないことを教えなくてもよいです。
例えば、私は次のような手順で説明をします。
- コードエディタの開き方
- プログラムの編集方法
- リモートビューの開き方
- 実行の方法
まずは最低限これだけを説明し、はっくんを操作するところまでをやってみます。
これができたら、
- 入力補完
を説明します。
c だけ入力してタブキーを押すと残りの文字が補完されること、 crab.f まで入力すると forward があらわれること。
タイピングが遅くてもアルファベットがわかれば、コードを書けることを説明します。
このとき、次のようなハックンのチートシートを手渡し、この紙に書いてあることをそのまま打てば動くということを説明します。
前進や後退などいくつか、やってみて納得したなら
次に、はっくんをクリエイティブモードにしてあげ、
- はっくんでブロックを置く方法
を説明し、はっくんビルディングなどのワークを他の子と同じようにやらせます。
- 繰り返しの方法
ブロックによるプログラミングを経験しているのであれば、繰り返しをJavaScriptではどのようにするのかを説明できるはずです。 JavaScriptでは for文という特別な書き方で繰り返しができることを説明してください。
for文については、初期化、条件、次の処理の部分でわかれていること。これはブロックにはない考えかたなので、丁寧に教える必要があるとおもいます。
一通り教えたら、次のようなJavaScriptのチートシートを渡して、わからない場合は、質問するという形で個別に対応をします。
気をつける点
だいたい、当ワークは1人の先生で1人のサポートが付くとして、6人から8人ぐらいに教えることを想定しています。
8x9Craftのワークはみんなでゲームをするので、みんなが同じタイミングでワークをすすめていかないと難しいです。
そのため、JavaScriptをはじめる子は、最大でも4人ぐらいにとどめておいたほうがよいです。それ以上になると、先生の負担が大きくなるため、ゲームをすすめるまでの時間がかかります。
そうなると、JavaScriptの子とブロックの子が混在することになりますが、これは問題ありません、最初はJavaScriptの子はうまくコードをかけなくて、一緒にスタートできないなどの問題もおきますが、何度も失敗をするうちに学び、最終的にはブロックの子と同じ、あるいはそれ以上の結果をだすはずです。