跳到主要內容

發表文章

目前顯示的是有「APCS」標籤的文章

如何一魚多吃的準備學習歷程?

前一篇文章提到,「 有公信力的前30%」 ,是學習歷程最主要的準備方向(請參閱 參加營隊很重要?從數據的角度來看學習歷程 )。除此之外,高中生們還有一個很大的困擾是,光是準備學科就沒有時間了,哪來的時間處理學習歷程? 既然沒有時間,那就一魚多吃吧! 有哪個方向,既可以強化學科,又是多數科系喜歡的領域呢? 有喔,就是 英文 跟 程式 ! 英文的學科重要性無庸置疑。而所有科系都喜歡錄取英文好的學生,這樣才有能力吸收國際上最新的知識,進而用英文做國際發表。 學習程式就是學習數學邏輯,尤其像APCS這樣的程式檢定,主軸就是考驗用程式解數學的能力。在目前網路及AI的時代,不只是電機資訊等科系,包括醫學、財金、法律、商管、藝術、設計、農業、物理、化學...等,所有科系都喜歡錄取程式能力好的學生,結合領域知識及程式能力來開發各種創新應用。 英文跟程式,絕對是學習歷程最有利、最通用的準備方向! 方向有了,那 目標 呢? 前面提到「有公信力的前30%」 , 所謂的有公信力,基本上就兩個方向, 比賽獲獎 跟 檢定考試 。而主辦單位自然是要有代表性的,譬如教育部辦的全國競賽最好,最低標準是校內競賽,而巷口補習班辦的就別提了。 量化來看,概略有3%的學生拿過校內獎項,但學校間的程度落差很大,譬如說建中程式比賽最後一名,可能比他校的第一名還厲害,其實可比性並不好。 全國性的競賽是最公允、可比性最高的項目,但其難度太高,概估只有0.1%的學生可拿到全國獎項,對大部分學生來說太遙遠。 對大部分的學生來說,檢定考試是最可行的目標 。 從統計數字來看,通過全民英檢的高中生,中級以上約50%,中高級以上約10%。若 通過全民英檢中高級,在二階甄試有明確優勢 。 APCS程式檢定也很明確,實作二級以上約70%,實作三級以上約20%,實作四級以上約4%。 APCS實作三級以上就有足夠的優勢 。 這邊有個重要的概念是,除非是在該領域有明顯的資優,不然我都不會鼓勵同學往0.1%努力,只要穩穩進30%就好。畢竟個人申請第一關還是學測,第二關才是甄試,「 八分準備學科、兩分準備興趣專長 」才是比較聰明的戰略。0.1%是特殊選材的道路,大多數學生不適合。 最後來到結論,對高中生來說,以 全民英檢中高級 、 APCS實作三級 為目標,是通用性最高的作法。因為他同時符合以下需求 一魚多吃,同時強化了學科分數 具有公信力

考好APCS就是進好大學的保證?

