世界一流大学怎样培养程序员?

2024-04-27 05:38

本文主要是介绍世界一流大学怎样培养程序员?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


【图灵图书推荐】 Andrew Appel赫赫有名的虎书


负喧 讲图灵鸡的一篇奇文最后提到了 一本计算复杂性方面的新书,来自Princeton。顺藤摸瓜,还发现刚刚获得Sloan Fellowship的第二作者的老师写的一本 同类书。

又顺便看了看普林斯顿大学计算机系的课程。什么是世界一流大学,看看人家的课程,什么人在教,教什么,怎么教就知道了。普林斯顿计算机排名在全美并非最强,只在七八名的样子。但是在教授名单中,我们发现了两位图灵奖得主 Robert Tarjan和退休后到清华的 姚期智(姚先生在美国多年总共才培养了8名博士,而到清华后除了已经毕业的一名之外,同时在带的博士居然有10名,可见国情真是不同),算法界顶尖的 Robert Sedgewick,网络界顶尖的 Larry Peterson,编译界顶尖的 Andrew Appel,小波理论先驱 Ingrid Daubechies等等。还有 Bernard Chazelle和 Adam Finkelstein这样视野极为开阔的教授。

所有教授中,最为程序员熟知的大概要算K&R中的 K (Brian Kernighan)了。他正在开设一门名为“Advanced Programming Techniques”的 课程。教材采用的是《程序设计实践》等。课程Handout中有所涉及主题的介绍,在我看来,近乎完美:
• languages
– C, Java, C++, C#
– AWK, Perl, Python, PHP, Javascript, ...
– programmable tools, application-specific languages
• tools
– where did they come from and why
– how they have evolved, mutated, decayed
– how to use them
– how they work
– how to build your own
• programming
– design, interfaces, patterns
– reuse, theft, prototyping, components
– debugging, testing
– performance assessment and improvement
– programs that write programs
– portability, standards, style
– tricks of the trade
– tradeoffs, compromises, engineering
• history and culture of programming
如果我们的大学中,也能有这样的课程,也许国内计算机专业学生受雇主欢迎的程度、起始薪水都会提高很多吧。

K大爷还开设了 一门引导性的课程,非常富于趣味性,眼界开阔,信息量也很大。

普林斯顿的编程课,还包括以ML为主的一门编程语言课,以 C语言为主的编程课。后者可以视作233的先导课,由 Andrew Appel讲授,也极具参考价值。


Beej's Guide
Online C reference: http://www.cs.cf.ac.uk/Dave/C/CE.html
电子书:Mathematics for Computer Science from MIT
Oracle Donate Toplink
XP 50招
网管社区
Sawin
戴一波
NShen
2007 2.0新锐
Search
Google导航之程序设计 说实话,有些三脚猫,与Google应该达到的水平相差甚远

这篇关于世界一流大学怎样培养程序员?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/939651

相关文章

揭秘世界上那些同时横跨两大洲的国家

我们在《世界人口过亿的一级行政区分布》盘点全球是那些人口过亿的一级行政区。 现在我们介绍五个横跨两州的国家,并整理七大洲和这些国家的KML矢量数据分析分享给大家,如果你需要这些数据,请在文末查看领取方式。 世界上横跨两大洲的国家 地球被分为七个大洲分别是亚洲、欧洲、北美洲、南美洲、非洲、大洋洲和南极洲。 七大洲示意图 其中,南极洲是无人居住的大陆,而其他六个大洲则孕育了众多国家和

LabVIEW程序员是怎样成长为大佬

成为一名LabVIEW编程领域的“大佬”需要时间、实践、学习和解决复杂问题的经验。尽管LabVIEW作为一种图形化编程语言在初期可能相对容易上手,但要真正成为精通者,需要在多个层面上深入理解。以下是LabVIEW程序员如何逐步成长为“大佬”的路径: 1. 打好基础 LabVIEW的大佬们通常在初期会打下非常坚实的基础,理解LabVIEW编程的核心概念,包括: 数据流编程模型:Lab

简单的Q-learning|小明的一维世界(3)

