柯 琦 胡小春 李国祥 雷金东 张红霞
(广西财经学院 信息与统计学院,广西 南宁 530007)
大数据及人工智能技术飞速发展,Python语言优势越发突显。Python语言将计算机程序设计语言发展成为集支持命令式编程、函数式编程、面向对象程序设计、泛型编程等多种编程范式于一身的脚本语言[1]。Python程序设计课程已成为高等学校计算机科学专业的核心课程,也成为非计算机专业的计算机编程语言通识课程的首选。本门课程讲述程序设计语言的基础知识和程序设计方法,培养学生计算思维[2]。但对于已有编程基础的计算机专业学生,要独立完成课程设计,灵活掌握Python函数库应用,很多学生是感到吃力的。对于非专业学生,由于课程开设的教学课时较少,通常是32学时,既要掌握计算机编程思维又要掌握Python的应用,学生任务很重且难度大。因此,本文针对不同专业探讨在Python程序设计教学中采用案例教学法及任务驱动法两者相结合的教学方法来改进课程教学形式。
案例教学法是以列举案例为基础的教学方法,以所学理论知识直接相关的情景或事件作为案例,学生通过对案例的研究来进行学习知识。通过查阅学习知识点,加深对知识的理解及应用,达到知识融会贯通。同时,教师给予适当性引导,促使学生进一步深入思考对比。根据学生不同理解层度补充新的教学内容。文献[3-4]对信息技术类课程使用案例教学法应用进行了探讨。
任务驱动教学法是指学生在学习过程中,紧紧围绕一个既定的活动任务,以自主探索和互动协作的学习方式完成任务,学生在完成任务的过程中掌握知识。使学生主动建构探究、实践、思考、运用的学习体系。任务驱动教学法,以解决问题、完成任务为主要目标的多维互动式的教学模式,由学生和老师共同参与,师生灵活互动。文献[5-7]探讨了在程序设计课程中应用任务驱动教学法的方法。
基于案例教学方法和任务驱动教学方法,本文提出结合两者的优点应用到Python程序课程教学中。以案例教学为主线,任务驱动教学为实践,让学生既能在案例分析中掌握Python程序设计基础知识,又能在完成任务中得到编程实战练习。
Python语言提供了非常完善的基础代码库,拥有丰富的第三方扩展库。几乎涵盖了各个领域,包括基础数学、GUI编程、网络编程、文件、数据库、多媒体、数据分析、可视化等内容。但大量的库函数给学生的学习造成了困扰,例如,如何灵活使用turtle库、math库、random库解决实际问题。这需要学生熟悉对应库函数的功能。对于初学者,特别是非专业计算机学生来说,无异于难上加难。因此,选择教学案例特别关键,也需要提高案例设计的创新性。通过教学案例的演示及分析,能提高学生对Python语言编程基础知识的掌握。在案例教学过程中学生观察体验程序的执行,培养学生对Python库函数解决问题的应用能力,使其体会到Python程序的乐趣。
任务制定是一个非常重要的问题,对于初学计算机程序设计的学生,计算思维尚未形成,编程能力需要培养,所以制定的任务不应该太大太深。任务太大,学生没有能力完成则会打击学习积极性。如果任务制定浅小,不能很好地达到教学目标,锻炼学生的能力。以培养学生应用能力为导向,突出以课程知识为载体,并与项目工程化相结合的方式制定对应教学任务。合适恰当的任务能给学生提供体验Python程序在具体应用的情境。另外,对于计算机专业和非计算机两类不同层次的学生,需因材施教。计算机专业应培养扎实的计算机编程能力的Python程序设计人员,以培养知识面宽、能力强、素质高的计算机专业本科生为目标。非计算机专业应该以培养合格的Python语言应用能力为主,以应用性、标准性、针对性为目的。制定常见通用领域的应用型教学任务,结合学生本专业的应用。例如,统计专业学生,可以偏向选择Matplotlib、统计分析模块statistics等相关案例。
图1是本文设计的一种案例教学与任务驱动相结合的教学实施过程。
图1 案例教学法与任务驱动相结合的教学流程图
在案例教学法与任务驱动相结合的教学实施过程中,首先根据知识点的应用场景,选择对应的案例一个或多个。例如在网络爬虫章节,存在静态和动态不同网站类型,爬取方法也有差异,需根据实际应用选取案例教学。其次,采用翻转课堂形式,由学生分组对案例进行自我学习。学生对案例对比分析,得出此类问题涉及的知识点。采用学生讲解的形式,每个小组讲解学到的知识,其他小组补充讨论。教师从旁协助。再次,任务驱动教学环节主要用于课后。对每组指派任务,课后探索解答,完成任务形成实验文档。教师批阅后,请优秀的小组分享解题过程。学生采用提问、讨论的形式进行任务探讨。各组分析本次任务的解题过程及知识点。最后,教师对本次任务归纳总结。
本文采用案例教学法结合任务驱动法进行Python语言程序设计课程的教学改革探讨。通过案例教学让学生感受到Python语言的具体应用,直观具体易于学习。通过对技巧及方法举例教学,提高教学案例设计的创新性,逐步提升学生的计算思维及编程能力。对实际问题的探索进而引导学生思考、研究,激发学习兴趣。任务驱动教学法以解决问题、完成任务的多维互动式教学,学生围绕任务活动,运用知识和经验解决问题,提升学生积极的学习状态。通过案例分析以及任务驱动的教学流程,学生从被动学习到主动挖掘,进而让学生体会到Python程序的乐趣,提高Python程序设计的深化认识,最终激发学生的创新意识及创造性。N