“Python程序设计与实验”课程教学方法研究
2019-12-05黄静谢绍敏
黄静 谢绍敏
摘 要:文章针对计算机工程学院网络工程专业“Python程序设计与实验”课程的教学情况及学生特点,提出以项目案例为驱动、以实际需求为引导以不断提升学生综合能力为目标的教学方法。
关键词:Python;项目驱动;教学方法
1 Python介绍
2019年7月,在编程语言流行指数排行榜中,Python的占比达到28.08%,位居第一。随着人工智能时代的来临,Python语言成为人们掌握编程的首选语言[1]。相比于其他语言,Python有如下优点:(1)编程效率高,用Python编程可以用更少的代码实现同样的功能。(2)具有庞大的标准库和成千上万并且不断增加的第三方库。(3)Python语法简单,容易上手。Python应用在很多领域,如前后端开发、网络编程、金融分析、大数据挖掘、爬虫、云计算、自动化运维、测试、科学计算等。基于这些特点,可以让非软件开发专业的学生也能在短时间内掌握一门语言从事生产。网络工程专业不仅要具备开发和维护计算机应用系统的基本能力,还应该具备实践创新能力,“Python程序设计与实验”是桂林电子科技大学计算机工程学院网络工程专业的一门创新创业的课程。
2 课程安排
桂林电子科技大学计算机工程学院网络工程专业于大三下学期开设本课程,该课程分为理论基础课24学时和实验课32学时。网络工程专业对于该课程的培养注重实践应用,在课时安排上,实验课分配更多的时间,理论课与实验课交叉进行。本课程的教学采用项目案例驱动的方式,在教学过程中,实验课通过开发实际的项目案例穿插讲解该课程主要知识点,理论课上再强调该知识点的学习。因为经过实验课的项目案例开发,学生对于知识点的掌握和项目开发的流程会有更加具体的认识。
3 教学方法
3.1 语法基础入门
学生在学习Python语言之前具备C语言编程的基础,再学习Python语言的时候对于程序开发的逻辑思维会有许多共同点。在一开始学习Python语言的时候,让学生快速了解这门语言的方法如下:首先,要了解这门语言的语法结构、常用的知识点。其次,可以通过展示不同的项目实例快速了解该语言可以实现的功能,让学生对于该语言有一个整体的认识,激发学生的学习兴趣。
在教学之初,让学生快速了解Python语言的基本语法和常用知识点,可以通过一个简短的程序案例来实现,程序如下:
# 猜拳游戏实例
import random # 导入包
def game(parm1, parm2): # parm1:玩家参数 parm2:电脑参数
cq = [‘石头, ‘剪刀, ‘布] # 列表变量定义
if (parm1 == 0 and parm2 == 1) or (parm1 == 1 and parm2 == 2) \
or (parm1 == 2 and parm2 == 0):
print(“你出的是%s,电脑出的是%s,恭喜,你赢了!” % (cq[parm1], cq[parm2]))
elif parm1 == parm2:
print(“你们出的都是%s,平局!” % cq[parm1] )
else:
print(“你出的是%s,电脑出的是%s,你输了!” % (cq[parm1], cq[parm2]))
while True:
try:
player = int(input(“请输入数字0:石头、1:剪刀、2:布 、3:不玩了 :”))
except ValueError:
print(“只能输入数字!”)
continue
if player > 3 or player < 0:
print(“你输错了,请输入0、1、2、3!”)
continue
if player == 3:
print(“休息下吧!”)
break
computer = random.randint(0, 2) # 电脑获取随机参数
game(player, computer) # 函数调用传参
continue
猜拳游戏实例涉及如下知识点:
(1)Python的基本语法,包括注释、行与缩进,变量和数据类型,标识符和关键字,运算符。
(2)Python的常用语句,包括if-else语句、while循环、continue语句、break语句。
(3)字符串的输入和输出以及字符串的格式化。
(4)列表的定义和访问。
(5)函数的定义和调用。
(6)异常的处理。
(7)模块的引入和模块中函数的调用。
因为学生都有一定的编程基础,通过这样一个简单、直观的案例,就可以让学生总体了解Python这门语言的基础知识点,对于有编程基础的学生来说,通过阅读该程序就可以自己动手操作实现一些简单的功能。
3.2 发散需求,进阶学习
在学生语法基础入门后,通过对同一项目不断扩展需求引入更多的知識点,如在完成猜拳游戏这一程序后,可以加入玩家角色、游戏图像界面、游戏菜单、生成游戏日志文件、总胜局记录统计存放数据库、胜局统计查询等需求。在需求不断增加和实现的过程中,学生很好地掌握了GUI编程、类与对象、文件操作、数据库运用等进阶知识点。对同一项目案例进行扩展需求,从易到难,可以让学生更有成就感,在不断实现需求的过程让学生能有更多的成就感,从而让学生自觉自主地去动手学习编程。不同需求扩展结果如图1所示。
3.3 项目案例驱动,提升学生综合能力
在学生对于该语言所有知识点都有了总体的了解后,在实验课的教学中采用项目驱动的方式,提升学生解决问题的能力。选用的项目案例要贴合实际应用,如微信小程序、网站开发、网络爬虫等案例,案例程序涵盖课本中的知识点,通过动手编程,学生可以熟悉知识点的应用,学会在各种项目、不同需求中应用所学的知识去解决问题,培养解决问题的能力。另外,要培养学生的自学能力,因为课本上所讲的知识点在实际的项目开发中是远远不够用的,所以让学生动手去写程序,自己通过书籍或搜索引擎解决问题尤为重要。教师在实践教学过程中主要是给学生提供一个解决问题的思路或方向,让学生自己动手去解决问题,调动学生的主动性,自己动手编程才能让学生更好的掌握所学知识。
在项目案例教学的过程中,引导学生掌握运用软件工程开发的流程,完成需求分析、概要设计、详细设计、代码编写、程序测试、交付、验收、维护这一完整的流程。教师通过验收学生所写程序给出改进意见,增加功能需求,让学生对于软件开发流程有更深的理解,开发流程中的每一项都要写入文档之中,最终形成项目案例文档,作为学生学习这一门课程的考核依据。
4 Python课程项目驱动教学的关键问题及体会
Python课程项目案例驱动教学最大的问题就是不同学生动手解决问题能力的差异问题。不同学生做同样的项目需求,花费的时间有所不同,在教学过程中如何兼顾学生的能力问题,有以下几点经验:
(1)通过简单易懂的小程序让不同的学生都能快速理解、掌握课程知识点。
(2)在案例开发教学前,教会学生遇到问题时进行关键词搜索,通过搜索引擎快速获取问题答案,推进项目进程。
(3)考核项目文档,评定项目质量,给学生提供方向指引,促使学生自觉自主完成项目案例,只有动手编程才能提升解决问题的能力。
(4)实际应用项目开发流程训练提升学生的综合能力。
5 结语
Python在人工智能和大数据时代作为一种重要的编程语言,是高等教育的重中之重。Python课程的教学需要教师进行更多的创新尝试,对实际项目开发实践能力有更高的要求,提高学生综合能力的培养质量,才能讓学生在进入工作后学以致用。
[参考文献]
[1]黑马程序员.Python快速编程入门[M].北京:人民邮电出版社,2017.