简单的Q-learning|小明的一维世界(1) 简单的Q-learning|小明的一维世界(2) 一维的加速度世界 这个世界,小明只能控制自己的加速度,并且只能对加速度进行如下三种操作:增加1、减少1、或者不变。所以行动空间为: { u 1 = − 1 , u 2 = 0 , u 3 = 1 } \{u_1=-1, u_2=0, u_3=1\} {u1​=−1,u2​=0,u3​=1}

简单的Q-learning|小明的一维世界(2)

上篇介绍了小明的一维世界模型 、Q-learning的状态空间、行动空间、奖励函数、Q-table、Q table更新公式、以及从Q值导出策略的公式等。最后给出最简单的一维位置世界的Q-learning例子,从给出其状态空间、行动空间、以及稠密与稀疏两种奖励函数的设置方式。下面将继续深入,GO! 一维的速度世界 这个世界,小明只能控制自己的速度,并且只能对速度进行如下三种操作:增加1、减

程序员必备心理学——心流

心理学之心流 前言一、“心流”是什么?二、心流的好处二、如何进入心流心流状态的四个阶段第一个阶段:挣扎第二个阶段:放松第三个阶段:心流第四个阶段:巩固 进入心流的技巧 总结题外话 前言 你是否常常感觉自己明明学习了一整天,但是就是感觉没有太多的收获。这个时候除了你的学习方向等问题之外,也可能是你的学习方法太低效了。作者本人就经常有这种情况,好在偶然间在b站刷到一个大佬的这个心

十四、我们应当怎样做需求分析:子用例与扩展用例

用例模型作为UML中4+1视图中非常重要的一员,非常集中地体现了面向对象的分析与设计思想。用例模型将现实世界中连续的一个一个业务流程,按照场景划分到了一个一个的用例中。由于场景的出现,使得用例中的业务流程存在着高度的内聚性,从而成为了日后各种对象的雏形。同时,在用例分析中,又将那些存在于各个用例中的,相同或相近的业务操作提取出来,形成一个一个的子用例或扩展用例,又体现了面向对象设计中的复用性。现在

十三、我们应当怎样做需求分析:查询报表分析

在我以往的用例分析中,使用这样格式的用例模式,对于大多数业务操作流程来说是得心应手的,但对于有些功能来说总感觉不对劲。感觉不对劲的,就是那些查询、汇总与报表功能。对于这部分功能,需要我们描述的不是什么操作流程,而更重要的是那些数据项、数据来源、报表格式、数据链接,以及使用者、使用频率的说明。而这些,在以往的用例说明格式中统统都没有,怎么办呢?俗话说“东西是死的人是活的”,把我们的用例格式改改吧。

九、我们应当怎样做需求分析:功能角色分析与用例图

在我们进行一系列需求调研工作的同时,我们的需求分析工作也开始启动了。需求调研与需求分析工作应当是相辅相伴共同进行的。每次参加完需求调研回到公司,我们就应当对需求调研的成果进行一次需求分析。当下一次开始进行需求调研时,我们应当首先将上次需求分析的结果与客户进行确认,同时对需求分析中提出的疑问交给客户予以解答。这就是一个需求捕获->需求整理->需求验证->再需求捕获的过程。  但是,当我们经

八、我们应当怎样做需求调研:需求捕获(下)

前面我们讨论了,需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获······需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。没有捕获哪来后面的整理与验证工作?但是,非常遗憾,按照我以往的经验,需求捕获是我们最薄弱的环节。前面我提到的许许多多项目开发的问题都可以归结为需求分析的问题,而许许多多需求分析的问题又都可以归结为需求捕获不完整的问题。需求捕获是整

七、我们应当怎样做需求调研:需求捕获(上)

前面我们讨论了,需求分析工作是一个迭代的过程:需求捕获->需求整理->需求验证->再需求捕获······需求捕获是这个迭代过程的开始,也是整个需求分析工作中最重要的部分。没有捕获哪来后面的整理与验证工作?但是,非常遗憾,按照我以往的经验,需求捕获是我们最薄弱的环节。前面我提到的许许多多项目开发的问题都可以归结为需求分析的问题,而许许多多需求分析的问题又都可以归结为需求捕获不完整的问题。需求捕获是整