Georgia Tech MSCS 学程介绍与超详细选课资源与修课体验

avatar地里匿名用户UGYBY
7169
7
经作者同意转发,reurl.cc
本人也是GT的学生,真心觉得这个学程挺不错的,推荐给大家

Program 简介
Georgia Tech 的 CS program 我认为是自由度相当自由的program。毕业总共需要30学分,共有11个 specializations 可以选。每个 specializations都有自己的 Core 和 Electives 可以做选择。以纯修课的方向来说,学程规定24学分需要是CS/CSE的课程,最后有6学分可以任意修任何4开头以上的CS/CSE课,或者任意非CS/CSE课,这意味著我们将可以选择大学部的专业课程或者任何其他有兴趣的课程作为毕业学分。


Permit 系统
由于CS/CSE的课程都较为抢手,学院设置了Premit的机制保障CS的学生可以选取四堂课在第一阶段选课优先选择(只有有Premit的人才可以选)。由于优质课程通常都在此阶段就满人甚至进入候补,因此这个阶段的选择就至关重要。大致上多数学生的课表在这阶段就会大致底定,所以建议在提交Premit Survey前就做好功课,选择最抢手也最想上的课。


选课资源
M.S. Computer Science Specializations List: 查阅CS毕业标准
Rate My Professor: 查阅教授评价
Course Critique: 查阅成绩分布
GT Scheduler
GT OCSMS 心得

常见问题
一学期有规定要修几门课吗?
有,F1学生每学期必须修满12学分,也就是你一定要修4门课。
课业太重会不会影响找实习?
多多少少会,这边的课真的很重,但是也有相对较清凉的课,请参考以下课程心得。但是我会说以台湾学生的能力真的不用害怕,以我身边的同学来参考,大部分的人都可以同时兼顾课业和找工,但...就是真的会累一点点点。
有什麽方法可以减轻课业压力?
幸运的是,有!每学期可以有3学分是audit(含TA),大部分的CS的课程如果提供这个选项都几乎不用做事。也就是说你只需要努力3门课,但是要注意曾经列为audit的课程将不能作为毕业学程的学分。另外,最后一学期还有reduce course load的选项,也就是最后一学期只要符合毕业条件可以不用修满。

选课心得
CS 6250 Computer Network
难度:中间偏易
凉甜度:甜、小凉
Instructor: Mostafa Ammar
这堂课内容不难,主要教一些比较深入的网路知识,如果之前有修过电脑网路导论之类的课程会觉得很简单,如果没有修过还是可以修因为老师教的节奏不快。
内容涵盖有Inter domain routing, Congestion Control, MPTCP, Video Streaming。唯一比较困扰我的地方是老师只会写板书并且比较艺术一点,但老师都有放回放在网路上因此有好不少。
有几次小考,内容都不难,只需要熟悉上课老师的笔记和平常的作业就可以
有3个project,据说每年的内容都有变化。主要要熟悉mininet的一些config。其中一次比较难的是要模拟Prefix Hijack Attacks,结合上课BGP Inter domain routing的知识,但总体来说难度都还可以接受。
这门课非常抢手,建议要选的话必须把它放置在Survey的第一个才有比较大的机率选上。


CSE 6242 Data and Visual Analytics
难度:普通
凉甜度:普通甜、不凉
Instructor: Polo Chau, Mahdi
这门课有两个lecturer,我个人认为Mahdi教的我比较听得懂。这是一门非常杂的课,基本上任何和Data Science相关的东西都会涵盖,也正是因为涵盖的东西太广,基本上内容都不深。
功课的部分就是这门课的重头戏,虽然只有4份但每份真的超级多,包含SQL、Javascript d3、AWS、GCP、pyspark、Hadoop/Azure、Databricks、PageRank、Random Forest、Sklearn等等。可以看到这些功课把前后端都包了,其中前端package d3尤其对新手来说有些困难,这边有作业的demo影片。我算是除了分散式系统的东西都碰过一些,但每次还是花超过15小时在一个作业,个人心得是如果是非常不熟悉python的人想必相当痛苦,建议有一定得程式基础再来修。
除了功课,还有一个学期初就开始的Project,要缴交期初、期中和期末报告,规范也是落落长且必须要涵盖大数据和UI。我自愿在piazza上加入5个美国人的队伍做了一个Blockchain的Information Board,算是这个课程我感到比较有趣的部分,将课堂上学到的d3,实际应用bootstrap和大量blockchain 的database做了一个简单的网站。然而每周一次的开会和进度报告也是有些loading。
这门课的评价真的非常两极,我认为它对于想入门Data Science或履历缺关键字的人来说非常的适合,可以一次补充好多大公司抢手的关键字,但是实际上教的东西却又太浅,然后loading不轻,需要谨慎思考再选。


