TUM Informatics 硕士一年课程体验

Zem's Blog
10 min readSep 4, 2022

--

一些写给tum informatics同学的选课参考

第一个学期(21/22 WS):

IN2259 Distributed System 5学分:

无bonus,课程质量不错,基本上每个重要概念都有ppt动画示意,总体来说学起来比较轻松并且内容还挺干货的,附带的习题也挺不错,基本上习题里是什么题型考试就什么题型。21/22WS网考无监考开卷考试,考试的内容也十分fair(简单)以至于我考试的时候甚至怀疑自己做错了卷子(我真的写到一半上tum exam上确认了一下我卷子没写错),总体来说挺推荐的。

IN2381 Introduction to Quantum Computing 5学分 THEO:

有0.3的bonus,3个同学一个小组,完成13次作业拿到总分的60%以上就可以拿到bonus。但是这课出作业成绩有点慢,所以为了保险,作业总是会做超掉(

总体来说也比较推荐,期末考试60分,16分就可以及格,很适合拿下的THEO课。但是高分并不特别好考,并且老师虽然很认真负责,习题出得也不错,但是学的东西和习题之间有很大的gap,对于计算机的学生来讲就要额外补很多(老师估计都没想到)的东西,主要是数学和物理。。。

我发现这边习题经常包含课上没讲的东西,但都是要考的。。。

IN2097 Advanced Network Computing 5学分:

这门课的bonus是给期末考加卷面分,虽然slide里说是能加0.6–0.7,但实际上换算成绩点,最高能加1.3,算是非常非常高的bonus了。作业超级多,总共6个tutorials加上2选1的project,tutorials 大概2周一次,每个tutorial需要提交2次,一次讲解前一次讲解后,然后两次打分平均算最后得分。tutorials总体来说不好写,有理论题也有编程题,挺耗时间的,讲解也没有录播,所以一定要参加。project总共10分被分成了4次分别提交,总体来说也挺耗时间的,评分规则感人,不是通过你过掉的测试来正算分,而是按failed掉的测试倒扣分,并且不提供测试集,需要自己设计和测试edge cases。。。

但是这一路写下来确实很有收获,并且这个chair会给往年十几年的历年题,我考前人差点给刷没了。。。可能因为作业很多,并且bonus也很多,所以其实考题挺难的(准确地说是给分特别吝啬),卷面考高分难度挺高,所以还是要做作业,不然亏大发了。。。这门课1.0的比例特别高,估计也是因为bonus加得多吧 😂

IN2309 Advanced Topics of Software Engineering 8学分:

这门课bonus最高能加1.0,5个同学一组,从硬件写到web写到上云,助教特别负责,每次tutorial课会讲理论习题和实践习题,理论习题部分很重要,考试会考。然后实践部分会讲project的实现,总体来说挺好的(但我基本上没参加过,考前是靠同学给的理论习题答案截图苟过的),还是很推荐参加的,我当时做项目调硬件的photon resistor调了好久,但凡我参加了tutorial也不至于浪费这么多时间。。。

然后讲课的话,说实话教授上课的声音非常催眠,并且我还听不太懂他说话所以直接把他的课都翘了,但是slides是不错的,所以我复习的时候直接看的slides。然后虽然这边的并没有划重点的说法,但是考试还是很讲武德的,基本上考前给的mock exam+理论习题就是考试的重点范围(注意不是全部范围)。考试给分也比较讲武德,所有看起来要背的东西背两条就够了,基本不会让你默写个五六七八条。。。这门课最后1.0也特别多,估计也是因为高bonus吧。

第二个学期(22 SS):

IN2087 Software Engineering for Business Applications — Master’s Course: Web Application Engineering 8学分:

一门比较偏项目的课,考试非常简单并且只占20%的比重。就是凑学分选的,项目内容分3块,business idea + mock up + implementation。基本上就是4个同学一组,用MERN stack从头到尾写一个网站出来。唯一特殊的要求是每个人都要全栈,所以不能只写前端或者只写后端。这门课是information system专业的必修课,但是informatics也可以选,从implementation的角度来看,informatics同学写起来确实轻轻松松,反正我写得挺轻松的,当然可能因为虽然要求全栈但是我大部分还是在写后端,前端也只写behavior,写起来比主力前端的轻松多了(至少不用调样式 😅

项目打分很慷慨,虽然有听说有人在final presentation的时候直接被教授挂掉,但总体来说打分感觉很慷慨(。同时这门课人数有限制,想选的话需要提前组队发邮件,具体的话去看课程官网

Praktikum: Advanced Systems Programing in C/Rust 10学分:

传说中的实践课。虽然我选的这门槽点满满,但总体来说,实践课真的好香(指不用考试)。单从这门课来说,这门课的和IN2259 Distributed System是一个chair的,我怀疑这个chair的风格就是非常自动化,几乎不需要助教花多少时间(指几乎没有support),然后debug日常纯靠在slack里同学互帮互助度过 😑 同时这门课不提供学习材料,只提供task描述,你的任务就是完成task通过GitHub autograding拿到分。

划重点:这门课什么都不教,完成任务是你的事。所以还是建议已经有Linux系统编程经验的同学选择,不然挺麻烦的。

现在来讲讲它的优点:

  1. 评分系统公开。评分是通过GitHub autograding来的,所以目前多少分,这些分对应的绩点是多少,都是对自己公开的,很方便自己进行安排。比如我task5直接放弃掉了最后10分(因为不值得,而且当时赶上别的事),因为我知道286–300分就已经可以拿到1.0了,没必要和这10分过不去 😃
  2. tasks麻烦但是doable,这门课的分数分布十分感人,1/3的同学挂掉了(估计是没经验随便选的),1/3的同学拿到了1.0。这门课就是很典型的,只要你能把tasks都做完,就一定能拿1.0,并且并不限制能拿到1.0的人数,基本上只要努力就可以得到自己想要的分数。
  3. 不提供学习材料。所以你可以自己去找学习材料,我都怀疑课程设计者是故意引导学生自己去看每个topic最好的教程(谢谢你stanford),基本上每个task都可以找到覆盖基础部分的很好的教程,让上手变得doable很多。
  4. 这门课21/22WS和22SS都开了,应该是每个学期都有的课,并且这两学期的8个tasks都是一样的,当然我也不确定未来会不会出新的tasks。课程的tasks在github上是公开的,基本上这个github page就包含了tum学生得到的所有support(不是),slack还是很有用的,不过需要有tum邮箱(。

缺点:

  1. 评分颗粒度太大,一个subtest其中一个小test过不了就拿不到整个subtest的分,看到有其他同学抱怨过。
  2. task描述有点模糊,比较浪费时间。同时任务要求和测试集之间还是有gap的,就是测试集感觉没那么严格(?不过测试的源代码也是公开的,所以用来debug还挺方便的。。
  3. 来自助教的support很少,ddl日期不是提前fixed的,task8的ddl和task7的ddl之间只有1周,而且好晚才讲。。。我这种ddl冲刺人差点吓死(

建议:

  1. 留足够的时间,不要低估debug的难度和over ambitious,我task2因为低估难度并且over ambitious(手写linux文件系统),一直到ddl前1小时前才写完(。交上去的代码缩进都是乱的 😂 从这一次给我吓够呛以后我再也不拖到ddl前一天再debug了。而且我看slack里,task5有一个大佬也是over ambitous打算手写hoard,结果ddl前失败了,甚至都没有拿满前30分。。就真的很亏,不要over ambitious,能跑就行(不是
  2. slack氛围挺好的,大家都会互相帮助,不过代码是不能公开的,所以大家帮忙debug的时候都是各有各的想法 😂 总体来说挺好的

总结:

  1. 虽然有优点,但是真的非常非常耗时间,估计把所有tum practical courses排workload,这门绝对是比较靠前的(
  2. 虽然很耗时间,还很麻烦,但其实又是doable并且好拿1.0的,我觉得只要你能完成第一个task应该之后八个task也没问题,不过是花多少时间的事情。。。
  3. 当然每个人情况不一样,上面都是我的个人体验,仅供参考.jpg 大佬做起来应该会更轻松,因为我毕竟不是system engineer,我上这课颇有点让我康康这是要学啥的意思(而且它是我的第二志愿!

IN2400 Advanced Concepts of Quantum Computing 5学分 THEO:

是的,我THEO学分是铁了心要从量子计算上拿了.jpg

不过这门课,除了很喜欢量子物理的人可能也不会选了吧。关于量子计算、数学和物理我准备额外写一篇来讲怎么学习,争取下学期开学的时候能写出来(。

这门课作为IN2381的进阶课,和IN2381是很像的,然后因为这门是进阶课,所以需要你IN2381也学得很好才能拿到比较好的分数,不然考试完全看不懂只能靠写公式拿公式分(但这样能踩上及格线。。

听说不错但没选的课:

注意这些信息可能有误,因为我并没上过:

IN2346 Introduction to Deep Learning 6学分:这门课我怀疑是不是所有TUM人都上过(除了我,bonus有点少只有0.3还需要做7–8次作业,但听说课挺不错的,超大课,估计每个学期有1k人左右在上

IN0037 Game Physics 6学分: 好像bonus挺高的,然后考试也还行

IN2081 Patterns in Software Engineering 5学分: 大家都在推荐我也不知道为什么

IN2227 Compiler construction I 5学分 THEO: 比较fair的THEO课,选的人挺多的,不过没有retake

IN2101 Network Security 5学分: 和IN2097 Advanced Computer Networking一个院的,应该是一个风格

IN2147 Parallel Programming 5学分: 作业设计得不错,bonus有点少只有0.3,考试好像有点难,成绩分布不太好看

总结

之后可能会再写一篇关于TUM Informatics非课程类项目的体验?但估计也是半年之后的事情了吧 😅

然后对于TUM选课我个人的经验是:

  1. 多做攻略,实不相瞒我选的这些课基本上都是被人推荐的。也就是属于TUM informatics院里风评比较好的一批课了,而院里不那么好的一批课,上起来想必是十分难过,有些课虽然叫那个名字,但上课的内容和侧重的方面并不一定是你想要的,甚至可能烂爆,所以非常建议提前做功课。
  2. 高bonus的课好于低bonus的课。因为TUM的算分机制,你可以不上课不写作业,单靠卷面分是有可能1.0的,但是根据我的经历,TUM的考试卷面1.0还是挺难的,但是考一个还行的分数加上bonus就简单多了(

--

--

No responses yet