之前看到一個朋友在抱怨:"我辛苦培養我兒子學程式,考過頂大資工APCS組的門檻,結果還是被刷下來阿,考APCS到底有沒有用?!" 考APCS當然有用,但是你要知道怎麼用 首先我們先搞清楚APCS組是什麼意思,簡單來說,各大學的資工、資管系,大約會拿出總入學名額的5%,錄取程式能力強,但是學科差一點點的學生。而APCS檢定,就是學生程式能力的證明。 高中生的程式能力,大約可以分成幾個等級 資訊奧林匹亞國手,每年全國四人,這些人不需要考APCS,而是保送直接進到頂尖大學。 資訊奧林匹亞選訓選手,約30人以下,以及全國賽名列前茅者,兩者合計約40人,APCS可以考到實作五級分(滿分)、透過推薦、特殊選材或APCS組進到頂尖大學。 對於程式有興趣也學得不錯,APCS成績在實作三級分以上的高中生 APCS實作二級分以下的話,我跟國立大學資工系教授聊過,對入學幫助不大,在此不討論。 第一種人是老天爺賞飯吃啦,這要靠天份,沒辦法強求。 第二種其實也很靠天分啦,只是運氣差一點沒當到國手而已。這些人就把頂大資工的APCS組名額佔光了。 第三種的話,會考數學在A以上的學生,都有機會培養起來。 但是你要知道APCS成績的正確使用方法。 首先要知道,APCS組不是後門,而是窄門。 如果學科成績夠的話,想要上前段國立大學資工系,就盡量不要報APCS組,名額真的很少。後段國立大學甚至私立,APCS組競爭比較沒這麼誇張。但APCS成績最高勝率的用途,其實是在一般組的申請入學。 高中生們應該知道,目前大學入學名額最大宗的是申請入學,佔了七成。而申請入學的機制裡面,分成第一階段學測成績,跟第二階段甄試。第二階段甄試會淘汰掉七成左右的人。想想看,如果你辛苦念了三年的書,好不容易達到頂大學測的標準,但第二階段甄試卻有七成的機率被淘汰,是不是很可怕? 對大多數人來說,APCS的成績,就是讓你在第二階段甄試脫穎而出用的。 反過來說,你也可以想到,有志進頂尖校系的學生,都有準備考APCS,好把你幹掉。 所以我在「 想要考上好大學,該怎麼做戰略分配? 」提到,高中生最好的策略是「八分準備學科、兩分準備興趣專長」。尤其隨著程式能力越來越受到重視,不只是資工、資管,包括電機、工程、理科、甚至商管等科系,APCS的成績都可以在第二階段甄試大大加分,幫助你進入理想的校系。 歡迎 跟著愷哥學程式 ,也

如果不是為了升學,學APCS有用嗎?

許多人都想學程式,這是一個時代趨勢,但該從哪裡學?第一個目標訂在哪裡?一般人並不是太有概念。 這樣的人有許多不同的背景,也有不同的動機,我比較常遇到的是以下幾種 大學非資工系學生,想開發新技能 社會新鮮人,期待未來可以轉職 心中有一個Project,想要靠寫程式來達成的人。譬如很多人就想打造自己的股票分析程式 純粹探索興趣 有些人已經有明確的目標,更多人是探索性質的,沒有非達到不可的目標。若有極明確目標的,建議就直接朝著目標去,譬如網路上就有專教打造股票分析程式的課程。如果是探索的人,大致上是想搞清楚以下幾個問題 我適合寫程式嗎? 我要投入多少時間成本才有所成? 我該學哪種程式好?網頁、App、遊戲? 寫程式的出路好嗎? 先回答第4個問題,寫程式的出路很好,以台灣來說,普遍認為電、資、醫、牙是最好的出路,工作機會跟待遇都相對高。如果寫程式的出路算不好的話,台灣八成以上的工作都算不好了。第2跟第3個問題跟第1個高度相關,所以我們來看第1題就可以了。 學APCS是一個不錯的進入點,拿來探索自己適不適合寫程式 先定義一下"學APCS"是什麼意思,"寫程式"又是什麼意思。 寫程式是一個廣泛的領域,寫一個網頁是寫程式、寫一個App是寫程式、寫一個商業後台是寫程式、寫一個遊戲是寫程式...有太多不同 應用領域 ,而大部分的程式設計師都只專精少數應用領域。 但寫程式有共通點,就是需要 高度的邏輯力,並了解電腦運作的概念 。因此先學習程式共通邏輯,後續再鑽研感興趣的應用領域是合理的,大部分大學資工系也是這樣安排課程。 學APCS其實就是學習用程式解數學 ,也就是學習程式的共通邏輯。這樣的數學不是三角函數、線性代數那種純數學,而是偏應用性質。譬如給定地圖上的一些座標點,要求走過所有點的最短路徑;譬如給定一場棒球比賽的攻守紀錄,要求算出得分等等。這樣的題目型態,在許多的刷題網站都有,國內較有名如 ZeroJudge 。許多大公司如Google、Facebook等,招募工程師時會考程式,應徵者也會先練刷題,國外較著名的刷題網站如 LeetCode 。而各種的程式設計比賽、程式檢定,多是比用程式解數學的題型,而非比誰寫的網頁比較好看、誰寫的遊戲比較好玩。 用程式解數學 的形式,單獨存在的作用不大,必須要跟領域應用譬如網站、App結合,才能處理真實生活

