在美国大学计算机专业都学什么?

article/2025/11/9 23:05:48

作者简介:祁一鸣,2016年4月加入携程,任机票研发部技术专家,同时负责携程App国际机票预定主流程技术团队。毕业于美国常春藤名校 Dartmouth College 本科,曾先后在硅谷的Oracle、Yahoo!和Salesforce总部效力过。从scratch到delivery完成过的最成功的产品是年销售额超1亿美金的商业社区网站模板。平时喜欢吃冰激凌和甜甜圈,也蛮喜欢上海野兽派的花。 
【编者按】在这个行业,我们关心着大洋彼岸硅谷世界里的新动向新技术,但这一切却都来源于最初的教育。在这篇文章中,一鸣分享了他是如何开启学习计算机科学的道路,所学的课程以及经历感受。希望透过这篇文章,了解一些我们未曾触碰过的面,从中收获些许启发。

我是2010届毕业的美国Dartmouth College(达特茅斯学院)的计算机专业本科生。Dartmouth College位于美国东北部新英格兰地区的New Hampshire(新罕布什尔州),一年中有将近五个月的漫长冬季。从学校向北开车三小时可以到达加拿大的Montreal(蒙特利尔)大都市练习法语口语,往南开车三小时可以到达美国Massachusetts州的港口城市Boston吃小绵羊火锅。Dartmouth成立于1769年,作为美国常春藤大学联盟之一,在2016年U.S. News的美国本科院校排名榜中的占第11位。

起始:抱着对计算机的好奇心

在开始大学生涯之前, 我对计算机这一门学科的接触不多,唯一记得的大概就是中学时代上计算机课时用Visual Basic写过几个小程序。用周围爸爸妈妈的话来讲,就是远远地输在了未来要当程序员的起跑线上。不过对于这一切,当时的我是并不知道的。

Dartmouth一年有四个学期,也就是美国俗称的Quarter System。每个Quarter学期的时间是10个礼拜上下,一般修3门课,一门课一个学分。毕业时每个学生要修满36个学分,并且有三分之一的课程(12个学分)是致力于某一个专业。 
Dartmouth有一点不同于其他七所常春藤联盟学校,它属于Liberal Arts College(文理学院)。

Liberal Arts College有一个我很喜欢的地方,就是刚进大学的前两年可以自由选修不同领域的课程,发掘自己的兴趣爱好,找到合适的专业。然后,在大二结束之前必须确立好专业,用剩下两年的大学时间来主修自己的专业课程。 
每年的春季学期都会有一门计算机入门课,叫作CS5 Introduction to Computer Science。抱着对计算机的好奇心,我在大一春季修了这门课。因为CS5是计算机入门课,选课的同学还是很多的,人数大约在70人左右,是我在计算机系修过的人数最多的课程了。

CS5比较hands-on,一半是学习Java这一编程语言,另一半是通过Java编程为媒介来学习递归、模块化编程、面向对象编程的概念,同时还涉及了一些用户界面实现的内容。一个学期10个礼拜,每个礼拜3堂课,包含了11个short assignment,5个lab assignment,2个期中考试和1个期末考试。Short assignment的概念是正常花1到2个小时就能完成的编程作业。Lab assignment是相当于完成3到4个short assignment作业量的任务,涉及到编写比较大的程序,代码量在500-1000行左右。考试的话就是一个小时的试卷答题。课程还配备一个Teaching Assistant (TA)和多个Section Leaders (SL)。

TA会在每周固定的时间设置office hours,学生可以在office hour时间去找TA开开小灶,对课上未能理解的内容提问求解。而Section Leader则会负责对学生讲解short assignment和lab assignment的需求,并为这些作业打分。TA主要来自计算机系的研究生,而SL主要来自上过该门课程并且当时成绩是A的高年级本科学生。

现在回想起来,我对TA没什么印象,应该是从来没有去过office hours。SL倒是还记得,是一个叫Luke的高年级学生,经常在作业布置的时间迟到早退,一副无精打采的样子,批作业也是经常出错,常需要找他去改正分数。说到分数,不得不说明一下,美国大学是按Grade Point Average来计算成绩的,也就是俗称的GPA。课程得分为A对应的point是4.0,A-是3.66,B+是3.33,B是3,以此类推。大学四年毕业的时候满分是4.0,也就是全部都拿了A,用现在时髦的话讲是学霸级人物的存在。

CS5这门课,如果是100分的总分,只有拿到92分以上才能拿A的成绩,因为这门课学生的成绩普遍都比较高。学生对于包括10%的上课出勤分在内的每一分都是很在意的,所以对于作业或者考卷被扣错分数是无法容忍的,这大概也就是为什么我到今天还记得当时修这门课的SL。

