Q1 老師當初是怎麼學的,如何從不會到能夠比ACM World Final?
在剛入大學時,和兩個IOI強者的高中同學組隊,也因此從同學那裡學到了很多,除了教會當時的教授不少東西之外,也提供了不少書籍作為參考,而教授本身對於閱讀書籍本來就有興趣,因此學到了很多,學習的方式則是辨固定時間的讀書會,一次兩到三個小時,當時由於Online Judge的網站剛開始出現,因此有一股風潮在資訊系出現,這樣的風氣也有一些幫助,到了大二時,開始更為嚴肅看待比賽這件事,而且當時大陸的隊伍也開始參賽了,所以壓力相對的也比較大,之後在努力之下才到了ACM World Final,在學習方面,教授認為,重點在於知道用什麼方法去解決一個問題,如何從數學的思考轉移到程式的演算法上的思考,同時教授也提出了一個以往自己的訓練的方式,就是一種在紙上寫程式的方法,這種方式可以鍛練自己在self compiling和self testing上的能力。
Q2 ACM比賽時的解題方向?
分析題目(找出比較ok的題目)
分出三種類別
第一類的題目重點在速度
第二類的題目重點在做出自己能力能及的題目
第三類的題目重點在於團隊合作解出(最難的部分)
Q3 現在的學習風氣和過去的感覺有什麼不同?
和過去比較起來,現在的機會多很多,並不是說不好,而是讓競爭的感覺沒有以前那麼強烈,過去的競爭壓力大,若是不努力的話,本來在你之後的人很快就會追上來,也因此才會加倍的努力。
Q4 我們這樣的練習方式妥不妥?也就是利用題目來磨練觀念。
剛開始是好方法,但長久來說還是把重點放在了解演算法的內容進而活用。
Q5 還有如何進步,是看別人寫的code嗎?哪裡有資源?
看別人寫的code是個不錯的方法,而且可能還蠻需要的,可以在其中找一些自己覺得很好的方式,進而內化了解,同時在比賽時,也有很高的可能性需要幫別人debug(包括平時),因此看別人的code是個不錯的學習方式,資源方面,可以看一些有solution和別人寫的code的地方,例如NTU online judge,如果需要的話,可以和助教伸帳號。
Q6 這些比賽對於未來的幫助。
可能有,但是大多數的時候,能夠在比賽中有所表現的人,在各方面的課業表現上都不會太差,也因此我們不能說有絕對的關係,但不論之後在比賽有沒有得到好成績,若是願意在這方面努力的話,實力就會有一定程度的累積,那就夠了。
Q7 ACM比賽的學習和準備上的方法。
重點在還是在於有固定的讀書會,首先可以先召集一些人(約3-5個),然後可以先讓每個人分享一下自己學到的一些演算法之類的,並且一起練習分享等,頻率方面則是一個到兩個星期一次,一次兩到三個小時。
2009年5月1日 星期五
訂閱:
張貼留言 (Atom)
0 意見:
張貼留言