UCR MSCS 关于课程的一些个人经验分享

6921
19
分享一下我在UCR MSCS期间上过的课程。评价非常主观,仅供参考。

时间:2021 - 2022学年

CS 201 - Complie Construction. Prof Zhijia Zhao的课程设计非常聪明,整个课程集中在Compiler Optimization部分,这样无论有没有compiler基础,都可以很好的参与到课程里来(当然也是因为老师自己的研究领域就是data flow)。老师对待课程内容非常认真负责,讲课极其清楚。3次作业,简单了解LLVM,并实现课上将的一些简单算法。如果对阅读documentation不排斥的话,整个过程能实实在在的了解LLVM和学会一写简单的中间层优化算法。个人强烈推荐。
CS 202 - Advanced Operating Systems. Prof Hyoseung Kim为人很nice。给分也非常nice。我修这门课期间,他的期中考试出的偏难了,导致大家分数不太理想,于是他很快就curve,把分数调高了。然后还很委屈的说,写着题目明明在我的课件里都有,还把证据给大家看了一下... 这门课基本就是带着大家读一些经典的paper,了解各种OS的设计理念。我个人对OS零基础,读起来有些吃力。3次coding作业,要求在xv6上实现一些system call。对零基础的我还是很有难度的。网上的documentation读起来也不是很懂。总体感觉,要对OS有一定理解才方便理解,可以先上一下undergrad版本的OS再上这个课。
CS 210 - Scientific Computing. CS应用背景下的线性代数。Prof Tamar Shinar的板书很清楚,听她的课感觉像听故事一样很容易follow,课程内容覆盖很多细节,解答了很多我以前在Machine Learning方面见过,但是似懂非懂的问题。(当然这门课不是关于machine learning的)如果学过线性代数,想复习一下,那么值得一听。
CS 214 - Parallel Algorithm. My personal favorite. 那些常见的算法如何并行实现的。Prof Yihan Sun & Yan Gu夫妇的课程。我选的时候是Yihan上课。这两位教授是领域大牛,师从名门。这门课就是他们的研究领域的基础内容,跟他们的导师的MIT课程很类似。课程设计非常用心,课程网站点cs.ucr.edu。说是打开了新世界的大门也不为过。但是!这门课的难度很高,workload也很大。毕竟,在实现并行之前,要求学生对串行的算法有一定程度的理解。所以仅建议对自己的算法基础有信心的同学来选。另外,务必准备好拿出比其他课程更多的时间来学习这门课。好在,老师提供了很多bonus points来让你提高分数,总分是可以超过一百分的。因此,只要基础好肯花时间,就不用过于担心分数。多做bonus是可以弥补分数的。如果所有bonus都尝试做一下,大概率可以拿到一个满意的分数。对算法有追求的同学不要错过。零基础的同学建议先选前置课218,再选214。

CS 218 - Design and Analysis of Algorithms. 另一门来自Prof Yihan Sun & Yan Gu的课程。我选的时候是Yihan上课。即使作为必修课里面最硬核的一门,整个课程设计还是难度偏高。课程大纲看cs.ucr.edu,内容覆盖分治,贪婪,随机算法,动态规划,图。作业分成written和coding,coding又分成基础题和挑战题。written作业基本都是算法设计和复杂度分析,coding则是类似leetcode的算法实现,需要跑通老师设计好的若干test cases。基础题是必须完成的,挑战题做的越多bonus越多。如果用leetcode标准的话,难度显然大于medium。跟214类似,bonus还是很多的,多花时间可以拿到更高的分数。强烈推荐给有刷题计划的同学。

CS 235 - Data Mining Tehcniques. 要求in person上课,但是课程会录像,所以也可以当成online课程来上。Prof Vagelis Papalexakis讲课轻松有趣,深入浅出,如果对于machine learning已经有一些初步了解,那么听他的课会很好的把脉络都串起来,起到很好的梳理效果。对零基础的同学来说,可能内容会显得有点杂。给分很厚道,workload不大。只要按部就班写作业就好。平时作业两次paper review,一个team project。有兴趣搞research的也可以自己propose topic,会有额外加分。总体来讲是一门非常友好的课程。

CS 236 - Database Management System. Fully remote course. Prof Mariam Salloum毫无疑问是非常nice的老师,这门课给分和workload都很友好。作业是paper review和coding。第二次coding作业质量很高,要求搭建一个简单的ETL pipeline,实操一遍之后有了实在的认知。但是,我选课期间,教授好像忙于一些个人的事务,习题讲解环节和考试安排方面感觉没有准备的很好,经常会出现一些安排混乱和讲解不清的情况。虽然事后都会想办法修正,但是确实有点浪费时间。总体来讲是一门非常友好的课程。

CS 242 - Information Retrieval and Web Search. Fully remote course. 乍一听感觉好像没什么内容,但是其实内容还是挺有趣的,涵盖搜索引擎的搭建原理和近些年兴起的语言模型的内容。Prof Vagelis Hristidis说话比较慢,有比较重的口音,但是课件内容都来自于教材,听不清的部分自己看看就好。搜索引擎部分的内容显得很老旧,但是team project会要求真正搭建一个搜索引擎,这个还是非常有趣的。润色一下很适合写在简历上。给分很好,workload不大。考试是闭卷,不过内容都是平时作业里的题目改一改。总体来讲是一门非常友好的课程。

关于毕业

项目预期时长是15个月,4个quarter,一旦满足毕业要求就会被要求立刻毕业。所以有必要尽早对自己的毕业时间做规划。如果希望延迟毕业,学校也提供了相应的方式,比如选择一些不计入毕业学分的课程,这样可以晚些满足毕业要求,或者改成项目毕业或者论文毕业,这样在答辩之前都可以继续留在学校。具体方式是否可行,要跟advisor问清楚。三种毕业方式(考试,project,论文)很灵活。目标读博的同学可以选论文毕业。找工的同学可以选前两个。我观察到UCR近些年招聘了很多不错的教授,所以找到合适的老师做master project,也是丰富自己经历的很好方式。

其他

地里关于这个项目的信息实在太少了。由于缺乏对项目的了解,入学之前有点担心质量。但是,入学一年之后回头再看,这个项目的质量其实是超出我的预期的。
作为一个传统的CS master项目,无论目标是找工作或者读博,这个项目都提供了相应的途径和足够的资源。
由于疫情,很少去学校,同学认识的也不多。对学校周边的情况,以及我这一级的找工情况都不大了解。希望有了解情况的同学可以多多分享。
  • 49
19条回复