Re: [閒聊] 又一個活生生的例子
※ 引述《StubbornLin (Victor)》之銘言:
: C 語言-運算敘述
: ++, --運算子
: main()
: { int a=1,b=1;
: printf(“++a=%d,b++=%d\n”,++
: printf(“a=%d,b=%d\n”,a,b);
: printf(“--a=%d,b--=%d\n”,--a,b--);
: printf(“a=%d,b=%d\n”,a,b);
: }
: 執行結果:
: .. 考慮: i的初值為3,
: 表達式(i++*++i+i--*--i)=?
: -------------------------------------------
: 剛才我讀我家教學生的C語言課老師的講義看到的
: 我無言了....
: 為了夠刁鑽,才足夠顯示出學生了解的程度嗎?
: 別傻了.....這樣只訓練到解題的能力而不是解決問題的能力
: 我在想.....如果針對國內教C/C++的師資
對這種情形感覺很冷,不覺得一頭熱地擔心.
因為程式語言學者對這事是很清楚的; 業者可能也很清楚.(或者根本不清楚?)
(但業者不清楚也沒關係,因為他們只求產品能動,不要動得比別人慢就好.
如果誤寫了模稜兩可的程式碼,也許恰好在特定平台跑出bug,
他們雖仍不清楚bug是來自於規格未定義功能 (+左右邊誰先算的問題),
但也許大幅改寫,加了一坨修補碼來防堵錯誤情形. (就好像Windows95修補程式,
讓系統偵測有沒有執行SimCity,若有就安排特殊的記憶體管理模式...)
反正最後看不見狀況,遇不到特定機緣才能見到的bug,就沒事了.)
然後是教師的問題了.
教師不是常時生產軟體的業者,也大多不是醉心知識正確性的學者,
他們所負責任,是傳授 "大體來說正確" 的知識.
當老師的,都是有一點教學抱負才來教課的, (這跟我之後要扯的另一事相反.)
他們不至於故意偷懶疏漏,教學不肯認真.
我自己當教學助理的經驗,讓我對這bug有不同的看法.
常很用心準備一份教學內容,假設量化水準為80,
面對學生的學習效果與上課態度,也許我發現我只能夠講出50水準的內容.
因為學生是很不可思議的一些人,
學生可能是不怎麼用心聽,卻指責你教得不好的人;
或者是該做到的本份不想去做的人;
或者是懶惰不肯練習,程度一直原地打轉的人;
或者是空有抱負,不妄自菲薄,卻除了抱負之外,既沒有熱忱,也沒有態度,也沒有智慧,
也不勤勞.
(我碰過學生跟我說,助教教的東西跟老師教的不一樣,所以不想聽.
ㄟ,你不想聽是你的事,不要牽連到教學內容;
而且助教一定要比老師教更多實例,因為實習課就是lab.)
結果會發現,相差30量化水準的教學內容,就是像引言所提的
(i++*++i+i--*--i) 這一類值得討論,但不值得以此為考題的題材.
常覺得變數生命週期,變數範圍等等是多麼重要的觀念,
想花點時間好好講講的時候,發現學生好專心在玩卡丁車喔!
(我又不好講什麼,因為我不覺得我有必要表態,以主宰每位學生上課中的行為.
你(學生)的行為自己管好嘛.)
但想一想,這些現在不認真上課的學生,
有沒有可能將來就擠進研究所了,將來就謀教職維生了,
結果現在所學一知半解的程式觀念,將來為了拉課來上,趕鴨子上架去教壞其他更多人.
(這跟我之前所扯,教師皆有抱負一事相反.)
對於 x = x++ + ++x 這類的考題,
我的態度是,只告訴學生說: "如果你不在乎分數,你應該選擇不作答."
至於他們怎麼選擇,隨便他們.
反正在乎分數的是笨蛋.
只會當考試機器,不懂得判斷題意對錯的也是笨蛋.
也不必在乎考卷上該不該出現這題目,教學者未必是絕對專家,
而考卷的角色只是一個篩網而已.
那種題目,就當做是篩網中有個特別小的孔,它製造了篩選機制上的一點障礙而已.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.231.66.179
推
05/06 03:34, , 1F
05/06 03:34, 1F
討論串 (同標題文章)