初回授業はJavaの基本構文・for文などの授業にした。概念の説明をしたあと、すぐに対応するコードを見せるようにした。一年間やってきたJava講座について、得た学びについてオブジェクト指向という難しい概念をプログラミング初学者にどう教えるか今年一年やってきたJava講座について私は今年一年のプログラマー就職キャンプという講座で、Java講座を担当してきました。gsacademy.tokyoきっかけ頼まれたきっかけは、私が転職活動中で暇だったんで、卒業したジーズアカデミーに出入りしてました。「ふぁっ?」ってなったのが始まりです。講師経験なんてなかったんで、やれんのか。対象者は、以下のような方々です。心の中で思いましたがせっかくもらった仕事を無下にするわけにもいかないので、心にしまっておきました。講座のスケジュールについて講座は、以下のようなスケジュールでやりました。ターム2と呼びますターム1での失敗こうしてバタバタと授業の準備を始めていくわけですが、ターム1は失敗ばかりでした。オブジェクト指向・Javaを教えるのに、正直、生徒のみなさん頭が??になっていたと思います。具体的にした失敗は以下の3つです。Javaの基本構文をほぼ教えずに、オブジェクト指向の説明に入った具体的なコードを見せずに、オブジェクト指向の概念の説明のみしてしまったオブジェクト指向でできること、すべてを授業で教えようとした以下、それぞれの失敗について、詳しく話していきたいと思います。Javaの基本構文をほぼ教えずに、オブジェクト指向の説明に入ったこれはタイトルの時点でアカン!って感じだと思いますが、当時はこんな考えでやってました。PHPとかJsとかやってるんだから基本的な構文はわかるっしょwwwwってか自分で学ぶ力ついてるっしょwwwwwまあ、プログラミング初心者舐めすぎですわね。みんなPHP/JSから切り替わった瞬間に「ファッ!?」ってなって、こんな質問がいっぱいきました。このstaticってなんですか?このmainってなんですか?for文ってどうかけばいいんですか?はい、すいませんでしたーーーーー!!!!!!!!!!!具体的なコードを見せずに、オブジェクト指向の説明に入ったこちらが実際に使ったスライドです。わけわかめって感じですよね。当時は「ポ◯モン」に例えれば、わかりやすいんじゃね?と思ってましたが初めて出てくる単語が多いので、単語は削って、丁寧に説明すべきだったと反省しています。オブジェクト指向でできること、すべてを授業で教えようとしたオブジェクト指向でできることはたくさんあります。クラス継承インターフェースその他、いっぱい。新しい単語が出てくる、ということなのですべてを授業で教えていると、新しい概念が次々と出てくることになります。カプセル化でpublic/privateとかゲッターセッター教えて次に継承でabstractとextends教えて、とやっていくと生徒さんたちは絶対についていけません。実際、みんな??となっていました。上記の反省点がいっぱいあったので、ターム2では、ターム1の反省点を踏まえて、大幅に内容変更することにしました。具体的には、以下の通りです。初回授業はJavaの基本構文・for文などの授業にした。概念の説明をしたあと、すぐに対応するコードを見せるようにした。オブジェクト指向でできること、すべてを授業で教えようとした->すべてを教えようとせず教える内容を削った具体的に説明していきます。初回授業はJavaの基本構文・for文などの授業にした。(継承)ターム1はJavaFXなども取り扱っているのが怖い点です。あたまおかしいな、これ。実際に教えてみると、for文の授業を1回やっても2回目の授業で、「for文ってどうやって書くんでしたっけ?」という質問があったりします。1回教えても不十分なぐらいに何回も教えることが大事、ということがわかりました。概念の説明をしたあと、すぐに対応するコードを見せるようにした。一つの概念=新しい単語を説明した後は、それに対応するコードを見せるようにしました。「フィールド」という新しい概念を紹介したあとは...すぐに、それをコードに落としたものを紹介する!こうすることによって、グッとわかりやすくなったのはもちろん自分でも説明しやすくなりました。新しい概念をコードなしで説明するのは、説明しづらかったのです。すべてを教えようとせず、教える内容を削ったオブジェクト指向で教える内容を削りました。【ターム2】(改善後)クラスメソッドフィールドコンストラクタ継承ポリモーフィズムカプセル化ターム1よりも内容を削減して、丁寧に説明するようにしました。インターフェースをなくしたのはどうかな、と思いましたがそのぶん授業自体はわかりやすくなったので、いいかな、と思っています。2回目の授業を終えて理解度という点では、2回目の授業のほうがわかりやすくなったと思っています。実際、自分でも説明していて2回目のほうがグッと説明しやすかったです。まとめ結果的に、言いたいことは、プログラミング教育だけでなく他の教育でも当たり前に行われていることだと思います。新しい概念を説明するときは、丁寧に何度でも説明する。月別アーカイブ著書はてなブログをはじめよう!pco2699さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。