人生苦短,我用Python

我已加入#100DaysOfCode#活动

每天自学编程1小时。

温故而知新

还记得《自学Python编程的第0001天:配置环境》中提过的IPO程序的编写方法吗?编程中的IPO可不是“首次公开募股(Initial Public Offerings)”编程中的IPO就是 ( Input——Process——Output ), 即输入数据——处理数据——输出数据。

之前IPO不是没有举例嘛?现在就温故而知新在学一遍吧~

举例:计算球体的表面积和体积的程序的IPO描述

但王觉得还是要扪心自问一下,到底什么是编程?

硅谷大佬有他自己的答案。瑞士计算机科学家、斯坦福大学教授 Nicklaus Wirth 凭借着 “算法 数据结构=程序(Algorithm Data Structures=Programs)这个公式获得了图灵奖。这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的“E=MC^2” —— 一个公式展示出了程序的本质。

尼古拉斯·沃斯( Niklaus Wirth )

Wirth 基于自己开发程序设计语言和编程的实践经验,在20世纪70年发表的“通过逐步求精方式开发程序’(Program Development by Stepwise Refinement)一文中,首次提出了“结构化程序设计”(structure programming)的概念。[1]

这个概念简而言之,就是不要求一步就编制成可执行的程序,而是分若干步进行,逐步求精。第一步编出的程序抽象度最高,第二步编出的程序抽象度有所降低,一直到最后一步编出的程序即为可执行的程序。用这种方法编程看似复杂,实际上可以使程序更加地易读、易写、易调试、易维护、易验证。

结构化程序设计方法又称为“自顶向下”或“逐步求精”法,在程序设计领域引发了一场革命,不久便成为程序开发的一个标准方法,尤其是在后来发展起来的软件工程中获得广泛应用。有人评价说 Wirth 的结构化程序设计概念“完全改变了人们对程序设计的思维方式”。

2002年, Wirth 在一次公开演讲中,对当下许多大学轻视课程教学的风气毫不留情面地进行了批评讽刺:“长期以来,大学的教授们大都已不再是充满智慧的饱学之士了。他们不再默默钻研学问,也不再热忱于传道授业解惑,而是做起了‘项目经理’,带领他们的学生,近乎疯狂地申请科研项目,并批量地生产科技论文。在这个高度竞争的社会大环境中,教授的‘业绩’已跟教学毫无瓜葛,反而是跟团队规模、项目经费、发表论文数息息相关。”[2]

Wirth 尖锐地指出,由此以往,让教授们去教学就无异于催促他们去自杀。

那什么是:算法 数据结构 = 程序 ?

算法是执行特定任务的方法

数据结构是一种存储数据的方式,有助于求解特定的问题

那怎么去描述算法呢?自然语言描述

发表回复

后才能评论