UT-Austin ECE-SES 半学期就读体验

29400
79
看到朋友发了个ACSES的体验贴,正好今天很没有心情学习,又想到新一届也快要到选择offer的时间了,我也来发个SES的就读体验。

本人情况比较特殊,于2022 Spring正式入学,目前为止只在UT上了半个学期,提供的感受相对片面(比如,因为没有上够两学期,今年夏天并没有CPT资格,因此也没有找实习),现在发帖也是临时起意,想到哪说到哪,可能没什么条理,权当给各位一个参考。

首先说一下奥斯汀这个城市吧。其实客观地评价,奥斯汀是一个有点无聊的地方。整个城市华人的比例不是很高,中餐不多(至今应该都没有一家火锅店?),好玩的也不多。它不是你想象中的那种大都会,尽管是德州首府,也是各大科技公司正在陆续搬来的所谓silicon hills,但整体气质还是比较大农村的,论大城市德州可能还得看休斯敦。但感觉上,奥斯汀目前仍然是一个在上升期的城市,在这边工作的朋友说他们当地华人的工作群里几乎每周都有刚搬过来工作的人,房价似乎也还在涨着。说到房价呢,虽然作为学生还没考虑这个问题,但房租这么一个肉眼可见的指标还是很明显的。在地里看到早几年的经验贴说人均六七百刀的2B2B,现在应该至少都得八九百了(指Far West这块)。

天气的话,基本上是比较炎热的。冬天也不太冷,尽管去年冬天出现了百年一遇的雪灾,但毕竟是百年一遇。据说夏天会热到晒脱皮的级别,但我夏天的时候还没有来所以不知道……单说冬天,圣诞去纽约玩一趟回来,还是给人很幸福的感觉的,纽约是真的冷啊。

然后说说学校。

UT的国际生比例(尤其是本科)是很低的,中国学生就更少了。我这学期选了两门本科课,其中一门EE 460N Computer Architecture貌似是完全只有我一个中国人,这在地里大家熟知的学校里可能不太常见(当然研究生课是不会这样的)。但研究生也不能说很多,一个比较有意思的事情是,有次和UCSD的朋友聊到Leetcode按学校拼会员的那个活动,UCSD的一天不到就拼齐了50个成员,而UT据说拼到了活动截止都没凑齐……

人少其实也有好处,那就是人均资源比较多。在这边看到的想转PhD的同学也都很快转了,我自己找RA也是没有花费太大功夫。当然也得感谢我的RA老板兼本科校友钊哥人好,这学期光写作业了,感觉挺对不住他的。20hr的RA和TA在这边呢,是学费全免的,还cover保险(并且可以免费享受staff的牙科眼科等额外的保险),每个月还发两千多刀的工资。当初我选校最终二选一是UT ECE和CMU INI-MSIN,因为本人实在体质虚弱,考虑到CMU中国人的密度和找工压力,选择了UT。这个选择当然是见仁见智,并且我目前为止也没有开始找工的进程,所以大家可以当个乐子看。

再具体说说ECE。
我本人本科是CS,其实之前也碰到有不了解的朋友疑惑你本科CS怎么来读ECE了。但我看了一圈身边SES的朋友好像基本上本科都是CS的?老实讲我觉得至少SES这个track,它就是CS。在选课上它的灵活度是很大的,advisor说基本上只要你能找到这门课和software的关联,你就能把这门课算入你的major课程。那你想上的CS课有哪门不属于这个行列呢?ECE自己就开了不少非常CS的课程,并且我们还能选到隔壁CS的课,尽管优先级比他们低,但耐不住UT人确实少,在waitlist里蹲一蹲应该大部份人都能上到想上的课。

