また長期間放置してしまった.反省,反省.
-----------------------------------------------------------
プログラミングの教育について,相変わらず試行錯誤している.
プログラム言語の記述書式についての説明はやっているし,
個別にわかりにくい箇所の質問があれば対応しているが
いまいち,「プログラミング」を教えている気がしない.
所詮,プログラミングは自分で身に着けるものだから,
コード書かせないとダメですよ,という先生方も多いのだけど
それは教官側の世代だから可能だったことかもしれない.
ともかく,「自分でプログラムを書く」というハードルが高く
プログラミング言語を学んでも,それを活かす前に忘却して
4年生になって研究室配属したら「プログラム書けません」
となってしまう子がとても多い.
教育側として,特に成績云々に関わりの無い立場として,
もっと気軽に質問してくれても答える準備はあるのだけど
どう質問して良いのかも掴めない様子だ.
----------------------------------------------------------
一つ,暖めている考えがあって,それは「プログラミングとは
PCに対して『小さい子への伝言メモ』でやって欲しいことを
伝えるようなものだ」という抽象的なイメージを持たせてみたら
どうなんだろうか,というものだ.
つまり,PCは大人のような(人間のような)お約束や常識などに
捕われない,書かれていることの理解できる単語をそのまま
読み取って,書かれている通りに実行する,という感覚だ.
もう一つ言えば,相手(PC側)が理解できる言葉で説明してあげないと
うまく意図が伝わらないということでもある.
良く学生は「どんなことをさせればよいのか」という質問には
答えられても,「どうやって実行させれば良いのか」という
段階になって止まってしまう.
その辺りで,「大人への,通常の日本語感覚での意思疎通」ではなくて
「PCという小さい子のような相手に対して,どういう表現であれば
理解できて,そしてこちらがやって欲しいことを実現できるのか」
という置き換えをどう行っていくのか,という視点を持つことが
プログラミングの勘所なのではないだろうか.
コンパイルエラーが意味がわかりにくいとか,変な指示を出すと
暴走したり黙り込んだり(=フリーズ)するところとか,なんとなく
小さな子のような気がしませんかね.
そういう子に,直接手足を出すことができないけど,いろいろな
メモを手渡して何か手伝ってもらう,というイメージがあれば
プログラミングとはどういうものでどう考えるのか理解の足しに
なれば良いとは思う.
あー,まあ巨大なシステム開発のプログラミングでは,このような
例はあまり当てはまらないかもしれないけど,少なくとも大学の
プログラム演習講義レベルでは,ということで.
-----------------------------------------------------------
プログラミングの教育について,相変わらず試行錯誤している.
プログラム言語の記述書式についての説明はやっているし,
個別にわかりにくい箇所の質問があれば対応しているが
いまいち,「プログラミング」を教えている気がしない.
所詮,プログラミングは自分で身に着けるものだから,
コード書かせないとダメですよ,という先生方も多いのだけど
それは教官側の世代だから可能だったことかもしれない.
ともかく,「自分でプログラムを書く」というハードルが高く
プログラミング言語を学んでも,それを活かす前に忘却して
4年生になって研究室配属したら「プログラム書けません」
となってしまう子がとても多い.
教育側として,特に成績云々に関わりの無い立場として,
もっと気軽に質問してくれても答える準備はあるのだけど
どう質問して良いのかも掴めない様子だ.
----------------------------------------------------------
一つ,暖めている考えがあって,それは「プログラミングとは
PCに対して『小さい子への伝言メモ』でやって欲しいことを
伝えるようなものだ」という抽象的なイメージを持たせてみたら
どうなんだろうか,というものだ.
つまり,PCは大人のような(人間のような)お約束や常識などに
捕われない,書かれていることの理解できる単語をそのまま
読み取って,書かれている通りに実行する,という感覚だ.
もう一つ言えば,相手(PC側)が理解できる言葉で説明してあげないと
うまく意図が伝わらないということでもある.
良く学生は「どんなことをさせればよいのか」という質問には
答えられても,「どうやって実行させれば良いのか」という
段階になって止まってしまう.
その辺りで,「大人への,通常の日本語感覚での意思疎通」ではなくて
「PCという小さい子のような相手に対して,どういう表現であれば
理解できて,そしてこちらがやって欲しいことを実現できるのか」
という置き換えをどう行っていくのか,という視点を持つことが
プログラミングの勘所なのではないだろうか.
コンパイルエラーが意味がわかりにくいとか,変な指示を出すと
暴走したり黙り込んだり(=フリーズ)するところとか,なんとなく
小さな子のような気がしませんかね.
そういう子に,直接手足を出すことができないけど,いろいろな
メモを手渡して何か手伝ってもらう,というイメージがあれば
プログラミングとはどういうものでどう考えるのか理解の足しに
なれば良いとは思う.
あー,まあ巨大なシステム開発のプログラミングでは,このような
例はあまり当てはまらないかもしれないけど,少なくとも大学の
プログラム演習講義レベルでは,ということで.
初歩のアプローチとしては面白いですね
赤ん坊という例えが妥当かはちょっとアレですが
「まっすぐ進め」と命令したら
壁があろうと崖が待っていようと進むので
どうすれば良いかはプログラマが
ちゃんと示す必要がある
って感じですかね?
ただ、継続するモチベーションに関しては
別の考え方が必要かな?と思う
持ち上げられないのですよ.
4年生になって研究室に配属
されて慌ててプログラミング
再勉強するような学生が多いので.
いやいや、ある程度知識や考え方などが
備わっていて、その上にその言語固有の
文法なり約束事なりを覚える程度ではなくて、
本当に1からやりなおしな子が多いのですよ。
そういう意味では教育機関としてちゃんと
した教育が出来ていないと指摘されても
仕方ないような状況なんですわ。
元の論文は知りませんでした
http://cpplover.blogspot.jp/2012/05/60.html
> 60%の人間はプログラミングの素質がない
(注意)
「プログラムを学ぶ環境」にあるだけでフィルタがかかっているので
統計情報としてどう扱うかはエントリーだけでは判断できませんでした