进阶:定义功能需求与开发实现

虽然修CS5的整个体验中有些小小的不愉快,但我还是受到了how to solve problems computationally的启发,产生了一种想要去学习更多的热情。于是乎,在大二的第一个秋季学期,我修了第二门计算机课程CS 8。CS 8也是入门级的课程,但是它的curriculum在当时是全新的,是用Haskell语言编程来学习Functional Programming。能够学以前别人没有学过的内容总是很令人兴奋,课程的内容也很丰富,包括用Functional Programming来实现动画,分析生物序列,搜索社交网络,解析和操纵HTML,识别数据集群,解决Sudoku难题,编写俄罗斯方块游戏等等。记得当时第一个Lab任务就是用递归的方式去画一个雪花fractal,如图所示,短短50行Haskell代码,就可以画出这么一个界面上显示复杂但是逻辑很清晰的图形,在当时觉得非常得酷。

一个学期学下来,最后一个Lab从UI设计到代码编写完成了一个俄罗斯方块的游戏,如图所示。对于这个Lab的印象我也比较深刻,因为花了很大力气去自定义和完成了extra credits的功能来获取附加分。既担任了产品经理的角色来定义功能需求, 又担任开发实现了这些功能。同时也第一次深刻地认识了80:20 rule。做出一款产品去实现基本的功能或许只要花20%的力气,但要去把这个产品做好做精彩,却要付出80%的力气,甚至更多。一路前行,保持谦虚谨慎的心态很重要。

修CS 8这门课的时候,我会经常往计算机系的实验室跑,在那里见到过Douglas Mcllroy,著名数学家和工程师,Unix系统里的很多命令行工具都是他开发的。以及算法导论“Introduction to Algorithms”这本书的作者之一的Thomas Cormen。Douglas是一个很安静的人,每次路过他办公室的时候都看到他静静地写着一些代码。Tom则很风趣,很喜欢和学生们讲美食,每年的夏季学期他都会在他家的院子里组织一个盛大的Barbeque,他和他的太太会一起烹饪食物,邀请计算机系所有的老师和学生来品尝。我开始喜欢上了计算机系的氛围。

在接下来大二的冬季学期里,同时修了两门计算机课程,CS19 Discrete Mathematics in Computer Science 和 CS 23 Software Design and Implementation。CS 19是一门理论课,偏向计算机方向的离散数学课。 而CS 23则是注重实践的软件设计和开发课程。 CS 23让我接触了C语言,并用10周的时间从novice变成了一名C语言小能手,上半学期编写了一个Web Search engine,包括web crawler、document indexer和query engine三个部分。 下半学期编写了一个Robotics应用,通过与电动玩具车上装有的wireless sensor API沟通,从而实现操纵玩具车行驶并沿途打开摄像头拍摄照片的功能。

人工智能、拓扑学、算法思维

整个冬季学期比较深的印象就是一天课上好以后傍晚去计算机系实验室开始写程序,到差不多凌晨1,2点钟开始离开实验室,看着漫天大雪飘落,又给整个校园覆盖了一层新的银装的画面。那个时候头脑会觉得特别清醒,如果适逢正好又把程序跑通了的话,会特别地开心,会顺道去附近的fraternity喝一杯social一下。 
刚才说到过CS 19,是一门计算机理论课。我在这门课中认识了我未来两年的计算机“导师” Afra。

跟着Afra在大三修了他的 CS 44 Artificial Intelligence 人工智能,CS 85 Computational Topology研究生课程计算拓扑学,以及大四的毕业论文课程。CS 44还是一贯保持着编程的重心,写了偏向搜索、逻辑、概率推理,以及通过神经网络做人脸识别的多个程序。而CS 85则是非常的难,我记得当时全班只有五个学生,如果少一个学生,那么课就开不了了。我也算是支持我喜欢的教授去修的这门课。我已经不太记得自己当时是如何去度过那一个学期,有很长一段时间看着桌上的咖啡杯都感觉它是一个非常美味的甜甜圈,想要一口吃下去。

之后的两年的大学生涯,我陆续修习了Introduction to Algorithms,Theory of Computation, Operating System,Machine Learning and Statistical Data Analysis等课程。学会了用算法的思维综合考虑时间复杂度和空间复杂度去寻找最优的方案来解决问题,去够判断什么样的问题是NP-Hard,并编写一个简单的操作系统,运用一些机器学习的方法和模型去做一些数据上的预测和分类等等。那是一段非常快乐且有些孤独的时光。

