Python程序设计课程教学改革与实践
2022-12-14王玉范冬林姜建武
王玉 范冬林 姜建武
桂林理工大学测绘地理信息学院 广西桂林 541004
Python语言作为一种高级的、面向对象的、解释型的、通用的和开源的语言,简单易懂,可提供丰富的数据库,具有可扩展性、可移植性和可嵌入性[1]。随着机器学习和人工智能等技术的不断发展,Python语言成为实现这些技术的最适合语言之一,致使Python程序设计语言也迅速跃居编程语言排行榜前列[2]。2021年年度IEEE Spectrum编程语言排行榜中,Python、Java、C、C++和JavaScript位居排行榜前五名,Python语言已连续五年夺冠。而Python语言不仅在IEEE Spectrum编程语言排行榜中名列前茅,在TIOBE排名上,Python语言也在排行榜的前列。目前,Python语言已成为最受欢迎的编程语言之一。为了让遥感科学与技术专业本科学生能更好地融入社会、更好地利用专业知识服务社会,在本专业人才培养方案中,将Python程序设计作为其中一门基础课。Python程序设计这门课程主要讲述Python基本概念、变成思想和程序设计等相关知识。通过Python程序设计这门课程的学习,学生可以熟练运用Python函数与模块、序列数据列表,了解Python程序设计规范,掌握Python程序语言编程,综合应用面向对象的思想来解决遥感图像处理编程问题,以提高程序设计水平和计算机应用能力,为今后教学任务、企业软件研发奠定理论与技术基础。
1 Python程序设计课程开设的必要性
Python语言之所以能快速发展并被广泛应有,不仅得益于国家对人工智能的重视和Python语言在人工智能领域的杰出表现,还源于该语言学习难度较低、功能强大等特点[3]。目前,Python语言已成为遥感专业领域中最常用编程语言之一,因此,遥感科学与技术本科专业存在开设Python程序设计这门课程的必要性,具体如下。
从本质上来讲,Python程序设计是一门编程基础课,掌握好该语言有益于后续遥感数据处理及算法实现的学习。因此,在教学的过程中,需让学生们了解到该门课程本身的重要性及Python语言在遥感领域的必要性,以打好Python语言编程的基础。
随着机器学习和人工智能技术的不断发展,这些技术在遥感专业领域应用越来越广泛,而Python语言在这些技术实现的应用决定了Python语言在未来的遥感技术和产业升级中扮演着至关重要的角色。在教学的过程中,需让学生们了解到该门课程在专业领域的前瞻性。因此,掌握并灵活运用Python程序设计对于遥感科学与技术的学生是适应未来发展的必要条件。
Python程序设计是一门具有一定的理论基础,但需侧重实践的课程。无论是在Python程序设计理论基础(如Python语言程序基础和程序语句),还是在Python语言的算法设计等,都需进行代码实现。因此,在教学的过程中,需要着重强调实践能力的培养,通过具体的关于遥感图像处理相关案例、随堂测验等方式,提高学生的Python语言编程能力以及自身的遥感工程能力。
2 Python程序设计课程标准及其存在问题
2.1 教学内容
本课程教学内容包括:Python程序基础、Python程序语句、Python函数与模块、Python序列数据和Python面向对象。通过Python程序设计的相关理论教学和实践,学生可以掌握Python语言的字符串、列表、元组和字典等基本数据类型,了解Python语言的条件、循环等语句,掌握Python语言的编程模式及方法。重点培养学生的逻辑和编程思维,使其具备Python程序设计能力。同时,深化学生对新时代党的创新理论的理解和掌握,培养学生独立思考、分析和解决简单的遥感图像处理问题的能力。但本课程的教学内容仅针对无Python语言编程基础的本科生设计,重点讲解了Python程序设计的基础知识和方法,并将其应用到简单的遥感图像处理问题(如图像读取、图像格式转换等)中,与遥感科学与技术本科专业知识结合的内容和实践较少。
2.2 教学方法
本课程主要采取线下上机教学,以机房内多媒体教学和上机实践为主。课前,要求学生通过网上资料、文献阅读及多媒体课件等完成课程预习。课堂上,通过讲授法、演示法、案例驱动法、参与式教学法和实验法相结合的方式,讲解Python程序设计的理论和方法,并完成Python语言编程实践。其中,Python语言程序基础和程序语句主要采取讲授法、演示法、案例驱动法和实验法来实现其相关知识的记忆、理解和应用;Python函数与模块采用演示法、实验法、参与式教学方法相结合来实现其相关知识的记忆、理解和应用;Python序列数据和面向对象则结合参与式教学法,通过启发、探讨把相关理论知识融入案例中,以案例驱动法实现Python语言的分析、综合和评价,提高学生的Python程序设计逻辑思维,培养其独立思考和编程能力。课后,学生可与老师进行线下或线上交流讨论,以加深学生对Python程序设计所学知识的理解和掌握,提高学生的Python程序设计能力。但本门课在讲授过程中部分学生存在精神不集中、不积极参与课堂讨论和怯于向老师请教等问题,导致学生对于某些难度较高的知识点无法理解掌握,不能举一反三、融会贯通,进而无法完成相应的Python语言程序设计和实践。
2.3 课程思政
课程思政是指以构建全员、全程、全课程育人格局的形式,将各类课程与思想政治理论课同向同行,形成协同效应,把“立德树人”作为教育根本任务的一种综合教育理念[4]。本课程首先挖掘课程内容的思政元素,然后通过情景设定、实践体验和热点启发等方式将思政元素与Python程序设计的理论知识点相关联,以完成Python程序设计课程讲授,进而引导学生利用该课程的理论知识解决人生、社会问题,激发学生科技报国的家国情怀和使命担当。但Python程序设计这门课程仅采用思政融入点方式实现课程思政教学,方式较为单一。
2.4 课程考核
本课程采取平时+期末的考核方式,以避免期末考试对记忆性知识点考查大于程序设计能力考查的问题。本课程的总成绩包括平时考核成绩(占40%)和期末考核成绩(占60%)。其中,平时考核成绩包括实验报告(50%)、作业(占30%)、课堂口头回答交流(占10%)和参与教学活动(占10%),期末考核以闭卷的形式完成考试。实验报告和作业突出培养学生Python程序设计的能力及解决遥感工程问题的能力;课堂口头回答交流是指学生课堂上的提问和回答问题情况;参与教学活动指学生在课程期间完成某一Python程序设计的展示。2021年下半学期选择Python程序设计这门课的学生共75人,其中,最高分93分,最低分为46分,优秀率达22.67%,而不及格率为1.33%,下图为成绩分布直方图。Python程序设计的最终目的是学生能提高自己的程序设计能力及利用Python语言解决遥感工程问题的能力,而课程考核中平时考核更能突显程序设计能力,其仅占总成绩的40%,存在平时和期末考核成绩比例分配不合理的问题。另外,在平时考核成绩中,参与教学活动的比例需提高。
成绩分布直方图
3 Python程序设计课程教学改革与实践
3.1 教学内容
针对Python程序设计教学内容单一的问题,在Python语言基础讲授过程中,增加遥感图像处理的相关案例,将专业知识与Python程序设计的理论知识点相结合,以加强Python语言的适用性。如在Python程序基础中加入图像输入、输出和格式转换等案例实践;在Python程序语句中增加利用条件、循环等语句实现图像最大(小)灰度值获取、图像灰度值归一化操作、像素四邻域和八邻域搜索等;在Python函数与模块中加入图像增强、图像滤波、图像去噪、图像分割和特征提取等操作。通过对教学内容的改革与实践,学生可以更好地利用Python语言解决遥感科学与技术专业的相关问题,从而提高学生利用Python程序设计课程涵盖的理论知识服务于遥感行业和信息行业的能力。
3.2 教学方法
采取线上线下混合式教学。随着互联网技术的不断发展,越来越多的线上应用进入人们日常生活中,线上教学得到了充分关注与发展[5]。课前,学生通过课程PPT、网上资料及文献阅读等完成课程内容的预习,对其有一个整体了解,并将不懂的知识点和问题记录下来,在课堂学习中更加有侧重点,同时,教师布置相关问题来提高学生预习质量。不同于线下教学,线上教学没有固定模式,灵活性更强。因此,老师可选择合适内容在慕课、QQ或腾讯会议等平台上进行线上授课。在讲授过程中,着重强调Python程序设计的基础理论,通过聊天窗口和弹幕方式与学生积极互动,布置线上随堂作业,通过查看随堂作业答题及时了解学生学习状态、掌握情况,并及时对教学内容做出调整。另外,在授课过程中,学生可录屏,课程结束后可反复观看授课视频以巩固课程知识点,解决学生上课不集中、对某些知识点掌握不牢靠等问题[5]。在线下教学中,教师重点讲授课程重难点知识,并结合知识点的相关案例进行上机实践。课后,除布置相关作业外,教师还可给学生一些遥感图像处理常用方法的错误代码,让学生们找错并完成程序的改错与实现,以巩固学生们对Python程序设计基础知识的掌握。另外,还可以分小组让学生完成相应的基于遥感图像处理的Python程序设计,让学生们练习并在课堂上进行展示,以提高学生们利用Python程序设计技术解决遥感工程问题的能力。在此基础上,在课外,也可通过一定的Python语言实践与应用巩固其理论知识,体现Python程序设计的价值;还可组织学生参加与Python程序设计相关的比赛,以加强学生Python程序设计技术的知识运用。
3.3 课程思政
针对课程思政方式较为单一的问题,在授课过程中,结合关键词、关联知识点、思政融入点、案例摘要和详细案例素材来提供Python程序设计课程思政素材[6]。其中,关键词可呈现出思政素材所蕴含的道路自信、理论自信、制度自信、文化自信等思政点,通过关联知识点将课程思政案例与知识点相关联,思政融入点是将挖掘的思政元素与知识点相关联,案例摘要是摘要性描述案例,而详细案例素材则是对思政素材的全部细节进行描述。通过对课程思政的改革与实践,引导学生开拓创新,勇攀科学高峰,引导学生成长成才,践行社会主义核心价值观,成为担当民族复兴大任的时代新人。
3.4 课程考核
本课程依然采取平时考核+期末考核的方式,其中,平时考核成绩和期末考核成绩各占50%。平时考核成绩中,实验报告占40%,作业占20%,课堂口头回答交流占10%,参与教学活动占30%;期末考核以闭卷的形式完成考试。其中,实验报告和作业着重于Python程序基础设计及基于遥感图像处理的Python程序设计,以提高学生Python程序设计的能力及利用Python语言解决遥感工程问题的能力;课堂口头回答交流主要是针对Python程序设计的基本理论与遥感图像处理专业知识的结合进行讨论交流;参与教学活动主要请学生展示自己小组关于某一遥感图像处理的Python程序设计作品。
结语
为了提高Python程序设计的教学质量,结合遥感科学与技术本科专业本课程需要培养学生程序设计能力的具体实际,从课程内容、教学方法、课程思政和课程考核四方面存在问题进行探讨,并对其进行改革,使学生更好地掌握Python程序设计的理论知识和实践,并能在今后的学习、工作中灵活运用Python语言,并培养学生分析及解决遥感工程问题的能力。同时,引导学生树立坚定的理想信念,不忘初心,认真践行社会主义核心价值观,养成优良品质和良好心智。