CS 6301 Advanced Software Engineering
难度:中间偏易
凉甜度:甜甜甜、偏凉
Instructor: Alessandro (Alex) Orso
这门课非常的难抢,因为名额很少又真的又凉又甜,又还算实用…主要就是在教任何软体工程可能会碰到的东西,如github、Restful API、testing、CICD、android testing、debuging、还有一些软体的架构等等。
老师学期初就把整个班分成几大组,然后每个组都有 backend, frontend, mobile, DevOps,各组之间要学习不同区块的整合与开发。主题是Pomodoro Timer,整个学期就是围绕在完成各自的部分最后整合成一个程式来进行,每周都有要完成的milestone,都不会到太困难。我选到的是mobile,然后整学期其实很少和其他组别做沟通,结果就造成最后要整合时为了配合backend我们的code几乎要全部打掉重练,也算是学到一个很重要的教训。
整体下来我觉得还蛮实用的,但是有时候总觉得老师说话挺催眠的,最后CICD的部分又挺複杂的没听很懂,收穫最大的可能就是专题和组员吧!


CS 4400 Introduction to Database Systems
难度:容易
凉甜度:甜、适中凉
Instructor: Mark Moss
这门课是大学部的课程,不含database implementation,A、B两班加起来有5–600人,虽然人数超多,但这老师教的是真的好,如果去看Rate my professor会有大量的好评。
期中前真的是非常的基础,老师会手把手教你怎麽写出一个query,然后到怎麽有规划的设计data scheme,怎麽有条理的建立Entity以及Entity之间的各种複杂关係,最后期末可以写出nested query。
总共有6次小考,每次小考都有练习题可以练习,实际考试和练习题十分相近,只要多加练习就可以轻鬆拿分。小考的内容我认为也是非常有意义,当考过之后就知道某些关係细节的地方该怎麽思考。
然后还有一个专题,老师会给一个情境(我们是类似airbnb的架构,有顾客、有房产、有雇主、有房屋资讯等等),Phase1要你设计出这个情境的Enhanced Entity Relationship Diagram,Phase2要你用MySQL implement 出来,Phase3要你写出Stored Procedures。最后Optional 的Phase4 是搞出这个database的web前端。Project的故事蛮庞大的,因此需要花一点时间讨论并实作。
最后有个期末考,同学可以自行选择要做Project Phase4或者考期末考,期末考就是一次考全部,我们评估Phase4要花的时间太多了,最后考了期末考,也不难(複习所有小考就足以)。
整体而言,我认为这门课非常适合完全没有学过database的人得来修,有学过的想来简单拿学分毕业也不错。若是没有和美国人组队经验的人,我非常建议趁这堂课和美国人组队,一来这堂课不难,遇到雷的还能自己完成,二来,讨论Enhanced Entity Relationship Diagram的时候能训练用英文有逻辑的表达较为複杂的关係。三来,台湾人能和美国人组队的机会大概也就是这个Master了,和他们组队也能提早知道他们和亚洲人的不同。


CS 8803BC Blockchain and Cryptocurrencies
难度:难
凉甜度:不甜、不凉
Instructor: Vladimir Kolesnikov
课程主要围绕著比特币的原理来做讲解,会从最基本的hash、signature ,到Merkle Proof、共识机制、区块链原理、比特币交易机制、冷热钱包,再到MPC、Zero Knowledge Prove。
这门课非常注重securtiy的严谨证明!偏偏老师不太会教,也不太会听取学生的建议,所以其实还蛮痛苦的。适合对区块链非常有兴趣的人且不排斥看一大堆证明的人来修。我个人如果没有多看几次回放是没办法理解的。
作业蛮困难的,与上课的内容有些出入。通常都是假设一种情境,问你这个算法是不是安全的或者要怎麽攻击及漏洞在哪,或是怎麽样可以获取最大利益。例如你是miner 有两个链可以mint,要怎麽分配电脑资源来挖矿之类的。
有N个考得非常细的多选题小考,需要真的完全融会贯通才能答对。例如问你one way function 是不是存在等等问题。然后还有期中考,考得难度稍微比功课容易一点而已,也是需要对课程内容有非常详细的理解才能获取高分。
这门课最有趣的莫过于project了,一开始会学怎麽写简单的solidity,后面的project 助教会实际开一个链 Buzz 让我们在智能合约上做操作,还发生了非常有趣的盗取私钥事件
除此之外还有期末presentation和paper report等等。各组会挑一个相关的主题,从defi、AMM、NFT、Bitcoin privacy、layer 2 公链等等都有人提到。
没错,这个8803甚麽都有,老师也不是很会教,我对区块链是相当有热情的,花在这科的时间比重也不少,最后才勉强在边缘拿了A。要修的人要慎思,但是不可否认的,涵盖的内容比我想像的还要多且广,学完也会对blockchain的未来更有自己的想法。