如果别人告诉你美国大学生是不在乎成绩的,那绝对是个笑话

越往上修高级的课程,需要花的精力越多,自己的思维逻辑和编程的能力也会变得越强。但同时,同年级的同学也会变得越来越少。从一开始的CS 5班上有70个学生,到大二以后基本上修的每一门计算机课不会超过15个学生。Dartmouth每年大概会招1000-1200位本科生,但是每年毕业的计算机专业学生不会超过20个,淘汰率如此可见一般。

大部分的美国大学都会给予想留下来继续读硕士的大四学生一定的优待,Dartmouth也不例外。本科四年一般只要再多读一年完成一个4+1项目就可以拿到计算机硕士学位。而外校的报考生却要花至少两年才可以。尽管如此,愿意留下来读计算机硕士的Dartmouth本科生却是少之又少。一是因为大家能在计算机系的实验室写满四年程序差不多都已是到达了极限,已经迫不及待加入Google、Oracle这样的对口公司快乐地工作起来。二是Dartmouth全校的硕士Program很小,学校本身注重的是对本科生的教育,不像麻省理工或者斯坦福那些注重研究生教育的院校,硕士生在校园里反而没那么强的归属感。

去任何一个美国的一流大学,大学四年都不会轻松。如果选择了计算机专业,就要付出更多的努力。每一门课的分数matters,大学四年最后的GPA matters。如果别人告诉你美国大学生是不在乎成绩的,那绝对是个笑话。我读大三为CS 19的教授打工做grader给学生批作业和试卷的时候,每周都会有学生来找我, 希望给做错的题目少扣点分。因为,大部分的一流公司每年校招只去一流的大学招生,并且对学生都会有GPA cutoff标准。如果GPA分数不到,那么简历就会被丢弃,电话面试的机会也不会给。但不管分数有多重要,既然选择了计算机专业,还是要尽可能多地去have some fun,不管是lecture上听教授讲课的时候,TA office hour求助解惑的时候,还是深夜和同学们在实验室一起编写程序的时候。 只有自己喜欢,才会有动力坚持到底。读计算机专业如此,人生中的很多其他事情也是一样。

最后,附上Dartmouth 2017年校友日历的封面图,祝CSDN和大家在新的一年心想事成,程序员进阶之路越走越好。


http://chatgpt.dhexx.cn/article/T72KI8vK.shtml

相关文章

外国大学计算机专业学什么?信息技术专攻网络计算

信息技术(荣誉)理学士,专攻网络计算 亚太科技大学APU 亚太科技大学在2021年QS亚洲大学教师国际名列前10名的私立大学。APU在国际学生排名第一,入境交流第一,并在排名前50名的大学中。APU在2021年年QS大学排名中名列前…

计算机c就业,留学美国:高薪好就业Computer Science(计算机科学)CS专业详解

原标题:留学美国:高薪好就业Computer Science(计算机科学)CS专业详解 计算机科学专业是理工科类留学最热门的专业之一,而且CS专业也一向是高薪、好就业的代名词,根据Payscale数据显示,美国计算机科学硕士毕业平均薪资达…

大学英语专业有计算机课吗,加拿大留学,温莎大学英语计算机专业了解一下

原标题:加拿大留学,温莎大学英语计算机专业了解一下 对于留学申请人来说,多年来计算机专业一直是热度不减。而在近些年,也有很多学生和家长更为看好加拿大的教学质量和未来的工作环境。加拿大在计算机科学领域的科研、开发和教学实…

计算机专业大学如何自学?常用网站和工具

有问题欢迎评论或私信我 耗时5小时,第一个B站视频,满足分享欲 计算机专业现状 or 困境?如何自学?常用网站科普!_哔哩哔哩_bilibili 👆发了个视频,结合文章中的链接,保存到自己浏览…

《钱进球场》:球场争锋·棒球1号位

动画《钱进球场》改编自森高夕次原作、足立刑事著同名体育漫画,于2017年3月宣布动画化 ,由STUDIO DEEN负责动画制作,于2018年4月6日起播出。动画第二期于2018年10月5日开始播出。全24话。 中文名 钱进球场 原版名称 グラゼニ 动画制作 Stud…

足坛十大最牛裁判:打边裁枪杀球员 红牌逐鹦鹉

足球场上,裁判的权力至高无上,可有些时候,这些黑衣法官展示权威的方式就不太可取了,更有甚者,他们的某些做法竟让人啼笑皆非。接下来,网易体育将会为广大球迷评选出10大最牛裁判。>>>>最强裁判…

迪赛智慧数——其他图表(平行坐标图):世界杯历史个人进球排名TOP10