能不能靠程式能力更強,考上更好的大學?

最近我被幾位同學問到:"老師,我APCS已經實作三級了,後面我該往哪個方向努力,可以上更好大學?"  簡單來說同學的疑問是 "能不能靠程式能力更強,上到更好的大學資工系?" 概略上來說,會問到這個問題的同學,尤其是高二以上的學生,幾乎都沒有機會了。別誤會,我講的不是程式超強沒用,我講的是程式能力 從"還可以"->"超強"中間,有一個真空帶 。 我在 考好APCS就是進好大學的保證? 這篇文章中提到,高中生的程度分成四級 資訊奧林匹亞國手,每年全國四人 資訊奧林匹亞選訓選手(準國手),30人以下,以及全國賽名列前茅者,兩者合計約40人 對於程式有興趣也學得不錯,APCS成績在實作三級分以上 APCS實作二級分以下 靠程式超強來上頂大的學生,制度上走保送推薦、特殊選材跟APCS組,就是前面的兩種人。以全國每屆約22萬高中職學生來說,錄取比例約萬分之一,是名符其實的萬中選一。這樣的程式天才,其實都不需要詢問有什麼樣的升學管道,而是升學管道會主動找上你。 這樣的程式天才,光靠努力是不夠的,一定要有超乎常人的天分(不然怎麼叫"特殊"選材)。大致上來說,如果"認真"學半年程式達不到APCS實作四級的話,就很難是天選之人。對絕大多數的高中生來說,要上好大學,就是學測成績要過一階標準,然後靠APCS實作三級通過二階甄試。這是名額最多,可行性最高的路徑。 那同學又會問說: "老師,難道APCS實作考四級、五級沒有用嗎?" 其實還是有,後段國立或私立的資工系APCS組,可以靠實作四級以上,來提高錄取率,畢竟APCS組的名額少的可憐,實作三級不一定夠。 不過我們要思考時間報酬率的問題。就考生的成績分布,APCS實作三級佔20%,四級佔3%,五級佔1%。實作三級要能夠升到四級,是一個很大的門檻,有可能投注了很多時間,卻跨不過去。就算跨過去了,天花板也只能到國立後段。 反觀東華資工一般組,學測只採計數學跟英文兩科,多念一點書就有機會多一級分,比APCS實作四級的難度更低。甚至再多念一科自然,就可以挑戰中央、台大了。這種 每一分努力都有機會上更好大學 的時間投資,對非天選之人的正常學生來說,是更為合理的策略。 綜合來說,大部分高中生最好的策略就是我在

APCS程式檢定的本質是什麼?