CS 7641 Machine Learning
难度:普通,作业很多
凉甜度:甜、不凉
Instructor: Mahdi Roozbahani
ML可以参考课程网站。这个老师和CSE6242的老师是一样的,所以调性也很像,大概就是作业超大份,写完就高分,有一整学期的project。我认为Mahdi教的还算清楚,人也非常nice,不过困难的地方比较多会简单带过,如果有疑问再去讨论区讨论。
ML作为多个specializations的核心科目,主要带过了多数基础的数学、分类、分群、降维算法。ML 算是非常数学的课程,作业多数是要求你把数学写成程式,并教你解释为何结果会是这样。每年作业也会有小幅变动,我们这届是
A Lot of Math: Linear Algebra, Optimization, Maximum Likelihood, Information Theory
Kmeans, DBScan, EM Algorithm, GMM
Image Compression, PCA, Regression, Naive Bayes Classification, Feature Reduction
NN, CNN, Random Forest, SVM
每周都有简单的5题小考,小考主要测验概念上的东西(数学几乎没有),大抵上每周有跟上进度就可以轻鬆拿分。Project 的部分需要缴交期初、期中、期末报告,大多数组别会找个题目套一些上课教的演算法分析结果,写成report就可以。
大体而言还是学到蛮多东西的,作业因为都有autograder可以线下打分,所以分数都蛮可控的,算是一门好课


CS 6515 Intro to Graduate Algorithm
难度:普通偏难
凉甜度:普通甜、不凉
Instructor: Gerandy Brito
这门课也是多个specialization的必修科目之一,Brito 是个来自古巴的数学系帅老师,上课风格偏有趣,但是语速较快而且有些口音。因为名为Graduate Algorithm,所以有些基本的演算法如bfs, dfs, dijkstra 老师就会当已知。老师上课习惯写自己的板书,有时候思绪会有些跳跃,我自己有时候不太能跟上。
前半学期教了SCC, Network flow, max flow min cut, Linear Programming, DP on trees等等,算是蛮实用且易理解的主题。后半学期主要都在教randomize的演算法(演算法只有机率性是正确的,但我们可以知道正确的机率,只要执行够多次就可以确保有一定的信心能得到最佳解),从这边我就听得雾飒飒,后面还有3SAT, TSP等等NP-hard问题。由于Brito 是数学系出身的,notation也是很多,我个人认为没有这麽直观。
手写作业蛮多的有7次,但好像都凭老师心情决定要出多少,会提供latex的template,每个作业的最后一题都是偏难的应用题,建议组队来应对(老师允许讨论但不能照抄),自己修应该蛮痛苦的。
最后还有期中期末考,考前老师会出多选练习题,实际考试也差不多题型,其中多了DP的手写应用题,总之老师会在考前公布题型。我认为作业跟考试关联性不大,重要的还是观念上的东西,需要花点时间练习一下。
我认为前半学期收穫比较大,有些思路面试还能用上,后半学期就是懵懵懂懂地度过,一起修课的同学后面多半觉得讲的不太清楚,内容又难。


CSE 6240 Web search and Text Mining
难度:普通偏难
凉甜度:甜、不凉
Instructor: Srijan Kumar
大推,非常好的老师,听说曾经得过年度教学奖,上课的讲义准备得非常完整且清楚,lecture能把很难的东西讲得很易懂。整学期会把Network Graph的特徵以及算法跟模型讲解清楚,还有包含google 搜寻引擎在使用的Page Rank。后半学期会带到recommendation system,还有目前各种的机器学习演算法(GCN, Collaborative Filtering, …)。老师最后还邀请了几个业界的research scientist来演讲,整个学期学到的东西还不少。
前半学期的loading 比较重,有5次程式作业,会大量使用networkx这个package,程式作业难度都不高,但需要对上课内容有一定的了解,后半的作业会build 一些Machine Learning 的Model,基本上上课有跟上都能写出来。
后半学期都围绕在小组project上,老师的要求较为严谨,一定要用ACM的latex模板下去写,我们这组做了一个stock的分类演算法,最后大家都要分别做presentation,整体还是挺有趣的。
因为老师上课非常有条理,回答问题时不管难易也都回答的很详细,所以上课时学生还蛮踊跃发问的,我认为整体上课氛围挺好的,如果对于Network Graph有想深入了解,千万不能错过这堂课。


