查看原文
其他

最伟大的10位计算机科学家的核心观点(中篇)

现代与经典 2024年12月15日 23:57

The following article is from 通才讲堂 Author 通才讲堂

上篇介绍的三位计算机科学家为计算理论、信息论、计算机系统的设计奠定了基础。有了底层的理论支撑,也造出了更好的机器,人们开始编写复杂的软件程序,更开始展望用计算机实现人类智能。

西蒙:认知模型和决策制定

够好就行,不用最优!

赫伯特·西蒙,20世纪美国人,计算机科学、心理学和经济学领域的先驱,对认知科学和人工智能的发展产生了重大影响。

西蒙在芝加哥大学学习,并获得了政治科学博士学位。尽管最初的训练是在政治科学领域,但西蒙的兴趣和研究很快扩展到了心理学和计算机科学。他在卡内基梅隆大学的职业生涯中,西蒙对人类思维和人工智能进行了深入的研究,成为了跨学科研究的代表人物。在20世纪中叶,人们对于机器能否模仿或超越人类智能的探索充满了热情和好奇。

西蒙的理论主要集中在认知模型和决策制定过程上,他提出人的思维过程可以用计算模型来描述和模拟。西蒙认为,人类在进行决策时,会寻求满意而非最优的解决方案,这是因为人的认知资源是有限的,他将这一观点称为“有限理性”。此外,西蒙还研究了问题解决策略,特别是在面对复杂问题时,人们如何通过分解问题、逐步近似等方法来寻找解决方案。这些理论为理解人脑如何处理信息、如何模拟人类思维提供了重要的理论基础。

例如,在面对一个选择最佳职业的决策问题时,根据有限理性的观点,个人很难评估所有可能的选项并确定哪个是最佳的,因为信息可能不完全,时间和认知能力也有限。相反,个人倾向于寻找一个“足够好”的选项,一旦找到满足基本标准的选项,就会停止进一步的搜索。这种决策方式在现实生活中非常常见,与寻求最优解的传统经济学模型有所不同。

麦卡锡:人工智能之父

智能机器应该有什么能力?

约翰·麦卡锡,20至21世纪美国计算机科学家,被誉为“人工智能之父”,他不仅提出了“人工智能”(Artificial Intelligence)这一术语,还在AI领域内做出了开创性的理论和实践贡献。

20世纪中叶,科学家开始探索机器智能的可能性,希望创造出能模仿甚至超越人类智能的机器。麦卡锡的工作正是在这样一个背景下展开的。麦卡锡于1956年在达特茅斯会议上首次提出了“人工智能”一词,并在会后继续推动这一新兴学科的发展。他在麻省理工学院和斯坦福大学等地的职业生涯中,建立了第一个人工智能实验室,致力于人工智能研究和教育。

麦卡锡的理论贡献集中在人工智能的几个关键领域,其中最重要的是他对AI的概念化和方法论的开发。麦卡锡强调了智能机器应具备的能力,如解决问题、学习、使用语言和理解抽象概念。他提出了使用形式逻辑来表示和推理知识的方法,这对后来的知识表示和自动推理系统的发展产生了深远影响。

戴克斯特拉:结构化编程

简单和清晰带来可靠!

艾兹赫尔·戴克斯特拉,20至21世纪荷兰人,计算机科学领域的一位杰出人物,以其对结构化编程的贡献而闻名。

从20世纪50年代到21世纪初,随着计算能力的增强和计算机技术的普及,软件开发成为了一个重要的领域。戴克斯特拉的工作时期正值软件工程面临重大挑战的时刻,即如何高效、可靠地开发越来越复杂的软件系统。

戴克斯特拉的结构化编程理论主张通过引入清晰的控制结构来改善软件的编写和维护过程。他提倡的结构化编程包括三种基本的控制流结构:顺序、选择(如if/else语句)、和迭代(如while或for循环)。戴克斯特拉反对使用无限制的跳转语句(如goto),因为这会导致程序流程难以跟踪,从而降低代码的可理解性和可维护性。他的观点是,任何计算过程都可以使用这三种控制结构来表达,而不需要依赖于goto语句,这有助于创建结构清晰、逻辑严密的代码。

简单性和直接性是可靠性的两个基本要求。 ——戴克斯特拉

他的理论和实践显著提高了软件的可理解性和可靠性,极大地影响了软件工程的发展,推动了编程范式向更高层次的抽象和结构化发展。

艾伦·凯:面向对象编程

用简单的设计实现复杂的系统!

艾伦·凯,依然在世的美国计算机科学家,面向对象编程的先驱之一,他对现代软件开发实践产生了深远的影响。

艾伦·凯的理论主要集中在面向对象编程的概念上,这是一种编程范式,强调使用对象来模拟现实世界的行为和交互。在面向对象编程中,每个对象都能够接收消息、处理数据和发送消息到其他对象。每个对象都可以被视为一个小型的独立机器,具有特定的角色或责任。凯的理论重点在于三个主要概念:封装、继承和多态。

这些概念极大地提高了软件的可重用性、可扩展性和可维护性,是当今软件工程中不可或缺的部分。


分享文章,一起学习人类知识的精华!


继续滑动看下一个
现代与经典
向上滑动看下一个
选择留言身份

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存