项目化教学在Python程序设计课程中的应用

作者: 王彩梅

项目化教学在Python程序设计课程中的应用0

摘要:Python语言因其特有的优势而广泛应用于计算机各个领域,是网络信息安全领域进行网络运维和编写攻防脚本的必备工具。《Python程序设计》课程是高职院校计算机网络技术专业一门重要的专业课程,基于该课程目前采用以知识点为主线的教学模式存在的不足之处,该文提出了将项目化教学模式应用于该课程的教学中。该文在分析项目化教学的内涵、课程目标及学情的基础上,选取了学生管理系统项目贯穿于整个教学过程,研究了该课程的项目化教学整体教学设计和单元教学设计。

关键词:Python程序设计;项目化教学;应用

中图分类号:TP391   文献标识码:A

文章编号:1009-3044(2022)09-0145-03

1 引言

近年来,随着大数据、云计算和人工智能等技术的兴起,Python语言逐渐流行起来。Python不仅广泛应用于数据分析、人工智能领域,而且很多大型网站也采用Python语言进行开发[1]。由于Python是一门简单易学好用的解释型脚本语言,在网络信息安全领域,Python也是网络运维和编写攻防脚本的必备工具,受到网络安全技术专业人士的青睐。《Python程序设计》课程是计算机网络技术专业一门重要的专业课。本课程以程序设计思想为主线,介绍Python的基本概念、语法知识和程序设计的思想和方法,着重培养学生使用Python语言这一专业工具从事实际工作的能力[2]。然而,目前传统的教学方法以讲解知识点为主线,学生学完后只能编写小程序解决小问题,并不能将知识点综合运用于实际的项目开发和实践应用中。为了解决传统教学方法的不足,本文提出了项目化教学在该课程中的实践应用思路与教学设计。

2 Python程序设计课程教学现状

计算机网络技术专业的《Python程序设计》课程包含的主要知识点有:(1)Python语言的常量、变量、输入输出等;(2)数字类型和字符串;(3)流程控制语句;(4)列表、元组、字典等高级数据类型的使用;(5)函数的定义与调用;(6)文件和数据格式化;(7)异常;(8)模块和第三方库。目前的教学模式是以知识点为载体,按照先后顺序贯穿整个课程的教学,每堂课讲解知识点语法的同时配合小程序进行实践练习,实践案例小程序是为讲解知识点而设计的。因此,一堂课下来,发现学生对知识点的应用能力比较差,只会编写类似小程序,而不会利用该知识点去编程解决综合应用问题。文献[3]提出了在C语言程序设计课程中存在着同样的问题。长此以往,学生自己会产生挫败感,影响后续学习的积极性。该课程是为后续从事网络运维和网络安全攻防实战而服务的,如果Python编程能力不强,将会阻碍专业核心课程的深入学习,减弱学生对专业技术学习的兴趣,最终影响学生就业竞争力。从教学实践的反馈分析来看,造成这种现象的原因有两点:一是学生对知识点的应用不够熟悉,需要大量地编写程序进行练习;二是由于课堂上的实践小程序是与实际工作中的真实项目有脱节,学生只知道在类似小程序中如何运用该知识点,但不知道该知识点在实际项目开发的整体框架中如何应用。所以要想学生学有所用,必须在实践案例的选取上下功夫,实践案例的选取既要涵盖本课程的知识点,又要贴近企业真实项目。

3 项目化教学的内涵

项目化教学是师生通过共同实施一个完整的项目工作而进行的教学活动,其目的是在课堂教学中把理论知识和实践教学有机地结合起来,充分发挥学生的创造潜能,提高学生解决实际问题的综合能力。项目化的教学方法以企业真实项目为载体,以企业项目开发流程为主线,将大项目分成一个个小项目,在小项目的实现过程中融入每节课的知识点,当老师带着学生做完一个小项目时,学生就学会了知识点在项目中的实际应用。当整个项目结束的时候,学生已经完成了一个比较完整的作品。项目化教学遵循“做中学、学中做”的学习规律,强调“以学习者为中心”和“以成果为导向”的培养原则,通过反复的项目化训练,让学生掌握知识和技能在真实工作的灵活运用。

