蔡晓丽 刘芝怡 孟祥莲
摘要:Python已成为很多高校非计算机专业程序设计的入门语言,但教学中普遍存在着考试命题科学性较差、成绩评定随意、公共课批卷工作量大、忽视问题导向、难以激发学生兴趣等问题。针对以上问题进行了教学研究与探索,开发了Python课程的试题库软件、创新了教学模式、分专业制定了教学方案,多措并举,致力于提高学生的综合素养和能力。
关键词:Python;试题库;软件开发;教学模式
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2022)31-0118-04
Python在人工智能和大数据领域有着无可比拟的优势,而日渐受到各大高校的关注,目前Python已经应用到很多领域,被诸多高校选定为非计算机专业学生的程序设计入门语言。Python有强大的第三方库支持,已经有超过十几万个第三方库,覆盖了诸多应用领域,计算生态进一步形成,可以支持有兴趣的同学进一步向Python高级编程迈进[1]。Python语法简洁,变量可根据不同的赋值更改类型,因此不需要显式定义数据类型;在教学内容上没有指针、内存地址和链表等难于理解的内容,比C语言更容易被学生接受;可以集成C语言、Java等语言编写的代码,通过接口混合编程,也称为“胶水”语言;丰富的第三方库应用于各个领域,比传统计算机语言更便于与专业结合、解决专业问题,在高校非计算机专业编程教学中具有明显优势。
但在教学中发现,高校Python课程教学中普遍存在以下问题:
1) 由于Python是近几年新开设的课程,多数学校在考试上还采用传统的“考教合一”的方式,命题随意性较大、难度设置及考核点分布科学性较差、试卷质量较低;考试的科学性欠缺,成绩评定的随意会影响学校的学风和教風。Python是公共课,学生人数多,任课教师的出卷、印刷、保密、批阅等工作繁重。随着网络教学的广泛应用,考试作为检查教学质量和学生能力的重要手段,试题库作为重要的教育教学资源,它的作用越来越重要。现代高等教育要求建立具有很高查询效率的试题库,能够高效、方便、快捷地出题,自动生成试卷,逐步形成丰富完善的试题库,使试卷管理工作更科学有效[2]。
2) Python课程中多采用以教师为中心的传统教学模式,教师在教学时重视语法和基础知识的教学,轻视学生解决问题能力的培养,以知识点为中心的教学难以激发学生的主动性。学生被动地接受知识,感觉所学内容和实际生活没有联系,因此积极性不高。这种教学方式不能发挥学生独立思考的能力和创新能力。
3) Python课程的经典教材较少,很多教材存在案例不足、专业结合程度低等问题。不同教材侧重点有较大区别,深度也各不相同,因此开发或精选适合新形势下的教材的需求尤为紧迫。针对以上情况,从三个方面进行了教学研究和实践探索,以促进高校Python程序设计教学质量的提高。
1 Python试题库软件的开发
开发Python试题库软件,从标准的试题库中筛选、组合出符合要求的试卷进行考试,可克服考试命题中人为的主观随意性,可以更科学、合理、客观地对教学双方的成绩进行评估,提高教师的责任心及使命感,使教师必须反复钻研大纲,熟透教材,规范教学过程,端正教风和学风,调动教与学两个方面的积极性,对提高教学质量有积极意义[3]。当今高等教育中试题库已经成为非常重要的教学资源,教学中建立设计科学、查询高效的试题库系统,能够快速、科学地出题,生成符合规范的试卷,使教学、考试等工作事半功倍。高校教师应积极利用先进的计算机互联网技术,建设完善标准的试题库,以推动课程教学的发展。
Python课程试题库软件的开发包括选择合适的程序设计开发语言、确定软件结构、精选试题并分类、设计组卷算法、编写代码、测试软件等过程。学校Python课程教学小组开发的Python试题库软件(如图1所示)适合多个专业使用,该软件获批发明专利1项。软件在设计过程中的难点主要在评阅系统的设计,由于批阅的多数是计算机编程题,不同于简单的客观题,它既要能与标准答案比对判分,又能根据测试数据和生成的结果文件进行智能判分,还要有教师手工干预的辅助功能。Python试题库软件既要能提高出题及评阅的速度,降低教师评阅的工作量,又要尽量科学、合理、公平、公正。通过不断改进,最终开发出了师生满意的软件系统。它在疫情期间帮助学生参与线上学习,掌握Python编程的各种技能,提高了Python课程的教学效果。
为提高软件的实际使用效果,我们不断丰富软件功能,从单一的题库系统增加了防作弊功能、作业评阅功能、学生自评功能等功能模块。
1.1 在防作弊功能模块
学生如果在考试过程中访问指定文件夹以外的位置,就会自动锁屏并给予警告,如果使用U盘拷贝会锁屏;平时作业中自动记录了学生登录信息,如果拷贝别人的文件交卷后会计0分,并且在统计的成绩中会留有记录。这对疫情环境下学生在线完成作业起到了很好的辅助作用,防止了学生拷贝作业的情况,为在线学习提供了技术支持。学生也因为教师们开发的软件感叹编程的巨大作用,激发了编程的热情。使用该软件后提问的同学多了、作业完成的质量高了。
1.2 在学生自评模块
学生遇到不会的练习题,可以选择批阅功能,试题库软件就会给予提示、进行试题分析。学生在软件中不仅可以测试,也可以练习、复习,该软件就成了一个学习工具,成了学生的小老师。尤其在疫情期间,教师和学生之间缺少了面对面的沟通,教师的精力也有限,学生遇到问题在网上发消息教师未必能及时回复,通过这个软件这些问题都得到了解决。
1.3 作业评阅模块
该模块(如图2) 能够大幅提高教师的评阅速度,程序题有很多小的得分点,如果由教师一个一个去批阅,效率非常低,而且通识课学生人数又多,批作业的工作量更大,有了这个系统,教师们就像有了能干的助手,从而避免被简单重复性劳动耗尽了自己的教学热情。该Python试题库软件功能丰富,教师还可以利用该软件发布通知、布置作业、组织在线考试等,可以对选择题、判断题、编程题判分。这些都减轻了教师批改作业的工作量,也大大提高了教师的工作效率[4]。
2 教学理念与模式的探索与创新
Python课程教学要转变以教师为中心的传统模式,而树立学生才是学习主体的理念,结合实际问题、加强项目引领、问题导向,培养学生学习的兴趣,结合多种教学模式和方法,培养创新人才。Python课程教学理念与模式的创新具体包括以下措施:
2.1 问题驱动、项目引领式混合教学
目前高校中非计算机专业Python课程学时多为48或64学时,课时比较紧张,单纯依靠课上时间只能介绍基本知识,因此可以采用线上、线下结合的混合模式教学,用翻转课堂、慕课、雨课堂等新的教学模式和工具,让学生课前利用在线教学平台观看教学视频、完成适量的练习,掌握基本知识点。另外,以知识点为中心的教学“只见树木、不见森林”,学生缺乏学习兴趣,因此适宜在Python教学中引入实际问题、以项目开发引领学生分析问题、用编程解决问题。可采用流程图或者自然语言描述算法,再转换成Python程序进行调试,从而能够模拟专业问题,在这个过程中提高学生Python编程能力。在Python线下教学中教师可以减少基础知识的教学用时,采用答疑、讨论和翻转课堂为主要教学形式,讲授作为辅助形式,用于突破重点、难点以及学生的共性问题。之后,再对基础知识进行巩固与灵活应用,以实现更高级的教学目标,让学生在认知层面参与学习。单纯讲解编程语法难以激发学生兴趣,应结合实际问题、软件项目帮助学生树立目标,变被动学习为主动学习。
2.2 将Python课程总体培养目标提升为赋能培养
具体包括知识、能力和素养三个层面。知识层面是最基础的层面,主要是培养学生掌握Python语法和程序设计知识。能力层面是高一级的目标,培养学生拥有三方面的能力:一是编写良好的Python程序、數据处理和可视化的专业能力;二是问题抽象、建模、分解,利用Python编程求解自身专业问题的能力;三是分析问题、团队协作、表达沟通、解决问题的综合能力。最高层次的目标是素养层面。要培养学生的道德品质、信息素养和计算思维等软实力,这些素养一旦具备,受益终身。
2.3 将Python课程教学划分成入门、培育和拓展三个阶段
这三个阶段由浅入深、逐层递进。入门阶段介绍Python数据类型、程序的基本结构和函数,从而学生可以理解程序执行流程、进行简单的编程。培育阶段学习复杂的数据类型,例如序列、字典、集合、元组,比较其异同,培养面向对象的思想。拓展阶段根据专业需求介绍相关的第三方函数库,例如时间库、绘图库、随机函数库、数据分析及可视化库等,目标在加深学生的计算思维能力。
2.4 分专业合理制定教学方案
根据专业制定不同教学方案[5],不同专业、不同生源的学生计算机基础不同,涉及的Python第三方库有较大差别。在教学中应针对专业需求和学生基础拟定不同教学方案,因材施教。例如统计学、大数据专业的应用需求在数据统计以及数据可视化等方向,教学内容上侧重于数据类型、Pandas、Numpy和Matplotlib等第三方库;医学影像专业侧重图像处理方向,内容包括PIL、 Open CV和文件操作等。
2.5 兴趣驱动Python课程教学
Python课程的教学目的是让学生掌握程序设计基础知识和方法,具备计算思维,学会用计算机编程解决本专业的实际问题。首先要让学生树立信心,教师应由浅入深地进行案例教学,让学生体会到编程的快乐。另外,兴趣是最好的老师,程序的案例应该结合生活,例如介绍基于Python的网站、词云、游戏作品等。课上让学生实践一些有趣的小程序,例如猜数游戏、Turtle库作图、进制转换、词云、排序等。为激发学生的学习兴趣,还可让学生上网了解软件公司对程序员的需求。
2.6 注重融合课程思政元素,培养学生的爱国精神、敬业精神
在教学中要注重精神引领,要与学生探讨分析我国软件行业发展状况,提升学生科技报国的责任感、使命感,用课程思政促进学生提高Python学习的动力。Python是人工智能的主流语言,与行业结合性很强,各行业都能在Python中找到相关第三方库。编程能力是信息社会每一位理工科大学生必备的素质,学好Python有助于提高各行业信息化水平。
3 精选经典的Python教材,建设或优选优质网络教学资源
教材是学生学习的重要资料,Python教材应体现应用性和完备的知识结构,应优先选择符合大纲和学生基础的国家级、省部级优秀教材进行教学,所选教材应包含较多的优秀案例,能提供配套的网络学习资源的更佳。例如可选用北京理工大学的《Python程序设计》作为教材或者作为参考资料,该校教师在国内最早引入Python课程,因发现Python卓越的跨平台、跨专业、融合语言的能力而致力于推广该课程。
4 Python课程教学改革的阶段性成果
经过Python课程组一年多的努力,以科研促教学,目前Python教学研究上已经取得一些研究成果。开发的Python试题库软件含平时作业、实验布置、练习与考试、自动阅卷等多种功能于一体,已经在校内由3000名左右的大学生使用,对提高学生的学习兴趣、及时得到教学反馈、提高编程实践的效果起到了积极作用。尤其在新冠肺炎疫情期间,教学完全在线上进行,一般的教学平台如慕课堂、腾讯课堂、QQ只能播放教学内容、考勤或做简单的客观题小测验,教师难以精准掌握学生编程的情况,而通过该Python试题库软件,实现了理论题、编程题自动评阅,软件能针对错题给予分析和提示,有助于学生发现自己知识上的漏洞,也有助于教师了解学生掌握的情况,进行有针对性的教学。在对软件中的算法进行凝练和创新后,获批发明专利一项(“一种智能阅卷方法及系统”) ,反映了评阅方法的先进性。针对Python课程中一些重要算法和函数库制作了微课课件,帮助学生对算法有更清晰的理解,其中“穷举算法”“Python绘图——Turtle库”等微课作品获得学校和省微课比赛奖项。
5 Python课程教学的改进方案
Python课程是众多高校非计算机专业第一门编程入门课程,在培养学生计算思维方面有非常重要的作用,目前课程组已经在教学和研究中对其教学模式和方法积累了一些经验,开发了配套的试题库教学软件、建设了网络教学资源,但是在培养学生编程能力上仍然需要继续开拓创新、不断前进,坚持问题驱动、项目引领式教学,重视培养学生的综合能力。今后将致力于:1) 进一步完善Python试题库软件功能,例如增加优秀作品展示模块,促进学生交流编程的优秀作品,让他们能够多学习一些贴近自己专业的第三方函数库的应用,能够用Python解决自己专业中的问题,帮助学生提高编程的水平和计算机应用能力;2) 增设创新性作业,让学生在Python网络社区中学习优秀作品,以增加对Python应用的了解、增强学习的兴趣,让学生在课后结合自己的兴趣,开发相应的Python程序作品;3) 能把这个试题库软件由Python进一步推广至其他类似课程,应用到更多专业,甚至更多学校,提高高校的整体教学信息化水平,帮助教师提高工作效率。
6 结束语
Python作为人工智能与大数据领域的主流语言,具有越来越广泛的应用,是高校重要的编程入门课。但目前存在考试方式传统、评价科学性较差、教学上重知识传授轻能力培养等问题,通过有针对性地开发Python试题库软件,解决了科学考试、辅助学生在线学习等问题。软件包含作业模块、实验模块、考试模块、评阅模块等,有助于项目式、问题驱动式教学的开展,从传授知识转变为培养能力、提升素养,让学生入门、培育、拓展,在Python教學上针对不同专业侧重介绍不同第三方库,支持专业发展和兴趣培养,多措并举,旨在提升高校Python教学水平,为培养各个专业具有较强信息素养、编程水平的复合型人才作有益的尝试。
参考文献:
[1] 戴振华,潘学文.《Python语言程序设计》混合金课建设研究与探讨[J].电脑知识与技术,2022,18(8):135-136.
[2] 翁业林.多课程试题库软件系统的研究与实现[D].南京:南京理工大学,2010.
[3] 文军.改革课程考核方式 建设思想道德修养与法律基础试题库[J].科教文汇(上旬刊),2011(10):24-25.
[4] 陈剑洪.Python程序设计课程探讨[J].现代商贸工业,2022,43(11):190-191.
[5] 马晓婧.浅议思政课线上线下混合教学模式的构建——以“贵州省情”课为例[J].科教文汇(上旬刊),2021(7):69-71.
【通联编辑:王力】
收稿日期:2022-08-09
基金项目:江苏省高等教育学会“大学素质教育与数字化课程建设”专项课题(课题号:2020JDKT045、2020JDKT044) ;江苏省高等学校教育技术研究会课题(课题号:2021JSETKT037) ;常州工学院教育国际化教学改革研究课题(课题号:gjhjgkt2021-01)
作者简介:蔡晓丽(1981—) ,女,江苏常州人,副教授,硕士,主要研究方向为计算机应用、高等教育信息化、教学系统设计、软件开发等;刘芝怡(1978—) ,女,江苏常州人,副教授,硕士,主要研究方向为信息管理与数据挖掘;孟祥莲(1980—) ,副教授,控制科学与工程专业博士,主要研究方向为软件工程。