2023-2024哥大MSCS Software Track 一年就读体验,可水可肝的NY绩点3.7之旅,第二篇

avatar 1041769
陈小胖
1737
5
Hey 同学们,版友们,前辈们好。

这篇,是我就读这一年体验回顾的第二篇
有些提及到的东西在第一篇里提到了,这里直接进入对;课程体验 + 课程搭配 + 主观评价 的内容。

第一篇的链接:1point3acres.com

同样,观前提醒:

  • 第一,个人认为,CS无水课。(保守点,我就指哥大吧
    我自己认为,如果一门课既然能够通过学院众多学术泰斗的审核并且能摆上货架供学生选择的话,那么他就一定就有存在的教育学生的意义。
    并且认为,如果你读的是CS Master,但是你仍然想寻找兼并 无Final 无 Midterm,big projects 代码量尽量少 简单不繁琐,不用take attendance,不需要花时间听课,不用花时间看slides/textbook,并且能够Easy A的课,我可以告诉你,这样的想法,至少在CS我真的没见过。请你尽量少打这样的念头。没有水课,任何课都有人在认真学,认真做到最好。只有让你学得有自信舒服的课,没有水课。
  • 出于我对老师们的尊重,我尽可能从这门课的优点、好处去讲这门课。
  • 如果确实有些主观上我自己个人接受不了的、可能存在的缺点,我会提出。
  • 秉承中华民族学生对老师这职位的尊重,我对他们由衷的感谢。


不多bb,开冲!

课程搭配:

(在第一篇里提及了自己不是国际生,所以第一学期4门,第二学期3门)

第一学期,四门课:2023 Fall

COMS4111W INTRODUCTION TO DATABASES (唐纳德全家桶之一)


楼主成绩:A+ (也就是绩点 4.33,是的你没看错,哥大有A+的绩点)

老师:唐纳德。简单介绍一下,好像是惠普的创始人兼前CEO来着。(如果你在茫茫课表中想找一门稀释heavy程度的课,认准唐纳德老师的课)👍大拇哥

课程内容:这门课就是,SQL + Database Design。难度是属于本科难度。无论你学过或者没学过,你上这门课都会轻松愉悦。本身知识难度并不高的同时,老师本人很chilled 很nice,上课风格幽默。每年每学期的课的资料都会给你在github整理好。slides准备认真(虽然用了很多年),内容很详细。老师教的很详细,无论是数据库设计,还是SQL,还是projects都很有意义。

作业:3~4个作业 (代码 + PDF),1 take home midterm, 1 take home final

个人感受:这门课不水的。就算你学过掌握过这些内容,projects 和 两个考试都需要认真花时间写的,时间长短取决于个人。我说这门课能够稀释繁重,是因为知识本身学过/不难,你所花费在学习/复习的时间相比较其他课少很多很多。仅此而已。

=====================================================

COMS4152W Engineering Software-As-A-Service (SAAS)

;(Software Track 必修课之一,可被另外一门SDE课替代)

楼主成绩: A

老师:Junfeng Yang,老师本科是清华毕业的。老师人很好,交流过一阵子,经常碰着他一起上下电梯,上下学碰面的时候,打招呼。很好笑容回应你。

课程内容:上的课内容是围绕着SDE 开发的过程教学,带你了解现实中,Software Development 方法的演变,从过去到现在 (比如到现在的Agile,CI/CD)。也教最基本的软件开发的设计思想,如 前后端,框架,数据库,网络,诸如平时/往后SDE开发都会用到的这些基本知识。特别要说的是,这门课教的是Ruby 和 Rails 编程,起初觉得这语言是啥玩意儿啊这么难用还有人用?到后面用多了在项目上,感觉woc这语言框架好强大好迅捷。

作业:无Final 无考试。这门课起初几个作业有标准答案,会考你Ruby和 Rails的掌握情况。后面还会教你怎么用Heroku的CI/CD。到最后,小组作业,用Rails 开发一个 web app,deploy在Heroku上。前后会有两次Presentation。由TA负责评分打分。

个人感受:因为楼主自己之前完全一点Ruby都不会,学得过程从一开始 抗拒煎熬 到 妥协接受 到 膜拜佩服只用了不到一个月。如果你害怕Ruby不会,可以提前做点准备。因为是小组作业为主要的评分大头,那么请你自行斟酌关于找队友事宜。

=================

COMS4705W NLP

楼主成绩:B+

老师:Daniel Bauer。老师胖胖的,戴眼镜,很可爱。好像是德国人,我记得他发过几篇比较有名的作来之。上课的内容清晰,Slides资料啥的都挺齐全,很负责的老师。但是老师可能有点大舌头哈哈哈(所以我说他可爱),还是课堂的麦克风问题。经常坐在课室里听不清楚他讲什么。最后经常躲在家里上他的zoom,这样反而听清楚了,笑死。

课程内容:别问楼主,楼主在算法和NLP这两门课里,选择了前者,选择性放弃了NLP的内容学习。因为当时真的忙的不可开交,你现在问我我学到啥了,我真的不能很好的整理出来了哈哈哈。就是一套完整的NLP教学内容。从最初的语言学,到中期的机器学习基础,到后面引入有名的NLP常用或者具有代表意义的模型/算法。👍

作业:5 个 projects, drop the lowest one。1 midterm,1 final。考试时可准备一张A4纸的cheat sheet。

个人感受:就楼主在这门课吊儿郎当的样子都能拿个B+。说明这门课里,老师并没有对作业/考试下死手。这门课会有除了CS major以外其他学院的同学一起抢,一起上课,可能这是老师不下重手的原因之一(你没有办法考的太难)。老师教的好的同时,老师教的也不错。

========================================

CSOR4231W ANALYSIS OF ALGORITHMS I;

(好的,最大的一坨来了)

楼主成绩:B (还是经过curve的)花最多的时间,拿最低的分数。

老师:Timothy A Roughgarden。 老师,之前在Stanford教过好多年书了,而且也是教算法这样的课,后来才跳槽来哥大的。Youtube上还有他在Stanford教书的video。这门课的教材还是老师自己写的,这本教材,也是真的一言难尽。

课程内容:代表性的算法 + 某些数据结构。如果你是CS科班出身,那么这节课一定是你的必修课。你本科学到的所有算法和算法的数学分析,这门课都会讲到。排序,查找,Divide And Conquer,Greedy,DP,NP-Hard 等等等等。。。。

作业:一份作业4 ~ 5题算法分析题,每周一个作业,总共10个。三个midterm,没有final。是的,你没看错。这门课最后一节课是用来考midterm 3的。也就是在考试周前,这门课已经结束了,老师已经去度假了。剩下要生要死的TA,和被不知所措的学生们。

个人感受:估计要是真的把自己那个学期要吐槽的东西全部写出来,估计天都亮了。。。
先说好的,老师是Stanford教了十年算法的老师,在口头表达,授课上,一定属于最顶的那级别。但是你得跟得上Stanford的速度,小子! 老师的语速会很快,对我这种英语水平不好的学生真的很打击。以至于我每次上课前/下课后,都要花很多时间去看他的textbook来预习复习, 才能跟得上他的教学速度。

有人就说了,你本科学过了的话,也不至于花这么多劲在这里吧。西卡西!老师在课堂的内容,会在考试里考的,有时候还是原题。所以你不得不认真竖起小耳朵。

有人又补充道,那你跟着老师的材料,反复看老师的recording不就好了。
那我说,这门课Tim老师是没有任何 Slides,没有任何ppt,没有任何recording的,阁下该如何应对。开学期间有人在Discussion里问,能不能有recording,能不能申请recording。老师给的回复是:“不,我不给recording就是想鼓励你们来我的线下课”。 老师,你用的教室甚至没办法供应所有报你班的所有学生坐下。(晚来的学生得坐地上或者站着了)。

除此以外,课上只有老师自己的板书,用还是小小的黑板(服了)。除此以外,老师的字啊,真的太难看了。一句话就是,小时候看医生时,医生在我病历上画的那些医生体会比老师的字好看点 OMG哈哈哈。

然后呢,我想吐槽一下我那个学期的改作业制度。某种程度上,我对于这门课的印象,和老师与TA 们的沟通交流,和对这门课的组织度有很大的关系。总体上而言,是很乱的,很多答案/题目甚至有错。周一放出来作业,周四才告诉你“噢,我漏了这个tips给你们,所以那种情况你们在回答中不需要考虑”。以至于很多身边很早开始写作业的同学前几天花费了很多精力去写那几道题,都白费了。然后是,TA们的评分制度根本不统一,有的TA不喜欢,有的TA要你必须有,所以以至于大部分在我身边的同学的作业/考试成绩,所得分数都相差很大。一个词就是 disorganized。经常因为作业/考试的事情,班级的discussion经常都是爆炸的。只有个别TA在拼命的回复。

在最后总结一下吧,老师是教的好的老师,但是给我感觉就是不是很上心。还是说我前三位老师太好了?
所以,很看Head TA 能不能替老师干好这些领导各个小TA的活。

==========
==========

第二学期:2024 Spring

COMS 4118 Operating Systems I

楼主成绩:B,听周围人评价就是,哥大CS最heavy的课

老师:Kostis Kaffes,但以往都是Jason Nie(聂)老师把关这门课,刚好这学期他休息度假去了。Kostis老师是一位我很敬佩的老师。斯坦福PhD,但是他患有妥瑞氏症。也就是,在课堂上讲课时会市场的面部抽搐,讲不出话。得憋一会儿,才能表达。所以我很敬佩他。

课程内容:Unix 编程 + OS。是的,这门课其实一门涵盖了两门课的内容,所以它如此的heavy。

作业:8 个 projects,用C编程,涉及的都是用虚拟机对Unix Kernel 编程。其中有些是个人作业,有些事小组作业。最多三人一组。一个midterm,一个final。

个人感受:感受到了个大CS最heavy的课给我的冲击了,从这门课三本textbooks的安排上,就能看的出来学习的内容与期望。这门课,它涵盖的不只是C/C++编程基础和OS 理论,还会涵盖 Unix Kernel 编程,也就是需要你掌握并会记住如何应用 Unix 的functions和各种调用。楼主本科学过C/C++,并且上过OS,唯独没深入学习过Kernel编程。即便是这样,我学的还是挺吃力的。每周都会安排你阅读大量的textbook阅读,课上会基于你已经读了textbook的前提,开始讲课。你不看吧,可能跟不上。看吧,他真的很多哈哈哈。

作业8个,各个顶级。最高耗时的那一个,花费将近四天三夜,没出门。(在此感谢我唯一的队友Jiacheng 哥,他救我的狗命不只一次了)。我这个学期的midterm的平均分是53分,满分100 。

一则不幸的事,由于哥大在今年5月份闹出很大的事情,以至于这节课的老师把最后的final取消了。(噗嗤~

如果你是走 4-4-2的路线,我强烈建议你,把OS放到 最后一个学期的 2 里,这样你能学到东西,并且能够handle it well。

===============================

COMS 4170 User Interface Design

楼主成绩:A

老师:Lydia Chilton。老师是个很好看的金发女老师。这门课,UI Design,是哥大最受学生欢迎的之一。我就不多说了这位老师她什么优点了。你能想到的她都有。

作业:每周一大一小,小的是warm-up 完成的pdf,大的是关于coding的,但是花费时间不会超过两小时。一个个人的midterm project,一个小组的final project,都不难,课堂上学到的知识来应对,就可以很轻松了。只要你认真出力完成了老师布置的每一步,Easy A。

个人感受:再说一次,这门课是哥大最受学生欢迎的课程之一。这门课会让你有足够的动手机会,代码和project上,能学到的是 html + css + frontend design + slack development。理论学习上,会教你UI Design的各种理论和知识。对我这种只有backend开发经历的学生来说,上这门课是为了逼我自己学前端知识,同时这门课让我有相关开发的项目经历。老师讲的课很生动很吸引人,会让你听完整门课,能真正意义上学到东西。几乎每集课,都会坐满同学。
课程分为midterm 前,midterm后,midterm 前 老师讲课,一周两次。midterm 后,老师一周只讲一次,剩下一节课交给TA,来看你们小组对于final project 的进度汇报和作业汇报,你们小组present给TA,TA记attendance。老师上的课不记attendance。

====================================

COMS 6111 Advance Database Systems

(我更愿称这门课为,搜索引擎,search engine)

楼主成绩:A

老师:Luis Gravano。 老师人真的很好,很健谈,很好笑容。就是这门课本身没办法讲的太有趣,所以有时候有点无聊哈哈。老师回复同学们的问题很积极。

课程内容:为什么我叫他Search Engine。因为它实际上和我们认识的Database没有很大关系。而是对于信息检索算法、网络搜索、信息提取、数据挖掘、检索引擎的了解学习。其中还会夹杂着NLP的学习内容。

作业:三个大Porject3,Python 编程。一个midterm,一个final。都很简单,只要考前认真花时间复习老师的recording和slides。

个人感受:一开始我是冲着 Database Systems这两个字眼来的,原来是搜索引擎啊(本科学过,氦)。老师考试很简单,相比较同学期的OS,真的不难。

================== 分割 ===================

下学期剩下三门课,除了一门SS必修的PLT,我还选了两门自己喜欢的,感兴趣的。那是我最后一个学期了,我真的想继续研究自己喜欢的东西,希望自己能够继续有所收获。

楼主自己第一学期那四门课,搭配已经很轻松了。但是就算如此,结合当时的interview 和各种OA要准备,真的很手忙脚乱。外加上那段时间内外的因素都有,自己心情的失控,在很多事情上都未能处理的很好,最后得到的是学业和实习两空的结果。

两全其美当然是最好的,即兼顾学业,又抓牢实习。前提是,你能有能力支持你这么做,那么请不要犹豫,请加油。
但是,万一如果你在某个阶段也喘不过气了,在面里不得不作出牺牲的时候,也请你不要犹豫,合适的放弃一些东西。不要被自己的GPA情节所锁死,也不要觉得自己找不到实习的回应就是差人一等。如果你没得到你想要的,不是你不够优秀,而是有时候需要尝试别的方法,去摸索方向。有的放矢很重要,而摸索的过程,这些都需要时间去积累的。

还有就是心态,一颗强大的心脏,自我调节能力,良好的心态,很重要,很重要!

不要内耗,不要内耗。如果不开心,多找找朋友,多出去走走,多开开口。

一个人的耳机并不能治愈多少不乐,盲目的冲刺不能让你立刻改变现状。一颗良好的心态却能让你更靠近你想要的成功。

这就是我的课程就读体验。总共写了快三个多小时。由衷希望能帮助你。大米大米大米🥺

================ 最后 ==================

希望继续收到大家的大米!给我大米不用花钱!不用花自己的大米!
拜托了!这真的很重要!!!!!

内容纯属主观。欢迎纠正,欢迎指正。我们下期再见👋!

补充内容 (2024-06-13 02:41 +08:00):

这几天实习突然开始忙了,才抽空回来看看自己写的文章。发现一些让人忍俊不禁的一些地方,和补充说明一些事项:

1. “老师教的好的同时,老师教的也不错“。自己念自己写的这句话真的是看一次笑一次。记得当时是周末晚上12点开始写一不小心写到凌晨快4点,脑子模模糊糊的快宕机了哈哈。文中有些地方逻辑紊乱了点,望多多包涵。
  1. 关于我个人吐槽最多的 CSOR 4231 这门算法课。这门课的学习 和 找工的Leetcode刷题是几乎百分之90不是同一件事情。刷题是刷题,算法课程教的是数学思想和证明。两者有相辅相成的效果,但是又很相互独立。两者都需要各自花时间去学去做练习、看解题思路。如果你秉着想提升找工刷题、Leetcode刷题的熟练度来上这门课,那么可以告诉你是没有必要的。但如果你本科没学过,亦或是你是转码学生,那么这门课我推荐你去上(选不选这个老师得你自己斟酌了)
  2. 再次强调除非你真的能handle高压,OS I 这门课强烈建议放在最后一学期上。一来是这样你能真的能学到东西,不会匆匆忙忙侥幸应付;二来这门课花时间很多,不会影响你第一年到这里找实习/工作的时间。
  3. 上面提及到有midterm 、final的课,绝大多数的班都会提供前一次(或上一年)考过的试卷。如果不提供,那么就代表老师可能想偷懒出原题了,届时你问问各位学长学姐要,应该能要到来参考学习(

以上。

最近比较忙,下班后回到家比较累,也在筹划着怎么调整好写作分享的心态,整理自己要分享的东西。希望能不久就能把第三篇-找工环境体验写出来。第三篇我个人比较重要,太多话想说,但又不能夹杂过多主观的言语。需要时间点构思。还是希望包涵,多多指导。
5条回复