2KB项目,专业的源码交易网站 帮助 收藏 每日签到

把编程作为一种思考方式

  • 时间:2019-01-23 18:23 编辑:2KB 来源:2KB.COM 阅读:442
  • 扫一扫,手机访问
  • 分享
摘要: 英文原文:Pro
英文原文:Programming as a Way of Thinking

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务

  • 全部评论(0)
资讯详情页最新发布上方横幅
最新发布的资讯信息
【计算机/互联网|】Nginx出现502错误(2020-01-20 21:02)
【计算机/互联网|】网站运营全智能软手V0.1版发布(2020-01-20 12:16)
【计算机/互联网|】淘宝这是怎么了?(2020-01-19 19:15)
【行业动态|】谷歌关闭小米智能摄像头,因为窃听器显示了陌生人家中的照片(2020-01-15 09:42)
【行业动态|】据报道谷歌新闻终止了数字杂志,退还主动订阅(2020-01-15 09:39)
【行业动态|】康佳将OLED电视带到美国与LG和索尼竞争(2020-01-15 09:38)
【行业动态|】2020年最佳AV接收机(2020-01-15 09:35)
【行业动态|】2020年最佳流媒体设备:Roku,Apple TV,Firebar,Chromecast等(2020-01-15 09:31)
【行业动态|】CES 2020预览:更多的流媒体服务和订阅即将到来(2020-01-08 21:41)
【行业动态|】从埃隆·马斯克到杰夫·贝佐斯,这30位人物定义了2010年代(2020-01-01 15:14)
联系我们

Q Q: 7090832

电话:400-0011-990

邮箱:7090832@qq.com

时间:9:00-23:00

联系客服
商家入住 服务咨询 投拆建议 联系客服
0577-67068160
手机版

扫一扫进手机版
返回顶部