论文部分内容阅读
摘要:高职院校主要以《程序设计基础》课程来培养学生的计算思维,目前普遍使用C语言,C语言复杂的语法特性增加了学习难度,影响了学生对于计算思维的认识和理解。改用更加易学易用、功能也更加强大的Python作为《程序设计基础》的编程语言,可以激发学习兴趣、降低学习难度,获得更好的教学效果,使学生在掌握一门语言的同时,也更好地理解计算思维。
关键词:程序设计基础;计算思维;Python
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)22-0137-02
1高职教育中《程序设计基础》课程现状
在高职院校的计算机类专业,主要通过《程序设计基础》课程来培养学生的计算思维。计算思维涉及运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。掌握计算思维有利于学习后续的数据结构、算法等课程,为就业之后进一步提高职业技能打下坚实基础。
目前各大高职院校所开设的《程序设计基础》课程中,主要以C语言为主。C语言是最成功的编程语言之一,但学习成本较高,学习曲线陡峭。由于C语言中的数据类型、指针、内存分配与回收等内容涉及计算机系统结构相关知识,而大一新生通常尚未很好地掌握这些知识,这就给学习带来了额外的困难。为此,学生不得不在枯燥乏味的基础语法上耗费大量的时间和精力,也往往影响了学习的热情和兴趣。
复杂的基础语法对于培养学生的计算思维是极其不利的。应当更换一门更加合适的编程语言,这门语言最好像C语言一样通用,能胜任不同的应用环境和需求;同时还要有更加简洁的语法、更加丰富的类库和函数库,使学生能以更小的代价上手并熟练掌握。如果某些专业f例如和硬件有关的专业)需要掌握c语言,可以在大二再开设相关课程;而对于《程序设计基础》本身,Python语言是不二之选。
2Python语言的特点
Python是一门动态的、面向对象的解释型语言,是目前最接近自然语言的通用编程语言。该语言只关心计算问题的求解,其轻量级的语法和高层次的语言表示表达了应用计算机解决问题的计算思维理念。Python的好处包括但不限于以下内容:
1)开源且拥有活跃的社区,拥有强大的模块及第三方库,显著提高开发效率;
2)具有交互式解释器,对用户输人的每一行代码及时解释,所见即所得,易于上手;
3)Python是动态语言,变量是弱类型,即数据类型是自适应的,无需由程序员显性地指定数据类型;
4)自带的数据类型和方法提供了许多常用的数据结构,诸如队列、栈等;
5)易移植,跨平台基本上不必修改代码;
6)既支持函數式编程,又能完美地支持面向对象,适用于多种不同的编程思想;
7)可扩展,能够在Python代码中扩展C、Java等语言。
综上所述,Python不但更加易学、易上手,而且也更加易于使用。
Python主要有的缺点是执行速度较慢。不过,现在的计算机多数情况下处于CPU性能过剩的状态。另一方面,对于云计算、大数据领域常见的应用场景,绝大多数工作负载都属于I/O密集型,这类应用的瓶颈在于I/O设备,而不是程序自身的执行效率。此外,硬件的成本比程序员的人力成本低得多,而且开发效率比执行效率更重要,如果开发一个系统需要的周期过长,可能就错过了商机。最后,Python也可以使用PyPy、交叉编译、嵌入C语言模块等方法提高执行速度。
3高职教育使用Python语言的利好
Python比c语言更加易学,在教学情景中,学习效率远比执行效率重要。高职的计算机类专业一般为三年制,课时也相对本科院校更少,因此也就更珍贵。Python的简单易学可以让学生远离繁杂的语法细节,腾出时间和脑力,以更好地培养对计算思维的感性认识。
Python具有更高的开发效率,使学生可以完成更复杂、更高质量的课后习题,既能让学生产生成就感,进一步提升学习兴趣,又能很好地消化和巩固学过的内容。
从长远发展来看,程序员和硬件密切关联的时代已经过去了,在云计算和大数据的时代,编程工作主要是围绕业务逻辑展开的,这些都是Python的优势。
以AlphaGo战胜人类棋手为标志,随着人工智能的普及和发展Python语言简单有效的针对机器学习的算法,独特的机器学习功能库,将在机器学习领域占主导地位。这也为未来指明了方向——学习Python,无论是将来就业,还是更加长远的发展,都是非常有利的。
4基于Python的高职院校《程序设计基础》课程设计
在高职院校的《程序设计基础》课程中,学习语法特性几乎占据了全部的课时。从当前被大量选用的相关教材中可以得到佐证,这些教材绝大多数篇幅都在介绍c语言的语法规则和细节。这是C语言自身的特性所局限的,可以说学习《程序设计基础》,就是学习C语言。
由于Python语法简洁,有些语法可以直接按自然语言的方式去理解,这就大大简化了语法方面的学习难度。可以将语法部分安排在较少的课时,从而有充裕的时间将问题求解、工程实例等内容引入课堂。
对于数据结构和算法有关的内容也可以适当涉及。Py-thon中的列表是一种类似于c语言中的数组的数据类型,但列表同时也是一种对象,拥有自己的属性和方法,其中就有对应的方法可以直接实现队列和栈的功能。列表中的元素可以是任何类型,这就使得列表的嵌套可以组合成各种树。Python中的序列类型(包括字符串、元组和列表)自带了许多方法,可以用于查找、匹配、检索、排序等。通过这些方法,学生就可以很容易地进入数据结构和算法的领域。以64学时的课时安排为例,每周4节课,总共16周,课程内容安排如下:
1~2周:Pvthon简介及安装、基本语法(赋值表达式、运算符、数值类变量);
3~5周:列表、元组、字符串、自带的数据结构(队列、栈、树)和算法(排序、查找、匹配);
6~7周:字典、集合、条件式、分支和循环、函数初步;
8~11周:函数式编程的思想、问题分解与分治算法、程序框图、类、继承、面向对象编程思想;
12~16周:标准库中的常用函数、模块、模块的制作、程序打包、文件操作、异常处理、复习。
语法有关的内容大约占50%的课时量,在剩下的课时中约有30%的课时属于有利于培养计算思维的内容,即上文中加粗部分,包括一些数据结构和算法的内容,以及函数式编程和面向对象编程的思想。其他课时用于介绍诸如程序打包、异常处理等高级功能。这样的课程安排,在内容上比旧有的《程序设计基础》要丰富许多,而总体难度却降低了。
如果课程的课时量更多,则还可以增加一些常用的第三方模块。根据学生的专业,可以选择针对数学计算的Numpy、Sympy,针对科学计算的Scipy,针对网站开发的Flask、Django,针对网络爬虫的Scrapy,针对机器学习的Theano、Scikit-learn等。
5结束语
基于Python的《程序设计基础》课程可以更有趣味、更有效率,也更有发展前景。在重视应用型人才的高职教育中尤其如此。但相对c语言,Python语言的《程序设计基础》尚还缺乏优秀的高职教材,在线教学资源的建设也还在起步阶段。无论是硬件还是师资力量,都还有很长的路要走。
关键词:程序设计基础;计算思维;Python
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)22-0137-02
1高职教育中《程序设计基础》课程现状
在高职院校的计算机类专业,主要通过《程序设计基础》课程来培养学生的计算思维。计算思维涉及运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。掌握计算思维有利于学习后续的数据结构、算法等课程,为就业之后进一步提高职业技能打下坚实基础。
目前各大高职院校所开设的《程序设计基础》课程中,主要以C语言为主。C语言是最成功的编程语言之一,但学习成本较高,学习曲线陡峭。由于C语言中的数据类型、指针、内存分配与回收等内容涉及计算机系统结构相关知识,而大一新生通常尚未很好地掌握这些知识,这就给学习带来了额外的困难。为此,学生不得不在枯燥乏味的基础语法上耗费大量的时间和精力,也往往影响了学习的热情和兴趣。
复杂的基础语法对于培养学生的计算思维是极其不利的。应当更换一门更加合适的编程语言,这门语言最好像C语言一样通用,能胜任不同的应用环境和需求;同时还要有更加简洁的语法、更加丰富的类库和函数库,使学生能以更小的代价上手并熟练掌握。如果某些专业f例如和硬件有关的专业)需要掌握c语言,可以在大二再开设相关课程;而对于《程序设计基础》本身,Python语言是不二之选。
2Python语言的特点
Python是一门动态的、面向对象的解释型语言,是目前最接近自然语言的通用编程语言。该语言只关心计算问题的求解,其轻量级的语法和高层次的语言表示表达了应用计算机解决问题的计算思维理念。Python的好处包括但不限于以下内容:
1)开源且拥有活跃的社区,拥有强大的模块及第三方库,显著提高开发效率;
2)具有交互式解释器,对用户输人的每一行代码及时解释,所见即所得,易于上手;
3)Python是动态语言,变量是弱类型,即数据类型是自适应的,无需由程序员显性地指定数据类型;
4)自带的数据类型和方法提供了许多常用的数据结构,诸如队列、栈等;
5)易移植,跨平台基本上不必修改代码;
6)既支持函數式编程,又能完美地支持面向对象,适用于多种不同的编程思想;
7)可扩展,能够在Python代码中扩展C、Java等语言。
综上所述,Python不但更加易学、易上手,而且也更加易于使用。
Python主要有的缺点是执行速度较慢。不过,现在的计算机多数情况下处于CPU性能过剩的状态。另一方面,对于云计算、大数据领域常见的应用场景,绝大多数工作负载都属于I/O密集型,这类应用的瓶颈在于I/O设备,而不是程序自身的执行效率。此外,硬件的成本比程序员的人力成本低得多,而且开发效率比执行效率更重要,如果开发一个系统需要的周期过长,可能就错过了商机。最后,Python也可以使用PyPy、交叉编译、嵌入C语言模块等方法提高执行速度。
3高职教育使用Python语言的利好
Python比c语言更加易学,在教学情景中,学习效率远比执行效率重要。高职的计算机类专业一般为三年制,课时也相对本科院校更少,因此也就更珍贵。Python的简单易学可以让学生远离繁杂的语法细节,腾出时间和脑力,以更好地培养对计算思维的感性认识。
Python具有更高的开发效率,使学生可以完成更复杂、更高质量的课后习题,既能让学生产生成就感,进一步提升学习兴趣,又能很好地消化和巩固学过的内容。
从长远发展来看,程序员和硬件密切关联的时代已经过去了,在云计算和大数据的时代,编程工作主要是围绕业务逻辑展开的,这些都是Python的优势。
以AlphaGo战胜人类棋手为标志,随着人工智能的普及和发展Python语言简单有效的针对机器学习的算法,独特的机器学习功能库,将在机器学习领域占主导地位。这也为未来指明了方向——学习Python,无论是将来就业,还是更加长远的发展,都是非常有利的。
4基于Python的高职院校《程序设计基础》课程设计
在高职院校的《程序设计基础》课程中,学习语法特性几乎占据了全部的课时。从当前被大量选用的相关教材中可以得到佐证,这些教材绝大多数篇幅都在介绍c语言的语法规则和细节。这是C语言自身的特性所局限的,可以说学习《程序设计基础》,就是学习C语言。
由于Python语法简洁,有些语法可以直接按自然语言的方式去理解,这就大大简化了语法方面的学习难度。可以将语法部分安排在较少的课时,从而有充裕的时间将问题求解、工程实例等内容引入课堂。
对于数据结构和算法有关的内容也可以适当涉及。Py-thon中的列表是一种类似于c语言中的数组的数据类型,但列表同时也是一种对象,拥有自己的属性和方法,其中就有对应的方法可以直接实现队列和栈的功能。列表中的元素可以是任何类型,这就使得列表的嵌套可以组合成各种树。Python中的序列类型(包括字符串、元组和列表)自带了许多方法,可以用于查找、匹配、检索、排序等。通过这些方法,学生就可以很容易地进入数据结构和算法的领域。以64学时的课时安排为例,每周4节课,总共16周,课程内容安排如下:
1~2周:Pvthon简介及安装、基本语法(赋值表达式、运算符、数值类变量);
3~5周:列表、元组、字符串、自带的数据结构(队列、栈、树)和算法(排序、查找、匹配);
6~7周:字典、集合、条件式、分支和循环、函数初步;
8~11周:函数式编程的思想、问题分解与分治算法、程序框图、类、继承、面向对象编程思想;
12~16周:标准库中的常用函数、模块、模块的制作、程序打包、文件操作、异常处理、复习。
语法有关的内容大约占50%的课时量,在剩下的课时中约有30%的课时属于有利于培养计算思维的内容,即上文中加粗部分,包括一些数据结构和算法的内容,以及函数式编程和面向对象编程的思想。其他课时用于介绍诸如程序打包、异常处理等高级功能。这样的课程安排,在内容上比旧有的《程序设计基础》要丰富许多,而总体难度却降低了。
如果课程的课时量更多,则还可以增加一些常用的第三方模块。根据学生的专业,可以选择针对数学计算的Numpy、Sympy,针对科学计算的Scipy,针对网站开发的Flask、Django,针对网络爬虫的Scrapy,针对机器学习的Theano、Scikit-learn等。
5结束语
基于Python的《程序设计基础》课程可以更有趣味、更有效率,也更有发展前景。在重视应用型人才的高职教育中尤其如此。但相对c语言,Python语言的《程序设计基础》尚还缺乏优秀的高职教材,在线教学资源的建设也还在起步阶段。无论是硬件还是师资力量,都还有很长的路要走。