プログラミング教育における課題

プログラミングの講義を行う上で,なぜ学生ができないのかについての意見をまとめていこうと思ってます.
8
IGAKI Hiroshi @hirocell

C演習(ポインタの回)で,講義を全く聞かずに演習問題と全く同じ問題を本から発見してコピペして動いた!って自信満々に言ってきた学生アリ.君それは関数ポインタのサンプルなんだが,ってかポインタ理解できてないのに関数ポインタ使ってどうするんだ・・.

2010-07-09 11:09:16
IGAKI Hiroshi @hirocell

#education 前回からプログラムの演習でフローチャートを書かせるようにしてみた.少しでもプログラミングの際に紙と鉛筆が必要なことを認識してくれたら良いんだが・・.

2010-07-09 11:20:15
Kyohei FUSHIDA @kyoheif

@hirocell とやっていたら、ソースコードを紙に書かれたりして。プログラミングはお絵描き出来てなんぼだと私は思っとるんですが……

2010-07-09 11:23:23
Kyohei FUSHIDA @kyoheif

良いプログラムを書くためには、構造を絵に落とせるかがポイントかもしれない。Cのポインタと配列の概念とか、初学者はお絵描きすべきだと思うんだな。

2010-07-09 11:25:24
Tetsuo Yamamoto @ytetsuwo

@hirocell いまだに、なぜ出来ないのかがつかみ切れていません

2010-07-09 11:25:56
IGAKI Hiroshi @hirocell

@kyoheif Googleの入社試験でもあるんだけど,紙(ホワイトボード)でソースを書けるってのはそれなりに技量がいると思うので,それはそれでアリ.後期の授業では前回の復習を紙で書かせて学生間デバッグをさせようかと考え中.

2010-07-09 11:26:37
Kyohei FUSHIDA @kyoheif

しかしプログラミングは教える方にも問題があるかも。for文の意味をちゃんと言わず、n回繰り返す謎の文としか教えてない人がいるらしく困っている。

2010-07-09 11:29:24
IGAKI Hiroshi @hirocell

学生はなぜプログラミングが出来ないのか.

2010-07-09 11:31:50
Tetsuo Yamamoto @ytetsuwo

こうしたらいいとか、ああしたらいいとか、考えている人たちは出来る人なのが問題

2010-07-09 11:32:01
Tetsuo Yamamoto @ytetsuwo

先生には出来ない人の考えなんてわからないんですよ。はい、わかりません、だから、教えてください。ていうか要求獲得

2010-07-09 11:33:18
IGAKI Hiroshi @hirocell

仮説1:講義を聞いていない.説明を聞かずに課題にとりかかるため,既に説明が終わっている項目で詰まる.

2010-07-09 11:35:27
IGAKI Hiroshi @hirocell

仮説2:いきなりすべてを解こうとする.課題を分割することを考えずに,課題のすべてを組み込んだ(つもり)プログラムを作成し,最後にコンパイルして動かない.Stepを踏んでいないためどこが間違ってるかもわからない.

2010-07-09 11:36:29
IGAKI Hiroshi @hirocell

仮説3:予習復習をしない.講義時間中のみで全てを終わらせようとするため,講義時間内で理解できなかった項目については二度と理解出来ない(するつもりもない).

2010-07-09 11:40:00
IGAKI Hiroshi @hirocell

仮説4:プログラミング=ソースコードを作成すること,としか思っていない.モデリングや画面設計,メモリ構造の把握,フローチャートの作成といったプログラミングをするために必要な種々の技術を関連付けようと思わない.

2010-07-09 11:43:11
S.ver.1.22474487139 @wtisd17

@hirocell 自分で学習をしないからではないですか?それなりに危機感をもって自分で学習しない限り、プログラミングは上達しない気がします。

2010-07-09 11:45:17
a23 @ascii2null

仮想マシンを用いたネットワーク教育環境は、作るには作れるんだけど、善し悪しだなぁ。実機を用いた実験で理解できない人が、仮想環境で理解できるとは思わないし。

2010-07-09 12:00:16
IGAKI Hiroshi @hirocell

@setsulla 予復習をしないってのはそゆことだよねぇ.

2010-07-09 12:00:55
a23 @ascii2null

@hirocell 1,2,3を最低限できるようになった上で、4も。要は全部。

2010-07-09 12:01:32
おかもとけいじ @mokusatsu

@hirocell たいていの講義は問題さえ解ければいいので、そのスタンスからいくと、全体を理解したり設計したりすることなしに、究極にはコピペで終わらせようとするのも合点が行くように思えますね。

2010-07-09 12:03:16
おかもとけいじ @mokusatsu

@hirocell プログラムは数学みたいなモノというより、英作文みたいなモノだというのを最初に押さえるといいのかも。まあ、それでもやる気がなければとりあえず成果物さえ出来ればいいというスタンスは変えられないでしょうけど。自分だってどうでもいい教科はそうだったし。。。

2010-07-09 12:06:15
IGAKI Hiroshi @hirocell

@mokusatsu 本来的には,複数の講義で得られた内容を組み合わせてソフトウェアを開発する総合的な能力を学習して欲しいというのが教員側の願いではあるんだけど,その辺りまだまだ改善の余地はあるよね.ただ,プログラミングの講義=コピペの技術を磨く,にはならないようにしたいねぇ.

2010-07-09 12:07:56
IGAKI Hiroshi @hirocell

@mokusatsu 英作文というか,英語そのものな気はしなくもない.やる気,に問題を帰着させちゃうと全部それで終わってしまうので,なんか旨いこと問題を掘り下げたいところではある.

2010-07-09 12:09:41
IGAKI Hiroshi @hirocell

仮説5:講義についていけなくなった瞬間に”諦める”.特に学生ごとの進度に差がある場合にありがちな気はする.この仮説については,(1)質問すらできず諦める学生,(2)全体向け説明で理解することを諦めて質問しまくって全てを聞き出そうとする学生,が存在することが経験上分かっている.

2010-07-09 12:18:06
IGAKI Hiroshi @hirocell

仮説6:これは5ともしかしたら同じかもしれないが,プログラミングが分からないことを”当たり前”と思ってしまう学生がいる.こんな問題出来るはずがない,と思い込んでそこから先を諦める.

2010-07-09 12:20:45
Hiroki Yamauchi @yonaga

@hirocell 今のところではないですが、面接で書かされましたね……。処理の順序が整理できてないと書き出せないですな。

2010-07-09 12:23:13