第一学期我一共选修了7门课程,课程类别比较混杂,涉及到了数学,电气工程和计算机科学的课程。毕竟作为一个大四的学生,我还是想增加一下自己的知识广度。虽然在官网上这些课程都显示的是全英语授课,但实际上课的时候教学语言还是由授课教授来确定的。
官网上的选课列表(L3为全英语授课)
当我走进第一节机器学习的课堂上时,我就知道这门课应该是过不了了。PPT首页我就只认得个年份和老师姓名,其他的就不知道在说什么了。你们可以想象我第一堂课全程听克罗地亚语授课,我的认知就停留在看图猜老师讲的是什么。
克罗地亚语授课的机械学习
幸运的是,我下课问教授是否可以英语授课,教授说他已经安排了另一个小班教学是英语授课的,可能邮箱没有通知到我。我的心里顿时松了一口气,终于有机会通过了,哈哈哈哈哈哈哈。这位教授我会在后面详细地说,他在这一年中共教授了我三门课程,是个授课条理清晰,讲课十分热情的教授,但也是个作业狂魔!
在接下来的课程中就没有遇到授课语言的问题了,我会对这几门课程分别做个总结。首先是Operation Research,这个相当于咱们国内的运筹学,因为我在国内已经完成了这门课程,所以教授分配了我一个神经网络的课题去做。对于没有学习过神经网络的我,就要从头开始了。老师给了我一本神经网络在R语言应用上的书籍,和一个半月的时间去学习。
就是这本
这学期我也在学R语言编程,这本书能帮助我巩固R语言课程,两门课相辅相成。这本书内容还是比较多的,一共314页,但是排版很有意思,不少页上面只有草草的数行字。里面每项内容都有对应的程序,可能是版本问题,一些程序需要自己做一定的修改才能使用,顺便锻炼一下debug能力。
我分配到的project是研究Twitter上面发文人的情绪,例如
Welcome Brooke and Don and the Crew!!! Happy New Years!!!!!!
这条twitter应该被神经网络识别为开心。
当时我还没有学习自然语言的分析与提取这门课(第二学期才学习的),我在设计神经网络的时候相关知识储备不足,导致没有考虑文本文字前后间的关联(N-gram model)。最后建立了两个模型,一是从5个情绪中预测一个,二是预测文本是否属于某个情绪。第一个模型准确率只有30%+,但第二个模型准确率为70%+。这门课程让我领略到了自然语言处理的魅力,促使我在下一个学期选择了那门课程。
尝试设计的神经网络
-------------------------------------------------------------------------------------------
Project Management这门课主要是讲项目管理的理论知识,对于要常做project的同学还是挺有帮助的,我具体实践的时候是第二学期,实践和理论还是有不少的差别。总的来说,要考过这么课程还是记忆为主。
投影屏幕永远是绿色的
甘特图
这个8分的project纯粹就是组里其他大佬带我了,作为一个基本0知识储备的菜鸡要去修一个换热器,简直是要了我的命了。我只能在旁边打个帮手,比如递个扳手,拿个胶带什么的,或者干点儿体力活。我勉强能够听懂大佬们讲的构造原理什么的,其他的就是在划水了。这个模型已经是20多年前了,听说生产它的厂家都倒闭了。
就是修这个东西
-------------------------------------------------------------------------------------------
Electric Power Market应该算是和我专业最不相符的课程了,主要内容是欧洲电力市场的组成,构造,运行等等,涉及到了很多本国电力市场的特征,我就当扩充知识一听。到了潮流计算等题目的时候,还是会运用到运筹学的知识,求解最优化分配方案,这块儿对我来说就比较熟悉了。此外,我们还要掌握GAMS运筹软件的使用,来计算简单的配调结果。当时匆匆学了几节课,理解不深刻,但掌握了基本的操作。
总的来说,即使不是电气专业的学生,电力市场这门课对我比较友好,主要是是需要记忆和理解,外加一些不是很复杂的计算。
腿长两米的授课老师
老师一直在重复的一张PPT
-------------------------------------------------------------------------------------------
Machine Learning可以算是当下最热门的课程之一了,我非常惊喜地发现Snajder教授依然为我们10个留学生单独开设了一堂英语课。小班教学,教授能照顾到每个人,有问题当时就可以提出来,上完一堂课基本上都能理解授课内容。他上课是没有PPT的,而且对每个知识点讲解的都清楚,会从相关知识的起源,到演变,最后到为什么要这么做都告诉你。碰到我以前学过的知识,我会恍然大悟,觉得那时候都是死记硬背,没有真正地理解知识。
这个同国内的区别还是蛮大的,国内上课的时候教授强调的是你要记住这类题目就要这么做,而鲜有告诉你为什么要这么做的。这也导致了我知道如何应对考试,但别人要问我个所以然的话,我大概是答不上来的。
课程到了后期,我们会有编程作业,让你把学到的知识运用到程序中,理论和实践的结合比较好。本来我的编程能力一般,这门课也促使我强化python编程能力。稍有些遗憾的是,英语授课时间比正常上课时间短,没有讲完课程大纲的全部内容,但总之还是收获满满。
有趣的是,教授每节课还会向我问一个中文词汇,并且写到黑板上。
离黑板不足半米的距离
-------------------------------------------------------------------------------------------
Introduction to R Programming Language是统计学学生的必修课程,我硕士阶段打算进修相关方面的专业,这门课就是必备科目了。本课的教授还专门为此写了一本书,他每完成一节课,留一次作业,同时会更新书目的一个章节。他的书是比较浅显易懂的,而且从最基本的知识点开始讲解,由浅入深。通过11次作业,如果都正确完成了,能拿到课程一半的分数,那学习起来也就很有动力了。
这边的课程总是伴随着project,这门课的最后我们同样需要上交一个数据处理的报告,在这个报告中我们必须正确清理,处理和分析数据,算是对前面所有课程的一个总结吧。这个project占总分比为15%,相比之下期中和期末考试的成绩影响就不大了。
教授数目的第一章
最后的这个LabView是个工科软件,要求你必须掌握基本的电路知识,我学习起来还是比较吃力。由于ECTS只要2分,我就处于半放弃的地步,还好老师最后高抬贵手,让我通过了。
第一学期的学习按部就班的完成了,虽然中途经历了一些挫折,最后的成绩还是比较满意的。上半学期的学习生活是很充实的,完成了7门课程,虽然我在国内只需要再修一门课程就够学分了,对我来说实际压力不大,但我不想让我的大四生活太颓废了。同样,作为第一届来萨格勒布FER学院的中国留学生,也得为祖国挣些脸面不是。
第二学期是要完成国内大学的毕设才可以毕业的,当时我头铁的选了8门课程,还是太年轻啊,不知道自己面对的是什么。当然我没能全部完成这八门,其中两门课程因为疫情原因没有开设,一门课程是克罗地亚语授课无法完成,我又放弃一门课程,所以最后我只完成了如下的四门课。我以为四门课程外加毕设压力就小多了,我再次年轻了,这时候就不得不提Snajder教授了,他的一门课可以顶两门来上,后面我会娓娓道来。
第二学期完成的课程
首先是Artificial Intelligence,也就是最近几年的热点话题——人工智能。不得不说Snajder教授的精力旺盛了,他每周同时录制克罗地亚语和英语的课程,每个课件都超过三个小时,而且他的英语口语非常清晰标准,感觉就是母语水平的那种,这让我在听课方面毫无压力,甚至可以倍速听课。
同时Snajder教授的要求要是蛮高的,首先是每堂课必有的课堂小测,这个小测是计时的,回答的越快得分越高,回答的越慢得分越低,回答错误不得分。我记得每次做小测的时候都是高度紧张,尤其是等待每道题结果的时候,折磨人啊!小测的内容不是能在PPT里面找到的,都是建立在你理解内容的基础之上,问深层次的问题,你从来不知道老师会出一道什么样的题目。
小测神器
期中期末考试都会进行,我也不惊讶,但是他的期中期末考试如果答错了题目是要倒扣分的!也就意味着,你辛辛苦苦完成了考试,有可能得到一个负分。当然老师是算好了期望值的,就是为了避免你猜答案,因为都是单选和多选题。所以每次我遇到不确定的时候,我就开始纠结了,脑子中与自己在博弈,每道题都是一失足成千古恨啊!
日常的编程作业肯定不能少啊,人工智能里面学习到的主要算法统统都要程序实现,并且通过老师所有的测试集,除此之外还有附加题目。每次编程作业都要花一周多的时间才能完成,总会有遇到边界条件没处理好的情况,无限重复debug过程。例如,下图中光老师给的instruction就有10页,审个题目就要好久,真不知道当时是怎么熬过来的。
兜兜转转,最后还是很幸运的考过了AI,感谢教授高抬贵手!
每次作业都是个大文件包
-------------------------------------------------------------------------------------------
紧接着就是本学期Snajder教授的第二门课——Text Analysis and Retrieval,就是我在前面做神经网络的时候应该先学习的那门课。上课的第一天,教授就告诉我这门课不用考试,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈,我当时内心笑了这么久。然而,天下没有免费的午餐,教授要求这门课三个人一小组写一个论文,完成答辩,并且发表出去。等等!怎么听的有些耳熟,这不就是毕业设计加发表论文的流程吗???不仅国内的毕设没有完成,国外还增加了一个。
没办法了,既然选择了这门课,只有硬着头皮上下去了。不得不说Snajder教授的教学方法还是多变且创新的,这个课前半程授课方式是教授录制相关的课程,同时每节课发一个阅读材料,然后通过每节课依然不变的小测来判断你有没有好好听讲和研读材料!这时候又要赞叹一下Snajder教授的精力了,他同时还上着双语的AI,还要录制这个课程的视频,然后每一个阅读材料都做了精心的标注,我怀疑他不睡觉的吗?
课程的后半程每节课前一周会发一篇论文,我们需要对每篇论文写一个总结,视频课堂上教授会针对我们不懂的地方进行解答,然后再帮助我们梳理一下整篇文章。这样的好处是把每节课的知识点通过当今前沿的论文来传授,让我们看到相关的知识是怎么发展的,能有哪些应用。当然,我也有理由怀疑他实在是不想录课了,不仅录课花时间,每次上传YouTube也都要审核好久。
这门课的大boss是论文,我和认识的一个德国朋友以及一个西班牙朋友迅速组成了三人project小组,一起完成这个作业。也正是从这门课开始,我学习如何应用project management的技巧,这方面得益于我的德国小伙伴。每次开会我们都有个会议报告,每个人轮流来记录会议的内容,用的软件是Confluence,它大概长下图这个样子。会议都有主持人,会议记录员,时间记录者和问题提出者,大家轮换充当不同的角色。会议记录的内容可以设计不同的表格,根据会议需求而定。一开始的时候,我们用的不熟练,每次都要花费3个多小时才能完成一次会议。后来大家渐渐习惯了Confluence,速度加快了,它的优点也凸显出来了——每当我们想回顾上次会议的内容时,直接打开页面就一清二楚了。
会议记录页面Confluence
在分配任务的时候我们用了另一个软件加Jira,这个软件可以细化你的任务名称,合作者,任务子列表,经办人,审查员,优先级,截止日期等等。每周你可以通过Jira查看自己的任务,并且更新任务信息,组内的所有人都可以看到你的进度,或者遇到了什么问题。
任务分配软件Jira
如果每次开会都要打开不同的软件,就会显得很麻烦,我们利用另一个软件slack可以整合多种功能,并且也包括群组和个人交流功能。通过下图的slack界面可以看到,你可以同时加入不同的群组,群组内部还可以建立频道,还可以关联其他软件如Confluence,Jira,YouTube,GitHub等等。可以说slack帮助我们简化了交流的方式,也整合多项重要的功能,是我们得力的帮手。
slack
最终经过四个月的努力,两次修改,我们的论文和答辩如期完成了,而且获得了接近满分的分数!教授还在课上表扬了我们这个跨大洲的合作小组,算是对我们最好的肯定了。
第一篇论文
答辩PPT
-------------------------------------------------------------------------------------------
第三门重量级课程就是Digital Image Processing and Analysis,终于不是Snajder教授的课了。但是!但是!但是!这门课的教室第一节课就告诉我们要写一个论文,然后进行答辩!何曾的相似啊,这不就是另一个毕业设计吗,只是不用发表了。然而这还不算什么,期中期末考试如期举行,project只占35分,我当时一口老血就喷了出来,我的毕业设计还没动笔呢。
忍着内心的悲痛继续开始另一个论文的书写,这次组内是五个人,仍然有我的德国小伙伴。我们采用了相同的project management方法,还是跨大洲的合作方式。辛亏我的德国小伙伴非常给力,这里要夸夸德国小伙伴的努力程度了。半夜一点叫我去他宿舍改程序,一直改到凌晨五点钟,他晚上只睡了一个小时,就起来继续学习了。总的来说小组里面没有很拖后腿的组员,完成起来相对比较顺利。几乎和上一篇论文相同的时间节点内,我们也顺利完成这门课程的论文。
DIPA的论文获得了满分,当时看到分数还是炒鸡开心的!
第二篇论文
答辩PPT
-------------------------------------------------------------------------------------------
最后一门chess就是娱乐课程了,学习了一下国际象棋的玩法,然后完成几次小作业,最后参加学院组织的锦标赛就能获得满分,相当于给自己的生活增加一下趣味。
一直被电脑虐,从未获胜过
回顾大四这一年的学习生活,我自认为算是没有浪费吧。
完成了12门课程(加上国内的一门)
书写完成了3篇论文(发表了一篇)
做了6个project
申请到了国外的研究生
学会了任务管理软件
加强了小组合作水平
锻炼了英语口语水平