基于赋能教育的程序设计通识课程教学改革及课程建设
作者: 胡瑞鹏
[摘 要] 通过国内外“程序设计”课程对比,引出当前程序设计通识课的痛点,提出基于赋能教育的程序设计通识课程教学改革及课程建设方案,重点从教学目标:知识传授转向能力培养,重在赋能教育;教学内容:取舍遵循以学生为中心,契合专业及社会需求;重构教学模式:引入“轴反转”,先能力后知识,知识为能力服务;教学设计:以“教”为中心向以“学”为中心转变。通过这几个方面进行阐述及教学实践,旨在为程序设计通识课程教学找到一条“教”与“学”和谐统一的实施方案。
[关键词] 程序设计通识课;赋能;教学统一;教学设计
[作者简介] 胡瑞鹏(1977—),男,湖北武汉人,硕士,武汉轻工大学数学与计算机学院副教授,主要从事数据挖掘及可视化研究。
[中图分类号] G642.0 [文献标识码] A [文章编号] 1674-9324(2024)29-0057-04 [收稿日期] 2023-05-30
“程序设计”是本科院校各专业必修的通识课程,也是一门实践性很强的课程。既要掌握概念,又要动手编程和上机调试运行,使学生掌握信息化社会数据处理与问题求解自动化的基本方法和手段,初步具备运用计算机程序求解复杂专业问题的能力。
当前,随着大数据和人工智能研究与应用的不断推进,作为人工智能和大数据领域事实上的标准语言,Python语言逐步走入大学程序设计课堂,已逐步代替C语言和Visual Basic,而成为主要的教学语言。C语言更偏向底层,抽象和语法糖更少,语法复杂,跨平台性差,因此导致实用性较差;因为微软不再提供对VB6开发的支持,导致Visual Basic已经不再是主流编程语言,被日渐淘汰。而Python语言语法简洁,可以专注于程序设计思想及计算思维的训练。因此,Python在大数据、统计、人工智能编程、脚本编写及系统测试等领域均排名第一,在Web编程和科学计算领域处于领先地位。Python语言可以跨平台,国际上具有相当丰富的开源函数库,基本覆盖了理学、工学、经济学、社会学及数理统计等各个专业,对各专业学生深入开展专业内容学习十分有益[1]。所以,特别是对非计算机专业的学生来说,用Python作为教学语言是非常好的选择。与C语言等传统教学语言相比,Python语言更大的优势在于其更具有实用性,可以让学习者在较短时间内掌握利用程序设计方法解决复杂专业问题的能力,尤其是进行科学计算、数据处理和数据可视化等方面的能力。
一、国内外程序设计课程对比
结合笔者多年“程序设计”课程教学的实际经验以及美国纽约州立大学为期一年的访学经历,总结出程序设计通识课痛点主要有:教学内容与时代前沿脱节;教学模式陈旧单一,新兴信息技术应用不充分;教学目标存在重知识传授、轻能力培养,导致复杂问题求解能力不足,工程能力培养不足;教师工程能力弱;考核方式偏重结课考试,抄袭现象频繁。列举国内大学与对比项目如表1所示。
因此,在课程教学实施中,必须重塑教学目标,转变教学理念,改进教学方法和手段,设计以学生为中心、以能力为导向的教学实施方案。这既是“程序设计”课程教学的发展趋势,也是本研究课题的主要内容。
二、教学目标:从知识传授转向能力培养,重在赋能教育
非计算机专业的“程序设计”课程传统的教学目标多是要求掌握程序设计基础知识和基本方法,旨在解决简单计算问题、简单算法,从而导致学生学完后却不能动手,做不到学以致用。因此本教研项目旨在转变教学目标,从知识传授转向能力培养,重在赋能教育。
“程序设计”课程讲授的知识分为两个认知:初级认知和高阶认知,如图1所示。其中初级认知主要包括基础知识、概念、语法以及基础算法。高阶认知主要包括应用能力、设计能力和计算思维的培养,二者体现出知识获取的金字塔模型。课程要有一定的难度,教师和学生需要跳一跳才能够得着,这就要求教师认真花时间、花精力、花情感备课讲课,同时学生课上、课下要有较多的学习时间和思考作为课程学习的保障。初级认知阶段可借鉴传统“程序设计”课程教学的实施手段,旨在让学生掌握程序设计的基本方法和基础算法。高阶认知阶段,以学生为中心,采用赋能教育,旨在培养学生的素养和能力,包括计算思维、信息素养、思政元素、专业技能以及综合能力等。这样才能够真正做到教学目标从知识传授转向素养能力的培养,从而赋予学生更多解决实际问题的能力,例如,基本的数据处理能力、数据可视化能力,乃至复杂问题抽象、建模、分解,以及利用计算机求解能力等[2]。
通过教学目标的转变,Python课程教学旨在以解决问题和计算思维培养为主,通过大量计算问题的实践训练学生的计算思维,既培养学生的程序设计兴趣,又培养学生利用计算机解决计算问题的思维和能力。
三、教学内容:以学生为中心,契合社会需求
“程序设计”课程的痛点之一就是教学内容与时代前沿脱节,过于强调编程语言的语法、程序设计方法和算法的学习。所采用的教学案例多为单纯数学问题,距离实际应用较远,教学过程中存在“学不会,也用不上”的问题。为了解决这个痛点,“程序设计”课程教学内容必须具有前沿性、时代性以及实用性。
Python语言语法相对简单,生态完善,教学内容除了程序设计基础部分,例如,数据类型、流程控制及函数等,还应契合社会需求,包含文件与数据、数据可视化等高阶认知内容。程序设计基础部分的内容可以打散融入问题求解之中,以案例为纽带,在知识点间建立一种有机的联系。在高阶认知阶段,强化各知识点间的交叉融合、反复再现,旨在培养学生解决当前实际应用问题能力。
教学内容需以学生为中心,契合学生需求。课程要以“计算机+专业”为纽带,设计与各专业应用紧密结合的应用型教学案例和实验项目,以培养学生复杂专业问题求解为根本目标,真正做到学以致用,以用促学,真正培养学生用信息技术解决问题的能力。
教学内容还应支撑“四新”学科建设。教育部提出建设“新工科、新医科、新农科、新文科”,要求传统学科与新兴信息技术深度交叉融合,这也给非计算机专业程序设计通识课程提出了新的要求[3]。所以,程序设计通识课不应该只是了解程序设计的基本方法,还要承担起培养各专业学生掌握运用程序设计方法解决复杂的专业问题,尤其是数据处理问题的能力,为从事行业大数据应用和人工智能等相关工作打下良好的基础。
教学内容融入课程思政元素,在案例中融入科学精神的培养,提高学生正确认识问题、分析问题和解决问题的能力。注重科学思维方法的训练和科学伦理的教育,培养学生探索未知、追求真理、勇攀科学高峰的责任感和使命感,培养学生精益求精的工匠精神,激发学生科技报告的家国情怀和使命担当。
四、教学模式重构:“轴反转”教学模式,即先能力后知识
知识是一个会过时的、与时间相关的记录,而能力是实时、动态的“竞争力状态”清单,是学习能力和潜力的体现。传统的学习紧紧围绕具体的知识进行学习,比如针对各个知识点进行讲授,缺乏各知识点之间的交叉融合,缺乏转化成能力的有效途径及催化剂。虽然“程序设计”课程教学模式一直在不断地改进和发展,但还是没有摆脱侧重语法、算法、程序设计方法的讲授,忽略实际能力的培养,从而导致不能满足应用型人才培养的目标。本教研项目引入美国斯坦福大学在2025计划中提出的“轴反转”教学理念[4]。“轴反转”教学理念的核心就在于“有使命的学习”,这就要求教与学的过程都必须有明晰的目标,学生有长远的愿景和使命,将自己的兴趣融入问题的解决,通过学习和做项目来实现。
采用“轴反转”教学模式,就要求将传统教学中以知识传授为教学核心的方法,反转为以能力培养为主、知识为能力服务的模式,即所有的知识获得都要为技术能力的呈现服务。该教学组织模式弱化单纯知识的讲授,将教学的核心从知识传授转向问题求解方法和思维训练,将知识打散融入问题求解中。设计多个紧密围绕专业实际需求的案例,并以案例为纽带,在知识点间建立一种有机的联系,强化各知识点之间的交叉融合、反复再现,在实际问题求解的同时逐渐掌握相关的知识。学生总是基于一定的使命进行学习的,通过不断地解决从简单到复杂的各种问题,赋予学生好奇心与不停探索的动力,激发学生的学习兴趣和学习热情,从而帮助学生快速构建起解决各种复杂专业问题的能力。
五、教学设计:以“教”为中心向以“学”为中心转变
教学设计、组织与实施要突出学生中心地位,以“教”为中心转向以“学”为中心。教师首先要弄明白“教什么?怎么教?”这两个问题,这就要求授课教师也要与时俱进,不断提高自身的专业能力和教学能力,特别是要提升信息技术的综合应用能力[5]。并且要根据目标导向反向教学设计,始终坚持知识、能力和素质有机融合。对于事实性知识和概念性知识采用理论讲授和学生自主学习相结合的方法。以此为基础,通过理论授课、项目研讨、创新竞赛以及作业实验等教学手段,培养学生的程序设计能力、问题分析与建模能力等、数据分析能力、数据可视化能力以及工程应用能力等,还可以通过理论讲授、课程思政及作业实验等教学手段,培养学生的计算思维、信息素养以及道德品质等方面的素质[3]。
在教学设计、组织与实施过程中,可以采用多种教学手段相结合。采用“轴反转”教学模式,体现先能力,后知识,带着使命学习,为程序设计赋能;遵循个性化,针对不同的专业需求,设计紧密结合专业实际需求的案例;突出数据化,着眼于专业数据分析,并利用教学数据反馈教学中存在的问题;利用新兴信息技术辅助教学,例如,利用虚拟现实技术展示教学难点,利用自动评测技术交互训练等;强调过程化训练和考核,加大平时过程考核的力度,灵活使用多种评价方式,不再采用期末一卷定总分的评价方式,而是建立起从学习过程、作业练习到上机测试,定性评价与定量评价相结合,多视角、多元化的过程评价体系;扁平化程序设计,简化逻辑,从而降低编程难度;师生互动式、项目式合作学习,促进师生之间的教与学良性发展。
采用线上线下相结合的混合教学方式。当前“互联网+”教育日益普及,各种新兴信息技术和数字资源都很容易获取,例如,在线课程、虚拟实验及智慧教室等。教师可以利用网络教学平台,构建自己的在线课程资源方便学生使用,还可以通过建立QQ、微信群随时进行答疑解惑。在发挥线上教学的同时,也要充分发挥线下教学优势。线下课堂教学是课程建设的主阵地、主渠道和主战场,根据学生情况因材施教组织教学,可以通过思维互动、问答互动、情感互动及行为互动等多种互动教学模式,保持课堂活力。
结语
笔者及其教学团队在近两年左右的教学活动中,积极实践基于赋能教育的Python通识课课程教学,使教学目标从知识传授转向能力培养,重在赋能教育,重塑先能力后知识的教学模式,创建以“计算机+专业”紧密结合的应用型教学案例和实验项目,合理取舍教学内容,灵活采取线上线下相结合的教学方式,突出学生中心地位,从以“教”为中心转向以“学”为中心,始终坚持知识、能力和素质有机融合,教学实践活动取得了较好的效果。
参考文献
[1]刘合兵,尚俊平,席磊.基于能力导向的程序设计综合性课程实习改革与实践[J].河南教育(高校版),2021(7):64-66.
[2]唐德凯,夏新文,桂小林.新工科背景下面向赋能教育的大学计算机课程改革探索[J].计算机教育,2020(9):178-182.
[3]汪红霞,贺爱香.面向赋能教育的程序设计类教学模式研究[J].上饶师范学院学报,2020(6):31-35+74.
[4]魏冬梅,王秀华,王影,等.基于Python的程序设计通识课程建设与教学实践[J].计算机教育,2019(2):69-73.
[5]曹福亮,刘英,王伊宁,等.面向新工科的工程专业实践赋能教育路径[J].昆明理工大学学报(社会科学版),2021(3):85-91.