把编程作为一种思考方式 已翻译 100%

ismdeep 投递于 2017/05/02 09:50 (共 7 段, 翻译完成于 10-12)
阅读 1557
收藏 12
2
加载中

编程已经改变了。在像FORTRAN和C这样的第一代语言中,程序员的编程压力是将高级概念转换为代码。在现代编程语言中 - 我将使用Python作为示例 - 我们使用函数,对象,模块和库来扩展语言,这不仅使程序更好,而且改变了编程。

编程过去常常是关于转换的:用自然语言表达思想,同时使用一些数学符号,然后编写流程图和伪代码,最后编写程序。转换是必要的,因为每种语言提供了不同的潜在能力。自然语言具有表现力和可读性,伪代码更精确,数学符号简洁,代码可执行。

硅谷课堂
硅谷课堂
翻译于 10/09 16:32
0

但翻译的代价是,我们被限制在能用每种语言有效表达的观点的子集里。有些很容易用数学符号表达的思想很难用数学符号表达,而我们在数学中所做的符号操作在大多数编程语言中都是不可能的。

现代编程语言的强大之处在于它们具有表达性、可读性、简洁性、精确性和可执行性。这意味着我们可以排除中介语言,使用一种语言来探索、学习、教学和思考。

liyue李月
liyue李月
翻译于 10/11 18:05
0

作为一个例子,图1显示了广度优先搜索(BFS)算法,该算法用流行教科书中使用的伪代码表示。作者将这种语言设计得比当时大多数编程语言(1989年)更简洁、更易读。

图2显示了Python中的相同算法。它比伪代码短几行,而且因为它使用的单词比符号多,所以我认为它更易于阅读。此外,与伪代码不同,我们可以运行它、显示结果并调试它。

liyue李月
liyue李月
翻译于 10/11 18:06
0

编程的重要目的当然就是为了能跑通代码,但它还有更多的意义。那就是通过执行代码的能力使编程成为思考和探索的工具。当我们以程序的形式表达想法时,我们使它们成为可测试验证的;当我们调试程序时,我们也在调试我们的大脑。

Python类的语言也非常适合学习和教学。例如,我最近写了一本关于数字信号处理(DSP)的书。我使用Python编写了一个简单的库和Jupyter(这是一个软件开发环境)来编写在线笔记本,这些笔记本结合了文本、代码和结果,包括图像和声音剪辑。

ZICK_ZEON
ZICK_ZEON
翻译于 10/10 10:16
0

当我编写这本书的时候,我同时编写代码来检验我自己的理解,同时把这些理解都解释给我的学生们听。学生们也可以来运行代码来去开发一个心智模型,进行修改以测试他们自己的预测,为他们的项目扩展我的代码。

大多数教科书和课堂都靠学生们主要使用纸和铅笔来工作并使用数学这门工具来传授信号处理。使用这种方法,唯一的选项是“自下而上”,从学习复数算术这个并不是最热点的专题开始,并花费数周的时间和许多页纸的篇幅才能达得相关的应用程序这个阶段。

ZICK_ZEON
ZICK_ZEON
翻译于 10/10 10:02
0

用一种计算方法,我们可以“自顶向下”,从实现最重要算法的库开始,比如快速傅里叶变换。学生可以先使用这些算法,然后学习它们是如何工作的。他们可以看到最重要的想法,比如光谱分解,而不会被细节所蒙蔽。他们可以在真正的应用程序上工作,在第一天,提供动机去更深入。他们可以有更多的乐趣。为了证明这一点,我写了一本名为Cacophony for the whole family的笔记本。如果你点击那个链接,你可以看到代码并听例子。它使用我写的库来模拟一个小学乐队的声音,乐器走调,一些孩子随机地弹奏错误的音符。它的意思是愚蠢(有点卑鄙),但它也展示了我们如何感知声音和解释一个复杂信号的音高方面。

liyue李月
liyue李月
翻译于 10/11 18:08
0

我称之为现代的语言并不是特别新;事实上,Python已经有超过25年的历史了。但是高中和大学还没有广泛地教授这些课程。即使是在采用它们的地方,Python也没有被恰当地使用。

现代编程语言在性质上不同于它们的前辈,我们也只是刚刚开始认识到这种差异的含义。

在相关文章中,我将介绍更多使用Python来思考、探索、学习和教学的方法。

ZICK_ZEON
ZICK_ZEON
翻译于 10/10 10:12
0
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(2)

blu10ph
blu10ph

引用来自“久永”的评论

程序员的思维已被固话,所以他们非要按照编程的逻辑思考一套恋爱的理论。
——每当他们失败的时候,他们总是觉得这套系统有bug,乐此不疲的改退它。
噗...
久永
久永
程序员的思维已被固话,所以他们非要按照编程的逻辑思考一套恋爱的理论。
——每当他们失败的时候,他们总是觉得这套系统有bug,乐此不疲的改退它。
返回顶部
顶部