作者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/cn.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