2017年,全网热议“Python进高考”,这让很多人都知道了Python这门语言。有人开玩笑说,Python是一门“网红”语言。然而,热闹归热闹。站在教育的视角,我们需要看明白的是Python能否对计算机科学、编程、人工智能的教育带来更大的帮助。
Python并不是一门很“新”的编程语言。1989年圣诞节期间,工程师吉多·范罗苏姆为了在阿姆斯特丹打发时间,决定开发一个新的脚本程序。吉多用他喜欢的电视喜剧《蒙提派森的飞行马戏团》(Monty Python's Flying Circus)给这门新的程序语言命名,于是,世界上就多了一门叫做Python的编程语言。数一数,2019年即将迎来Python的30岁生日。
与诞生于1991年的Java不同,Python没有一诞生就大红大紫。在相当长的时间里,Python是一门只被行业内不多人关注的小众编程语言,应用范围也不广泛。直到2015年后,Python的行业覆盖率才开始明显攀升。据TIOBE全球编程指数发布,Python在2018年的流行度上升了3.62%,排在所有语言增长之首,并且在统计、人工智能编程、脚本应用和系统测试领域都排名第一,是当之无愧的年度编程语言。在全球的大学里,Python也是编程教学的首选。
Python还是一门有个性突出的编程语言。Python的设计者们一致拥护极致的、禅修一般的简洁。这让Python的代码看起来非常“优雅”,同时也让Python易于学习和上手。Python的另外一大特点是高度的可扩展性,程序员可以轻松使用其它语言为Python编写扩展模块,其它语言也可以集成Python。因此Python获得了“胶水语言”的称号——它可以非常便捷地把其它(不同)语言编写的程序做集成和封装。
上面介绍的内容,对于计算机行业从业者不算新鲜,但对于中小学里的老师,是比较“跨界”的信息。还有很多老师开始编程教学是从图形化界面工具开始,如Scratch、Mixly,看到Python这样的代码式编程会有点“发怵”。接下来我们会做一个有趣的对比,看看用图形化编程和Python代码编程实现同样的功能,分别是什么样的。
学习编程的第一课一般都是“Hello World”,先让程序跟大家问个好。
让Scratch问个好,简直不要太简单。很直观的拖放“说”积木块就可以,然后你就可以看到小黄猫微笑着和你打招呼。非常有成就感。
如果是初次使用Python(以及第一次使用代码编程语言),你可能会手足无措,必须要看教程或查询手册才知道要输入:
运行后会看到简单的一个结果:
我们再尝试一个带简单交互的任务:询问用户叫什么名字,用户输入后再输出名字。
对比两种实现方式,我们可以看到,图形化编程对于初学者是非常非常的友好。Scratch的积木块界面把“使用”和“查找”完美的结合为一体。我们浏览积木块分类就可以找到需要的指令,大多数指令都能一看即懂,马上使用。而学习代码式编程时,如果不是先把所有的指令都看过一遍,我们基本上什么都干不了。这一点会导致Python(或所有的代码式编程)的教学设计有很大的不同。学生在能够编写有一定复杂度的案例前,需要有较长的准备期,而且需要更多的抽象记忆。另外,Python的学习案例也都是抽象的数字和字符的处理任务。它不像Scratch一样,学习过程一直伴随着漂亮欢乐的视觉展现和充满趣味的音乐音效。