神戸子供プログラミング学習研究会
子供たちがコンピュータを学んでいくとき、何をどのように学んでいくべきかについては、コンピュータの専門教育に関わる先生方の意見はほぼ一致すると思います。しかし、方法論と目的論は各先生方にお考えがあり、様々だと思います。私の場合は2010年にこどもプログラミング教室を開始しましたが、苦い経験が2つあります。
第一は、大人の場合と同じように(ウェブデザイナーレベルを目標)ホームページ作成ソフトを使ってしまったことです。短期間で結果を出せましたが、6年後高校生になった彼女からウェブページの作り方を忘れてしまったという話を聞き愕然としました。フラッシュが使えなくなり新しい知識が必要なのは別として、私が教えていたのは結局いろんなソフトのメニュー操作に過ぎなかったのではないかということです。
第二は、集中力の持続時間が子供によって全く違うということです。経験では30%の子供が15分間持ちません。眠ってしまったり、全く別のことを始めます。以来学校への出張講師は休止し、個人レッスン方式のみに切り替えました。一人ひとりの体調や理解方法に寄り添うためです。
さらに、根本的に「子供に解りやすく教える」という発想がそもそも間違っていたのだと最近気づきました。リンダ・ルーカスさんは、「6歳の女の子(が先生)だったら、どういう説明をするのだろう」という発想を持って教育に臨んでおられます。(トップページ中ほどに掲載)
根本的に視点を見直して、子供の個性を尊重したプログラミング学習のあり方を研究するため、友人たちに呼びかけ設立しました。
研究会の目的
子供たちは、コンピュータ科学に支えられた現実社会を今後生きて行くことになります。国民の教養の一つとしてコンピュータ科学を学ぶことは世界の常識となっています。
子供プログラミング学習研究会は、「子供がプログラミングを学ぶとき、どのような目的で何が必要か、そして個性を伸ばすための方法は何か」を研究し実践していきます。
公教育には、分野はともあれ自分と社会が共に豊かに幸福に生きて行くための技術と心を養うという使命があるはずです。私たちはこの使命をいかに実践していくかを技術的に研究し、具体化することを目的としています。
メンバー間は非常に緩やかな関係を保ちますので激論が好きだとおっしゃる方にはもの足りないと思います。一緒に考えてあげてもいいよ思われる方、お待ちしています。
私たちは、コンピュータ科学を学ぶ項目・順番・内容をこう考えます。
大枠ですが下図のような内容を考えています。下から順に上へと進みます。
コンピュータ科学も他の学問同様に①前提となる知識と②創造力から成り立っています。
①コンピュータはデータ(値)を処理(計算・判断)しますが、電気につながった箱がなぜ?判断までできるのか? 2進数と論理演算、パソコンの構造と処理の流れを理解することが必要です
②コンピュータは、元々計算では足し算しかできません。判断では等しいか等しくないか、大きいか小さいかしか処理しません。intelやAMDのcpuは7億ほどの論理演算回路を用意し、後はプログラムの指示を待っています。
プログラマは直接2進数の機械語で指示することなんて現実離れしていますから、プログラム言語(Cやpythonなど)を使ってデータ(値)を処理していきます。
どのプログラミング言語でも共通して使われるテクニックは変数と配列、条件分岐と回数、関数処理です。オブジェクト指向というのは簡単料理セット(使う材料とレシピ)を幾つか用意してこれらを順に並べてディナーを作るような最近よく使われるテクニックで、ネットでいろいろ提供されているモジュール(材料別調理セット)をダウンロードして組み込むことで短期間で完成します。