版本 fdcf95bd1f6202245db12d6bab9b6835d89a66a9
Changes from fdcf95bd1f6202245db12d6bab9b6835d89a66a9 to current
JulianATA(方鈺學)
------------------
**Information:**
- 成功大學 資訊工程學系109級
- 成功大學 製造與系統研究所
Github: https://github.com/JulianATA
2019 linux 核心設計 春季班 自我評量
=======================
作業共筆:
- 學習使用工具 [hackmd](https://hackmd.io/xnrCzTeTQfmpERY7ex0pUg)
- linked list [hackmd](https://hackmd.io/U7_f__kJRECH4INXwSRgJw)
- fibonacci driver [hackmd](https://hackmd.io/yTS3-vDBR6OuF3GJDxtZ5w)
- riscv [hackmd](https://hackmd.io/r44IiP5FSNe8GsuyVCW6GA)
- daemon [hackmd](https://hackmd.io/6G9K8QecSwmuABjyu_cftA)
- garbage collection [hackmd](https://hackmd.io/LDklcrhBSVO8h0SwTj_Eyw)
測驗共筆:
- garbage collection [上](https://hackmd.io/@hPMCWajOS-ORQdEEAQ04-w/rk2ft3xKE) [下](https://hackmd.io/@hPMCWajOS-ORQdEEAQ04-w/BkF_dAeFE)
額外共筆(更新中):
- 簡單 OGC 、保守 GC 與精準 GC for C [hackmd](https://hackmd.io/@hPMCWajOS-ORQdEEAQ04-w/ryXx6FDcV)
期末專題:
- kcalc [hackmd](https://hackmd.io/@YISK29ORR0awElwR06OpkQ/SkqMWoBJH)
自我評量 (1 ~ 10) Self-assessment
=================================
我給自己8分。 主要分成三個部份作考量,作業投入、考試問答以及課後投入。首先,作業投入的部份。第一個禮拜老師就說,這堂課常常會讓同學,晚上開始做作業,一不小心就天亮了,真的是非常有感覺。在作業方面,包括找國內外資料,並反覆驗證、理解,自己動手寫程式,還要設計實驗。還記得前幾次的作業,老師有問我問題,問到後面連實驗怎麼設計的都問到了,讓我在很多細節上考量更多,這個部份給自己8分。 再來,考試問答。這個部份,我在選擇答題上,我覺得自己表現還可以,如果是選擇合適的API,放入一段程式碼做更新、加強效能我覺得自己可以勝任。但是,當我自己要建築一個完整的程式的時候,常常因為思考整個程式的習慣不明確,缺東缺西,這個部份是我接下來要加強的!還要學習怎麼解釋自己的程式,這個部份我給自己6分。 最後,課後投入的部份,這個部份我給自己10分。以前吃飯看的是動畫、現在看的是『你所不知道的c語言』。也常常在翻閱cs:app。此外,看到電腦科學、資料科學的議題,也能夠用更加理組的方法學習,光是這半年,就增加了不少自己寫的共筆(課程以外的)。我覺得這部份,不只影響到這個課程,也讓我用這個課程的強度、態度去看待其他的學習。
老師第一堂課提到了:「要誠實的面對自己。」我覺得這句話非常有意思,什麼叫做誠實?我覺得在身邊,很多認識的同學其實對自己沒有什麼信心,認為自己走過了這四年在成大學習到的科目,出社會用不到,在台灣學習寫個app、寫個網站,可能還比較方便,明明成績不錯,但卻發現自己會的都只是寫考卷。我覺得一部份是不太清楚,整個資訊世界發生的事情,以及如何跟上。這堂課,給了我大量的資訊,了解這個世界當下的issue,以及別人是如何處理這樣的issue,如何思考。 因此,能作到「誠實的了解自己。」 但是,對於我來說,我覺得更多的是「清楚的了解我自己。」或許,在一定的了解之下,才有「誠實」/「不誠實」之分。在有一定的了解之前,更多的是不知道路有多遠、有多長、在哪個方向。我覺得上完這堂課以後,不敢說已經清楚的了解自己,但是至少稍微的比以前更有方向,知道目前世界發展在那,怎麼作才能參與其中!
2020 進階電腦系統理論與實作 秋季班 自我評量
=======================
共筆:
- Brief History of Free List Sharding [hackmd](https://hackmd.io/@hPMCWajOS-ORQdEEAQ04-w/HJbeisVNB)
- XOR Filter 實作 [hackmd](https://hackmd.io/@hPMCWajOS-ORQdEEAQ04-w/H1NVb6u8P)
- Unaligned Memory Access [hackmd](https://hackmd.io/xfsLDF6gTRu8hkSk6by4MQ#Unaligned-Memory-Access)
期末專題:
- 簡介 NUMA 架構 [hackmd](https://hackmd.io/@hPMCWajOS-ORQdEEAQ04-w/Hkd1rsonP)
自我評量 (1 ~ 10) Self-assessment
=================================
很高興又有機會修 Jserv 老師的課程。
這學期對於作業的投入,沒有上一次 2019 Linux 核心設計春季班高。課程初期就有幸被老師引薦跨校研究。對於研究的部份,跟上次修課寫作業一樣,投入大量的時間。程式相關內容包含 撰寫/改寫一個動態連結函式庫、研究實驗特性、研究並運作主流 Benchmark suite、分析程式行為、研究實驗統計開銷(Atomic operation 為主)以及對於研究對應的實作各項改進...等。非程式相關內容包含 論文閱讀、論文改寫、每個禮拜討論電腦架構發展...等。雖然走過的彎路很多,但能趕受到自己對於程式細節及其背後的意義要求/理解更勝以前。
另外一個認真投入的部份,是課程的小考。修習 2019 Linux 核心設計春季班時,時常無法在短時間內理解小考的內容,有時後很難應答。這學期比較能夠掌握小考內容,雖然不免偶而會翻船,例如:Bitwise operation 腦袋轉不過來、Leetcode 題目看不透。但也常有可以秒答/穩穩作答的時候,甚至看到自己撰寫的共筆內容出現在考題裡面。而每每遇到了解不透徹的題目,都會再三閱讀/實驗相關內容。也能夠明顯感覺到對於課程的理解更深,第一次聽課的時候很容易不太理解老師說的內容,但這次聽課可以投入老師每次講的三個小時內容,更了解電腦的發展/探討的議題。
很開心的一件事,是自幹了一套 Xor Filter 僅僅用了不到350行的程式碼。雖然沒有撰寫重複的作業,當初看到 [dict](https://hackmd.io/@sysprog/2020-dict) 這份作業要求整合 [xor_singleheader](https://github.com/FastFilter/xor_singleheader/blob/master/include/xorfilter.h) 到 dict 程式中。但我在看完 xor_singleheader 程式碼後,覺得單單一個 Xor Filter 使用超過1000行程式碼太過奢侈,便抓緊連假4天的時間,每天投入超過 10 小時自幹這份 xor filter(撰寫大概15小時,但除錯與測試花了快25小時)。這份 xor filter 中的 linked list 整合了 [lab0-c](https://github.com/JulianATA/lab0-c) 中的部份實作,將以前實作的程式成功應用在新的程式中。
再來檢討自己不好的地方,有些作業我很想投入時間研究(部份作業內容與議題有重複),但因為自己時間規劃上面不夠精準,總有點過寶山空手而回的感覺。並且在撰寫共筆的時間很長,常常目標撰寫一份如Linux核心設計系列/你所不知道的c語言系列的共筆,常常在撰寫的時候為求精準,花大量時間查詢規格書/第一手開發紀錄,因此如果沒有一個空閒的連續假期,鮮少做出一份自己滿意的共筆/程式。對於這兩個部份我各扣自己1.5分。
總結,我給自己7分。對於自己的假期規劃是在春節期間把不滿意的作品一項一項補齊。