WPI CS(含ECE) 选课策略及教授介绍

avatar 97154
sskiso
14478
47
[align="left"]
[/align][align="left"] 到目前为止,我来WPI已经一年了,在此期间完全跟过的以及了解过的课程虽然不是很多,但我认为自己的些许感受和所了解到的观点提出来有助于其他同学的选课决策。尤其是这个summer实习归来,我发现很多CS的新同学都已经到了,正值选课之计,我希望下面的内容能切实的帮助到他们,同时也希望能向即将来WPI或想了解WPI CS Master课程的同学提供一些有用的信息。毕竟,一亩三分地目前是最广阔的北美留学平台,我觉的发在这里才能使这些内容传播地最广。此外,要感谢@W大的辛勤耕耘和地里众多同学的各种实用信息,They really helped/are helping/willhelp me a lot[/align]

[align="left"] PS: 我的表达能力不太好,所以有些内容可能说的不够细致,望大家谅解。我不会介绍教授的背景,研究领域,这对普通授课型MS没有太大意义,本文偏实用,不偏学术。[/align]
[align="left"]
[/align][align="left"] 本文只提WPI CS Master的课程和教授(为什么要提教授?因为即便同一门课,不同的教授也会导致你的学习过程和结果大相径庭),PHD课程和教授虽相同(你们可以参考),但有关PHD的其他方面我不甚了解,所以不多说了;另外我对本科的课程不熟悉,不过据我观察,相同教授(很多教授同时教授本科和研究生的课程)所教的类似课程相似度比较高,所以本科也可以参考。还有,WPICS系的同学如果你们想选CS课程的也可以参考一下本文的内容,尤其是ECE的同学,你们有很多课都是和CS相同的,并且是同一时间,同一地点,同一老师,只是彼此的课程名称不一样而已。[/align]
[align="left"]
[/align][align="left"] 首先,我来讲一下绝大部分WPI CS Master学生的毕业要求:(这些在研究生概览手册Graduate Catalog http://www.wpi.edu/academics/catalogs/grad.html 中都有,我做一下简单的说明)All M.S.students must complete the Breadth Requirement. M.S. students are required toachieve a passing grade in courses from four different bins. 看到了吧,你必须至少从4个方向中选出一门课并获得通过的分数。注意:通过是指A, B, C3个成绩,D是不能获得学分的,F就不用说了。研究生得了F,你的GPA就很有可能低于2.75,这样以后你的课程记分方式就会被降为只有PassFail,然后通过petition才能恢复成tradition的记分方式,即A, B, C, D, F。如果petition失败,那你将来的GPA就很有可能低于2.5,然后dismiss掉。[/align]

[align="left"]Graduate的评分信息:[/align][align="left"]A -Excellent[/align][align="left"]B - Good[/align][align="left"]C - Pass[/align][align="left"]D -Unacceptable for graduate credit[/align][align="left"]F – Fail[/align]
[align="left"]
[/align][align="left"] 现在继续回到4个方向的选课问题,这4个方向中有3个方向是必选的: Theory, Algorithms, Sy1point3acres.comsNetworks。即Theory, Algorithms, Sy1point3acres.coms或者Theory, Algorithms, Networks。剩下的一个方向你可以从Design, Compilers/Languages,Graphics/Imaging, AIDatabases中任选。[/align]
[align="left"]下面所列出的是你为了满足bins所能选的课:[/align]

[align="left"]Theory:[/align][align="left"]5003 (Intro.Theory), 503(Found.), 521 (Logic), 559 (Adv. Th.)[/align]
[align="left"]Algorithms:[/align][align="left"]5084 (Intro.Algorithms),504 (Analysis), 584 (Algs)[/align]
[align="left"]Systems:[/align][align="left"]502 (OS), 533(Perf. Eval.), 535(Adv. OS)[/align]
[align="left"]Networks:[/align][align="left"]513 (Comp Net.),529(Multi. Net.), 530 (HP Net.), 577 (Adv.Net.)[/align]
[align="left"]Design:[/align][align="left"]509 (SE),546 (HCI), 562 (Adv.SE)[/align]
[align="left"]Compilers/Languages:[/align][align="left"]536(Langs.), 544(Compilers)[/align]
[align="left"]Graphics/Imaging:[/align][align="left"]543(Graph.), 545(Im. Proc.), 549 [Vision], 563 (Adv. Gr.)[/align]
[align="left"]AI:[/align][align="left"]534 (AI),538 (Ex. Sys.), 539 (Learning),540 (AI Design), 549 [Vision][/align]
[align="left"]Databases:[/align][align="left"]542 (DB),561 (Adv. DB)[/align]
[align="left"]
[/align][align="left"] 从这个列表中按照上述规则选出4门课后,其他的课你可以随便选了。注意其中以5开头的4位数的课程是相应3位数课程的基础版本,例如50035035084584,学校官方称4位数的课程会简单一些,会教授一些基础知识,照顾基础弱的同学。实际上有些出入。有一点要注意:CS的学生可以选其他Department的课程,但最多只能选两门,并且这两门课程中还包括你所选的以5开头的4位数CS课程,也就是说,如果你选了5003,那你只能选一门外系的课了,如果你50035084都选了,那你不能再选外系的课了。我解释地够清楚了吧。[/align]
[align="left"]下面开始介绍选课,我会主要介绍4大方向中的课,因为这是谁也跑不掉的,你总得在4个大方向中至少各选一门课。[/align]

[align="left"]Theory:[/align][align="left"]5003 (FOUNDATIONS OF COMPUTER SCIENCE: ANINTRODUCTION):这门课主要讲授离散数学(基础)、有限自动机、正则语言、上下文无关文法、可确定性、图灵机和计算复杂度。这些是编译领域的基础。没有project,只有作业和考试。最近几年教授这门课的ProfessorDaniel J. Dougherty,简称DD,人不错,讲课还行,每节课quiz,如果作业好好做,你会发现quiz和考试基本都是与作业类似的内容,拿A比较容易(前提是把作业弄懂)。如果作业掉以轻心,你很可能得B[/align][align="left"]
[/align]
[align="left"]503(FOUNDATIONS OF COMPUTER SCIENCE):这是一门和5003一样的课,通常是给PHD提供的,一般由DD来教,有时也会由Gabor Sarkozy来教。如果DD同时教5003503,对于MS的学生他会让你选5003,不过有的MS也上了503,反映说没什么太大区别。[/align]

[align="left"]521 (LOGIC IN COMPUTER SCIENCE):此课是503基础上的高级课程,我没上过,据说更多地是从数学的角度来讲授深层的503中的内容,所以同学们,如果数学底子不够厚,请三思。[/align][align="left"]
[/align]
[align="left"]559 (ADVANCED TOPICS IN THEORETICAL COMPUTERSCIENCE):这门课我没上过,不过有一点需要注意:研究生课程中凡是带有ADVANCED TOPICS的,99%都是要读很多论文的,这些课程培养的是你的学术研究能力,我个人对此无爱,所以这类课程基本不会做太多介绍。我认为这些课非常适合PHD,以及那些理论背景雄厚的MS。如果需要更多信息,可以去问以前上过这门课的同学。[/align][align="left"]
[/align]
[align="left"]Algorithms:[/align]
[align="left"]5084 (INTRODUCTION TO ALGORITHMS: DESIGN ANDANALYSIS):算法,这门课本身没什么说的,本科都应该上过,没有project,全是作业和考试,每节课quiz。这门课通常由Micha Hofri来教来,口音很重,在算法课上数学讲的太多,这可能和他的背景有关,当我听了2节课并进行比较后,果断放弃了这门比较基础5084,转投584了。另外,我了解到,Hofri教授属于little toughgrader,所以同学们如果数学基础不牢,听力不够好(尤其是新生),慎选。[/align][align="left"]
[/align]
[align="left"]584 (ALGORITHMS: DESIGN AND ANALYSIS):与584类似,由Gabor Sarkozy(简称萨科奇)讲授,讲课清晰,不会有unexpectedquiz,人也不错。如果想满足算法的bin,建议同学们选择这门课。[/align][align="left"]
[/align]
[align="left"]504 (ANALYSIS OF COMPUTATIONS AND SYSTEMS):我不了解,只知道是更多地从数学的角度来讲授算法和计算理论,教授通常是Micha Hofri,所以各位请慎重。[/align][align="left"]
[/align]
[align="left"]Systems:[/align]
[align="left"]502 (OPERATING SYSTEMS)502WPI CS课程中比较tough的一门课(大多数学校中应该都是这样,不过据我从同学那了解到的,我发现WPIOS课比起CMUOS课要简单多了),但是对你了解底层还是很有帮助的。这门课主要是coding较多,有关文件和内存的管理等,Project和考试各占一半。考试难度中等,好好听课就行。通常教授这门课的是Jerry Breecher,讲课还行吧,打分也还不错,人也算nice。注意:上这门课你一定要熟悉C,下面这一段话是他的课程介绍中所写的:The project requires substantialprogramming in C, (3 to 4 thousand lines of code is not atypical), thusstudents should already have a sound programming foundation. CS 502 is not theplace to "pick up" C. 另外,如果你还熟悉Windows/Linux两大系统的系统调用和线程库就再好不过了(这一句是我说的)。另外此处有他提供的参考试题:http://web.cs.wpi.edu/~jb/CS502/samples/CS3013_Midterm_C07.pdf[/align]

[align="left"]533(MODELING AND PERFORMANCE EVALUATION OFNETWORK AND COMPUTER SYSTEMS,同 ECE581): 这门课是偏重于网络性能评估测量的,ECE581和这门课是一样的,同一个老师,一般是Jerry Breecher来教,几次Presentation,两个exam,一个与性能评估相关的项目,不是太复杂,如果你不喜欢502,或觉得502太难,可以用这门课来满足Systemsbin[/align][align="left"]
[/align]
[align="left"]535(ADVANCED TOPICS IN OPERATING SYSTEMS):有关操作系统的高级内容,大量的论文需要读,内容涉及502中的高级部分,比如分布式系统,多媒体系统,安全等等。通常讲授这门课的老师是Craig Wills,这是WPI CSDepartment Head,人很nice,讲课清晰,打分也不tough,如果对OS感兴趣可以听听这门课。[/align]

[align="left"]Networks:[/align]
[align="left"]513 (Computer Networks,同ECE506):计算机网络这门课如果是CS系的老师来教,就会比较累一些,如果是ECE的老师来教就会轻松一些。513讲授有关计算机网络的基础概念,和本科的内容差不多,如果你本科学过网络,从概念上来讲可能会好理解一些。如果是ECE的老师来教通常会偏重底层电子电路方面一些,没有太多codingproject。如果是CS的老师来教,通常会包含一个比较复杂的Project,要求你模拟一个简单的小型网络协议栈,并在此协议栈的基础上构建一个支持多用户的C/S架构的网络应用程序。所以你必须熟悉C/C++,如果你没有上过502并且对UNIX/Linux系统编程和TCP编程不熟悉,那么我建议你不要选。[/align][align="left"]
[/align]
[align="left"]接下来说说教授,如果是ECE的老师,通常是Kaveh Pahlavan,他是ECE的大牛,讲课还行,如果是他上这门课,你们会轻松一些。[/align][align="left"]
[/align][align="left"]如果是CS的老师,通常是Robert Kinicki(Bob Kinicki),那么这门课将会占用你大量的时间,他讲课一般,因为他的课程内容信息量巨大,自己也记不住,所以基本上只能念PPT,一节课讲100多张PPT是很正常的。此外他的课程中包含大量的模拟实验,各种Project,以及十分麻烦的MiddleFinal Exam,这里是他syllabushttp://web.cs.wpi.edu/~rek/Grad_Nets/Spring2013/CourseInformation_S13.pdf。两次Exam20道左右的问答题,有些题反正我对着PPT也没找到答案,这里有个往年的考试题,http://web.cs.wpi.edu/~rek/Grad_Nets/Spring2013/MidTerm_KEY_Spring2013.pdf,同学们可以参考一下。[/align][align="left"]
[/align][align="left"]注意:他是个非常toughgrader,考试的平均分基本是满分的一半,最后这门课的分数比例大概是10%A50%B30%C10%D,他说自己不会给F,他说F会导致研究生被kick off。其实我分析估计是如果他给了F,那么你进行petition的时候,他肯定不会签字。没有instructor的签字,你的petition是无法通过的。Kinicki好像很乐于做一个坏老师,而且我认为他对中国学生有偏见。一般课程上到一半时,有人会觉得很toughdrop这门课,他会提前在课上很善意地提醒大家(CS的课一般80%的中国学生)For international students, if you drop thiscourse, you may lose your visa. 原因是国际学生必须每学期选够3门课才能保持visa。这门课一般都在spring学习开设,一般会赶上中国的新年,在往年的课上,他会向中国学生问候“Happy Chinese New Year,然后让每个中国学生来回答一个与上节课内容相关的问题。诸如此类我就不列举了。此外,如果你最后不幸得了一个不好的分数C?D? ,不要去找他argue,没有用的。所以,如果是Kinicki教这门课,并且你是中国学生(不是中国学生应该也看不到本文),我给你的建议是Avoid him at all costs[/align][align="left"]
[/align]
[align="left"]另外,我注意到2014 Spring513Krishna Kumar Venkatasubramanian来教,我对此人不了解,猜测应该会比Kinicki好一些,了解的同学可以在回复中添加对其的评价。注意,CS513谁来教都不会太轻松,毕竟那个Project摆在那呢。建议你们避开Kinicki的课是因为他本人Abnormal[/align][align="left"]
[/align]
[align="left"]还有:现在CS的学生不能通过选ECE506来满足网络的bin了,只能选CS513[/align][align="left"]
[/align]
[align="left"]529(MULTIMEDIA NETWORKING):多媒体网络,讲授音视频算法在网络中的应用。这门课你需要阅读大量的论文,了解相关的音视频算法,需要有solid programming background,熟悉WindowsLinux平台编程均可。通常讲授这门课的是Mark Claypool教授,他人不错,但是讲课语速奇快无比,平常说话也一样,所以听力不好的就别选了,不过打分还算比较nice。如果不是有特殊的兴趣或其他原因,其实没什么必要选这门课。[/align][align="left"]
[/align]
[align="left"]530 (HIGH-PERFORMANCE NETWORKS,同ECE530):这门课讲授的内容和513有部分重叠,但更注重网络性能,拥塞控制的领域,不是太难。通常教这门课的教授是Eladio R. Cortes Ramos,有口音,讲课一般,7次作业和两次考试,好好跟下来并不难。另外,这个老师每年的教学计划和内容变动都很小很小哦,所以想拿A的同学,你懂的。[/align][align="left"]
[/align]
[align="left"]577 (ADVANCED COMPUTER AND COMMUNICATIONSNETWORKS,同ECE537):高级计算机网络,要读很多论文的哦,在513的基础上深入研究。通常由Kinicki教授来教,所以同学们你们自己看着办吧。[/align][align="left"]
[/align]
[align="left"]主要的内容说完了,剩下的课有时间再写吧。另外有一些比较不错的课推荐给你们:Xinming HuangECE505Elke Angelika RundensteinerCS542,以及George T. HeinemanCS509。另外CS系中每学期会有不少525X开头的课,X代表不同的课,一般都是不同的教授自己根据的背景和研究领域来设置的,有可能几年只有一次,或者只有一次,这就不如去选相同教授的固定编号的课程,这些课程基本上每年都会有,如果出了什么问题也好处理和补救,而且在课程内容上如果是同一个教授不会相差太多的。[/align]
[align="left"]Usefullinks[/align][align="left"]CS 课程介绍:http://www.wpi.edu/academics/catalogs/grad/cscourses.html[/align]
[align="left"]课本查询:[/align][align="left"]http://wpi.bncollege.com/webapp/wcs/stores/servlet/TBWizardView?catalogId=10001&storeId=32554&langId=-1&level=1[/align]
[align="left"]2013 Fall课程情况:[/align][align="left"]https://bannerweb.wpi.edu/pls/prod/hwwkrnbw.P_DisplayDept?sel_term=201401&sel_ptrm=A&sel_dept=CS&sel_desc=Computer+Science&sel_level=05&sel_campus=x[/align]
[align="left"]2014Spring课程情况:[/align][align="left"]https://bannerweb.wpi.edu/pls/prod/hwwkrnbw.P_DisplayDept?sel_term=201402&sel_ptrm=C&sel_dept=CS&sel_desc=Computer+Science&sel_level=05&sel_campus=x[/align]
[align="left"]
[/align][align="left"]主干已经说完了,有什么其他信息以后陆续补上,希望以上内容能帮到其他同学。Thanks[/align]
  • 51
47条回复