Try   HackMD

深入高中程式設計能力指標 APCS

01 寫在前面

想在大學前就開始接觸程式有很多方式。不論是學校中資訊教育的課程、參與各種線上論壇/年會、甚至參與校內相關社團如電算、網管、機器人社等管道都能夠精進自己的實力。但若想要測試自己的程式設計能力,唯有參加舉辦給國高中生的程式設計競賽。在其中,正式比賽只有各個縣市舉辦的資訊學科能力競賽,此外僅有大學程式先修檢測(APCS)能夠作為程式設計能力的指標。身為此檢測主辦校系的學生,我想要趁這次30天的鐵人賽深入探究,從不同視角切入觀察,並藉由訪問不同參與者了解 APCS 的真面目,並歸納出學習程式的最佳模式,想給要在國高中加入的朋友一些想法及指引。

本系列文章將分成以下五大部分:

  • 回顧個人學習經歷

在進入正題以前,我想先大略先從小開始學習的經驗、做過的各種專題研究、接觸程式競賽的契機、歷程等開始回想,嘗試在這仍半生不熟的時間點紀錄自己的程式學習歷程,也能夠給各位參考。

  • APCS 考試內容及準備方式

APCS 的考試項目主要分為觀念題和實作題兩種,其中都有考試的範圍及學習技巧。本篇想要列出在不同階段精進程式設計能力的方法,和在考前應該如何準備,及分享由許多同學及準備花費大量時間製作出的教學內容。

  • APCS 介紹及現況

APCS 從 2016 年開始辦理,第一屆考過 APCS 的考生現在也大多從大學中畢業了。持續至今已經來到 2021 年,每次報名總是一席難求,每年仍然只舉辦三次,也沒有向考生收取任何費用。本部分想和各位簡介 APCS 並大略說明近期考試的實際情況。

  • APCS 參與者經驗訪談

在高中的程式設計社群中,有非常大量的學生曾以 APCS 為目標。除了訪問準備過的前輩及同學外,期望也可以向程式設計的教學者、程式競賽選手,甚至是大學端的教授,期望能夠以多角度分享對於 APCS 的看法及期望。

  • APCS 與多元入學的未來

今年學測將會是 108 課綱的學生正式參加大學入學考的第一次,同時也正式敲響了多元入學的鐘聲。在如此潮流下,APCS 是否能夠代表成為高中生程式設計能力的指標,以及未來類似考試的發展將如何進行,將在這一部分深入探究。


今年是我第三次參加iT鐵人賽,前兩次寫的主題都和我在學校的專題研究相關的內容,也算是研究期間能夠讓自己增加動力的筆記。而今年的鐵人賽想要把過去所有關於我當時稱以為是「資工」但其實只是其中一小撮的部分拉出來,寫在這個地方沈澱,當作是即將進入大學的墊腳石。Peace.

02~05 回顧個人學習經歷

https://hackmd.io/@skyhong2002/insideAPCS_TB

06~20 APCS 相關討論

https://hackmd.io/@skyhong2002/insideAPCS_6_10

https://hackmd.io/@skyhong2002/insideAPCS_11_15

https://hackmd.io/@skyhong2002/insideAPCS_16_20

APCS 參與者經驗訪談

特殊選才 陳彥宇

https://hackmd.io/@skyhong2002/apcs_interview_dufu

學測申請 JacobLinCool

https://hackmd.io/@skyhong2002/apcs_interview_JacobLinCool

競程國手 WiwiHo

https://hackmd.io/@skyhong2002/apcs_interview_WiwiHo

資工學長 Bogay

https://hackmd.io/@skyhong2002/apcs_interview_Bogay

社團教學 Colten

https://hackmd.io/@skyhong2002/apcs_interview_Colten

資訊科學班 tom1484

https://hackmd.io/@skyhong2002/apcs_interview_tom1484

自學生 Jason

https://hackmd.io/@skyhong2002/apcs_interview_jason

學測 APCS 組 howardchenlu

