UniMate AI

COMP90072

计算机硕士课程

12.5 学分难度 超难

课程定位 COMP90072(The Art of Scientific Computation)是一门非常典型的 research-computing 课程,重点不是教某一个单独语言,而是训练学生如何把科学问题真正转成可验证、可优化、可复现的计算工具。官方 overview 明确指出,这门课面向 physical、social 和 engineering sciences 中广泛存在的计算需求,强调学生要在缺少正式 computation 训练的前提下,学会把零散工具组织成一套真正能工作的研究型软件流程。 学习内容 官方列出的技能栈非常完整:Mathematica 用于问题公式化,C/C++/Fortran 处理数值密集型实现,BLAS/LAPACK 等库用于模块化高性能计算,LaTeX 用于设计和限制说明文档,gprof 用于验证与性能监控,OpenMPI 用于并行化,Geomview / OpenGL 做可视化,Python / Matlab 做交互界面。这门课本质上在教你如何把“研究计算”做成一套系统工程,而不是单个脚本。 课程结构 2026 Handbook 显示这门课 Semester 1 和 Semester 2 都开,属于 Dual-Delivery subject,但 assessment components 在 On Campus 完成。Assessment 完全围绕项目:60% 来自软件工具本身的准确性与计算效率,40% 来自一份用 LaTeX 写成的设计与应用文档。也就是说,这门课没有传统考试,核心是项目交付质量、软件设计能力和文档表达能力。 适合人群 如果你未来会做 scientific computing、research engineering、HPC、simulation、numerical modelling,或者你需要把研究问题做成高质量可复现代码,这门课价值很高。它尤其适合已有一定编程基础、但希望把“写代码”升级为“做研究级计算工具”的学生。

Course decision

选课先看

先看考核重心、截止节奏和入门要求,再决定这门课是否适合你的学期安排。

考核总权重

100%

2 项考核

最高单项

60%

Software Tool Project

期末考试

成绩来自平时考核与项目

Hurdle

2 项

需要单独满足

Syllabus

每周大纲

默认只展示每周独有的知识重点;节奏、考核、Tutorial 和避坑信息按需展开。

  1. 1

    Project Framing 与问题公式化

    课程一开始通常不是直接写代码,而是先把研究问题形式化。官方 overview 特别提到要把问题表达成 digital computing 可访问的操作序列,这意味着第一步是任务分解、变量定义、输入输出边界和数值流程设计。

  2. 2

    Mathematica 与科学问题原型化

    在正式进入高性能实现前,课程会先强调原型化与验证思维。Mathematica 这类工具的价值在于快速验证公式、探索数值行为,并把计算流程说明清楚,而不是一上来就陷入优化细节。

  3. 3

    Numerically Intensive Programming in C/C++/Fortran

    进入核心实现阶段,讨论为什么数值密集型 computation 需要更接近底层的语言,以及如何在性能、可读性和可维护性之间做取舍。对许多学生来说,这一段是从“能跑”转向“跑得对、跑得稳”的关键。

  4. 4

    Modularization 与 Scientific Libraries

    课程会强调模块化设计,既包括自己写 procedures,也包括正确调用现有高性能库,例如 BLAS 和 LAPACK。重点不是重复造轮子,而是学会把复杂计算任务拆成可复用、可测试、可组合的模块。

  5. 5

    Verification, Testing 与 Instrumentation

    官方 overview 特别提到 code instrumentation,用于验证正确性和监控性能。这一周的核心是建立测试与验证意识:在科学计算里,结果“看起来合理”不等于实现正确,你需要能证明程序在已知输入下行为可信。

  6. 6

    Profiling with gprof

    当工具能够正确运行后,课程通常会进入 profiling。gprof 之类的工具帮助你识别瓶颈,理解时间究竟花在什么地方,从而避免盲目优化。

  7. 7

    Optimization 与 Performance Tuning

    这一周会把 profiling 结果转化为具体优化动作,讨论算法选择、内存访问、函数调用开销和数据结构设计如何影响性能。真正的目标不是机械追求更快,而是让优化与项目目标保持一致。

  8. 8

    Parallelization with OpenMPI

    官方明确提到 OpenMPI,因此课程后半段通常会涉及并行化。重点在于识别哪些任务适合并行、并行后通信成本如何影响收益,以及如何避免把复杂度引入得比性能收益更大。

  9. 9

    Visualisation with Rendering / Graphics Tools

    科学计算的结果不仅要算出来,还要能被人理解。课程会引导学生用 Geomview、OpenGL 或其他图形工具做数据可视化,把数值结果转化为可解释的图像与结构。

  10. 10

    Interfaces through Python or Matlab

    除了核心计算引擎,课程也关注与用户的交互。通过 Python 或 Matlab 等工具建立界面和调用层,可以让研究代码更易于演示、复用和交付,这也是“研究脚本”与“研究工具”之间的重要差别。

  11. 11

    LaTeX Documentation 与 Reproducibility

    官方 assessment 明确要求提交 LaTeX 格式文档,说明设计、操作和限制。因此这一阶段的重点不是单纯写报告,而是把软件架构、使用方式、样例输入输出和局限性讲清楚,形成真正可复现的 project package。

  12. 12

    End-of-Semester Project Integration

    最后一周通常围绕项目整合与最终交付:整理代码、验证 sample input/output、核查编译和执行流程、润色文档、说明性能和限制。高质量提交的关键往往不是多写功能,而是让工具在设计、实现、验证和说明四个层面都闭环。