我这学期上三门课:EE461S Operating Systems,EE460N Computer Architecture, 以及我忘了课程号的blockchain。其中前两门都是ECE的本科课。ECE这边graduate students最多能把两门本科课记入最后的毕业要求,等于是我刚来第一学期就都用掉了(但在满足毕业要求的前提下,多上点我觉得应该是也是可以的)。OS这门课的lab是写PintOS,使用的教材是OSTEP。老师是个印度人,貌似不搞科研专职讲课,讲得非常好,并且他上课用的手写软件还是自己开发的。PintOS的lab也还算有一定挑战性,尽管写着写着我感觉它似乎不如xv6,一些设计貌似怪怪的,和主流的操作系统实践应该不太一样,但这是斯坦福的问题,跟UT无关(笑)。这个课workload适中,四个lab(第一个是写一个支持job control的简易shell,后面三个是PintOS的后三个lab,user program,virtual memory和filesystem,每周还有quiz。虽然目前还没有结束,但我觉得上完应该是可以对OS有一个big picture级别的理解的。想要深入的话,CS那边应该有开advanced OS。

第二门是CompArch。这门课是由大牛Yale Patt设计的,workload有点杀人。在秋季学期它应该会crosslist给研究生,但我考虑到秋季我的重心可能会在找实习上,因此把这个麻烦的课放到不用找实习的这个学期。这门课一共5个HW,3次exam和6个lab,如果是研究生版本,貌似还要多加一个lab。这6个lab实现的东西是给LC3b这个教学专用指令集失陷一个assembler和一个simulator,并在上面加上interrupt/exception handler,virtual memory和pipeline,应该算是比较全面地cover了CompArch的大致内容,使用的又是比较简单的LC3b,能在给学生造成没有那么大的心智负担的情况下完成教学。(隔壁Microarch写x86模拟器我是已经听说了,那门课也是Yale Patt……)但尽管心智负担不大,这几个lab还是很麻烦的。开学第一周我还没进入入学状态的时候突然意识到马上lab 1就截止了?然后写了四天差不多1000行代码才把这个assembler糊完了,感觉这个lab属于是上来先劝退一波,让顶不住的赶紧退课。并且这门课的autograder很烦人的就是,它只给你一次test和一次grade的机会,并且test的时候只告诉你分数,不告诉你哪些case fail了。让我们不得不自己测试到(自认为)天衣无缝了,才敢提交,到后面设计状态机填control store信号表的时候这简直是一种折磨。但老师还是会倾听民意的,在他组织的fireside chat上我提出了这个顾虑,最后老师决定给大家增加一次test的机会……目前扛到了lab 4,我强撑着每次lab都满分的确也是花了很多时间的结果。

但这门课的lab其实总共只占30%,三次考试真的有点无力吐槽。我朋友在隔壁帖子里也说到了这个问题,我就不重复了。怎么说呢,一个小时,五个大题,允许开卷因为开卷根本没用,能把题读完就自求多福吧。对这门课的整体评价呢,应该是一门优秀的CompArch课程。我本科在国内上的计算机系统结构我诚实地说基本没学明白,现在也算有了一些理解。但这门课真的非常耗时间,一学期同时上OS和CompArch,再来个RA,的确是load有点大。

Blockchain这门课我就不多谈了,我没怎么听过,上了没几周就开始每周请人来讲座了,也没什么作业,算是为了中和OS和CompArch的压力选的吧。这里顺便说一下,UT选课想选硬课,可能需要好好精打细算下,因为人少,开的课就没有那么多;但想为了找工选水课应该选择是蛮多的,据我朋友说有人为了找工跑去选统计系的入门级C++课,作为科班出身应该这种课可以直接乱杀然后全心刷题吧。

找工的情况我的确是不算很了解,因为我初来乍到,交际圈也不是很大,有听说三四个Meta,但也有一个求职季下来只有一个面试的朋友(并靠这仅有的一个面试战获offer)。可能这方面偶然性确实很大,也因人而异,我自己这学期主要为课业焦头烂额,也该要开始准备着刷题找工的事情了,后续我了解更多后再来更新。
暂时能想到的就这些,时间也不早了准备去吃饭了。希望优秀的学弟学妹们都可以看看UT,有什么想了解的也可以随时问我,我要是不知道就去帮你们问其他朋友~

补充内容 (2022-04-14 13:25 +8:00):
感觉需要补充一下:

UT ECE选课的确是限制不大,但与此同时选择性也不大。像我说的要选到满意的课是真的需要“精挑细选”的,并且也只能看菜下饭:看看这学期开了什么好课,再决定这学期主要学什么;而不是根据自己的意愿来挑选对应的课,因为可能这个学期根本就没有。不过据我所知想选workload小好刷题的课是没有问题的,对上好课硬课有诉求的同学可能需要再掂量掂量。