https://hackmd.io/@skyhong2002/apcs_interview_howard

武陵科學班 jayinnn

https://hackmd.io/@skyhong2002/apcs_interview_jayinnn

30 APCS+溫暖而綿長的, 餘燼

沒想到自己能夠成功挑戰第二次鐵人賽。

若從這個時間點回去看,從第一篇寫到現在,不管是寫的時間還是內容表達的完整度都有很明顯的提升。在第一篇連自己的事情都講的不是很理想,光是想要怎麼寫就花了大半時間,又不知道用哪些字彙去描述,導致寫起文章的效率非常低迷。本來以為會這樣到完賽,但寫到後面擬稿越來越順暢,就算是早上才偶然想到的題目也能在短時間歸納出大綱,寫內容時也很容易將腦袋的想法轉化成文字。

從這個系列的第 21 篇開始,連續邀請了九位接觸過 APCS 的同學參與訪談。這些人不僅透過不一樣的管道認識了程式,在隨後學程式的媒介、語言和學習方式也各不相同,但最終都和 APCS 這個考試碰上了邊,並且透過自己的程式設計能力繼續學習新的事物。

有人是從小就開始接觸,靠自己在網路上查,看有什麼資源可以看,有什麼有趣的東西想用程式做出來,以此燃起了學習程式的火苗;有些人則是在國中碰上了 NPSC,開始接觸程式競賽,慢慢了解程式的不同知識;最後,也有人是在高中才開始正式開始接觸程式,在高一高二兩年間學習程式設計的能力,學的比其他人都還要認真。

不論最終結果如何,這個 APCS 檢測絕對不會是終點。在爾後各種開發、研究等實作和理論推導中,程式設計能力確實會是這些領域的基礎,而我們只要仍然在資訊工程圈努力著,這個能力只會越來越穩固,自己能夠透過程式做到的事情也絕對越來越多。

事實上,就算是花了那麼多研究 APCS 這個檢測,相較於前半段的專題文章,我在這段時間學到最多的可能是從和認識的同學、學弟妹和學長訪談的這些時間。與其說訪談是想知道是怎麼一路學上來的,不如說想知道的是他在當時內心想著什麼,未來想要做些什麼事等等,問完別人後再捫心自問自己未來到底想要做什麼,現在應該要從哪裡開始努力等等,透過這些對話讓未來的藍圖越來越清晰。

在這裡祝福各位能夠找到自己的目標,並朝著理想前進。

期望未來能夠在鐵人賽的舞台上再相見。

2021.10.14


在先前的訪談中有談論到一些有趣的話題,本來想要獨立一篇出來,但很不巧地來到了最後一篇,因此想在這裡簡單整理一下:

  • 補習 / 自學

    • 學習環境
    • 自學才是學習的常態
  • 觀念題

    • 模擬題程式風格怪異
  • 實作題

    • 給分方式(分子題)
  • 考試制度

    • 公布考古題
    • 40 取 25 的規則應公開
    • 取高分的規則沒有寫在官網上

此外,也有一些疑問是和訪談者討論時沒有得出答案的一些問題,想在這裡提出來,希望未來能夠歸納出來:

  • 程式設計能力和競技程式競賽有什麼差別,APCS 身為一個檢測又和其他的程式競賽有什麼差別?
  • 既然有為了資工系而單獨創立出來的檢測,為何其他科系沒有類似的檢測呢?
  • 若是要測試學生的程式設計能力,在不考慮後台建置容易度的情況下,後測會是個好的選擇嗎?若不是,有什麼辦法能夠讓評測系統穩定到能夠廣泛應用呢?
  • 在程式設計能力在高中越來越重視的情況下(108 課綱),是否應該將考題難度調整增加鑑別度?

這些問題都是個大哉問,需要考慮到非常多面向才能夠合理的回答。但或許在下一篇能夠為這些問題得到一些解答:)

沒錯 請期待第 31 篇鐵人文~

李忠謀教授

https://hackmd.io/@skyhong2002/apcs_interview_leeg