项目化教学的优点受到众多教育学者的关注,一度成为研究热点,在实践性要求较高的课程教学中,项目化教学的优势较为明显。无论是在高职还是本科,项目化教学均得到了广泛的应用。一些研究学者通过实验数据表明项目化教学应用于课堂实践中取得了显著的教学效果。文献[6]分析探讨了项目化教学在《Java程序设计》教学中的应用效果。该文献作者通过选取了所在院校的同一专业的90名学生作为研究对象,将他们随机分为两组,一组采用项目化教学,另一组采用传统的讲授式教学模式进行教学。最后考核结果显示,采用项目化教学的一组上机考核成绩和总评成绩均高于另一组。文献[7]中在实验班进行了项目化教学改革,在平行班还是采用传统的教学模式,最后考核结果显示,实验班的学生期末考试平均成绩高于平行班级6.91分,及格率更是高出平行班17.5%,学生也对项目化教学模式做出了满意的评价,认为项目化教学对自主学习有帮助。

4 Python程序设计课程项目化教学设计

4.1 课程目标

该课程是一门实践性很强的课程,注重培养学生的实践动手编程和综合运用能力。课程目标是通过该门课程的学习,让学生熟悉Python运行和开发环境,掌握Python基本语法和面向对象软件开发的思想与方法,能灵活运用Python语言编写程序解决实际问题。同时,课程需要注重培养学生的自学能力、创新能力等综合职业能力,并坚持思想教育与知识传授的有机结合。

4.2 学情分析

教学的目的是教有所学,学以致用。教学的对象是学生。因此,教学设计应该充分结合授课对象的学习情况来进行。本课程的学习对象为大一学生。他们的优点是:大多数学生学习态度端正,有较强的求知欲;在上学期学习了《C语言程序设计》课程,有一定的编程基础;学习目的性很强,认为对就业有帮助的知识会学的更认真。同时,他们也具有高职学生共有的特点:对理论知识的学习注意力集中时间相对较短,对实践操作比较感兴趣,但是在动手实践后能否获得一定的成就感又会直接影响到他们后续的学习兴趣和学习积极性。因此,教师在选取项目任务时,需要充分考虑难易程度。如果任务太难,学生完不成,容易产生畏难情绪;如果太简单,学生会觉得没有挑战性,会失去兴趣。同时,选取的项目应该贴近企业一线真实项目,让学生学习到对将来就业有用的知识和技能,提高学生的学习积极性和主动性。

4.3 教学项目的选取

教学设计的重要环节是进行教学内容设计。教学内容的选取要注意四个方面,一是紧贴企业对毕业生知识技能的需求,二是符合专业人才培养计划的要求,三是遵循课程目标,四是结合学情分析。而项目化教学的课程内容设计重点是项目的选取。因此,在项目的选取上,在贴近企业真实项目的同时,还需要涵盖教学知识点,并注意难度适当。文献[4]通过在C语言程序设计教学中选取购票管理系统为项目载体进行项目化教学。本文借鉴了文献[4]中的思路,选取学生信息管理系统[5]作为贯穿课程的教学项目,该项目与学生的实际生活联系紧密,学生更容易有代入感,同时,该项目也能涵盖本课程的大部分知识点。

本课程按照项目开发的流程来进行教学,从项目需求分析、系统设计、系统开发环境、系统文件组织结构、主函数设计、各个功能模块的设计与实现到项目程序打包,项目开发的每个阶段融入Python基础知识的讲解。具体的项目模块及涵盖的知识点如表1所示。

4.4 项目化教学整体教学设计

从表1可以看出,学生管理系统的各个功能模块开发所涉及的知识点是重复的,模块四和模块五基本上涵盖了本课程的大多数知识点。如果直接在一个模块中一次性将所有知识点讲解,综合性太强,学生难以消化,因此,可以将知识点循序渐进地贯穿在模块四和模块五中展开讲解,模块六到模块九由于与模块五涉及的知识点基本相同,可以作为学生的拓展练习任务。例如,实现模块五的功能,可以分为五个步骤来逐步实现:①学习组合类型这一知识点后,任务是将一个学生信息保存在列表和字典中;②学习控制语句后,任务是将多个学生信息保存在字典中;③学习函数后,任务是将模块五的功能封装为函数并在模块四中去调用该函数;④学习文件处理后,任务是将学生信息永久保存在文件中;⑤学习异常后,任务是将程序改写得更加健壮。模块五的完整功能的实现是一个循序渐进的过程,是根据学习的知识点逐步进行完善的,贯穿了几个章节的知识点。

