わたしのプログラミングの教え方 ~ 矢沢 久雄の場合
実際私が行った研修の内容を例に、私のプログラミングの教え方をお話します。
プログラミングの教え方の成功事例
これは、ある企業の教育担当者さんから
「 1 日でコンピュータの基礎を楽しく学べる新人研修を行ってほしい」
と依頼されたときのことです。その企業は、 IT 企業ではありません。受講者も、 IT 部門への配属ではありません。
私は、「パソコンの分解実習」と「プログラムの作成実習」というカリキュラムを提案しました。パソコンの内部にある CPU やメモリーなどを実際に自分の目で見て、それらを動かすプログラムを実際に自分の手で作る、という研修です。
企業の教育担当者さんは、「そんな研修で楽しいのだろうか?」と心配されたようですが、実際にやってみると、パソコンの分解実習も、プログラムの作成実習も、大いに盛り上がりました。グループ形式で実習させたのですが、パソコンの分解では
「あっ、インテル入ってるだ!」
「こっちは、インテル入ってないよ~!」
などと大きな声が上がり、プログラムの作成実習では「よし、できた~!」と拍手が起こり、「あれ、おかしな結果になっちゃった!」と笑いが出ました。
私は、依頼に合った研修を実施できたことに安堵していたのですが、後日、企業の教育担当者さんから、もっと嬉しい報告がありました。
それは、「この研修がきっかけとなって、プログラミングに興味を持ち、自ら進んで IT 部門への配属を希望した新人さんが出た」ということです。その新人さんは、 IT 部門への配属がかない、現在は、バリバリ活躍しているとのことです。
「受講者の人生を変えた研修でしたね!」と言われた私は、飛び上がるほど嬉しい気分になりました。
プログラミングの教え方が成功した理由
この研修が上手くいった理由を考えてみましょう。
最大の理由は、研修の内容が受講者に合っていたからだと思います。受講者は、パソコンの中を見たことがない、プログラムを作ったことがない、のですから、初めて見たり体験したりしたことが、興味深くて楽しいに決まっています。
そして、パソコンの中にある CPU やメモリーを見てから、それらを動作させるプログラムを作る、という 順序もよかったのだと思います。
たとえば、
a = b + c
というプログラムを作ったときに、これを
という抽象的な理解をするのと、
という生々しい理解をするのとでは、大違いです。後者の方が、楽しいに決まっています。仕組みがわかることは、楽しいからです。
もう 1 つ、うまくいった理由があると思います。
それは、グループ形式なので、お互いに教え合いながら実習できたことです。後で詳しく説明しますが、プログラムの作成実習の内容は、講師が用意したサンプルプログラムを自分たちのアイディアで自由に改造する、というものです。
「表示されるメッセージを日本語、英語、関西弁から選択できる」という奇抜なアイディアがありましたが、これはグループ形式だったからこそでしょう。プログラムを改造して、自分たちのアイディアを具現化できたときには、もちろん大盛り上がりです。
ここまでの話をまとめると、私のプログラミングの教え方は、
プログラミングの楽しさを教える
です。
プログラミングの教え方の内容
それでは、「プログラムの作成実習」の内容を説明しましょう。
Windows に標準装備されたテキストエディタである「メモ帳」を使って、 VBScript ( Visual Basic Scripting Edition ) というプログラミング言語でプログラムを作成します。 Windows には、 VBScript のプログラムを解釈・実行する WSH ( Windows Scripting Host ) という機能があるので、新たなプログラムのインストールは、一切不要です。
お題
作成するプログラムのお題は、
というものです。
BMI は、 kg 単位の体重を、 m 単位の身長で 2 回割ることで求められ、 22 が標準であり、 25 以上が肥満です。
研修プログラム
- まず、以下のサンプルプログラムを作って、動作を確認してもらいます。
H = InputBox("身長(m)を入力してください。") W = InputBox("体重(kg)を入力してください。") BMI = W / H / H MsgBox "あなたのBMIは、" & BMI & "です。"
- 次に、「変数」「関数」「ステートメント」「演算子」「代入」という言語構文を説明します。
- そして、もう一度、プログラムを実行して、自由に改造テーマを考えてもらいます。以下に、実行結果の例を示します。
改造テーマは、グループごとに用意したホワイトボードに書き出してもらいます。以下のような改造テーマが上がったとしましょう。
- 身長を m 単位でなく cm 単位で入力できるようにする。
- BMI の値を、小数点以下 1 桁まで表示する。
- 身長に対する標準体重を表示する。
- BMI が 25 以上なら「肥満です」と表示する。
改造テーマ
この後は、グループで「ああすれば?」「こうすれば?」と話し合いながら、 1 テーマずつ改造をしていき、できたものに丸印を付けていきます。
講師は、
「それは、現状の知識だけでできるよ」
「それは、こういう構文を使えばできるよ」
「それを実現する関数は、インターネットで検索すれば見つかるよ」
といったアドバイスをします。
こうして、時間が許す限り、改造を続けていきます。「こんな内容で盛り上がるのか?」と思われたなら、ぜひやってみてください。
プログラミングの教え方で常に心掛けていること
最後に、私がプログラミングを教える研修で常に心掛けていることを、お話ししましょう。どれもありきたりかも知れませんが、以下にまとめて示します。
- 「これから教えることが、自分は大好きなんだ」という態度で教える。
- 「私が発明した技術ではないのに、偉そうに教えてごめんなさい」という態度で教える。
- 「教えたら混乱する」と思われることは、教えない。
- 1 時間に 1 回は、必ず休憩を入れる。
- 絶対に、時間を超過しない、ただし短くもしない。
- もしも、時間が足りなくなったら「もともと多めに用意していたんですよ」ということにして、打ち切る。絶対に、駆け足で説明しない。
- 「質問がないと寂しいので、質問してくださいね」とお願いする。
- 受講者が多くない場合は、研修の開始時に要望を聞き、終了時に感想を聞く。
全般
- 言語構文よりも、それで何を表すのか、世界観に重点を置いて教える。
- 重要な言語構文と、オプション的な言語構文を、区別して教える。
- プログラミング言語のキーワードの意味を、とことん説明する。
- キーワードの読み方を教えて、プログラムを音読させる。
- サンプル通り作るだけでなく、自分のアイディアで改造させる。
- エラーを修正できたときの喜び、思った通り動作したしたときの喜び、を教える
プログラミング
以上で、私のお話は、おしまいです。プログラミングを教える皆様と、プログラミングを学ぶ皆様に、少しでもお役に立ったなら幸いです。
『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”
大手電気メーカーで PC の製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。
そのかたわら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースの IT エンジニアではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。
主な著作物
- 「プログラムはなぜ動くのか」(日経BP)
- 「コンピュータはなぜ動くのか」(日経BP)
- 「出るとこだけ! 基本情報技術者」 (翔泳社)
- 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
- 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数