--- title: 2024 年 Linux 核心設計/實作課程作業 —— assessment image: https://i.imgur.com/robmeiQ.png description: 檢視前 6 週學習狀況 tags: linux2024 --- # M05: assessment > 主講人: [jserv](https://wiki.csie.ncku.edu.tw/User/jserv) / 課程討論區: [2024 年系統軟體課程](https://www.facebook.com/groups/system.software2024/) :mega: 返回「[Linux 核心設計/實作](http://wiki.csie.ncku.edu.tw/linux/schedule)」課程進度表 ## 預期目標 * 檢視前 6 週學習狀況 (含程式碼審查和課堂討論 [I](https://hackmd.io/YCnIwo_0R-GaYjISEZwG1A), [II](https://hackmd.io/_GIs8jAvQH2q505AiAbQ4A), [III](https://hackmd.io/3e8LI8_0SLOo_UTDAnPKYQ), [IV](https://hackmd.io/S-UYYCyCQVSaGzwhhVCm2g)) * 隨堂測驗和作業回顧 * 導入客製化作業,讓學員選擇改進第 1 到第 4 次的作業或自訂題目 (例如貢獻程式碼到 Linux 核心),隨後安排授課教師和學員的線上一對一討論 * 學生出作業讓授課教師回覆 $\to$ 授課教師也要寫作業! ## "evaluation" 和 "assessment" 的差異 > Evaluation is the process of analyzing, reflecting upon, and summarizing assessment information and making judgments or decisions based upon the information gathered. Testing to assign grades is one of the most common forms of evaluation. But assessment is a much broader and basic task. "evaluation" 和 "assessment" 之間的差異在於它們涉及的「過程」。 * "assessment" 的範圍較廣,涵蓋初步的分析和評估。 * "evaluation" 也經過一些「過程」而得出結果,但相對地更加「集中且有目的」。舉例來說,可利用實驗結果,對研究方法進行評估,從而推出結論。 以一筆生意為例,首先會對其需求進行初步理解 (assessment),進而評估其優劣勢。換句話說,assessment 是個較為初步的分析,而 evaluation 則涉及更深層次的分析。 ## [因為自動飲料機而延畢的那一年](https://blog.opasschang.com/the-story-of-auto-beverage-machine-1) > 原文作者:交大資工系校友張晏甄 * [(01)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-1)   [(02)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-2)   [(03)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-3)   [(04)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-4)   [(05)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-5)   [(06)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-6) * [(07)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-7)   [(08)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-8)   [(09)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-9)   [(10)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-10) * [(11)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-11)   [(12)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-12) *  [(13)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-13)   [(14)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-14)   [(15)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-15)   [(16)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-16)   [(17)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-17)   [(18)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-18/) * [(19)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-19)   [(20)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-20)   [(21)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-21)   [(22)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-22/)   [(23)](https://blog.opasschang.com/the-story-of-auto-beverage-machine-23) ### 佳句偶得 * 「一項產業進步的速度,很大程度取決於做實驗修正問題的速度。」 * 「你不能現在就放棄,要是現在就放棄的話,你這輩子日後遇到這種等級的困難,就只會想逃避而已。」 * 不要想逃,要把它做完 * 漆黑山洞伸手不見五指,讓人感到害怕,但只要不放棄一直往前進,目標就在那裡,一直往前進,絕對能走到目的地。 * 「你最大的問題在太害怕失敗了,既然都已經決定要延畢做飲料機了,那就要好好做,才不會辜負當初自己的期望 ... 你該學習的不是看到事情要完蛋了就去避免失敗,而是應該學習如何處理與承受失敗,你才能變得比以前更強大。」 * 通到羅馬的路百百條,[很多選項其實都是對的](http://mhperng.blogspot.tw/2011/03/blog-post_3186.html)。選了,就好好走,不要浪費時間在猶豫或後悔上。 * 失敗就是多學一個經驗,就當做給未來的自己多一塊踏腳石。 * 如果不是在大學期間寫過好幾個網站,飲料機的程式做不出來;如果沒有在大一就開始跑工廠做東西,設計零件生不出來;如果沒有認真上電子電路課,就無法設計出電路。 * 現在的失敗都是為未來的成功鋪路。 * 反過來說,如果你每天都跟別人做一樣的事情,憑什麼跟別人不一樣? * 把珍貴的時間拿來做真正重要的事情,如果生活還過得去,努力過濾掉 80%的雜事,專心做那最重要的 20% 就好。 * 自己真正想要的是什麼? * 「事情如果太順利代表絕對有問題,而問題永遠會從意想不到的地方冒出來。」 * 只有熱血是解決不了問題的。 * 問題解不完,如果逃避,其實問題還是在那裡,努力想辦法解決問題才是王道。 ## 作業要求 * 從前 4 週的測驗題選出 3 題改進 (含延伸問題,要有對應的 Linux 核心原始程式碼案例探討),觀摩其他學員並參照授課教師進行的作業檢討和回顧,若有不能理解的部分,請標註出來。善用 HackMD 的語法 `:::info` 和 `:::` 標註你的提問,在原有的筆記頁面更新即可。 :::info 像是這樣標註提問 ::: * 紀錄閱讀〈[因為自動飲料機而延畢的那一年](https://blog.opasschang.com/the-story-of-auto-beverage-machine-1)〉的啟發,特別在學習本課程 5 週之後的感想,應具體描述你在課堂、課後創作,和觀摩其他學員的成果時,理解到系統軟體的開發態度、對細節的重視,以及理論和實務的融會貫通。 * 研讀第 1 到第 6 週「[課程教材](https://wiki.csie.ncku.edu.tw/sysprog/schedule)」和 [CS:APP 3/e](https://csapp.cs.cmu.edu/) (至少到第二章),紀錄心得和提問。針對自訂題目,例如貢獻程式碼到 Linux 核心,也將自己的構想和規劃記錄下來,隨後與授課教師一對一討論時可運用。 * 參照 [2023 年期末專題](https://hackmd.io/@sysprog/linux2023-projects),簡述你想投入的專案 (亦可建立新專案),至少選出 (或訂出) 二個。 * [HackMD](https://hackmd.io/) 筆記作為開發紀錄,規範如下: * 標題格式固定為 ==2024q1 Homework5 (assessment)==,其中 "assessment" 是小寫,**2024q1** 表示「2024 年第 1 季」 * 共筆內容的第二行則為 **contributed by < `你的GitHub帳號名稱` >** * 確保你的 GitHub 帳號是有效的,留意空白字元 * 無論標題和內文中,**中文和英文字元之間要有空白字元** (對排版和文字搜尋有利);文字訊息請避免用圖片來表示,否則不好搜尋和分類 * [共筆示範](https://hackmd.io/@sysprog/linux2022-sample-lab0) $\leftarrow$ 務必詳閱 [HackMD 教學](https://hackmd.io/s/quick-start-tw) * 共筆書寫請考慮到日後協作,避免過多的個人色彩,用詞儘量中性 * 不要在筆記內加入 `[TOC]` : 筆記左上方已有 Table of Contents (TOC) 功能,不需要畫蛇添足 * 不要變更預設的 CSS 也不要加入任何佈景主題: 這是「開發紀錄」,主要作為是評分和接受同儕的檢閱,不是彰顯「個人風格」的地方 * 當[在筆記中貼入程式碼](https://hackmd.io/c/tutorials-tw/%2Fs%2Fhow-to-use-code-blocks-tw)時,避免非必要的行號,也就是該手動將 `c=` 或 `cpp=` 變更為 `c` 或 `cpp`。行號只在後續討論明確需要行號時,才要出現,否則維持精簡的展現。可留意「[你所不知道的 C 語言: linked list 和非連續記憶體](https://hackmd.io/@sysprog/c-linked-list)」裡頭程式碼展現的方式 * 留意科技詞彙的使用,請參見「[資訊科技詞彙翻譯](https://hackmd.io/@sysprog/it-vocabulary)」 * 避免過多的中英文混用,已有明確翻譯詞彙者,例如「鏈結串列」(linked list) 和「佇列」(queue),就使用該中文詞彙,英文則留給變數名稱、人名,或者缺乏通用翻譯詞彙的場景。 * 在中文敘述中,使用全形標點符號,例如該用「,」,而非 "," * 撰寫的過程中,可善用 ChatGPT 一類的工具,但需要明確標示並指出裡頭謬誤和不精確之處。搭配 [ChatGPT cheatsheet](https://quickref.me/chatgpt) 5. 填寫 [Google 表單](https://docs.google.com/forms/d/e/1FAIpQLSeVbm4COJ6-eNn83Pu7Fu7JKstKS2D5CXVzyAA38y1LlHL62w/viewform),提交開發紀錄,當系統檢查完畢時,預期將在 :rocket: [作業區](https://hackmd.io/@sysprog/linux2024-homework5)見到登記的 HackMD 超連結 * :warning: 不用等到作業完成才填寫表單,當你開始進行作業時,即可填寫表單,系統會進行必要的檢查工作。 ## 截止日期 * Apr 15, 2024 (含) 之前