哥大CS研究生第一学期上完4门课闲扯

avatar 377516
yyfyifan
18360
30
一个学期+一个夏天过完了,发帖扯一下上过这几门课的感觉,包括讲一下我下学期的选课。

1. CSOR4231 ANALYSIS OF ALGORITHMS by Eleni Drinea
优点:
1. 老师学术背景很厉害,非常专业。今年好像哥大还评了个什么title给她,非常棒
2. 教学认真负责,上课讲的很细,学生没听懂可以回头再重述一次(我写这条是因为很多人经常听懵,故常重复)
3. 老师使用的算法案例不是烂大街的,而是精心准备了,希望学生能够真正学到东西
4. 作业有难度,希望学生能够真正运用算法解决问题
5. 作业两周一次,节奏很合适
6. 老师大概率会录制视频,所以非常适合不爱上课的同学在家自学
缺点:
1. 老师希望在一个学期内包含的算法类型太多,知识量很大,所以学习压力大
2. 个人认为需要有一定的知识基础,不要学起来很费劲,在运用数据结构的时候不会再解释一遍,而是需要你自己去学,或者实现已经有所了解
3. 考试时间短,大约1小时出头,但是题目量和一次作业的量差不多,所以考试分数普遍不高,数学大佬可以轻松解决,但是其他的就.....
作业情况:每两周一次作业,一共6次作业,额外一次mid term和一次final。作业不需要写代码,都是设计算法,写出pseudocode。

将这个放在第一个说,主要是因为楼主这门课考得真实一言难尽😭 我对这位老师的水平是没有任何质疑的,只是这门课真的需要很多时间去学。她的算法知识的顺序也和网上MIT课程或者国内的不太一样,会将Greedy algorithm和Dynamic programming放在很前面讲。
课程主要是算法deisn, 而不是背下来已有的算法,所以如果在国内上过算法课, 或者对算法本身有基础的同学而言,相对来说不太难。否则的话我觉得课后需要自己有很多练习,才能融会贯通
总结:我觉得这门课应该算是必学课之一了,这门课也是很有料的。只是想学好的话真的需要投入大量时间,所以推荐结合其他的水课一起上,不然拿高分还是很困难的(数学大佬请忽略这句话)。
> 这个秋季没有Eleni Drinea教的这门课

2. COMS4118 Operating System I by Jae Lee
优点:
1. 学到的东西相当多!本课程的参考书包括 , 所以除了上课听课以外,课后阅读量极大,因为考试真的会考哦!
2. 作业是基Linux kernel的某个版本来做,很多东西都需要自己读kernel代码才能写出来,非常practical
3. 老师很有水平,知识很丰富,对Operating System是真爱, 讲课有热情
缺点:
1. 需要有足够的C语言基础,如果没有的话,直接放弃吧
2. 需要有基础的Linux使用经验,毕竟代码都是在Linux上面来写
3. 作业量较大,因为都是写代码,很多都要自己阅读代码或者查资料。就算作业是组队做的,但是想要学习到东西,实际上还是每个人都自己几乎完整的完成一遍
4. 同优点1,课后阅读量极大
作业情况:7次作业,全是代码题,其中容易的2次左右是个人完成,其他的是组队完成。 外加一次mid term 一次 final。

这门课听说很多人都说是CS课难度No.1, 是不是最难的不知道,但花时间一定是做多的(起码之一)。就是因为这门课,我几乎时间都花在了它上面,导致算法死的很惨(还好最后拿到了A)。
刚开课的时候报名人数很多,超过了上限。然而前两个星期退课的人也非常多,因为老师上课会重点提到书上的知识,还会结合自己的工作、研究经验来补充一些其他的。如果没有一些背景和学习动力,不太容易跟上。
早期学习system call,然后开始进入kernel学习各种代码,上面三本书的主要内容都涵盖了。如果课后不花很多时间去读书,那么考试就gg。
总结:我觉得如果你真的很喜欢OS,或者很想了解OS,或者喜欢这种实践理论相结合的课,一定要上。Jae平时会教Advanced Programming, 如果你考虑上它的OS,可以提前一个学期去听一下这个AP课,是为你的C语言打基础的。
> 这个秋季没有Jae教的这门课