如图1所示,基于学生信息管理系统的项目化教学整体模式可以归纳为五个阶段。①课程开始阶段,整体演示该学生管理系统的界面及完整功能。②带领学生进行需求分析、系统设计。③在模块四中贯穿学习Python环境的安装、变量和数据类型、输入输出、流程控制等知识点。④在模块五中贯穿学习列表、字典等组合数据类型、函数、文件与数据存储、异常等知识点。同时,模块六到模块十的功能实现作为课堂练习或课后作业同步进行。⑤在模块十一中贯穿学习模块和第三方库、程序打包等知识点。由于在整个项目的完成过程中,各知识点是综合交叉的,所以学生对于知识点的学习是在“做中学、学中做”的模式中经过反复训练的,可以明显提高学生的编程应用能力。

4.5 项目化教学单元教学设计

在学生信息管理系统的功能模块中贯穿知识点的学习时,由于实现每个功能模块涉及的知识点比较多,所以在单独讲解某个知识点(例如控制语句)时,如果只拿项目模块作为案例来讲,必然不能将这个知识点讲解透彻,所以需要设计层层递进的案例程序,分四个层次让学生逐步学会对这个知识点的灵活运用。这四个层次分别语法练习小程序、基本应用小程序、综合应用小程序、项目实战。这里以学习控制语句中的选择语句为例来设计案例:①根据分数判断是否及格;根据分数判断等级;②根据年份和月份计算当月的天数;③猜数游戏;④学生信息管理系统的主界面中选择功能的实现。在第③个案例中涉及循环结构,虽然暂时还没学到,但是学生有C语言基础,可以让学生尝试着去解决问题,锻炼学生的自学能力。在第④个案例中涉及没有学过的函数和函数调用,这里同样可以让学生尝试着去做以下,函数定义里的功能代码可以暂时用一个print语句代替,后面再逐渐完善。由于在每一单元的学习中,知识点并不是孤立的,而是相互交叉渗透的,所以一个知识点并不是只学习一遍,而是反复多次的应用于不同的程序中,学生对知识点的反复实践练习使得他们对知识的应用更得心应手。

5 结束语

大数据、云计算和人工智能等技术的兴起带动了Python语言的发展,由于Python语言应用领域广泛,目前,高职院校计算机相关专业基本都开设了《Python程序设计》课程。该课程实践性强,注重培养学生的实践能力和在项目中的综合应用能力。然而该课程目前教学中存在的不足之处导致学生对知识点的灵活应用特别是在综合项目中的应用能力比较欠缺。本文提出将项目化教学应用于该课程中进行教学设计,选取了学生管理系统作为项目化教学的教学项目,在此基础上对该课程进行了整体教学设计,并以控制语句这一知识点为例进行了单元教学设计。后期关于该课程项目化教学的进一步实施及教学效果还需要深入研究和实践。

参考文献:

[1] 余久方.高职院校python语言教学模式探索[J].职业教育研究,2019(11):70-74.

[2] 丁毅涛.基于线上线下的Python程序设计语言教学改革探索[J].科技风,2021(28):114-116.

[3] 夏宇.项目化教学在C语言程序设计课程中的应用[J].辽宁高职学报,2021,23(8):47-50.

[4] 周军强.C语言程序设计课程项目化教学研究[J].福建电脑,2020,36(4):81-82.

[5] 明日科技.Python项目开发案例集锦:全彩版[M].长春:吉林大学出版社,2019.

[6] 杨利,宛楠,吴新丽.项目化教学在《JaVa程序设计》教学中的应用研究[J].皖南医学院学报,2020,39(1):91-93.

[7] 姜莉,王强,付百学,等.面向“新工科”的应用型本科院校项目化教学[J].中国冶金教育,2019(3):39-41,44.

【通联编辑:朱宝贵】

上一篇 点击页面呼出菜单 下一篇