交大準備

自介

各位教授好,我是來自復旦高中的黃祥陞。在高中之前沒有太多程式設計的經驗,高一開始學習程式設計,高二取得APCS觀念、實作皆滿級分,高三組隊參與NPSC競賽拿下全國第13名的成績,我認為高度學習熱忱是我的個人特質。在學習層面,我於高中參與校內程式設計班,扎根基礎語法和演算法,也結交許多志同道合的朋友,出於回饋,於高二時擔任進階班教學組的幹部,與團隊共同經營程設班,使它繼續傳承,因此,我也認為我具備經營團體和團隊合作的能力。以上是我的自我介紹,敬請教授指教。

你在程設班做了什麼

我在程式設計班擔任進階班教學組,主要的職務有課程規劃、編輯教材、上台授課、出練習題。以課程內容來說,我在任時期的課程編排有動態規劃、貪心法、暴力搜尋、資料結構、圖論。課程教材是我們用HackMD共同編輯,並公開於開放平台,也能夠讓其他對於演算法有興趣的同儕學習。在我們幹部群的共同努力下,也讓約20位同學考取APCS觀念4級分、實作3級分以上的成績。

一個熟悉的演算法

我最熟悉的是線段樹,雖然這是競賽選手基本必備,但我於程設班幹部時期主要教學的內容就是線段樹,也在HackMD整理一份公開筆記,因此對它有全方面的理解。它主要是用於區間問題,且區間的答案要有結合性。延伸的話,延遲標記可以降低時間或空間複雜度,動態開點可以降低空間複雜度,樹套樹可以解決二維區域問題,持久化可以沿用前面的版本,最小化記憶體。

對於複雜度的了解

有時間複雜度和空間複雜度,在競賽中,複雜度可以估算解的合理性,比如在時限為 \(1\) 秒的題目,\(N\)\(50\) 萬時,\(O(N^2)\) ˇ的解法就不適合。而 Big-O 是複雜度量級的上界,Big-omega 是複雜度量級的下界,Big-theta 是複雜度量級的嚴格上下界。另外,對於遞迴函式的複雜度,可以用主定理來輔助估計。以上,是我對於複雜度的了解。

團體競賽分工模式

我和同學共組隊伍參與NPSC拿下全國第13名的成績。在解題層面,我主要是負責資料結構和實作題。競賽時,我們會分開讀題,標註該題所需要的演算法,之後分配題目給隊友。解完個人的部分後,由於重新開題的機會成本太高,所以傾向先幫隊友debug,以扎實穩固的方式拿下一題又一題。以上是我們的團隊分工模式。

遇到問題不會怎麼辦

因為題目可能會誘導錯誤的方向,我會重新閱讀並思考題目,先以自己的能力重新嘗試解題。如果仍無法的話會上網蒐集相關資料,理解消化吸收後重新思考題目。還是不會的話會請問學長姐該題如何分析和下手。所以我遇到不會的問題時,我會重新思考、上網查詢、求助學長姐。

有沒有做過專案

沒有做過大型專案,但有做過一些小小的作品成果。比如利用 Discord 提供的 API 搭配 Python 程式語言,製作聊天機器人,並且搭配爬蟲,可以經由指令,快速爬取 ZeroJudge 的解題資料。我也有用Pygame模組製作簡易的Block Game,大概長這樣(用手比),也對架構設計和流程開發有了基礎的認識。另外,去年疫情爆發的時候要開始上線上課程,我利用了 Python 的 selenium 模組去寫動態爬蟲,把線上課表抓下來然後定時自動加入 meet。

上大學後的規劃

在大學後的規劃會放在兩個重點,一是演算法競賽,二是人工智慧領域。高中花了許多時間於演算法的學習,我也很享受解題的過程,因此大學會繼續參與 NCPC、ICPC 等競賽。另外,我未來想要鑽研 AI 領域,近期也有關注 AI 發展,比如聯發科和 google 發表的論文是用 AI 做晶片設計,它是運用一些動作和累積獎勵的方式來訓練 AI,來達到最大化的效益,而我正是對此有興趣,於暑假會研習相關論文。

對 AI 有多少的了解

AI 最重要的就是它的效率和正確性。它的應用層面非常廣泛,如晶片設計、醫療影像、分析和預測。不過以我現在的認知,AI 的架構雖然很多,但最根本還是資料,沒有大量的資料就沒有辦法有效訓練 AI,所以資料是 AI 的根本。

Select a repo