利物浦CS大三课程介绍

Y3-S1

COMP201 Software Engineering I (必修)

Workload:★★☆☆☆ (2/5)

课程收获: ★★☆☆☆ (2.5/5)

老师:Sebastian Coope

涉及到的语言:Java

非常理论的一门课,lecture主要就是讲ppt上面关于软件工程的概念(这门课ppt大概有500多页)。课程内容涉及的还算比较广,介绍了Requirement analysis, System models, Specifications, UML等等软件工程的知识。有三个Assignment,一个是画Use-case diagram,一个是画各种UML图(例如class diagram,sequence diagram和activity diagram),剩下的是一个代码作业,用来实现第一个Use-case diagram。这个代码作业只占比5%,语言用的是Java,老师会提供代码框架,我们只需实现里面的一些功能就行,难度很低。值得吐槽的是这个代码作业要求十分不清晰,task sheet和老师给的代码注释里面有很多不一致,而且不提供测试用例,导致很多地方只能靠自己揣摩老师的意图,最后分数也是因为要求给的不清晰而被莫名奇妙扣掉很多分。另外前面那两个Assignment给分也一般般,也是会在一些地方莫名其妙扣你的分。期末考试就是ppt概念背诵考试,ppt上的概念记得越熟,分数越高。

COMP207 Database Development (必修)

Workload:★★★★☆ (4/5)

课程收获: ★★★★☆ (4/5)

老师:Rasmus Ibsen-Jensen

涉及到的语言:SQL

个人认为是利物浦大三上四门课里体验最好的一门课,老师也非常负责(虽然他的口音非常难听懂)。这门课主要是介绍数据库理论方面的知识,相比于大二在西浦上的那门CPT103 Intro to Database会深入很多。课程内容涉及SQL语言,事务,锁,日志,Query Processing&Optimisization,分布式数据库等。这门课因为有很多新的知识,所以一开始学起来会感觉难度比较大,但是学到后面会渐渐对所学知识点有了更深的理解。课程设置比较完善,每周都会有大量的quiz题供我们练习巩固。这门课考核方式是一个assignment,一个每周都会有,考察那一周知识点的weekly assessment(4道选择题)。Assignment就是用SQL来写一些算法题,一般是有7道题,前面5道是easy难度,第6道是medium,最后一道题有一定难度,需要好好思考才能写出来。期末考试是30道选择题,有概念题也有计算题。这么课想要考高分需要把平时的quiz题,weekly assessment和mock exam的题目都理解才行。

COMP218 Introduction to computation theory (选修)

Workload:★★☆☆☆ (2.5/5)

课程收获: ★★☆☆☆ (2/5)

老师:Dominik Wojtczak

涉及到的语言:无

没有代码作业,真·完完全全理论的一门课。课程内容分为三大块,分别是regular language, context-free grammar和Turing machine。这门课上手难度很低,前几周的课非常简单,但是最后一部分Decidabilty and Undecidability那块会比较困难(好在期末那块就考两题左右)。这门课个人感觉lecture讲的一般般,但是tutorial一定要每周都去,因为只有在tutorial才会告诉你一些做题方法。考核方式一个是每周去Automata Tutor(ATv3)这个网站上做题,可以尝试无数次直到做对为止,所以这10%的分数相当于送分。另外两个平时分是由两次线下class test组成,难度不高,但是时间比较紧张,所以想要考高不仅需要知识掌握好,还得有一定的做题熟练度。期末考试40道选择,难度和class test差不多,不算太难的一门课。

COMP219 Advanced AI (选修)

Workload:★★☆☆☆ (2/5)

课程收获: ★☆☆☆☆ (1/5)

老师:Xiaowei Huang

涉及到的语言: Python,Anaconda

利物浦大三上最水的一门课。。。课程名字虽然叫Advanced AI,但实际上一点也不advanced,因为课程内容讲的都是10几年前的基本机器学习算法,例如KNN,朴素贝叶斯,逻辑斯蒂回归等等。课程主要就是以Machine learning algorithms为主,但也会涉及到一些最基本的Deep learning知识比如CNN,梯度下降,Back propagation等等,课程的最后也会涉及到一点贝叶斯网络的概念。如果你之前已经有过AI方面的知识,那么这门课就完全没有去上的必要了。Assignment是写一个adversarial network,同样老师会给出代码框架,我们需要做的就是写一个attack algorithm以及训练算法。这个Assignment难度很低,而且因为代码框架里很多内容都写死固定住了所以没啥操作空间,最后给分也很高。期末考试也很简单,考一些基本的AI方面的知识以及一些机器学习算法的计算。考题有许多往年期末卷子的原题,所以把老师给的两套往年卷子做一做就没啥大问题。

COMP229 Introduction to Data Science (选修)

Workload:★★★★☆ (4/5)

课程收获: ★★★☆☆ (3/5)

老师:Phil Smith

涉及到的语言: 无,纯数学

基本上是一门数学课程。主要讲了一些基础机器学习算法原理中运用到的数学知识。前一半课程内容很简单,基本上是高中数学内容,涉及基本的算法像是knn,高斯回归等。后半内容开始变得复杂,涉及到线性代数和几何定理,主要涉及学习pca和svd的数学原理,这两个是在机器学习中用来降维的主要方法。最后考试的一个大题就是要求你手算模拟pca和svd的运用过程。你如果想要深入学习一些有关 cv 算法的知识可以选这门课。另外这门课很多内容和COMP219重合,基本上219里老师含糊过去没解释的数学知识这门课讲了大部分,所以如果你选了219,我推荐你选这门课。但是话说回来219那门课就是一坨屎,我不觉得很多人还会选那门课哈哈。最后这门课老师还算认真的,给学生的笔记很详细,基本上你过一遍课堂笔记和tutorial,考试挺轻松的,但是就是内容是有点多的,你还得记一些数学公式,考试是不会给公式的。

Last updated