CETL 8797 Oral Communications for International Graduate Students
Instructor: Ruth Schowalter
这门课是专门开给国际学生的口说课程,本堂课是需要站起来高度互动的课程。Ruth是非常有经验的口说老师,他会在每堂课开始前进行一些小伸展跟小游戏以放鬆各位的心情。她说历年来主要课堂上都以台湾人、中国人、韩国人、印度人为主,课堂上她也会尽量配对来自不同文化的人来交流(但基本上课堂上都会对话到)。
老师在学期初会个别和所有同学进行口说测验,然后告诉我们可以改变的方向。其中有子母音发音、有没有正确表达-ed, -s、syllable stress、sentence stress、intonation、pausing、focus words 等等。而这些也正是课堂中主要老师会教学的一些方向。
接下来的课程,老师会一直强调讲英文是有音乐性的,该在哪边加重、该在哪边停顿、该在哪边大声小声都需要培养感觉。除此之外,老师也很强调 improvisation,常常会丢出问题要你马上回答,培养大家天马行空,敢说英文的语感,还有美国的culture的日常应对,最后有几堂课教学如何巧妙利用手势来更有说服力的表达自己。
这门课除了课堂互动,只有非常非常少量的功课(例如准备自我介绍、3分钟投影片等等),整体来说是个非常轻鬆有趣的课程,也是少数我会很想去上课的课,因为是小班制且同学间都要非常频繁的表达自己的想法,因此最后其实认识蛮多来自不同国家的朋友的。虽然学期最后,我不认为我的口说有很显著的进步(因为课后缺乏练习),也是我认为较可惜的部分(我认为应该有适量功课XD),但至少我已经知道将来要怎麽样进步了:)


CS 6476 Computer Vision
难度:中间



凉甜度:甜、不凉
Instructor: James Hays
Computer Vision算是ML学程内蛮夯的课程。这个老师我觉得教得算还行,但我自己中间数学的部分讲得比较抽象,是有一点听不懂。课程会围绕著下面的主题进行,功课也和lecture蛮相关的,作业编排也挺有条理、给分非常明确、并且讨论区讨论热络,按照步调都有写完作业的话是可以有效学到这些东西的。
Project 1: Convolution and Hybrid images
Project 2: SIFT Local Feature Matching
Project 3: Camera Calibration and Fundamental Matrix Estimation with RANSAC
Project 4: Stereo, part 1, Project 4: Stereo, part 2
Project 5: Recognition with deep learning
从以上的Project 可以知道,老师侧重在传统的CV上,然后最后有用到一些Machine Learning的东西。最后学完大概会知道怎麽从convolution找边框、用SIFT找feature、用数学的Fundamental Matrix来推导3D空间的相机位置、以及拼凑图片。
除了功课外还有两次open book的小考,题目没有到很简单,需要多去理解课程的内容才能答对,但不会花很多时间。


CSE 6242 Data and Visual Analytics (OCSMS TA)
凉度:适中偏凉
Instructor: Polo Chau, Mahdi
我在2021 Fall第一次修这堂课 (心得在此)。由于课堂人数众多,全部学生甚至会到千人,助教的空缺也相对较多,然而还是非常竞争。我从第二学期就开始固定会寄信去问空缺,最后才因缘巧合的在第三学期即将开学时当上了TA。
在我加入后,我被后面的组织的完整程度震撼到了,以下是欢迎的讯息!
没想到竟然有1300个学生以及35个TA,其中有一半的TA都做了蛮多次TA的。所有Homework、Project的规划、autograder、打分标准、工作流程都有非常详细的文件。内部甚至还有Senior TA 和Junior TA 1 on 1的传承制度,让我感觉到非常的有秩序,真的就像一间startup一样。
每个TA都要host 每周的一个Office hour,Office hour是以文字在slack上进行的,因此压力并不会很大。然后有些人会负责监督修改作业等等。其中最麻烦的工作就是要Grade Project,总共有三次 — 期初Proposal、期中Progress report、期末Final report。每一次都会被分配到大概20–30组,会需要较长时间来完成。
总结来说,这堂课的TA和其他课程比较算是比较轻鬆的,我想是由于几乎所有作业都很成熟并自动化了,而且背后的组织也非常的supportive,算是蛮特别的体验!
  • 93
7条回复