leonnig (陳建良)
簡介
2025 Linux 核心設計/實作 春季班 自我評量
成果發表和貢獻
1分。
並未對相關教材提出貢獻。
作業/隨堂測驗
7分
期末專題
5分
- Linux 核心專題: 重作Lab0 因為在跟老師的一對一之中發現,我自以為我完成了第一份作業,我自以為我懂了,但我卻沒辦法回答 list_sort 為何要做出這樣的改進,他的考量點是甚麼,select 在 web.c 裡面是如何去運用的,dudect 論文內和lab0 中的差異,所以期末專題我將第一份作業中,我重新閱讀了 lab0 的相關知識以及設計實驗,我讀了Bottom-Up Mergesort–a Detailed Analysis 以及 Queue-merge sort 兩篇論文,但未完成 The Cost Distribution of Queue-Mergesort, Optimal Mergesorts, and Power-of-2 Rules 的閱讀,並使用 perf 和 catch grind 對 list_sort 和 q_sort 進行了效能比較,以及查閱了 select() 系統呼叫的用法以及 socket programming 的知識,但後來沒有完成 dudect 的部分以ˋ及記憶體分析。
與授課教師的互動
4分
- 一對一討論 (2025/6/6)
在一對一討論中,老師問了我 Merge sort 的 worst case,我當下腦袋完全沒想法,查了 google 之後竟然沒讓我找到一個明確的答案,就想說賭一把,就回答了 merge-sort 應該沒有甚麼明顯的 worst case 吧,然後我就聽到老師叫跟我說,“你看,你找不到就說沒有!”,這句話我印象很深刻,因為這完完全全就是我一直在做的事,沒有真的重視細節。
Q1: merge sort 的 worst case? (如何產生 worst case?) HackMD
Q2: Assume x is a single precision floating point (float) and x always >= 1.. Calculate square root of x with external functions HackMD
所見所聞所感
6分
在這堂課中,有時候我會覺得很無力,因為在面對課程的測驗題時,我總是盯著題目,腦袋一片空白,只能偶爾幾次在題目給予的程式碼中碰碰運氣矇對,不知道要如何去下手,但我再做第二次作業,回顧第一次小考題目的時候,第一周的指標和鏈結串列的應用,我就花了 2 天在閱讀指標的操作相關的教材,我發現當你靜下來好好地把教材看過,並且”真的” 了解了那些知識,再回去把曾經完全不會的題目解決,這件事是讓我感到開心的,看過 因自動飲料機而延畢的那一年,作者程中真的遭遇很多挫折,但他到最後都沒有放棄,解決方案試過了不行就再換一個,真的很了不起,這個堅持下去的精神以及不怕失敗的勇氣,也是我所缺少的。在進行期末專題時,看到 Bottom-Up Mergesort–a Detailed Analysis 論文時,才發現一對一時問過的 merge sort worst case 也是重要的因素,要如何針對 worst case 探討比較次數,或是廣度和深度搜尋對 cache 的影響,都是 list_sort 中你可以去了解到的,但你如果沒有慢下來仔細去查看 commit message,不去閱讀論文,你不會知道來龍去脈,為甚麼要這麼做,理由是甚麼,考量點是甚麼,這也讓我學習到對細節的重視。
自我評量
方案 B :\(1 + floor(GEOMEAN) = 1 + floor(3.84) = 4\)
4分