3. COMS4111 INTRODUCTION TO DATABASES by Alexandros Biliris
优点:
1. 课程节奏缓慢,适合有基础的人“划水”
2. 不涉及底层DB的实现和理论结构,比较专注在Database Design上面,适合各个专业背景的同学来入门数据库
3. 无论是作业还是project,量都不大,也不是很难,大部分知识(除了写网站)都可以在参考书或者老师课件中找到。不会把你折磨到掉头发
4. 涉及到自己书写SQL,以及optional的web programming, 所以是一门理论结合实践的课程
5. 老师风趣幽默,喜欢开玩笑,就是不知道你能不能接得住.....
缺点:
1. 课程深度不太够,对于想理解数据库底层的同学来说,这门课不是你的选择。不过听说别的session中有些挺难的,需要你用python来实现比如index等等机制,还是挺厉害的。
2. 老师上课讲课节奏很慢,并且举例不够多,对于没有学过DB的人而言,这些知识本该不难学,但是老师上课方式使得你学的很困难。这门课从一开始满座,到后来零零散散20人不到,很能说明问题
3. 基于第2点,导致对于没有DB基础的同学来说,无论是学习概念,还是写网站来说,都比较费劲,需要花大量时间自学;而对于有基础的同学(比如我),几乎是个划水课。
作业情况: 4次关于概念和一些计算的作业,不写代码。2个project,拆分成 1.1, 1.2, 1.3 和 2, 整个过程就是设计一个完整的数据库系统(概念),或者是一个数据库系统+网站。对于有网站编程经验的人来说很简单。
总结: 这门课是我上学期最轻松的一门课,我选它就是用来划水的。上课学的东西对我来说都是已经知道的,所以只是一种复习,在做作业或者考试的时候看看书就可以了。
但是,项目可以两人一组,所以我有一个队友,他是别的专业的,没有任何DB基础。从我的观察来看,他学的比较吃,虽然一部分也因为他的时间主要花在了别的课上(不过如果你不选这位Biliris的课,而是选了别的DB课,那估计会更难)。

4. COMS 6998 Topic: CLOUD COMPUTING&BIG DATA by Sambit Sahu
优点:
1. 学到很多AWS(Amazon的云服务)的知识,以及讲了Hadoop和Spark的一些知识
2. 理论实践结合,通过编码来学习AWS不同服务,也学到当前网站架构新趋势
3. 阅读很多paper: GFS、MapReduce、BigTable、DynamoDB、HBase、Kafka、Spark..... (其中一部分会在考试中用到)
4. 开卷断网考试,可以和坐在附近的人偷偷对答案(真的有很多人这么干)
5. 老师人很好,当你想选又选不上的时候,给他发邮件,也许他就把你加进去了
6. Group(最多4人)作业,所以你如果不行的话,可以抱大腿
7. 编号“6”的课,毕业需要
缺点:
1. 老师印度口音,你要能接受
2. 课件几乎没有什么东西(有时甚至没有课件),所以你不上课的话,无法知道老师到底这周讲了什么
3. 考试几乎都是实践作业+paper阅读+自己查资料得到的东西,上了课你不一定能考好🤣
作业情况:3个Assignment(利用AWS服务编程完成), 1个mid term Quiz, 1个final Quiz, 不定量的其他quiz, 一个Final Project(包括Presentation)
总结:极力推荐的课,能够学到行业中真正使用的技术,同时了解了一些大数据相关概念,非常有助于装逼(找工作)。不过客观说来,每个知识点学的深度还是很不够的,毕竟牵扯到的概念还是挺多的。如果有兴趣的话,推荐多自己钻研,阅读AWS官方文档(有助于提高考试成绩)。

上面4门课是我上学期上的,总的来说除了算法成绩不咋地,其他的还算让我满意了。
夏天刚上完Verma的COMS4771 Machine Learning,收获还是挺大的,不过下学期也没有他开的课了,就懒得写了(打字好累呀)

我从第一个学期吸取到的教训就是,选课一定要有策略,硬课水课一定要结合好,因为这里的硬课真的硬。第一个学期我4门课都有final,而有些同学选的4门课只有1个final,其他都是以project/report的形式提前结束了,真是非常羡慕了。

希望各位同学,以及新来的学弟学妹能够选到自己心仪的课程。么么哒!🤞🏻🤞🏻
  • 63
30条回复