Re: [問題] 請教一下關於學校考試

看板Programming作者 (喲)時間13年前 (2011/12/31 14:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/3 (看更多)
技術人可能會認為什麼叫做強呢? 給你一個比較難的題目,你能立刻想出解法, 並且也能立刻寫成程式碼. 並且同時,對於其他相對簡單的題目,是不屑一顧. 像你這例子,很多強者可能都遭遇過. 一方面自我衡量實力之強度,另一方面則是 學校環境是有很多周遭人的觀感可能誤導你,或許使你鬆懈,也或許會使你看透. 面對那些擁護者,你會得到一種說不上來的印象,說是成就感卻還沒有成就任何事情. 我覺得你所問的事情,細分為下列面向: 1. 考試題目(如質數)在學術上的難度: 例如,想要找雙聲質數,你能不能理解 這個問題的定義,或者說,你能不能用有效的數學語言描述這個問題? 你怎麼知道測 i, i+2 是否為雙生質數即可? 因為 i, i+2 且 i 為質數 的集合確實包含了所有的雙生質數. 2. 看到考試題目,建立出對應的程式架構的準確度: 例如雙生質數的標準答案, 你怎麼知道只用迴圈測 i, i+2 是否為雙生質數即可? 因為你知道迴圈是窮舉一個集合的所有情況; 因為你知道在迴圈針對 i, i+2 放一個判斷式,可以只處理 i, i+2 且 i為質數 的集合. 3. 架構程式的速度: 原本以為是心底有整套程式的全貌,然後照抄到編輯器, 但其實很多人寫程式的方法應該是步步為營. 當你寫一行程式不確定它的 效果時,你不會想要寫下一行程式,因為你知道這一行程式會覺得下一行該 怎麼寫. 速度上來講,如果是照抄心底的程式碼,速度很快,O(n); 如果是 "寫-debug-改-debug-改-debug-..." 這種方法,速度可能是 O(n^2). 那你就知道有一種比較好的方法是讓速度變成O(log n),就是divide and conquar. 當你不知道程式全貌但是知道怎麼求雙生質數時,請你先寫一個 method 只求出一對合理的雙生質數. 4. 對程式架構的熟悉度: 看到一個題目,不要思考問題,你能不能只憑一開始的印象 想到這個程式大概會寫成多少層迴圈? 這種能力,有一部份來自你的記憶力, 記憶你曾經寫過的程式,另一部份來自你從問題描述中得到的印象,大略知道 這個問題劃分為多少層次. 很多人說要學會程式就是多寫就好. 那麼,粗略統計一下,在你練習的經驗中, 九九乘法表寫過幾次? 任何一種排序法寫過幾次? 另外,許多常見的練習題,你寫過十次以上之後,是 在下一次仍調閱第一次的寫作經驗,而導致回憶速度之慢? 或者是每次都重新寫起,而導致寫作速度像摸索一樣快慢? 或者是能夠在經過多次經驗之後,運用你目前最新的認知及知識背景,大破大立, 寫出全新的程式,即使那全新的程式架構長得跟你第一次寫程式的一模一樣? 言歸正傳,學校程式課的上機考試是類似軟體工業上面的標準,就是要衡量你懂但是 你做得快不快,你做得快但是你做得對不對之類的水準. 你還在學校時,實際情況是 學習經驗不多,就先不要接受學校同儕如何視你為強者的觀點. 人家看你為強者, 可能是有求於你,可能是因為你有一點努力而他沒有努力而已. 但如果因為這一點點 感受而影響你的學習態度,變成沒有做相當多的努力卻期待考試寫程式的速度無條件地 變快,那可能只是在沙地上築高台,地基不穩. ※ 引述《ek0424 (Q毛)》之銘言: : ※ 引述《ek0424 (Q毛)》之銘言: : : 小弟現在是大學的資管系學生 : : 目前程設學了java 雖然不會被當 : : 可是常常考試的時候想不出來 而且coding速度很慢 每次都覺得時間不夠 : : 平常以班上的同學來說 我的練習時間不輸給大部分的人 : : 平常老師給的題庫或是作業我都有寫 : : 而且常常有很難的作業我都會把他想出來 : : 因此大家常常覺得我很強 : : 但是考試的時候 我卻常常出乎大家意料之外 : 像是這種題目: : 1.(質數測試) 請依序撰寫如下兩種質數測試方法及測試主程式: : a.public static boolean prime(int n) : 若正數n為質數則回傳真,否則回傳假 : 提示:若2到n/2的整數m皆無法整除n,則n為質數. : 其中,m整除n寫法如下 : if(n % m == 0) : b.public static boolean twinPrime(int n, int m) : 若正數n,m差2,而且n,m皆質數,則n,m為雙生質數,回傳真,否則回傳假 : c.主程式測試時請印出小於100之質數,及雙生質數. : 像是這種題目我大概都考試的時候會想得很零散 : 老師會部分給分 所以都還是我拿一些分數 : 可是我考試幾乎沒有那種整大題都run出來過的 : 一直以來都靠部分給分 很羨慕那種可以寫出整過能run的人 : 想問有甚麼方法可以幫助我非常清楚題目的架構 然後寫起來不會太亂 : 我常常都東寫一點 然後西試一下 只要不能run馬上又打別的寫法 : 每次都debug很久 可是如果不考是我都可以很冷靜的寫出來(可是時間很長) -- /yau -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.231.65.21
文章代碼(AID): #1E_giI7P (Programming)
文章代碼(AID): #1E_giI7P (Programming)