Python 教学第一课

论坛 期权论坛 期权     
Eason不优秀   2019-7-20 20:07   2784   0

前面提到,准备教大家学学 python。当初是有些一时兴起,不少问题没有思考清楚。这件事如果认真做起来,要投入我不少业余时间和精力。所以有必要研究看看,确定一下做这件事的意义。
这一周以来,看了一些计算机科学的kindle 电子书,听了一些coursera上的课程,看了Berkeley大学的 cs61A 课程,发现了pythontutor(一个用于 python 教学,减轻编程恐惧的可视化工具),进而看了pythontutor 作者Philip Guo的一些博客文章。
Philip 从事编程教学、认知科学的教学工作,有不少教别人学编程的经验,同时也创造了像pythontutor一些好玩的工具,辅助编程教学。他文章里面的一些观点让我感觉受益不少。
Philip在 2014 年就做了一些统计分析。在美国,排名最靠前的10 所大学计算机科学学院有 8 所,39 所有27 所,在他们的CS0 或者 CS1的课程中教学 python。
为什么 python在美国计算机科学的教学中这么广泛?Philip没有表达自己的观点。但在另外一篇cemerick写的文章Why MIT now uses python instead of scheme for its undergraduate CS program,找到了一些答案。
这篇文章里面提到,上个世界七十年代,人们编程和现在非常不一样。人们花很多很多时间去思考,思考后才写很少的代码。人们思考的是如何将一些小的代码片段组装成大的软件。那个时候是编程最单纯的年代。scheme 语言是那个时候设计出来的,scheme 的递归和函数式编程思想是为了实现将小的代码片段构建成复杂系统。
但目前完全不一样了。现在有数不清的开源软件,开源组件,人们可以在这些开源的代码基础上构建出复杂系统。了解所有代码片段细节没有必要,也是不可能的。另外一个方面,整个软件世界变得比之前混乱。大量数据流涌动。同时还要处理各种各样混合问题,包括人工智能和深度学习。
其实编程语言远比人类语言简单,python语言是最适合新手学习的编程语言(Philip有一篇文章谈到为什么 python 语言适合教学)。python 社区有强大的语言标准库,和优质的第三方库像web 开发的django,机器学习的tensorflow,数据分析的pandas等等。当前环境中,学习 python 让计算机科学的学生更有兴趣,更有生产力。简单的编程语言和广泛、优质的社区开源软件,能让人保持长久兴趣去应用它们,解决自己领域里最关心的问题。
Philip有篇文章Education Removes Fear: Some Examples From CS Courses,提到了一个观点:教育为了移除恐惧。人们通常发现自己受限于做某事,不是因为自己缺乏做这件事的自然能力,而是因为自己恐惧做这件事的某些因素。
对于一个科班出来的学生来说,学习一门编程语言,能够移除对其他编程语言的恐惧。对于非计算机专业出身的你,我希望你通过学习 python 语言移除对计算机的恐惧,如果能用 python 语言处理你工作上的问题,这当然最好。目前很多工作,特别是金融行业,涉及数据处理、计算。python 可以很方便操作 Excel数据,做这些事情。另外一个学习编程的好处是,你可以体会一下软件开发领域的一些系统思维。这些系统思维对于不同行业的你,或者会有一些好处。
Philip一开始接触的编程语言并不是 python,而是一些强类型语言像 java、c++。后来学习了 python 后,他被 python 的魅力深深吸引。Philip喜欢摄影,他 python 语言写程序处理自己的摄影照片。
在接下来的公众号文章,我会陆续写一些 python 语言教学文章,并且会介绍使用 codenvy,一个云端的 python开发环境。codenvy 不需要你在本地安装繁琐的软件,你只需要在www.codenvy.com注册一个账号,创建一个python 环境虚拟机,即可在浏览器上的集成开发环境(可以智能提示语法错误)编写 python 程序,运行 python 程序,看到效果。这也方便和我互动交流。你可以先尝试注册一个账号,codenvy的使用稍微迟一点,我再介绍。这个学习过程中,也会使用 Philip 的 pythontutor 在线程序,它会让你感知每执行一行代码,背后究竟发生了哪些事情,减轻一些对未知的恐惧
你是否有兴趣学习 python,跟着我一起学习?

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP