Module Choice Advice in Year 3
🪶

Module Choice Advice in Year 3

大三想学的东西很多,但坑也踩了不少,于是就有了这篇没什么技巧但是真情实感的测评。

写在前面

我一直觉得帝国理工的大二是最难过的 - 需要好长时间消化的主课,来者不善的选修课,期中以及假期结束后疲于面对的 midterm 和 January test,考试季令人窒息的复习 workload,以及最后project的时候开摆的一群队友或者是过于放养的 supervisor 们。于是当我拿到大三的选课列表之后,我确实因为能够甩掉一些我不想学的科目,没有各种小测验,不用做 group project,并且专注于我感兴趣的科目而高兴了好一会儿。确实,我的大三比起大二来说开心了不少,虽说不是一帆风顺,但我还是很享受整个过程。
数学系大三的选课不需要在一开始就决定,而且学校会通过 survey 在每个学期会给你最多十门课的register+旁听权限(这是因为学校假定你一学期最多同时上五门课作为最后的考试科目,同时也给你另外最多五门课的旁听权限,你可以在学校日程表以及bb上面获取上课时间,课程资料以及信息),你只需要在第二学期期中前确定最后参加考试的八门课即可。因此,我在大三每个学期一开始在数学 + 计算机系都选了不少感兴趣的课同步进行。我很 enjoy 大部分选择的课,但也由于选课太多踩了不少坑,drop 了一些课。有些课看似友好而且容易上手,实际上作业与上课内容走的是两个极端,老师甚至在教课的时候自创一套 notation 让你摸不着头脑;有些课从课程标题看起来浅显易懂,但实际上一周五个 video 的 workload 一点也不轻松;当然,更多的暴雷与后悔发生在复习或是考试当中 :-(
一个让我顿时后悔选择 Numerical Analysis 的公式
一个让我顿时后悔选择 Numerical Analysis 的公式
正好我的一个朋友也正处于 suffer from group project 以及纠结大三选课的过程中,这坚定了我完成这篇测评的想法。我希望通过这篇文章能够帮她在正式选课之前做一个初步的扫盲和排雷,也希望通过我这一年的生活学习经历能带给她,或者扫到这篇博客的有缘人一些其他东西。
可能很多人,包括我在内,都认为帝国理工的课业强度和伦敦的快节奏生活压得人喘不过气来,这种感觉在这个伴随着各种意外和失望的夏天更是令人感觉自闭。但我也在大三这一年尝试做出一些改变,即便每个学期都被大量的 lecture 和 coursework 占据着,我也尝试着在忙碌之中和朋友,或是自己寻找一些生活的乐趣。或许是对于熬夜赶 due 坚持不住的朋友的一句 “你怎么睡得着的” 的吐糟,或许是在 cousework 结束之后独自去看的一场电影。希望我能够通过我大三这一年的经历,通过这篇博客,让她从一个轻松愉快的选课建议开始,期待着一个与她印象中不同的大三。或者说,给她一些对抗这个世界的勇气吧。
希望这篇文章对于每一个有缘读到它的人都会有帮助。

课程分类

帝国理工数学系大三的课程主要分为三大类:
  • 应用数学及数学物理 AMMP (Applied Mathematics & Mathematical Physics)
  • 纯数学 Pure Mathematics
  • 统计学 Statistics
 
AMMP 大类下有具体如下的分支:
  • 流体 Fluids
  • (建议选择)数学方法 Mathematical Methods
  • 动力学 Dynamics
  • (建议选择)数学金融学 Mathematical Finance
  • 数学生物学 Mathematical Biology
  • 数学物理学 Mathematical Physics
  • (建议选择)应用偏微分方程、数值分析与计算 Applied PDEs, Numerical Analysis & Computation
    • 注:该分支下大部分课程为project-based course
 
Pure 大类下有具体如下的分支:
  • 数学分析 Analysis
  • 几何学 Geometry
  • 代数学以及离散数学 Algebra & Discrete Maths
  • 数论 Number Theory
  • 注:该分支大多数课程(应该是个正常人都知道)难度较大,请慎重选择。
 
Statistics 大类下一共有七门课可以选择,没有具体的细分(建议选择)。

课程测评

先来讲讲几门我推荐的课:

MATH60024: Computational Linear Algebra (Term 1)

分支:Computation
Coursework 占比:100%
如你所见,这门课是一门数学与编程相结合的课。虽然听起来 Linear Algebra 和 Computation 都不像什么友善的科目,但别担心,这门课将会通过研究矩阵来讨论各种矩阵算法 (QR, LU, PLU Factorisation, Eigenvalue Decomposition etc.)及其算法的实现,同时在每个 coursework 中使用这些算法的应用,例如 Polynomial Fitting 以及对于 Banded Matrix的 LU Factorisation. 很显然,这些内容与大二的 Numerical Analysis 的部分内容有着重合,相信重新捡起这些知识难度并不大。这门课也不会有太多抽象代数的内容,更多的是强调你的线性代数基础在分析问题以及编程时的应用。
Weekly Exercises 中的 Python 函数实现
Weekly Exercises 中的 Python 函数实现
这门课的 Assessment 分为 35% 的 Weekly Coding Exercise 以及 65% 的 Time Limited Coursework。Coursework每三周一发,每个 coursework 限时三天完成。同时我们需要在 deadline 之前完成对应的 coding exercise 给 GTA 进行评分(一般来说认真听课拿到 70+ 还是不难的)。这门课的老师虽然讲课内容不能算特别出彩,也时不时会犯一些 careless mistakes, 但是我见过回 Discussion Forum 最勤快的老师 - 你提出的每个问题不出两小时应该都能得到解决。总体上来说这门课的体验还是不错的。
An Example of the Coursework-Styled Questions and Answers
An Example of the Coursework-Styled Questions and Answers
如果你想了解这门课的更多内容,希望我对于这门课的深入介绍也能够为你提供帮助。

MATH60005: Optimisation (Term 1)

分支:Applied
Coursework 占比:10%
可能看到这个课程标题的时候大家一般想不出来它具体教什么 - 但其实这门课讲的东西很直观,即在给定条件下求目标函数的最大/最小值的数学方法。我们熟知的对函数求导取零点就是一种优化方法。这门课主要讨论多元函数在多变量条件下的优化方法。我们会从最简单的 Unconstrained Optimisation 开始学习求解 Optimal Solution 的方法以及背后的数学理论,然后转向更贴近实际问题的 Constrained Optimisation (即对于函数变量 加上限制条件,例如每一个变量 的值都不能小于极值 ),同时对于目标函数的 Lipchitz Continuity, Convexity, Stationarity 以及 Optimality Condition 进行讨论,并且从离散和连续的角度讨论求解 Optimal Solution 的数学方法。最后我们会对于优化问题的对偶性进行讨论,即如何将一个问题转化为另一个与之关联的对偶问题,并通过解决对偶问题来解决原问题的理论以及数学方法。
Coursework: 使用Optimisation Technique去除噪声 - Answered by me
Coursework: 使用Optimisation Technique去除噪声 - Answered by me
我很喜欢这门课的一个原因是因为它能够让你在其他应用学科上更加的触类旁通。试想一下,我们在统计中求解 Least Square 问题就是尝试最小化 的值,即尝试将它转化为一个Optimisation Problem. 这门课让我在学习其他学科的时候更加清楚为什么要使用一些特定方法对于问题进行求解,同时这些数学方法在其他学科的使用也让我在学习Optimisation 的过程中更好理解它是怎么被使用的。同时这门课的老师在讲课和准备 Typed Notes 上都下了功夫,我个人认为即使不去听课看笔记也能够学懂所有东西。但是这个老师的字迹比较潦草,所以导致我在阅读随堂笔记的时候总会时不时停下来辨认一些单词 :-| 总体来说,我个人还是非常推荐选择这门课的。

MATH60026: Methods for Data Science (Term 2)

分支:Computation
Coursework 占比:100%
这门课将主要介绍各种机器学习算法背后的数学以及算法的实现,个人认为这门课对于入门机器学习是一个不错的选择。这门课的老师在理论知识上的讲解非常详细,但是每周的内容会偏多,需要一定的时间进行消化。
我个人认为这门课还是非常有趣的,在我不断往下学的过程中,随着老师将一个个神秘的概念转换成我们熟悉的数学概念和问题,我越来越感觉对于“机器学习”的神秘面纱在不断的揭开。例如各种预测问题在机器学习领域中都可以归为回归或是分类问题:我们可以 either 使用已知的数据集构造一个回归模型,从而对于抽取的未知样例进行结果的预测(回归问题),或是通过在已知数据中通过一系列有效的方法总结规律,从而对于未知样本进行分类(分类问题)。同时,由于我们生活中接触的大多数信息都能以数据的形式储存,你会逐渐发现这门课里学到的许多东西其实和我们的生活息息相关 - 例如对于垃圾短信的分类与过滤,对于动物图片的物种分类,甚至是对于产品价格的预测。
Exercise: 对于手写数字的分类/识别
Exercise: 对于手写数字的分类/识别
这门课是我学得最投入的一门课 - 不仅仅是因为我很喜欢数据科学这个方向,这门课内容理论+实践相结合的风格让我能够在每周学习一个知识点之后通过 unassessed coding exercise 马上进行应用,它也因此在我的学习过程中带来了许多的成就感。由于 coding 部分将会是这门课的难点之一,我认为每周的 exercise 还是值得一做的,这对于完成 Coursework 有着很大的帮助。这门课总共会有两个Coursework,难度和workload会逐步上升,但是TA给的分数比较nice,总体来说是一门值得选择的课。
Coursework: 对于图像的分类以及特征提取
Coursework: 对于图像的分类以及特征提取
同时我正在回顾去年Data Science的课程内容并尝试整理成笔记,欢迎定期追踪我的Blog.
接下来是不同大类的课程测评(由于篇幅原因,评论将不展开细节):

AMMP

推荐选择
MATH60011: Classical Dynamics (Term 1)
分支:Mathematical Physics
Coursework 占比:10%
简评:
  • 这门课看起来像物理,实际上是套着物理的外衣在做Calculus
  • 内容与大二MVC的 Part 2 Calculus of Variations 类似
  • 课程内容较少而且每周的workload也比较轻松,大概每周预计学习时间在1h左右
  • 练习/考试题目一般根据给定的ODE对于物体的运动状态进行分析(类似于解微分方程),无需通过题目对物体受力分析
  • 练习和考试一般都较为简单,should be an easy 70+
MATH60013: Mathematics of Business & Economics (Term 2)
分支:Mathematical Finance
Coursework 占比:10%
简评:
  • 与 A Level Econ部分内容重合,对于学过Econ的同学比较好入门
  • 课程内容分为 微观 + Markets & Competitions + 宏观
  • 练习+考试内容难度适中,考试中会时常有送分题(例如考察定义),对于Finance感兴趣的同学可以考虑选择
MATH60023: Numerical Solution of ODEs (Term 1)
分支:Computation
Coursework 占比:100%
简评:
  • 使用 Matlab 实现各种 numerical methods,就算没有 Matlab 编程经验上手也比较快
  • Coursework不需要完全看完所有课也能做,但是计算量偏大
  • 每两周一个CW,具体打分较为宽松
避雷
MATH60012: Mathematical Finance: An Introduction to Option Pricing (Term 2)
分支:Mathematical Finance
Coursework 占比:10%
简评:
分支:Mathematical Finance
Coursework 占比:10%
JUST DO NOT CHOOSE IT!!!
  • 上课内容与notes/练习题严重脱节,前半部分的上课内容被过于简单化了
  • 后半部分课程内容不知所云
  • 整个notes有一百多页,复习的时候看notes非常耗时间
  • notes后半部分有一系列老师自创的notation,非常搞心态
  • 考试题目难度波动极大,2021-2022学年的考试题纯粹在恶心人
MATH60022: Finite Elements: Numerical Analysis & Implementation (Term 2)
分支:Numerical Analysis
Coursework 占比:50%
简评:
  • Theory Part上课内容顺序较为混乱,需要花预期1.5倍的时间理解整个课在干什么
  • Applied Maths的外壳下全是数学分析,比大二的Differential Equations更加难懂
  • Implementation Part需要额外花接近两倍的时间理解内容,coding and debug
  • 虽然最后的考试不算太困难,但是没有完全学懂这一门课

Pure

难度尚可的课程
MATH60038: Graph Theory (Term 2)
分支:Discrete Mathematics
Coursework 占比:10%
简评:
  • 对于新手较为友好,无需特定prerequisites
  • 老师上课的风格比较有趣,内容难度适中 (虽然学它对于未来除了研究方面来说并没有什么大的用处)
  • 老师讲解的内容大部分易于理解(除了最后两章)
  • 整体内容较少,全部notes共34页,对于复习较为友好
避雷
MATH60028: Probability Theory (Term 2)
分支:Analysis
Coursework 占比:10%
JUST DO NOT CHOOSE IT!!!
一句话描述:比测度论内容更多难度更难
MATH60032: Geometry of Curves and Surfaces (Term 2)
分支:Geometry
Coursework 占比:10%
简评:
  • 上课内容难度尚可,大部分内容是showing something rather than proving something
  • 整体内容是大二Real Analysis的精神延续
  • 但是考试题目难度和上课难度差别较大,同时考试会考很多proof

Statistics

总体来说大三的Stats并没有太多踩雷的点,可以放心选择大部分课程。
MATH60043: Statistical Theory (Term 2)
coursework占比:10%
简评:
  • “大一统”式的课程
  • 相当于大一大二 statistics modules内容的一个集合,但是会以更加系统的形式讲解一遍,同时内容深度也会更深
  • Not a proof-demanding subject
  • Coursework和考试题目难度适中,但是Coursework给分比较严
MATH60045: Applied Probability (Term 1)
coursework占比:10%
简评:
  • You well have Professor Veraart again - your year 1 1st term probability teacher
  • 课程的内容主要研究马尔可夫链以及其应用,如random walk,gambler’s ring, birth process以及brownian motion等
  • 课程内容较多,每个星期需要花较多时间消化内容,但是内容讲解非常细致
  • Coursework是两个Quiz,但是难度较低,拿到接近满分不是什么问题
  • 虽然课程后半部分的内容如brownian motion较难,但是考试题目难度适中
MATH60046: Time Series Analysis (Term 1)
coursework占比:10%
简评:
  • The lecturer, Dr Ed Cohen, is good in teaching but he talks a lot in his video.
  • 课程的内容主要研究如何构造不同的统计模型对于时间序列进行分析以及预测,这门课的内容同时在量化金融分析等方面有较多的应用,对于Quant/Finance感兴趣的同学可以考虑选择这门课
  • 课程内容较多,每个星期需要花较多时间看课,但是内容讲解非常细致
  • Coursework是computational exercise,要求使用代码实现几种分析模型,并对于分析结果作出解释,难度适中而且给分较宽松
  • 考试题目量较大,有做不完一整题的风险
MATH60047: Stochastic Simulation (Term 1)
coursework占比:25%
简评:
  • 课程的内容主要研究“随机模拟”这一行为背后的数学以及实现随机模拟的方法,例如生成随机数,模拟生成随机变量满足特定的statistical distribution等等。
  • 每周的内容不是很多,同时视频的讲解非常清晰。但是由于problem class的老师并不是授课老师,所以讲解不是特别清楚
  • Problem Sheet is mostly about R programming,同时PS对于Coursework和考试非常重要(因为考试会给一段R code让你写预期输出,或是在代码空缺处进行填空)
  • Coursework是computational exercise,要求使用随机模拟方法生成随机变量满足特定的distribution,同时使用statistical tests对于生成分布的正确性做检验。Coursework的打分相对来说比较严格,如果R code写得不好或者没有清楚标明reference都会被扣分
  • 考试题目量较大,有做不完一整题的风险