效果图 2022年卡塔尔世界杯,全世界球迷翘首企盼,据悉,一共有67372名球迷入场观赛,为自己支持的球队鼓噪呐喊,释放蓄势积攒已久的激情。毕竟这一别,距离上届杯赛,已足四年!通过以上图…

红楼梦人物关系简图

贾家,宁国公与荣国公之后,为钟鼎勋贵之家。王家,都太尉统制县伯王公之后,为军官将领之家。薛家,皇商。皇室任命,为皇宫搜罗海外奇珍异宝的皇商。史家,保龄侯尚书令史公之后,为文臣名…

关于红楼梦Python文本分析

1. 获取小说文本 读取文件 # 获取小说文本 # 读取文件 fn open("prepare\\红楼梦_曹雪芹.txt", encoding"utf-8") string_data fn.read() # 读出整个文件 fn.close() # 关闭文件 2.对文本进行处理 # 文本预处理 pattern re.compile(u\t|\n|\.|-…

Google BERT 中文应用之《红楼梦》中对话人物提取

​点击上方“迈微AI研习社”,选择“星标★”公众号 转载自:PaperWeekly 庞龙刚 之前看到过一篇文章,通过提取文章中对话的人物,分析人物之间的关系,很好奇如何通过编程的方式知道一句话是谁说的。但是遍搜网络没有发现…

【知识图谱】构建红楼梦知识图谱

在b站看到有人用知识图谱构建红楼梦的人物关系的知识图谱,跟着做了一遍,在这里记录。 1、安装neo4j 具体见:https://blog.csdn.net/Zhouzi_heng/article/details/110948997 2、为python安装py2neo4j py2neo是一个社区第三方库&#xff0c…

花了20分钟,给女朋友们写了一个web版群聊程序

WebSocket详解 WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。 WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手&#x…

外国人最习惯用的社交软件有哪些?

说到国外的社交软件,你的认知是否还只停留在Facebook上?今天带大家来看一看不同国家都用哪些社交软件。方便外贸人和各国客户沟通时,选择正确的社交软件,并掌握外贸必备的社媒营销技能。 相信现在每个人与世界的联系很大都是靠手机…

使用Python制作学习英语软件

前言: 由于Python考试临近,加上平时要学习英语,突发奇想制作一款和手机上app那样的记单词的简单软件,顺便复习一下Python。 步骤: 编辑一个保存单词的txt文档读取txt文件,制作成字典使用tkinter制作界面使…

外贸沟通中,老外最喜欢的聊天工具你了解?各国客户最常用的即时聊天APP整理及配套8个英语类工具推荐

作为外贸人,不要一味的跟客人谈生意,当然目的是这个。私下的问候,关心,沟通也是不可或缺的。很多老外不喜欢来回发邮件,那样速度慢,还得来回查看,因此很多在线的聊天工具就备受欢迎。 下面给大家…

计算机专业3分钟演讲能讲什么,面试三分钟演讲稿范文

面试三分钟演讲稿范文 20XX年4月26日至28日,我在华南师范大学网络学院参加了全国高校教师网络培训——同济大学龚沛曾教授团队主持的《大学计算机基础》全国精品课程网络培训,受益匪浅。龚沛曾教授讲授的《大学计算机基础》之计算机基础课程体系、计算机…

记一次技术分享演讲

**丨**版权说明 : 《记一次技术分享演讲》于当前CSDN博客和乘月网属同一原创,转载请说明出处,谢谢。 本文仅谈心得,不谈技术 谈谈为什么写心得 笔者自入学到现在工作已有20余载,虽然沉淀的文笔贫平,可也写过数篇作文&…

俞敏洪一分钟励志演讲稿

俞敏洪一分钟励志演讲稿 人的生活方式有两种, 第一种方式是像草一样活着, 你尽管活着,每年还在成长, 但是你毕竟是一棵草, 你吸收雨露阳光, 但是长不大, 人们可以踩过你, 但是人们不…

计算机基本知识3分钟演讲稿,3分钟演讲稿范文(精选3篇)

3分钟演讲稿范文(精选3篇) 演讲稿要求内容充实,条理清楚,重点突出。在社会一步步向前发展的今天,能够利用到演讲稿的场合越来越多,那么你有了解过演讲稿吗?下面是小编精心整理的3分钟演讲稿范文(精选3篇),希…

Android4.3 Google Pinyin输入法UI定制

Android4.3 Google Pinyin输入法UI定制 先来看原版输入法的效果如下: 定制后的效果如下: SystemServer会启动InputMethodManagerService,在InputMethodManagerService中会启动action为"android.view.InputMethod"的Service&#x…