Assessment

考核结构

Software Tool ProjectHurdle

Software tools are assessed on the accuracy with which project goals are achieved and the computational efficiency with which they are met. Electronic submission with sample input/output is a hurdle requirement.

60%

LaTeX Design and Operation DocumentHurdle

A LaTeX-formatted document describing software design, project context and specimen applications. Submission of the document is a hurdle requirement.

40%

Assignments

作业详情

Software Tool Project

围绕一个与物理、社会或工程科学相关的短项目,设计并实现可运行的计算工具,重点考察结果正确性与计算效率。

重点: scientific software design、numerical implementation、performance

要求:需电子提交可编译/可执行代码,并附 sample input/output,属于 hurdle

⏱ 预计 100 小时

LaTeX Design Document

提交一份用 LaTeX 编写的技术文档,解释软件设计、项目背景、使用方式、限制与示例应用。

重点: documentation、reproducibility、technical communication

要求:必须使用 LaTeX,并清晰描述代码设计与操作流程,属于 hurdle

⏱ 预计 40 小时

From Seniors

学长留下的

基础信息谁都查得到,真正值钱的是过来人的经验。

学姐说

比你早一年的学长留下的真实经验 —— ChatGPT 给不了。

这门课还没有学长经验,你可以是第一个 —— 注册后在课内分享。

往年考点 / 踩坑

这门课暂无往年考点记录。

毕业生去向(整体)

下面是匠人学院毕业生整体去过的公司分布(来自脱敏校友证言)。这是全平台的总体去向,不代表选这门课的人一定去这些公司。

统计自 317 份脱敏校友证言

Deloitte

6 位校友

岗位:Graduate Program · Graduate Consulting · Platform Engineer · Web developer · Platform engineer

Zerologix

4 位校友

岗位:Frontend Dev · junior frontend developer · Front-end Developer · Full Stack Developer

Servian

4 位校友

岗位:Full-stack Developer · Data Engineer · Consultant

关于这块数据,我们说实话

雇主墙来自脱敏毕业生证言(testimonials)的整体分布,无法关联到具体学员或其所选课程;仅作为毕业生去向的总体社会证明展示。

我们没有"某位学长选了这门课、后来进了哪家公司"这种可查询的个人去向档案 —— 校友证言是脱敏的,无法关联到具体的人或他选过的课。所以这里只给整体分布,不给个人路径,不编。