写経、いったい何のこと?
プログラミング経験のない人には、訳の分からない話ですが、
プログラミングでの写経とは、
人が書いたプログラム(コード)を、
一字一句真似て書く(キーボードを打つ)、
ということを意味しています。
プログラミング技術を習得するうえで
優れた人のコードを写経する作業は
学ぶところが多く、私も未だにやります。
キーボードで文字を打ち込む、というところが大事で、
コードに目を通しただけでは、記憶に残りにくく、
自分の血肉とも なりにくいんですね。
特に、 for や if などの制御文の構造が、
手を動かすと頭に入りやすく感じます。
人間の脳は、目から得た情報だけよりも、
五感を活用して得た情報の方が
記憶に残りやすい、とは昔から言われており、
私も受験勉強で文章とイメージを
組み合わせたりして覚えていました。
(昔から物覚えが悪く、
ただ文字だけ見せられても
なかなか覚えられませんでした。。)
写経に限らず自分自身のコーディングでも、
似たようなところだからと思って
コピー&ペーストで修正したところは
何をやったか忘れやすいです。
そうやって考えると、この写経、
Scratchでも、効果があるのだろうか?
ということを、ふと思いました。
見本をそのまま写す、という意味では
他のプログラミング言語と一緒ですが、
他がキーボードで文字を打ち込む作業であるのに対して
Scratchは、ブロックをドラッグ&ドロップするだけ!
教室を始めてしばらく試行錯誤していたとき
生徒にScratchで見本のプログラムを写経させると、
その場では説明を理解してくれても、
後日、自分で再現できない、
というケースが間間ありました。
実はScratchのようなブロック型ツールにおいては、
写経による学習効果が、他の言語より弱いかも、
と感じています。
写経の後でいろいろアレンジしてくれれば
いいのですが、特に学び始めは
出来ることが限られていることもあり
自分から積極的にアレンジしたい
という子は多くないです。
このような経緯もあり、「Dr.+エジソン」では、
Scratchの写経は基本的に、させていません。
初めに見本の動きを見せますが、
そのプログラムを見せる前には
必ず本人の考えを聞いて
仮説を持たせてからいろいろ試してもらい、
どうしても分からない状態になって初めて
ヒントを出したり、正解パターンを見せたりします。
理解が足りていないな、と思う生徒には
コピー&ペーストで済むところも
わざと教えずに同じプログラムを作らせたり
ということもします。
これは、言われたままに進ませるのではなく、
自分で何をやったのか、すると、どうなったのか、
ということを、しっかりと意識してもらいたいからです。
そうやって、人から与えられた言葉でなく
自分自身の経験として身につけた知識だから
本質的なところから深く理解してもらえる、
と考えています。
これはプログラミングに限らず
何か新しいことをやるときには役立つ考え方なので
ぜひ身につけてもらいたいです。
ちょっと言葉では理解しづらいと思いますが、
現在公開中の動画教材:走り回るネコを見て頂ければ
どんな感じで指導しているか
感じて頂けると思います。
(動画だけだと、対面授業よりも
かったるい感じになってしまいますが。)
なお、当然ながら
キーボードで文字を打ち込むにしても、
内容を考えずにただ記号を打ち込むようでは、
上達は見込めませんね!
要は、
どれだけ考えながら手を動かしているか、
に尽きると思います。