UIUC本科文理学院CS+Math专业就读体验
2450
UIUC的CS体系其实一开始会有点让人混淆。最“正统”的CS专业是在Grainger College of Engineering(工学院),而像CS+Math、CS+Stats、CS+X这些项目,其实都是隶属于文理学院(LAS)。需要特别说明的一点是,CS+Math不是double major,而是一个single major。也就是说,它不是把完整的CS和Math两个专业叠在一起,而是一个融合后的项目。在课程设置上,相比纯CS,会少一些偏系统和底层的必修课;相比纯Math,则不会要求那么多极其抽象的理论课程,整体是一个“夹在中间”的设计。
另外一个比较现实的情况是,CS+Math身边不少同学其实是从Math转过来的。UIUC在2023年春季之后不再接受转入工学院的本科CS专业,因此很多原本想转CS的学生,最后会选择转到CS+Math、CS+Stat等CS+系列项目,这也在一定程度上影响了项目的生源结构。
UIUC作为公校,同时CS又是非常热门的专业,一个很直观的体感就是“人多蛋糕小”。很多基础课动辄几百人甚至上千人,比如CS124、CS128、CS225这些课。如果作业拖到比较晚才开始写,去office hour往往要排队,一两个小时才轮到是很常见的事情,这一点对体验影响还是比较大的。
这种“人多蛋糕小”的情况其实不只体现在office hour上,也体现在选课上。一些热门课程的名额比较紧张,想选到理想的课有时候并不容易,需要提前规划甚至抢课。
CS124和CS128的形式也比较特殊,除了考试之外,其余内容基本都是线上完成,主要依赖看视频自学。当时的office hour也大多是线上进行,这就导致一个问题:互动感明显不如线下,对于一些比较抽象、需要反复讲解的内容,很难在短时间内讲清楚、讲透。如果自律性不强,或者基础不太好的话,这种模式其实是有一定门槛的。
CS225是一门非常重要的基础课,内容本身非常实用,对后续很多课程都有帮助。同时它也是一门对刷题非常有帮助的课程,尤其是在数据结构和问题建模方面,对LeetCode的提升是比较直接的。不过这门课使用的是C++,涉及指针和内存管理,这会明显增加理解和调试的难度。对于没有系统编程经验的人来说,前期会有一定的学习成本,不过从长远来看,这门课的收益是很高的。
CS+Math项目整体的workload是比较大的。一方面要完成CS的核心课程,另一方面还要上数学系的课,比如Math412(图论)这类课程,证明和作业都比较耗时间。两个方向叠加起来,很容易出现一个问题,就是大部分时间都被课程占据,从而挤压找实习和准备面试的时间。
CS374这门课基本可以说是UIUC CS体系里的一个分水岭。这门课的内容非常密集,相当于是把三块内容压缩在一个学期内:第一部分是自动机和形式语言,比如regex、DFA、NFA、CFG、fooling set等;第二部分是算法思想,包括recursion、divide and conquer、BFS、DFS、图算法、动态规划、拓扑排序等,但重点不是写代码,而是证明和思维方式;第三部分是NP-hardness和undecidability。这门课不仅理论强度大,同时对算法思维的训练也非常系统,对于后续刷题(尤其是一些偏难的题)是有明显帮助的。整体来说,CS225+CS374这两门课,对LeetCode能力的提升是比较显著的。这门课的一个很明显的特点是学生态度两极分化,要么投入大量时间冲A,要么选择保底通过,中间状态反而比较少。
CS+Math还要求修一个Group V的课程。我当时选的是CS473,也就是CS374的升级版。实际体验是,这类课的实用性未必有想象中那么高,但workload非常大,一周几乎所有时间都要投入进去。如果同时还修其他课程,很容易出现整体负担过重的情况,从投入产出比来看,并不是特别理想。
在资源方面,“人多蛋糕小”的问题同样体现在research和推荐信上。如果想参与科研或者拿到教授推荐信,必须非常非常非常主动。很多300和400level的CS课程依然是三四百人的大课,教授基本不可能记住所有学生。如果不主动去office hour、下课后提问、增加交流机会,很难建立联系,这一点需要有心理准备。
就业方面的一个非常真实的感受是:基本上是“靠自己”。学校确实会有career fair以及一些资源,但整体支持力度并不算强,尤其是内推资源其实非常有限,很多时候并不能真正起到决定性作用。最终能不能拿到实习或全职,还是高度依赖个人准备,包括刷题、项目以及投递策略等。从身边的情况来看,本地美国学生或者有身份的同学,大多在本科毕业后直接进入全职工作;而很多国际学生则会选择继续读研(比如MCS)再找工作,或者转向读博。另外一个比较现实的点是,UIUC本科CS以及CS+系列项目是有研究生MCS的保录路径的(具体政策可能会有调整),我们当时是根据几门指定CS课程的GPA来决定是否满足条件,这也在一定程度上影响了一部分人的选择路径。
Champaign的地理位置和环境也是一个比较两极的因素。如果平时喜欢待在室内、打游戏或者专注学习,其实会觉得比较舒服;但如果更喜欢城市生活,可能会觉得有些单调。天气方面变化也比较大,春秋季节甚至可能在几天内经历从二十多度到零下十几度的波动。冬天通常会有一到两次持续一到两周的极端低温期,气温在-10到-25之间,体感温度可能接近-30。此外,偶尔也会有龙卷风、冰雹等极端天气。
生活方面,中国学生数量比较多,一个明显的好处是中餐资源比较丰富,而且不少餐馆的口味还是比较正宗的,日常生活不会太不方便。
总体来看,CS+Math是一个课程体系扎实、理论和应用都有覆盖的项目,但workload较大,同时资源竞争也比较激烈。它更适合自驱力强、能接受较高强度学习的人。如果希望课程相对轻松,或者希望学校在找工方面提供更多“手把手”的支持,这个项目可能就不太匹配。
另外一个比较现实的情况是,CS+Math身边不少同学其实是从Math转过来的。UIUC在2023年春季之后不再接受转入工学院的本科CS专业,因此很多原本想转CS的学生,最后会选择转到CS+Math、CS+Stat等CS+系列项目,这也在一定程度上影响了项目的生源结构。
UIUC作为公校,同时CS又是非常热门的专业,一个很直观的体感就是“人多蛋糕小”。很多基础课动辄几百人甚至上千人,比如CS124、CS128、CS225这些课。如果作业拖到比较晚才开始写,去office hour往往要排队,一两个小时才轮到是很常见的事情,这一点对体验影响还是比较大的。
这种“人多蛋糕小”的情况其实不只体现在office hour上,也体现在选课上。一些热门课程的名额比较紧张,想选到理想的课有时候并不容易,需要提前规划甚至抢课。
CS124和CS128的形式也比较特殊,除了考试之外,其余内容基本都是线上完成,主要依赖看视频自学。当时的office hour也大多是线上进行,这就导致一个问题:互动感明显不如线下,对于一些比较抽象、需要反复讲解的内容,很难在短时间内讲清楚、讲透。如果自律性不强,或者基础不太好的话,这种模式其实是有一定门槛的。
CS225是一门非常重要的基础课,内容本身非常实用,对后续很多课程都有帮助。同时它也是一门对刷题非常有帮助的课程,尤其是在数据结构和问题建模方面,对LeetCode的提升是比较直接的。不过这门课使用的是C++,涉及指针和内存管理,这会明显增加理解和调试的难度。对于没有系统编程经验的人来说,前期会有一定的学习成本,不过从长远来看,这门课的收益是很高的。
CS+Math项目整体的workload是比较大的。一方面要完成CS的核心课程,另一方面还要上数学系的课,比如Math412(图论)这类课程,证明和作业都比较耗时间。两个方向叠加起来,很容易出现一个问题,就是大部分时间都被课程占据,从而挤压找实习和准备面试的时间。
CS374这门课基本可以说是UIUC CS体系里的一个分水岭。这门课的内容非常密集,相当于是把三块内容压缩在一个学期内:第一部分是自动机和形式语言,比如regex、DFA、NFA、CFG、fooling set等;第二部分是算法思想,包括recursion、divide and conquer、BFS、DFS、图算法、动态规划、拓扑排序等,但重点不是写代码,而是证明和思维方式;第三部分是NP-hardness和undecidability。这门课不仅理论强度大,同时对算法思维的训练也非常系统,对于后续刷题(尤其是一些偏难的题)是有明显帮助的。整体来说,CS225+CS374这两门课,对LeetCode能力的提升是比较显著的。这门课的一个很明显的特点是学生态度两极分化,要么投入大量时间冲A,要么选择保底通过,中间状态反而比较少。
CS+Math还要求修一个Group V的课程。我当时选的是CS473,也就是CS374的升级版。实际体验是,这类课的实用性未必有想象中那么高,但workload非常大,一周几乎所有时间都要投入进去。如果同时还修其他课程,很容易出现整体负担过重的情况,从投入产出比来看,并不是特别理想。
在资源方面,“人多蛋糕小”的问题同样体现在research和推荐信上。如果想参与科研或者拿到教授推荐信,必须非常非常非常主动。很多300和400level的CS课程依然是三四百人的大课,教授基本不可能记住所有学生。如果不主动去office hour、下课后提问、增加交流机会,很难建立联系,这一点需要有心理准备。
就业方面的一个非常真实的感受是:基本上是“靠自己”。学校确实会有career fair以及一些资源,但整体支持力度并不算强,尤其是内推资源其实非常有限,很多时候并不能真正起到决定性作用。最终能不能拿到实习或全职,还是高度依赖个人准备,包括刷题、项目以及投递策略等。从身边的情况来看,本地美国学生或者有身份的同学,大多在本科毕业后直接进入全职工作;而很多国际学生则会选择继续读研(比如MCS)再找工作,或者转向读博。另外一个比较现实的点是,UIUC本科CS以及CS+系列项目是有研究生MCS的保录路径的(具体政策可能会有调整),我们当时是根据几门指定CS课程的GPA来决定是否满足条件,这也在一定程度上影响了一部分人的选择路径。
Champaign的地理位置和环境也是一个比较两极的因素。如果平时喜欢待在室内、打游戏或者专注学习,其实会觉得比较舒服;但如果更喜欢城市生活,可能会觉得有些单调。天气方面变化也比较大,春秋季节甚至可能在几天内经历从二十多度到零下十几度的波动。冬天通常会有一到两次持续一到两周的极端低温期,气温在-10到-25之间,体感温度可能接近-30。此外,偶尔也会有龙卷风、冰雹等极端天气。
生活方面,中国学生数量比较多,一个明显的好处是中餐资源比较丰富,而且不少餐馆的口味还是比较正宗的,日常生活不会太不方便。
总体来看,CS+Math是一个课程体系扎实、理论和应用都有覆盖的项目,但workload较大,同时资源竞争也比较激烈。它更适合自驱力强、能接受较高强度学习的人。如果希望课程相对轻松,或者希望学校在找工方面提供更多“手把手”的支持,这个项目可能就不太匹配。
