作者cfzfnf (夏夜貓)
看板NCTU-Teacher
標題[心得] 數值軟體開發 - 陳永昱
時間Sun Jan 23 23:19:30 2022
⊕課名⊕
數值軟體開發
▲教授▲
陳永昱
★修課年度★
110-1
£教了什麼£(課程大概內容。或是額外學會了什麼東西。)
課程網站:
https://yyc.solvcon.net/en/latest/nsd/index.html
這堂課的主旨是如何設計數值軟體,所以上課涵蓋的範圍很廣,從底層知識到抽象設
計都有涉略。
課程內容可以分成四大類:Computer Fundamental, Performance
Considerations, System Management, Design Techniques ,具體內容可以參考課程網
站首頁。
◆上課方式◆(投影片、團體討論、老師教學風格)
老師上課是講自己的投影片,雖然不會公佈投影片,但是內容基本上對應到課程網站的
文件,上課漏聽了也可以看。
▼考試作業▼
總共有六次作業、一個期中考和 final project 。 作業一個佔 5%,總共 30%,期中佔
30%,final project 佔 40% (proposal 也會被列為計分範圍內),不會調分。
作業會要求用 C++ 實作 functions ,然後寫 Python wrapper (pybind11) 與寫測試
腳本 (pytest) ,然後有些後面的作業是為之前的作業加上一些額外的功能。
作業評分與繳交流程如下:
1. Fork 課程專案相對應的作業分支
2. 寫作業
3. 每個作業都會附上不同的評測腳本,跑完會顯示拿到的分數,滿分
為五分。
4. 發 PR ,跑 CI (github workflows) , 基本上如果評測腳本對了, CI 也可以跑過
。 但是我也發生過因為環境不同導致跑 CI 時編譯錯誤,還要額外修改 Makefile 。
5. 基本上有 CI 有成功跑過該作業就是滿分
期中考內容包括基本的 C++ 與 Python/Numpy 還有基本的計算機知識。
我印象中考了這些題目:
- Unsigned/signed comparsions
- C++ Operator Precedence
- Conversions between Numpy datatypes and C type
- IEEE-754 floating point representations of 1.8/-1.8
- Cache access simulation (存取資料問 cache miss 類型)
Final project 在學期的前三分之一就要交 proposal ,期末要用英文報告。
¥其他¥(是否注重出席率or嚴禁遲到?需要的基礎?)
這堂課是
早七,但是不會點名,雖然這學期有叫我們簽到,不過似乎沒有算進去學期
成績,應該只是防疫規定而已。
老師上課很熱情,也會丟很多問題給大家問大家想法。
¢最後想說的話¢
這門課教了很多有關軟體工程的東西,這算是一般資工系的課比較少涉及的部分。而且老
師本身背景是在職工程師,英文也非常的流利,在解釋技術細節非常的清楚明瞭,上課時
偶爾也會當場 trace code 給我們看。
作業其實都不難,有些只是把前面寫過的作業做小修改而已,更何況繳交方式是在
github 發公開的 PR ,早七準時上課應該才是本門課最難的部分。
課程中最有收穫的地方應該是後面課程的 Modern C++ 和 Advanced Python , 學到了很
多實用的知識與技術,也發現之前寫的 C++ 其實很不 C++。
Final project 也做了以前一直想做的東西:中文版的 ASCII art generator
(
https://github.com/Cycatz/uniramp) ,但
是跟數值軟體可以說完全牽扯不上關係,不知道是不是這個原因讓我的 Presentation 分
數比預期還要低。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.168.234 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/NCTU-Teacher/M.1642951174.A.360.html
1F:推 hpbl: 樓下噁男 01/23 23:40
2F:推 LukeLuke: 我也是做了不太數值軟體的東西,Presentation 超低分。 02/02 21:28
3F:推 TFreeman: 有凡就推 02/14 00:08