University of Pennsylvania BSE CS 院系介绍
1121
赶在毕业之前分享一下自己的学校和专业给地里的朋友。
概览
Penn的工程学院 (School of Engineering and Applied Science) 本科计算机专业分两个track: Bachelor of Science in Engineering (BSE) 和 Bachelor of Applied Science (BAS)。此外文理学院 (School of Arts and Sciences) 的人可以把计算机作为第二专业,不过这里就不讨论了。
BSE因为是ABET认证的工程师学位,所以要求更为严苛。BAS不需要修线性代数和概率统计,专业课里面又免去了操作系统和计算机组成。其实对于找工作,两个track没有太大区别。除非面试官也是Penn的,不然他大概率不知道有两个track,更不用提两者的区别。不少人在找到实习后,大三大四想要偷懒,会从BSE转成BAS。此外一些和商学院 (The Wharton School) 或者文理学院双学位的人为了减轻工作量也会选择BAS。
计算机低阶课(课号1xxxx)的教学质量参差不齐。能看出来教授和助教都是认真投入的,但是客观来说很多讲的不如很多线上资源清楚,或者不如自己读往年教的好的教授/学的好的学生总结的讲义。从课号2xxx的课开始就好一些。很多课教授自己是大牛,早早就tenure了,论文引用上百,有的甚至有Wikipedia page。讲明白课对他们来说不在话下,就算讲的一般slides也写的清楚明了。其他课是讲师或还没tenure的教授在教,但是普遍也很不错。
GPA方面,多数必修课的中位数是B或者B+,大约20-25%的人能拿A,接下来从A-开始每个letter grade大约有15%的人。整体给分比较宽松,从来没有哪门课会被curve down。认真学的话,拿3.8+/3.9+的难度不大。
很多人还会选择做Accelerated Masters,比较热门的项目包括CIS (Computer and Information Science), DATS (learn.1point3acres.com), ROBO (Robotics)。这些Masters项目本身是10门课,但是accelerated可以和本科double count 3门,比单上一个masters划算多了,还省去了申请masters繁琐的步骤。
课程
必修专业课包括如下:
CIS 1100: 基础编程
和AP CSA的内容一样,但是工作量很大。如果考了AP可以直接兑换学分跳过这节课。因为有很多不是计算机专业的人上这节课满足他们的通识教育要求,成绩比较好拿。
CIS 1200: 编程语言
著名的劝退课,前半学期要用OCaml。系里给的理由是,不同人学编程的时候用的不同语言,不希望让会某种语言的人开始有unfair advantage…… Anyways,教的内容就是1100的延申,nothing special。工作量比较大,一周due一个programming assignment。
CIS 1210: 数据结构与算法基础
著名的劝退课2.0,教授和TA就差直说“转minor还来得及,这节课minor也必修”了lol。劝退的原因是工作量大,一周同时due一个programming assignment和一个written proof-based assignment,题目还都不少。难度倒是还好,认真学都能学明白。课程内容设置不错,Leetcode上会碰到的数据结构都有教,该有的的排序算法和图算法也都有。深度对于intro class也够了。
CIS 1600: 离散数学
一言以蔽之,小学奥数+基础图论。这节是系里出了名的难课,甚至于其他专业的人都有所耳闻,不过对于经历过国内小升初和初升高的人来说倒是还好。
CIS 2400: 计算机系统与编译器
整节课围绕着一个问题——How does the computer work?——展开。教的内容很杂,C语言、数字电路、指令集架构、汇编语言等等都有。最后一个programming assignment是写一个compiler,做完真的会有掉了一层皮的感觉……
CIS 2620: 自动机与问题复杂度分析
蛮有意思但是对于找工没什么用的课,内容现在也已不记得多少了,只记得好多题都是诸如 proving a problem is NP Hard 一类的,以及学了一些常见的问题例如3SAT这些。工作量倒是不大,虽然每周due一个written assignment,但是一般只有两三道题。
CIS 3200: 算法
个人最喜欢的课!算是1210和2620的延续吧,重要的topic包括全域哈希、动态规划、贪心算法、最大流最小切等等等等。上完对刷LeetCode很有帮助,同样的这门课学的好的人基本都是LeetCode刷了不少的人。作业会有LeetCode原题,让写proof of correctness和时间空间复杂度分析。从算法课开始assignment的密集度就下降了很多,不会再每周都有due了。绝大多数高阶课都是两周一个due。
CIS 4480: 操作系统
工作量非常大,也是在所有BSE的人里面口碑非常好的一门课,因为确实可以学到不少对SWE找工有帮助的内容,包括线程进程,信号传输,虚拟内存等等。要求两个人组队写一个操作系统,会拆成好几个assignment,包括shell, file system, scheduler, etc.。上完这门课也是掉了一层皮的感觉……
CIS 4710: 计算机组成
工作量和4480近似,难度个人感觉比4480好一点,但是似乎因人而异。也是两个人组队,主要assigment是用SystemVerilog implement一个processor。和2400的内容很相关,适合在上完2400的那个学期之后立刻上掉。
四门major electives要覆盖到五个方向:网络、数据库、分布式系统、机器学习/人工智能、以及项目开发。上的人比较多的课包括 5050 (软件系统), 5190 & 5200 (人工智能), 5450 (大数据), 5500 (数据库), 5530/5550 (网络) 等等。六门technical electives要求的就十分宽松了,很多院系的课都可以满足要求,很适合用来count double major和minor的课。大部分工院其他专业的课以及文理学院STEM的课都可以count。商学院不少金融运筹和统计的课也可以。此外还需要修微积分、线性代数、概率统计、以及物理。然后就是通识课可以学些有意思的东西。
找工
学校提供的找工资源不多,每年秋季会组织几次career fair。FAANG基本都会来,还有小众一些的公司像Accenture和SIG也喜欢来。从身边统计学来看,感觉career fair作用比较有限,能把递给recruiter的resume转化成first round的概率很低。不少公司还会专门办自己的info session,但是也没有用,大家去是为了拿merch和free food,而不是面试……
拜学校pre-professional风气所赐,且在商学院越来越早的求职时间线的影响下,系里找实习/工作的氛围非常非常浓厚,近乎所有人大一就会开始做project写resume刷LeetCode找人network。数据上看,BSE CS的就业率(毕业后六个月内全职工作的人数/毕业生人数)挺高的,过去几年一直在85%左右。剩下的人基本都去读研读博了。
由于是在东岸,找quant工作的人不少,BSE项目里拿到developer, trader, 和researcher offer的都有。这几年一方面是quant在扩张,一方面是申请的人准备的也越来越充分,大家普遍placement都很不错,基本上每个暑假都会有去Jane Street, Cit Sec, Five Rings, Bridgewater, Two Sigma, Optiver, SIG, IMC, DRW实习的人。去FAANG或者同级别的big-name startup的人也有不少,目测一届有30个往上。
生活
费城毗邻纽约和DC,一到周末或节假日就有不少人会去曼岛和DC逛吃。和这两座国际都市比起来费城就黯然失色了。不过客观来说,费城的生活便利程度已经相当不错了,该有的也都有。中国城也颇具规模,而且离大学城不远,坐车15-20分钟就到。槽点主要在于天气,阴天不少且不分季节地经常下雨。此外就是脏乱,基础设施老旧,流浪汉很多。不过这些也算是美国城市的通病了。
大学城的环境不错,附近的超市、餐馆、和公寓楼选择都很多。学校的设施和服务也很给力。鉴于别的平台上有不少这些信息,这里就不赘述了。
总的来说很推荐Penn的BSE in CS!
概览
Penn的工程学院 (School of Engineering and Applied Science) 本科计算机专业分两个track: Bachelor of Science in Engineering (BSE) 和 Bachelor of Applied Science (BAS)。此外文理学院 (School of Arts and Sciences) 的人可以把计算机作为第二专业,不过这里就不讨论了。
BSE因为是ABET认证的工程师学位,所以要求更为严苛。BAS不需要修线性代数和概率统计,专业课里面又免去了操作系统和计算机组成。其实对于找工作,两个track没有太大区别。除非面试官也是Penn的,不然他大概率不知道有两个track,更不用提两者的区别。不少人在找到实习后,大三大四想要偷懒,会从BSE转成BAS。此外一些和商学院 (The Wharton School) 或者文理学院双学位的人为了减轻工作量也会选择BAS。
计算机低阶课(课号1xxxx)的教学质量参差不齐。能看出来教授和助教都是认真投入的,但是客观来说很多讲的不如很多线上资源清楚,或者不如自己读往年教的好的教授/学的好的学生总结的讲义。从课号2xxx的课开始就好一些。很多课教授自己是大牛,早早就tenure了,论文引用上百,有的甚至有Wikipedia page。讲明白课对他们来说不在话下,就算讲的一般slides也写的清楚明了。其他课是讲师或还没tenure的教授在教,但是普遍也很不错。
GPA方面,多数必修课的中位数是B或者B+,大约20-25%的人能拿A,接下来从A-开始每个letter grade大约有15%的人。整体给分比较宽松,从来没有哪门课会被curve down。认真学的话,拿3.8+/3.9+的难度不大。
很多人还会选择做Accelerated Masters,比较热门的项目包括CIS (Computer and Information Science), DATS (learn.1point3acres.com), ROBO (Robotics)。这些Masters项目本身是10门课,但是accelerated可以和本科double count 3门,比单上一个masters划算多了,还省去了申请masters繁琐的步骤。
课程
必修专业课包括如下:
CIS 1100: 基础编程
和AP CSA的内容一样,但是工作量很大。如果考了AP可以直接兑换学分跳过这节课。因为有很多不是计算机专业的人上这节课满足他们的通识教育要求,成绩比较好拿。
CIS 1200: 编程语言
著名的劝退课,前半学期要用OCaml。系里给的理由是,不同人学编程的时候用的不同语言,不希望让会某种语言的人开始有unfair advantage…… Anyways,教的内容就是1100的延申,nothing special。工作量比较大,一周due一个programming assignment。
CIS 1210: 数据结构与算法基础
著名的劝退课2.0,教授和TA就差直说“转minor还来得及,这节课minor也必修”了lol。劝退的原因是工作量大,一周同时due一个programming assignment和一个written proof-based assignment,题目还都不少。难度倒是还好,认真学都能学明白。课程内容设置不错,Leetcode上会碰到的数据结构都有教,该有的的排序算法和图算法也都有。深度对于intro class也够了。
CIS 1600: 离散数学
一言以蔽之,小学奥数+基础图论。这节是系里出了名的难课,甚至于其他专业的人都有所耳闻,不过对于经历过国内小升初和初升高的人来说倒是还好。
CIS 2400: 计算机系统与编译器
整节课围绕着一个问题——How does the computer work?——展开。教的内容很杂,C语言、数字电路、指令集架构、汇编语言等等都有。最后一个programming assignment是写一个compiler,做完真的会有掉了一层皮的感觉……
CIS 2620: 自动机与问题复杂度分析
蛮有意思但是对于找工没什么用的课,内容现在也已不记得多少了,只记得好多题都是诸如 proving a problem is NP Hard 一类的,以及学了一些常见的问题例如3SAT这些。工作量倒是不大,虽然每周due一个written assignment,但是一般只有两三道题。
CIS 3200: 算法
个人最喜欢的课!算是1210和2620的延续吧,重要的topic包括全域哈希、动态规划、贪心算法、最大流最小切等等等等。上完对刷LeetCode很有帮助,同样的这门课学的好的人基本都是LeetCode刷了不少的人。作业会有LeetCode原题,让写proof of correctness和时间空间复杂度分析。从算法课开始assignment的密集度就下降了很多,不会再每周都有due了。绝大多数高阶课都是两周一个due。
CIS 4480: 操作系统
工作量非常大,也是在所有BSE的人里面口碑非常好的一门课,因为确实可以学到不少对SWE找工有帮助的内容,包括线程进程,信号传输,虚拟内存等等。要求两个人组队写一个操作系统,会拆成好几个assignment,包括shell, file system, scheduler, etc.。上完这门课也是掉了一层皮的感觉……
CIS 4710: 计算机组成
工作量和4480近似,难度个人感觉比4480好一点,但是似乎因人而异。也是两个人组队,主要assigment是用SystemVerilog implement一个processor。和2400的内容很相关,适合在上完2400的那个学期之后立刻上掉。
四门major electives要覆盖到五个方向:网络、数据库、分布式系统、机器学习/人工智能、以及项目开发。上的人比较多的课包括 5050 (软件系统), 5190 & 5200 (人工智能), 5450 (大数据), 5500 (数据库), 5530/5550 (网络) 等等。六门technical electives要求的就十分宽松了,很多院系的课都可以满足要求,很适合用来count double major和minor的课。大部分工院其他专业的课以及文理学院STEM的课都可以count。商学院不少金融运筹和统计的课也可以。此外还需要修微积分、线性代数、概率统计、以及物理。然后就是通识课可以学些有意思的东西。
找工
学校提供的找工资源不多,每年秋季会组织几次career fair。FAANG基本都会来,还有小众一些的公司像Accenture和SIG也喜欢来。从身边统计学来看,感觉career fair作用比较有限,能把递给recruiter的resume转化成first round的概率很低。不少公司还会专门办自己的info session,但是也没有用,大家去是为了拿merch和free food,而不是面试……
拜学校pre-professional风气所赐,且在商学院越来越早的求职时间线的影响下,系里找实习/工作的氛围非常非常浓厚,近乎所有人大一就会开始做project写resume刷LeetCode找人network。数据上看,BSE CS的就业率(毕业后六个月内全职工作的人数/毕业生人数)挺高的,过去几年一直在85%左右。剩下的人基本都去读研读博了。
由于是在东岸,找quant工作的人不少,BSE项目里拿到developer, trader, 和researcher offer的都有。这几年一方面是quant在扩张,一方面是申请的人准备的也越来越充分,大家普遍placement都很不错,基本上每个暑假都会有去Jane Street, Cit Sec, Five Rings, Bridgewater, Two Sigma, Optiver, SIG, IMC, DRW实习的人。去FAANG或者同级别的big-name startup的人也有不少,目测一届有30个往上。
生活
费城毗邻纽约和DC,一到周末或节假日就有不少人会去曼岛和DC逛吃。和这两座国际都市比起来费城就黯然失色了。不过客观来说,费城的生活便利程度已经相当不错了,该有的也都有。中国城也颇具规模,而且离大学城不远,坐车15-20分钟就到。槽点主要在于天气,阴天不少且不分季节地经常下雨。此外就是脏乱,基础设施老旧,流浪汉很多。不过这些也算是美国城市的通病了。
大学城的环境不错,附近的超市、餐馆、和公寓楼选择都很多。学校的设施和服务也很给力。鉴于别的平台上有不少这些信息,这里就不赘述了。
总的来说很推荐Penn的BSE in CS!