APCS(Advanced Placement Computer Science)是由教育部舉辦的一項程式能力檢定,主要用來檢定高中生的程式能力,作為申請大學入學的重要參考,官方資訊可以參考 這裡 。 若高中生有志申請大學資工、資管科系,APCS成績相當重要,大多數資工、資管科系有獨立的APCS組。以109年度的臺北大學資工系為例,APCS組相較於一般組,在學測上的要求少了九級分! 而即使是其他科系,APCS的成績能用來證明學生的程式能力,不管在任何科系的甄試方面,都是很大的加分,簡單的來說,可以把APCS視為「程式界的全民英檢」。關於APCS的評分及入學規定, 這篇 寫得相當清楚了,我在此不贅述。我要探討的是,APCS的本質到底是什麼? 我有個做教育的朋友說:「我不喜歡APCS,它的題目太刁鑽了,只是逼高中生去補習而已,又是一個填鴨式教育。」 我本身是交大資工博士候選人,並在資訊業界打滾了十幾年。APCS實作滿分是五級分,我敢斷言若是全台灣資工系的畢業生來考,差不多平均落在三級分左右。但高中生如果要錄取台清交資工,至少要考到四級分。 所以高中生要考的比大學生還高,才有辦法入學?是不是什麼地方搞錯了 是有一個地方搞錯了,許多資工系畢業的學生,根本不會寫程式就混畢業了。 他們一開始就不應該去念資工系 。 108課綱的精神是適性發展,猴子就應該去爬樹、魚就應該在水裡游,逼著魚去爬樹本來就徒勞無功。APCS不應該人人去考,應該要對程式有興趣,未來希望寫程式改變世界的人去考。APCS的考題安排很有鑑別度。如果一般有邏輯的高中生,認真學的話要實作三級分不是太難,有天分的可以到四級分。五級分(滿分)真的很難,過往紀錄只有約1%的人考到,很可能裡面多半是老師、或者資訊奧林匹亞的國手。 我並不會鼓勵學生把時間拿來拚滿級分,我認為三級分的程度,就足以寫一些有用的程式了。當學到APCS三級分的程度,就應該用心觀察生活周遭有什麼問題,自己做一個project來解決,”學”的目的是為了”用”,不是為了測驗。而我讚揚108課綱的地方在於,如果你能用的好,就能拿它來入學。 當其他同學的自傳寫著:"疫情期間當志工發放口罩",你寫的是:"開發口罩地圖app,並獲萬人使用",誰會被大學教授錄取?! 開發口罩地圖app很

學APCS程式檢定對未來有用嗎?

有些朋友問我,學APCS除了升學以外,對未來就業之類的有用嗎? 我的觀點是 學APCS有用,只學APCS沒用 會發出這種疑問的,多半對APCS的題型有相當了解了,因為APCS要考滿級分真的很難,對於演算法要有相當深刻的理解,而這樣的熟練度,大多數的電腦工程師在他的職業生涯都用不到。 大部分的工程師不需要把Dynamic Programming、Greedy Algorithm玩得很熟練,能夠在30min之內解一題;只需要在程式效能不足時,知道有這個概念,然後去翻翻書,花個幾天去解它都沒關係。甚至大部分工程師,只要有能力寫一些”膠水”,把幾個現成的元件”黏”起來就好了,高深的演算法很多都有現成函式庫了,不太需要自己寫。 別誤會,我不是說這樣的工程師很遜。相反的,有能力用現成的元件,有效率的組成一個有用的系統,不要重複發明輪子,才是正確解決問題的方式。 所以學APCS對未來有用嗎?學到實作三級一定是用的到的,如果你有天分隨手考到實作五級當然很棒,但不是人人都有必要硬上五級,時間是世界上最貴的東西,應該花在更有意義的目的上面。 找到真實世界的問題,寫程式來解決,才是真正有用的能力 我 前面一篇文章 有提到,寫一個”口罩地圖App”就是很好的例子。若我要帶一組中學生來做這件事,大概有以下步驟 發掘問題 用戶訪談,確認需求 詳列規格書,把功能定義明確 小組分工,開發以下元件  使用政府開放的口罩資訊API  使用Google Map API  設計使用者介面  使用Web技術(JavaScript、CSS、HTML5),將以上黏成一個系統  利用一些工具,把Web系統包成App  宣傳這個App,讓更多人知道來使用它  收集用戶回饋,持續改善  只學APCS的學生,辦不到這件事,不學APCS的學生,也辦不到這件事。 開發”口罩地圖App”是一個簡單的例子,但真實世界裡面,光是”發掘問題”都不簡單。舉例來說,譬如參加棒球社的同學,能不能開發一個系統,把球員的數據輸入進去,幫助教練排出最有效的棒次?譬如說家裡開餐廳的同學,能不能開發一個系統,安排桌椅跟行動路線,發揮最高的坪效?社區偶爾有陌生人闖入,能不能開發一個AI系統,辨識陌生人並發出警訊? 程式能力只是解決問題的一部分,其他我講的部分,學校的老師都沒有辦法教