于莉莉 张磊 李晶
摘要:我国高校非计算机专业普遍开设的程序设计课程所选择的高级语言的特点,Python语言优势及国内外高校开设情况和就业情况分析,当下是我国高校非计算机专业开设Python语言教学的重要契机。
关键词:教学改革;Python语言;程序设计
中图分类号:G424 文献标识码:A 文章编号:1009-3044(2018)19-0165-02
Abstract: the characteristics of advanced language program design course of computer specialty generally offered by Chinese college non selected, analysis of advantages of Python language and domestic and foreign colleges and universities and the employment situation, at present in China is the important opportunity for non computer majors in Python language teaching.
Key words: teaching reform; Python language; program design
1 引言
从古至今出现过的高级语言超过200多种,而迄今常用的不过十余种,每种语言都有其开发优势和设计局限性,不同时期流行的语言反映了不同的历史环境,我国高校程序设计语言课程也是不断更替的,从早期的Pascal、Fortran,到现在大多数都以C、Java、VB作为主要教学语言。随着云计算、大数据时代的到来,经典的C语言明显有些力不从心。时代召唤一种既有C语言的优势又能适应网络编程的脚本语言,Python优势凸显。2016年,教育部高等学校大学计算机课程教学指导委员会发布了《大学计算机基础课程教学基本要求》(简称《基本要求》)。《基本要求》首次建议将Python语言作为首门程序设计课程的教学语言,在其推动下,国内高校逐步开设了Python 语言,成为教学改革热点[1]。
2 我国高校程序设计课程现状分析
C語言(1972年)。C语言是一门经典的程序设计语言,它具有简洁、高效、可移植性好、表达力强等特点,既具有高级语言的功能,又兼容低级语言的许多功能,可用来编写系统软件,所以至今仍是高校普遍开设的课程。C指针是C语言的精髓,指针和地址的概念对于非计算机专业的学生理解起来有一定的难度,而且也没有专业需求。所以说C语言更适合计算机专业和信息类学生开设。
VB语言(1991年)。是基于Windows平台开发的可视化交互语言,所见即所得使学生产生很大的兴趣,教学效果相对良好。由于程序是Windows的专属开发工具,具有很大的局限性使其应用前景不太看好,所以很多高校都不在开设此课程。
Java语言(1995年)。Java语言是从C、C++改编而来的,去除了C++难理解易混淆的特征,使程序更加严谨、简洁,具有平台无关性,一次编译到处可运行,良好的安全性和健壮性。JAVA是一种静态类型语言,所有变量必须先声明在使用,更适合底层实现语言。采用严格的面向对象编程方法,同时有很多大型的开发框架,比较适合企业级应用,主要教学对象是计算机专业和信息类专业学生。
Python语言(1991年)。人工智能的兴起,Python语法简洁、清晰,类库丰富等优势迅速蹿红。Python语言是一种开源的脚本语言,由于历史的局限性,发布初期Python并没有得到广泛关注,2008年发布3.0版,摈弃了从前版本的很多弊病,使其受到很多国外高校的青睐。美国斯坦福大学在2009年开设了Python语言程序设计类课程开始,每年新增约5门课程,截止到2015年,该校年度开设22门与Python语言相关课程,尤其针对非计算机专业学生,替换了之前的Java语言和部分专业的C语言课程。美国综合排名前100的大学有超过70所在近三年开设了Python语言类课程[2]。我国高校和国外还有很大差距,到2015年全国高校开设Python课程不超过10所。2017年4月,北京理工大学计算机学院和高等教育出版社联合承办了“第一届高等学校Python语言及计算生态教学研讨会”提出了计算生态的概念[3],高校Python教学改革提上了日程。
3 Python语言与C语言的在语法结构比较
Python与C语言具有非常相似的语法结构。
3.1 Python语言轻语法、弱类型
Python变量符号常量无需定义,直接使用,不需要考虑数据溢出和精度的问题,而C语言需要先定义再使用。
1) 常量定义
C:#define TEST 0
Python:test = 0
2) 变量定义
C:int test = 0;
Python:test = 0
从数据类型上Python变得更加友好,去掉了指针、地址等和计算机系统结构有关的元素,运算符去掉了容易产生二义性的自加和自减运算符,同时在逻辑运算符上Python也区别于C语言,Python中是and,or,not ,而C语言中则是&&,||,!。
除此之外,Python还提供了str(字符串),list(列表),dict(字典)这些功能强大的数据类型,让程序开发变得更为简单。
3.2 Python代码简洁
以100以内5的倍数或者数字中含有5的整数的求解问题为例。下面是用C语言编写的代码,共用了8行,而且必须用函数封装;
#include
int main()
{ int i=0;
for (i=0;i<100;i++)
if(i%5==0 || i%10==5 || (i/10)==5)
printf("%d\t",i);
return 0; }
s=[x for x in range(1,100) if x%5==0 or ('5' in str(x))]
相比之下,Python只用1行代码更加短小、简洁、无需函数封装,而且问题越复杂这种优势越明显。
此外,判断语句if else,这两者没有区别,循环语句while也没有,只是for循环,Python通过for in来表示;Python语言每条语句后面没有分号作为结束标志,而且相对于C语言通过{}一对大括号来表示复合语句,Python中通过缩进来表示复合语句,这使Python可读性增强,而且便于培养良好的编程习惯。
3.3 优雅的语法
Python无需过多的细节规则限制,使程序设计更为简单,容易上手。比如C语言中多用于排序中交换两个变量的算法,需要3条语句实现:
c=a; a=b; b=c;
而Python则只需1条语句即可,a,b=b,a
3.4 Python的专业生态圈
Python语言是开源的,拥有现今世界最大的基于单一语言的开放社区,目前类库多达十二万多个,而且还会不断增加。为快速学习和使用Python提供了强有力的支撑,可以满足不同层次不同专业的需求,构筑了庞大健康的生态圈。这正是Python的优势所在,没有专业生态圈Python就与其他高级语言无异。计算生态是软件产业迅速发展的技术支撑,技术快速更迭和发展,创新技术不断产生,最新技术得到普及。在新工科背景下,计算生态最为程序设计类课程改革的教学内容,能够更好地培养学生创新思维,提高创新能力。
4 Python语言的优势分析
基于Python语言的特征,可以看出Python语言作为非计算机专业首选课程具有三大优势。
1) 语法简洁,代码短小,功能强大,易于学习。对于非计算机专业学生的第一门计算机程序设计课程,入门容易是非常必要的,兴趣的保持是课程延续的基础。Python语言更接近自然语言,学习曲线平滑,同时具有高效性,实现周期短。学生的编程热情和创新思想能够快速实现,能更好地保持学生的学习热度;
2) 应用广泛,与专业结合度高。Python具有庞大的生态圈,提供了数量惊人的各种第三方库,由于Python是开源的,在避免重复造轮子的前提下又具有相互竞争机制,使其生态圈健康稳健成熟的高速发展。同时对于新手非常友好,学生运用计算生态结合不同专业特征可以在科学计算、数据挖掘、Web开发、机器学习、部署脚本、科学建模等数之不尽的领域应用,可以说与专业结合非Python莫属。
3) 社会需求量大,就业形势前景看好。随着人工智能、云计算、大数据、机器学习的兴起推动了Python语言的发展。最近IEEE Spectrum发布了2017年编程语言交互式排行榜,Python位居榜首。Coding Dojo(编码道场)近期发布了2018年最具就业前景的7大编程语言,Python位居第二,位于第一的Java语言,由于局限于安卓开发平台出现就业萎缩现象,而Python语言则逐年递增。虽然国内与国外情况有所差异,国内由于高校Python语言教学的滞后,Python优势并不如国外明显,从智联招聘、前程无忧等专业的平台上Python就业薪资和需求量及投简历的人数,可以判断人才缺口很大、未来python就业形势将大幅度上升。
由此可见,我国高校非计算机专业的程序课程首选Python實在必行,同时Python称为“胶水”语言,它能很好地与其他高级语言互补进行混合编程,所以计算机专业及信息类专业在开设C语言、JAVA语言后,可以把Python作为第2或第3语言开设。
5 结语
通过我国现阶段开设的高级语言比较分析,结合Python语言的结构特点及当前国内外不同语言编程人员就业形势,在新工科背景下,高校非计算机专业程序设计课程改革把Python语言作为首选是大势所趋,高校在师资培养、教材建设、教学资源等方面要积极准备,积极应对,推动全国高校教学改革。
参考文献:
[1] 嵩天,黄天羽,礼欣. Python语言:程序设计课程教学改革的理想选择[J].中国大学教学,2016(2): 42-47.
[2] 嵩天,黄天羽,礼欣.Python语言:程序设计课程教学改革的理想选择[J].中国大学教学2016(2).
[3] 王雪.北理工承办“全国高校Python语言及计算生态教学研讨会”[EB/OL].[2017-04-25].http://www.bit.edu.cn/xww/zhxw/139071.htm.