
在周四举行的计算机科学教育研讨会上,C++ 之父 Bjarne Stroustrup 分享了他对 C++ 角色的看法,以及编程教育中需要改进的地方。C++ 是一种在 C 语言基础上添加了对象的编程语言,根据TIOBE 编程社区指数,它目前是全球第二大最受欢迎的编程语言。 斯特劳斯特鲁普在学术界和工业界工作了数十年,曾在摩根士丹利和贝尔实验室任职,并于 1979 年在贝尔实验室设计了 C++。现在,他是哥伦比亚大学的计算机科学教授。
凭借丰富的经验,斯特劳斯特鲁普认为编程教育需要更具多样性。他指出,教育最大的败笔之一就是课程“把编程当成一门人人都学的东西”。
在教学中,斯特劳斯特鲁普希望激励那些渴望学习更多知识的学生,并提到了一个在许多大学中备受争议的观点:计算机科学专业的学生总体数量减少。
“太多的学生学习软件和软件开发,”斯特劳斯特鲁普说。
他还谈到了计算机科学教学的新视角。在 Stroustrup 看来,统一的计算机科学教育方法忽略了不同类型的编程需要不同技能组合的现实。例如,Stroustrup 指出,为网络应用编写代码与为谷歌这样的大型企业开发基础设施是不同的。然而,许多入门课程却将它们视为相同。 为了解决这个问题,Stroustrup 建议将课程分为三个不同的轨道。
一种面向非专业人士,或者只需要基本工具的人。第二种面向那些想要专注于应用编程而非理论的科学家。第三种面向那些想要深入研究软件工程复杂性的工程师或专家。
Stroustrup 指出,他也希望看到编程教材有所改进。他读过很多冗长冗长的教材,这些教材过分强调语法,却很少着重讲解重要概念。他发现,很多教材都用整整一章的篇幅来阐述如何编写 if 语句。
“你大概三岁的时候就知道,红灯停。绿灯了,你就可以走了,”他开玩笑说。“就是这样。” 虽然包括斯坦福大学在内的许多大学都在入门级计算机科学课程中教授 Python,但 Stroustrup 认为 C++ 可以为学生提供独特的硬件和性能优化途径。他指出,这并非易事。就目前情况而言,他认为许多现有方法存在缺陷,因为它们无法防止学生陷入 C++ 语言的泥潭。
斯坦福大学计算机科学教授克里斯·格雷格在给《每日新闻》的信中写道:“斯特劳斯特鲁普是编程语言领域的巨人,也是一位有远见的工程师。”
格雷格写道,计算机科学系一直在寻求改进其未来的入门课程,并且“听到比亚恩在我们的计算机科学教育研讨会上分享他的见解既鼓舞人心又及时。”
计算机科学专业一年级研究生迈克尔·佩珀(Micheal Paper)对这次演讲表示感谢。“它非常有见地,让我了解了教授 C++、编程以及所有相关课程的重要方面,”佩珀说道。
Stroustrup 还反思了他创建 C++ 的动机。他解释说,一个关键原因是他想要一种能够在高层级运行、贴近硬件的语言。对他来说,C++ 不仅要优雅,还要能够在机器上运行得足够快。
“如果你没有设备驱动程序、内存管理器、调度程序等,你最好自己构建它们,而且你必须有一种内置于其中的语言,”Stroustrup 说。
当被问及不同语言的具体细节时,Stroustrup 明确表示他不喜欢“语言之战”,他的原则是不攻击其他语言或 C++ 应用程序。相反,他指出了计算机科学教育中一个更广泛的问题:许多大学课程只关注单个语言的特性,而没有向学生展示如何将它们结合起来使用。
他说:“如果一个人只懂一种语言,我不会认为他是个专业人士。”他指出,了解一种语言的语法和知道如何编写好的代码之间是有区别的。

评论