分享到plurk 分享到twitter 分享到facebook

weihsinyeh (葉惟欣)

簡介

2024 Linux 核心設計/實作 春季班 自我評量

成果發表和貢獻

7分。

起初,讀教材發現有錯字,或是看到有地方可以改善的時候,都有直接提出,紀錄如下,到後來整合自己學的知識,並對書籍提出改善。最後我希望除了這些以外我能夠在真實世界中找到問題,並用學到的知識來解決。因為這件事情未達成,還在進行中,所以計算下列的付出是 7 分。

作業/隨堂測驗

10分。

在這堂課最大的收穫,除了作業本身,我也特別在讀論文時看別人怎麼分析問題,透過數學來驗證自己的邏輯,這些使我理解別人的思考脈絡。

期末專題

10分。

剛開始從教材開始看,後來改看程式碼,同時邊改邊看他的執行結果,如 low-memory-footprint mutex,到理解整個程式運作就用時一週。開始讀論文,理解提出的方法是要解決甚麼問題。後來開始跟另一位簡志瑋一起討論 Issue 7 的寫法以及聽別人的演講,學習別人的思考脈絡。做第一個 TODO 到最後一週,過程中一直調整學習方式。而這每個過程學習到的知識,使得在最後整理出一個思考脈絡時,能夠運用上,最後一週完成後面三個 TODO 。

與授課教師的互動

10分。

所見所聞所感

10分。

  • 觀察同學們的心得

    在這堂課看到很多人都比我還要用功,這是跟〈因為自動飲料機而延畢的那一年〉最有相關的事情。在做每件事情的時候,即便都先入為主假設做完也不可能超越經典,但還是嘗試突破。舉例:在作業二的時候我看了葉承憲同學的作業,看到他做的實驗分析啟發我,所以我在後續的作業都會認真思考這個經典演算法、實作方式,有哪裡還可以改進,並設計實驗探討,參考 第一周測驗題:QuickSort。在這堂課看到很多同學他們會去思考一些我忽略的問題,像是有個同學下課花很久思考「定點數的整數與小數要取多少位比較好?」,坐在我隔壁同學的期末專題研究「可自我編譯的最佳化編譯器」就需要研究 logical-and 的問題。還有鄭以新同學在他的專題上克服的困難還要去學 Rust 。還有像 Henry 同學想要把自己的專題題目做好的毅力。不管起點是哪裡,大家都很努力去克服自己學習上的困難。讓我總是能一直找到學習的榜樣。

  • 觀察老師的心得

    每次看到老師都很有活力的上課,把困難的事物變得學起來很有趣。上課可以吸收很多正能量,拿回去用於鼓勵自己學習。想休息的時候就會想到老師都比學生還要認真,所以還是去讀書。除了知識外,經過這學期價值觀也改變很多,以前很多事物都直接相信,不太會分析其對錯。現在看到一件事情,不會再被形容詞蒙蔽。學會透過「是否如實呈現有邏輯的推論?」與「是否有分析結果以及是用哪種工具來分析的?」等的客觀事實來分析,這件事情不只用於課業,還有生活。

  • 回顧自身在本課程的投入狀況

    從觀察其他同學不可勝計的付出與龐大的課程教材,知道每個知識得來不易,因此為了不要讓自己只是懂概念,也就是在第二周我所學到的,除了投入在課堂的教材(如前幾個項目的說明外),還會讀其他好書,舉例:作業一中讀《The Art of Computer Programming》將數學與程式對應的內容以及在第四周測驗題讀《Hacker Delight》的 popcount的時候,我超級喜歡閱讀的過程不斷地被腦力激盪,還沒讀到下一頁,就可以立刻想到進一步優化。這本書不斷讓我有發現新知的快樂。

    此外研究很多數學的原理與程式碼間的關聯,像在 Hamming code 的 mask、均勻分佈與亂度的關係與 list_sort.c 中 pending 上的節點與合併的時機,每次自己推導發現數學真的被巧妙的應用在實作中,都充滿成就感。

    最後我會紀錄課堂的討論,每次被問問題時都會有很多從來沒有的思維產生,這也是這堂課我學到最重要的事情,不像過去的問題都很單純,問題需要從不同面向分析,同時需要用很多解決方式。而這種多方位思考方式需要整合很多領域的知識,也因此我在後期課程開始會紀錄課堂上的問題還有老師的提到的關鍵到筆記中。

自我評量 (1 ~ 10):

\(GEOMEAN = ( 7 \times 10 \times 10 \times 10 \times 10 )^{1/5} = 9.31149915095\)

方案 B :\(1 + floor(GEOMEAN) = 1 + 9 = 10\)