特集・コラム

メニュー

Ruby & Rails

vol.7 ‐ 『プログラミングと教育』

投稿日時:2015/01/05 04:01

カテゴリ: Ruby & Rails

12月3日にRails3.2.16及び4.0.2がリリースされました(*1)。
DoS攻撃やXSSの脆弱性に対する緊急度の高いセキュリティフィックスのようですので、
できるだけ早くアップデートすることをお勧めいたします。
 
さて今回はいつものRubyやRailsに関するトピックス的な話題から離れまして、
「プログラミングと教育」について書いてみたいと思います。
筆者がこれまで行ってきた社内教育の経験を基にしており、
教育のターゲットはプログラミング未経験の新入社員を想定しています。
学生やある程度の経験者をターゲットとする場合とでは力点の置き方が変わってくることでしょうが、
共通する部分もあるかと思いますので、何かの参考になれば幸いです。
 

必要は○○の母
 

本来は発明と入るところでしょうが、発明に限った話ではなく必要性は何かをする上での
大きなモチベーションとなることがあります。
テストがあるから勉強する、海外旅行に行くので英会話を覚える、家に人が来るので掃除をするなど、
みなさんも必要性を感じて何かを行動に移した経験があることでしょう。
教育を行う上で大切なことの一つに、「必要性を感じさせる」ことがあると思います。
例えば、新たに配列を教えるシチュエーションを考えてみましょう。
ありがちな教え方は以下のようなものでしょうか。
 

1. 配列の概念論を説明(配列とは~)
2. 配列の操作方法を説明(配列の作成や参照など)
3. 配列を用いた演習
 

勿論すべて教えなければならないことですが、この構成では配列というものの存在や扱い方を
何となく理解しただけで終わってしまうケースがあるように感じています。
そのため、教育後に配列を使う簡単なプログラムが書けなかったり、
或いは読めなかったりといったことが起きる、
そんな悲劇(*2)の一因になっているのではないかなと思います。
 

# —————————————-
# 配列を使用しない場合
# —————————————-
my_skill1 = “Ruby”
my_skill2 = “Java”
my_skill3 = “PHP”

skill = gets.chomp
my_skill = false

if my_skill1 == skill
my_skill_flag = true
elsif my_skill2 == skill
my_skill_flag = true
elsif my_skill3 == skill
my_skill_flag = true
end
 
if my_skill_flag
puts “私は#{skill}を使用できます。”
else
puts “私は#{skill}を使用できません。”
end
 

# —————————————-
# 配列を使用する場合
# —————————————-
my_skills = [“Ruby”, “Java”, “PHP”]

skill = gets.chomp
my_skill_flag = false

my_skills.each do |my_skill|
if my_skill == skill
my_skill_flag = true
end
end
 
if my_skill_flag
puts “私は#{skill}を使用できます。”
else
puts “私は#{skill}を使用できません。”
end
 

上記は入力値をチェックして出力を変えるプログラムで、
配列を使用しない場合とする場合それぞれのソースコードです。
チェック内容はソースコード中の値と合致するかどうかで、対象の値は複数存在します。
 

進め方としては配列そのものの説明に入る前に、前述の仕様を満たすプログラムの作成演習をさせ
配列を使わないソースコードの解説を行います。この仕様では対象の値は3つしか挙げていませんが、
これが増えていくとif文の量も比例して増えていくことを提示するとよりいいかと思います。
その後、配列というものを使うとスマートにプログラミングできるということを説明して、
配列の概念論や操作方法を教えていきます。

教え方の流れを整理すると、以下のようになるでしょうか。
 

1. 配列を使わないと解きづらい演習、その解説
→ この部分で配列のメリットや有益さを提示する
2. 配列の概念論を説明(配列とは~)
3. 配列の操作方法を説明(配列の作成や参照など)
4. 配列を用いた演習
 

ここでのポイントは、配列を使うことによるメリットや有益さを配列の説明の前に
きちんと実感できる形で提示してあげることです。
「配列を使うこと でこんなにもスマートにプログラミングできる」と感じていれば、
その後の配列の説明が同じものだとしても理解度は格段に上がるのではないかなあと思います。
配列の他にもオブジェクト指向などプログラミングには初心者には理解しにくいものがたくさんあります。
ですがそれらはいきなりできたわけでなく、先人たちの経験や知恵を基に必要だと考えられ生み出されてきています。
その部分を一つ一つきちんと実感させてあげることが大切だと感じています。
 

楽しむということ
 

「好きこそ物の上手なれ」ということわざもあるように、
物事に取り組むモチベーションに最も影響するのはそれが好きかどうか、或いはそこに楽しみや やりがい、
達成感を見いだせるかどうかです。寝食を忘れて没頭できる程好きな事であれば、講師や教育カリキュラムなどなくとも
能力はおのずと向上していきます。逆に言うと嫌いなもの、楽しさを見いだせないものであればどんなに優れた講師や
教育カリキュラムがあったとしても、能力はなかなか向上していかないでしょう。

特にプログラミングは初心者にとってはハードルが高いものだと感じがちなので、
苦手意識を取り除き、達成感ややりがいを感じさせ、少しでも楽しいと思ってもらうことが重要だと感じています。
 

まとめ
 

ここまで「プログラミングと教育」と題して筆者が大切だなと感じていることを2つ書いてきました。
次回はもう少し具体的に教育の際心がけていることや、教育用言語としてのRubyについて書いてみたいと思います。
 
最後に教育つながりということで、弊社の運営している教育サービス「Xlabo(*3)」をご紹介させていただきます。
 

Vo.7_①
 

感情に左右されて行動し、その後とても後悔する。このような経験をしたことがだれしも一度はあると思います。
EQ(心の知能指数)の考えでは、人が最高のパフォーマンスを発揮するにはその感情を知りコントロールする
ことが大切であるといいます。XlaboではEQをベースとした学習プログラムを提供しています。
教育を行う際にも必ず役に立つものですので、興味のある方は是非Xlaboサイト、
もしくはFacebookページ(*4)へお越しください。
 

それでは、Enjoy Ruby!
 

注釈
 

*1:http://weblog.rubyonrails.org/
*2:教えたことが全くできなくて悲しい思いをしたのは筆者だけではないはず…。
*3:https://www.xlabo.jp/
*4:https://www.facebook.com/Xlabo
 

転載元(CTC教育サービス・2013年12月掲載記事)
(WEB転載許諾取得済)

バックナンバーはこちら

IT系のお仕事特集

お仕事のご紹介には、まずヒューマンリソシアへの登録が必要です。
ヒューマンリソシア人材派遣サイトの便利な機能 ・お気に入りの派遣求人のブックマーク ・登録会への予約 ・有給休暇の管理 ・WEB給与明細の確認 ・お気に入りの情報をメール受信
登録会の入力手続きをあらかじめおこなえます。

ヒューマンリソシア派遣サービスに 登録する 無料

ページトップへ戻る
ヒューマンリソシア派遣サービスに 登録する 無料
ページトップへ戻る