--- title: yy214123 (陳柏儒) categories: User ... ## 簡介 * 國立成功大學—資訊工程研究所 112 級 * [GitHub](https://github.com/yy214123) * [HackMD](https://hackmd.io/@yy870530) ## 2024 Linux 核心實作 春季班 自我評量 ### 1.成果發表和貢獻: 當我進行作業二時,我在第 3 週對應的測驗教材頁面的第一題發現了一個數學公式的錯誤。在本課程第二次實體 code review 結束後,我向授課老師反映了這個問題。老師回應說這是故意寫錯的,目的是測試我們是否能注意到這些細節。這次經歷顯示了我在閱讀過程中對細節有仔細觀察。 至於書本部分,目前我尚未有任何貢獻。關於 Linux 核心程式碼的部份,下方有更進一步的描述,但目前也沒有實質性的貢獻。 這個項目我給自己的評分為 4 分。 ### 2.作業/隨堂測驗: **作業** [2024q1 Homework1 (lab0)](https://hackmd.io/@yy870530/linux2024-homework1) 這是除期末專題以外,我花費最多心力的作業,在這個作業我認為我有大幅進步,列舉如下: 1. 對 c 語言的掌握度提昇,在一年級上學期我是大學部資料結構課程的助教,作業部份是以 c 語言實作, 但當時我完全不會 c 語言,僅能協助書寫題的部份,但當此份作業指派下來,為了將其完成,我透過授課老師的「你所不知道的 C 語言系列講座」、 李根逸博士的 c 語言入門,重新學習 c 語言,我認為在這一學期我有所成長。 2. 學會操作 Linux,從小到大我都只用 Windows 作業系統,就讀大學時甚至覺得 Linux 好難用直接退選相關課程,但透過這門課,我逐漸發現 Linux 許多優點, 各種環境架設的方便性絕對是遠遠勝過 Windows,也不會有擾人的自動更新,雖然一開始蠻不習慣的,過往各種操作皆依賴滑鼠輔助,但現在發現只要鍵盤足矣。 3. 學會 git 相關操作,以前都用雲端、隨身碟帶著程式碼,一來雲端容量逐年遞減,二來設備可能遺失損壞,學習 git 後真的體認到這個工具的強大,且只要認真的撰寫 commit message,後續要追蹤程式碼功能變革也相對容易。 [2024q1 Homework2 (quiz1+2)](https://hackmd.io/@yy870530/linux2024-homework2) 這個作業雖我不是在截止日期前完成,但整體來說我覺得完成度還不錯,對應資料結構的圖示也有清楚的利用 graphviz 繪製在共筆中。 [2024q1 Homework3 (ttt)](https://hackmd.io/yI-Rh8l7Q9uzWhQgBQbsnQ?view#Reveiwed-by-56han) 這個作業我覺得自己做的不完善。 [2024q1 Homework3 (review)](https://hackmd.io/yI-Rh8l7Q9uzWhQgBQbsnQ?view#Reveiwed-by-56han) 是很不錯的體驗,收穫了許多其他修課學員的建議,針對各項建議,我都有進行對應的調整,且每次調整後都有獨立的 commit,這個作業我覺得我做的很好。 [2024q1 Homework4 (quiz3+4)](https://hackmd.io/@yy870530/linux2024-homework1) 這個作業我覺得自己做的不完善,完成度大約 50 %,但部份的數學推導有將其完成。 [2024q1 Homework5 (assessment)](https://hackmd.io/@yy870530/linux2024-homework5) [2024q1 Homework6 (integration)](https://hackmd.io/@yy870530/linux2024-homework6) **測驗** 我每週都有參與測驗,但有幾次我得到了 0 分。起初這讓我感到相當挫折,但也使我意識到自己的還有許多努力空間。慶幸的是,這些錯誤是在修課階段發生的,而不是在未來的面試中。如果在面試中還是得 0 分,那才會是致命的打擊。 在作業/隨堂測驗這個項目,我給自己的評分為 9 分 ### 3.期末專題 整體下來,我覺得完成度平平,還有很大的努力空間,很遺憾的是沒有把 CMWQ 弄懂,而比較有收穫及成長的是下方提到關於延伸問題的我向老師發信詢問的部份,應該是整個期末專題中比較完整的去實做測試的部份,其於是瀏覽教材的成份居多,但也讓我體會到了,其實好奇心不會害死貓,好奇心反而讓我有了很大的收穫!! 在這個項目,我給自己的評分為 8 分 ### 4.與授課老師的互動 第一次一對一討論:2024/05/08 PM9:30 在這次討論中,授課老師當場出了一道題目([ldexp](https://man7.org/linux/man-pages/man3/ldexp.3.html))讓我解答,但我完全答不出來,這讓我意識到自己對 bitwise 操作的掌握並不像自己想的那麼全面。隨後,老師詢問我對哪些議題有興趣,我思考後請老師指派。討論結束後,我重新閱讀了 CSAPP 第二章,並開始完善面談中未完成的題目。 第二次一對一討論:2024/05/22 PM4:30 完成第一次面談的題目後,我再次聯繫授課老師進行面談。這次面談中,先是討論當前實作在非正規化數、無窮上有缺陷,老師提供了更好的解決方法(使用 union),以及針對我原先的實作方式,並且提到我進步許多。老師還幫助我解釋了期末專題進行過程中遇到的問題。 Linux 核心程式碼詢問(透過電子郵件):2024/06/26 PM10:23 這個環節源於我的好奇心。在進行期末專題時,我需要研讀 Linux 核心程式碼中的 [div4](https://github.com/torvalds/linux/blob/master/lib/math/div64.c),並發現其中某部分程式碼似乎有改進空間。我發信給老師討論此事,雖然事後想想,老師可能早已知道我的改進建議並沒有實質改善,但他在第一時間並未否決我的疑問,而是給予一些分析建議。我隨即展開實驗,結果雖與預期大不相同,但我很享受這個學習過程。如果當初老師直接告訴我不可能,我可能就沒有動力去研究相關議題。 紀錄一下老師給的毒雞湯!! 「幻滅是成長的開始。希望你體會到何以我一直強調「細節」的重要。」 第二次面談後,在 2024/06/19 ~ 2024/06/24 我發了十次訊息到粉絲專頁想要再次預約面談,但沒有收到老師的回覆,在互動這個項目我覺得我有盡全力投入了, 我給自己的評分為 10 分。 ### 5.所見所聞所感,務必提及閱讀〈因為自動飲料機而延畢的那一年〉和回顧自身在本課程的投入狀況 是個很振奮人心的故事,讓人深思。 如果你只會寫程式,而且對原子筆一竅不通,那會發生什麼悲劇就可想而知了。 * 對這段話頗有感觸,也反映了為什麼這門課程特別強調閱讀原始教材的重要性,一直以來我都在舉燭,只會在心中腦補程式碼,還沒著手進行 lab0-c 前,在如今這個生成式AI迅速發展的時代,我常常僅是打開 ChatGPT,描述我的目標,然後是一連串的「ctrl + c >> ctrl + v >> run」。當遇到 bug 時,我再次「ctrl + c >> ctrl + v」尋求 ChatGPT 的幫助來解決問題。剛開始寫 lab0-c 時,我也嘗試過這樣幹,然而,我發現從 ChatGPT 得到的回答往往不切實際。也對應到老師在 Google meeting 上提到的,如果只是一昧的使用這些工具,那並無法與他人拉開差距,其他科系的同學甚至比你還會問 ChatGPT 問題。 If I had eight hours to chop down a tree, I’d spend six hours sharpening my axe." – Abraham Lincoln * 我意識到基本功的重要性,綜觀這學期下來,我雖然沒辦法按時將每項作業完成,也未能在每週四課程開始前將教材確實看完,更不用說時常需要重複閱讀教材和相關的影片。但我發現,每當我重新閱讀教材時,總能獲得新的理解。那些在第一次閱讀時感到模糊不清的知識點,隨著閱讀次數的增加,逐漸浮現出新的見解和突破。 事情如果太順利代表絕對有問題,而問題永遠會從意想不到的地方冒出來。 * 就像我在期末專題碰到的問題,天真的我自以為找到了好辦法,果然問題真的從我沒預料的地方冒出來!以前會覺得理論、實作是分開的兩個議題,但隨著課程進行我發現兩者其實相輔相成,甚至還會有設備不同造就結果不同的情況發生。 回顧我在本課程的投入狀況,我覺得我很努力了,儘管作業、測驗、期末專題都有瑕疵,但這絕對是我來成大後最用心投入的一門課,跟學期初的我相比,我很滿意自己的成長, 在這個項目,我給自己的評分為 10 分。 ### 6.每月發給實驗室指導教授的學習回顧 二月份學習回顧 * 寄信日期:2024/03/05 PM5:08 * 信件內容簡述:與上方作業一的描述雷同,主要與指導教授分享我不足之處,並分享作業進度。 三月份學習回顧 * 寄信日期:2024/04/07 AM1:29 * 信件內容簡述:主要與指導教授分享本課程所使用的共筆工具 HackMD,並且將此工具用於實驗室內部文件的撰寫。 四月份學習回顧 * 寄信日期:2024/05/11 PM4:16 * 信件內容簡述:主要與指導教授分享期末專題題目。 五月份學習回顧 * 寄信日期:2024/06/23 PM2:27 * 信件內容簡述:主要與指導教授分享期末專題進行狀況。 我每個月都有發回顧信,且在信件只要討論到課程相關主題,我都有附上對應的鍊結供指導教授參閱,也沒有任何隱瞞。 在這個項目,我給自己評分為 10 分。 ### 7.使用GEOMEAN 來計算上述 (1) 到 (6) 各項的幾何平均 * 採用方案 B: 1 + floor(GEOMEAN) 計算後的分數為:9 分