APP下载

新工科背景下的Python 程序设计教学微改革

2024-07-24陈浩强梁振刘方柳伟续

电脑知识与技术 2024年17期

摘要:人工智能领域的发展与普及给高校课堂教学带来了新的变化与挑战。然而,由于成本和规模等因素的限制,传统课程教学尚未广泛采用智慧教室等形式。本文以教学方法为突破点,结合信息化手段,对Python程序设计课程教学活动进行了一系列微改革,旨在增强课堂的信息化程度,提高课堂的价值与内涵,进而提升传统课堂的价值。

关键词:计算机教育;教学改革;Python程序设计;计算思维;课程思政

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

文章编号:1009-3044(2024)17-0141-04 开放科学(资源服务)标识码(OSID) :

0 引言

教育部于2018年印发并全面推进建设的高等教育"新工科、新医科、新农科、新文科"的“四新”教育教学改革,是在信息爆炸、知识量加速膨胀、知识获取更加容易的背景下,对高等教育工作全局的新思考和大战略部署。目前,较为热门的“生成式人工智能”模型ChatGPT作为第一个实用的通用型人工智能模型,一经应用便以其高智能、高精准、高效率的信息整合能力惊艳了世人,并由此引发了人们对当前高校教育模式的思考与担忧。然而,这类通用型人工智能仍然可以视为信息获取与信息整合方面的进步,尚未脱离“工具”的范畴。知识的信息化与智能化意味着人们获取知识、传播知识和生产知识的方式与效率发生了极大的变化,但“四新”教育改革的时代背景依然适用。

毫无疑问,人工智能的发展将更加迅速,对生活和教学环节的影响与改变也将更加全面和彻底。然而,人工智能产品的产出质量、目的和倾向性依赖于人们的“喂养”,过度依赖人工智能系统可能带来一定的社会风险。因此,在高等教育教学过程中,人工智能系统应被视为知识传授中的工具,课堂的重心应逐渐转向以人类生存与发展为主线的交互和思维能力。人们之间交互的需求和能力获取更加依赖人类自身;深度思考能力的获得需要与现实世界的交互体验,并与知识的交叉和创新思考密切相关。这是教育系统中与真实世界联系密切,且难以被人工智能取代的部分,也是我们对课堂教学微改革的重要着力点。

Python语言是人工智能系统研究应用中的一种语言,其语法简单易学,并在诸多专业领域的信息化应用方面有丰富的资源。在高等教育中,Python语言程序设计能为后续各课程中融入信息化思想、创新思想和学科交叉应用提供能力基础。因此,在贯彻落实“四新”教育教学改革框架下,Python语言程序设计课程在“四新”人才培养方面具有非常积极的意义。

1 目前Python 程序设计课程教学普遍存在的问题

计算机应用类课程往往在学生入校前两学期开设,这个阶段的学生计算机应用水平相对较为薄弱。与其他程序设计类课程类似,学生普遍反映Python程序设计课的知识点较多,与非计算机课程的知识结构有很大不同。与此同时,信息技术的发展和进步,使得知识的获取、生产与应用方式都迈入了智能化时代。在这样的背景下,传统的课堂教学受到了更大的挑战。

在Python课程的授课过程中,常出现以下问题:

1) 知识的信息化与智能化使得知识获取更加便捷和准确,学生对课堂的依赖降低。2) 课程知识点繁多,课堂教学过程相对枯燥。3) 学生在理解综合性程序代码时遇到困难,理不清思路。4) 学生普遍认为Python很有用,示例代码也很有趣,但在面对实际问题时没有思路,不知道怎样开始编写代码。5) 课程安排模式化,难以跳出将Python程序设计作为编程工具的思维模式,不能很好地体现课程的内涵。

归结起来,这些问题的核心在于教学目标、教学组织架构和教学方法设计得不够合理,不能很好地适配学生的需求。

2 Python 程序设计课程教学的思考与实践

对于Python程序设计课程的教学,应本着务实的指导思想,充分认识到学生的基础有较大差别、接受能力的差异化较大、课后有效学习时间的投入也各不相同。教师应尽可能由浅入深地解构示例程序,用通俗的方式表达,以减小理解难度。形象化的表达方式有利于学生的理解和记忆,也可以建立友好的师生互动交流基础。授课过程中还应对常见的代码错误进行适当的提示与总结,这样可以增强基础薄弱或接受能力偏弱学生的信心,提高学习效率。在示例程序的讲解中,应以培养学生的计算思维为目标,从计算思维的高度加以引导。

课程思政和计算思维能力的培养是在课堂与信息化、智能化技术应用在人才培养方面互补关系的关键,是高校计算机课程的新内涵,也是提高学生课堂参与度的突破点。高校教师可以通过课程思政的引导和计算思维的训练,展开学科知识交叉、创新应用和思维深度方面的能力培养,同时兼顾培养学生的健全人格和品德。

2.1 线上、线下混合的教学模式

Python程序设计作为一种实践性较强的课程,需要师生之间有更多的互动交流。在多种现代教学形式中,线上、线下结合的混合教学方式因其灵活的课堂组织形式、低成本的教学环境布置,能够适应复杂多样的学生状态和层次,更加适合公共课性质的Py⁃thon程序设计课程教学。

2.2 理论课的教学

2.2.1 知识结构的构建

对不同特点的知识,需要采用相应的教学策略和方法。作者将理论课程内容划分为基础知识、应用、扩展三个方,按照各自的特点从教学方法上加以区分。

1) 基础知识。基础知识在教学环节体现为进一步划分的、更加基本的知识点。理想的情况下,应按照知识点制作简短的视频资料,并根据学生的反馈不断迭代资料的内容和形式。

2) 应用。应用是指对基础知识的运用。基础知识的应用不仅体现在展现其功能特点的零散代码中,还会成为综合程序实例的一部分。对基础知识的灵活应用是编写复杂程序和解决实际问题的基本能力,也是帮助学生理解基础知识的重要途径。由于基础知识涉及的点较多,相关示例设计应以形式简洁、思路清晰为主,避免过分追求代码的简省或“灵巧”,以免给学生带来不必要的困难。

3) 扩展。扩展指课程知识内涵的延伸,通过课程思政和计算思维来呈现。这部分内容可以将课程知识与其他学科、社会、生活相关的问题或现象相联系,建立多学科知识的关联;为学生提供解决更多问题的模型、模式和“素材”;并促成学科交叉与创新思维的基础框架。

这种知识结构划分与教学方法设计综合考虑了学生的基础、接受能力、学习水平和学习进度的差异。教学过程中,可以使学生在基础知识的微观细节与宏观全局方面反复对比,帮助学生构建更加清晰的知识体系和灵活的应用模型。在课堂组织方面,这样的设计能够帮助教师适时、合理地引入课程思政案例,让学生体验到马克思主义哲学辩证思维在课程中的具体运用和表现,感受学科知识交叉的奥妙与人类文明的伟大,从而在学生性格、人格和情怀培养方面发挥积极作用。

在计算思维层面的引导方面,通过应用问题的分解、抽象、建模、算法、调试、迭代、泛化训练,可以让学生逐渐理解并形成科学的思维模式,为全面建立计算思维打下坚实基础。

由于Python程序设计语言基础知识点多、应用方式多样,难免存在知识碎片化的问题。碎片化的知识应用会导致学生思路混乱、无所适从,加大学习难度。这就需要教师在演示、讲解或教学资料的呈现环节适时加以引导和梳理。完整且循序渐进的知识铺垫会让知识的应用变得有迹可循、脉络清晰。再辅以合理的课后作业任务,就可以很好地帮助学生建立课程的知识脉络。例如,在讲解如何使用循环语句编程实现字母组成的金字塔时,可以从单个符号的输出开始,逐步演化到由多个符号组成的矩形、平行四边形、三角形和菱形的输出,直到完成数字三角形、字母三角形的输出。循序渐进的效果比直接讲解字母三角形的示例代码更加有条理,学生也更容易理解。

2.2.2 视频教学材料的运用

根据许多教师的教学经验,有不少学生因为不好意思打断课堂进程,无法及时解决自己的疑惑或问题。这些问题可能会积累,成为后续学习中的大麻烦。为此,可以提前为学生提供网络上经审核确认无误的解答信息,或者自制相关知识或问题分析与讲解的视频。在条件允许的情况下,还可以录制授课过程的视频,作为学生的复习参考。相关的视频材料不仅能帮助学生根据自己的需要回顾课堂中的难点,也可以减轻教师课后的辅导工作量。

发放资料的SPOC(小规模限制性在线课程)平台形式可以是雨课堂、头歌等公共平台,也可以是自建系统,甚至是课堂专用的在线聊天群组,具体以学生能及时获取教师发布的课程资料为宜。

2.2.3 课后作业的设置

作为提高课程学习效果的手段之一,课后作业任务可以督促学生及时对课程知识进行复习和训练。对于计算机应用类课程来说,课后任务可以按知识记忆、理解能力、应用能力、知识表述能力等维度进行分类设置。在日常教学实践中,通过设置对照组进行对比,发现坚持布置课后作业的班级在课堂纪律和学习效果方面优于未布置课后作业的班级。

2.3 实验课的教学

实验课是理论课在实践应用方面的延伸,主要是帮助学生理解知识点的应用方式与特点,体验相关知识的引申应用和灵活性。我们在实验课教学中参考了专业课程的“课程设计”模式,将实践目标划分为基础知识训练、项目应用实践和项目拓展实践三个方面,以开源平台的小型项目为主要素材,跨学期展开项目式教学训练。

1) 基础知识训练。基础知识训练是对理论课基础知识的基本应用场景模拟训练。除了教材中已有的示例与题目,还鼓励学生自己动手把相关知识点按其特点根据自己的想法转写为简短的代码。例如,想要验证列表的截取功能时,学生可以通过创建变量、赋值、截取、输出查看等简单的语句组合,在实际编译环境下运行并观察代码的结果。对于难度稍高的问题,鼓励学生在debug模式下逐句跟踪观察。在实际运行环境中观察各知识点的应用,比死记硬背教材的描述或代码更加直观、形象,能让学生更加熟悉程序代码的调试方法,从而快速掌握Python程序设计课程的特点,并逐渐减少对老师的依赖。通过这种方式,学生与老师的互动可以从基础的知识问答转向更深层次的问题探讨。

2) 项目应用实践。项目应用实践模式与课程设计相似,主要依托开源的小场景应用项目,让学生亲自体验开源项目的实现过程。这部分的实践不分组,具体应用的题目一般由学生自选,也可以由老师提供主题。每位同学都要亲自动手完整实现相关功能,并在开源项目基础上进行一定的功能完善和改进。项目推进分为选题、中期检、结题三个阶段,每个阶段学生都需提交相应阶段的报告。项目结题时需要制作演示文稿并录制视频,全面介绍项目的功能构成、代码分析、经验教训等。

3) 项目拓展实践。项目拓展实践属于可选训练,利用项目应用实践的经验,由学生自己动手完成一个具有实际应用价值的小型应用开发项目。学生根据自己的兴趣选择主题,在完成项目后制作相关演示文稿并进行现场汇报讲解。根据项目的实用性、创新性和完成度,可以选择性地推荐学生参加相关比赛,使项目拓展实践成为课程赛教融合的切入点。

在实验课教学过程中,我们以基础知识训练为主、项目应用实践为辅,并将项目拓展实践作为进阶训练。通过这样设计,每位同学都能体验一个小型的实践项目,还能通过同学的汇报了解更多项目实施的全过程。对于兴趣更高、要求更高的学生,这个方案也提供了充分的发挥空间。

这种内容灵活、层次递进的实验课教学方案,不仅能让基础薄弱、接受能力一般的学生有从适应到提升的过程,同时也兼顾了部分学生更高的学习需求。这种教学模式的最终目标是通过实际操作,让学生不仅理解知识,更能应用知识,从而全面提升学生的实践能力和项目开发能力。

2.4 课程的考核

考核是对学生课程学习过程和达成课程教学目标程度的评价。课程考核环节中,平时成绩占总评分的30%,作者将线上和线下课堂的过程性考核各设为50%。线上过程性考核依据学生在在线平台的学习进度、作业完成情况等数据。线下过程性考核依据学生的出勤情况、课堂互动和作业任务的完成情况。过程性考核的设置能够调动学生参与课程的积极性[2],并且可以根据学校和专业的实际情况,科学设置其在总评分中所占的比例。

在实验课的评价认定环节中,我们在班级内组织选举成立了评价小组,并通过评价小组对各个项目从完成度、实用性、表达效果等方面进行评价。此举保证了评价环节的公平和高效,大大提高了学生在实验课中的参与程度和责任感。

3 计算思维和课程思政

知识和技能的状态并不是衡量人才的唯一标准[3-6]。优秀的人才还应在人格和心理状态上更加健全和稳定,在面对工作和生活时要有温度、有热情和有内涵。Python程序设计课程不应只追求单一的知识获取,而要以培养有温度、有文化内涵,以及德智体美劳全面发展的人才为教学目标。

计算思维和课程思政是Python程序设计课程在塑造学生人格和构建深度思维能力方面,无法被人工智能替代的重要部分。

3.1 计算思维

计算思维是在计算机科学领域解决各种问题的过程中形成的科学思维[7-8]。在解决现实世界的各种问题时,计算机科学领域通常先将可计算的问题抽象为可计算的模型,然后在受限的规则或框架下设计算法并逐步细化和实现,从而解决问题。计算思维强调对当前问题模型的泛化,这意味着利用当前的模型和方法去解决新的问题。这种抽象、建模、实施、迭代和泛化的模式,可以有效地实现计算机对现实世界问题的映射和解决,对解决其他领域的问题也具有普遍适用性[9-10]。

习近平总书记曾经说过:“问题是创新的起点, 也是创新的动力源。”既然提出合理的问题本身也可以是一个问题,那么计算思维在学科交叉和创新领域方面也就能更好地助力人们发现问题、筛选问题、研究问题和解决问题。因此,计算思维也是目前人们公认的三大科学思维之一[9-10]。

计算思维的培养途径有多种,其中,通过模拟解决问题的场景反复训练获得的方式,比单纯学习计算思维理论更为深刻。从第一性原理[11-12]的角度来看,问题求解是计算思维的基础和目标。程序设计类课程一般通过一个个示例展示各种问题及其解决方案模型。从这些或简单、或复杂的问题出发,对计算思维的特点进行解构与重组,学生能更清晰直观地体验到计算思维的价值和魅力,并逐渐获得计算思维能力,从而在思维模式方面得到升华。因此,程序设计类课程能更好地体现计算思维的特点,并在计算思维塑造方面具有更好的优势。

3.2 课程思政

课程思政是多学科知识交叉的重要切入点,也是活跃课堂气氛的重要形式。根据作者的经验,最容易让学生产生兴趣和代入感的是生活场景。课程思政的引入应自然融入,介入和表达都应是灵活的,不能机械、僵化或生搬硬套[13]。例如,在讲解补码时,可以介绍中国古代的“公道杯”,其满溢归“零”的特性与补码知识中的“模”非常相似。这样的课程思政案例不仅能让学生对“模”的概念理解更加清晰,还可以让他们感受到中国古代文化的奥妙。通过教师的简单启发,可以引发学生的民族自豪感和社会责任感。

在程序设计课程中,课程思政与计算思维是相辅相成的。计算思维强调客观理性,往往只从参数化的角度考量人的性格和情绪。教师在课程中加入适当的课程思政元素,引导学生在精神和情感层面有所思考和感悟,可以帮助学生建立和健全完整的人格。当然,融入学生专业学科相关知识的课程思政,可以让Python 程序设计课程与相关学科建立联系、互相促进,并为学生建立学科交叉提供思想基础。这也是Python程序设计课程的重要意义。

优秀的课程思政工作要求教师具有广博的知识,了解学生的专业及其信息化应用,甚至熟悉学生的生活圈子。这样才能挖掘出让学生产生共情的好案例,使Python程序设计课程更加生动、有趣、具有启发性。

4 结束语

在Python程序设计课程的教学微改革实践中,我们视人工智能应用为学生知识获取的辅助工具,通过形式丰富的资料和课后作业充分调动学生的积极性。融入课程思政和计算思维,加强了课堂的交互性,提升了学生的知识泛化能力、学科知识交叉思考能力、深层次思维能力和创新能力。学生也能深切体验到Python程序设计课程的价值与乐趣,并积极参与教学活动中。在理论课与实验课中,学生的课程参与度显著提高,突出了教师与学生良性互动的双主体,教学效果得到明显提升。

知识信息化与智能化的时代已经来临,教育者应充分利用新工具和新方法挖掘课程的特点。面对时代发展带来的变革与挑战,克服现实困难,科学调整教学目标和教学方式,在教学中突出新时代课程的深层次内涵,积极促进“四新”教育(新工科、新医科、新农科、新文科)更好地落地实施。

参考文献:

[1] 陈鹏,黄荣怀,梁跃,等.如何培养计算思维:基于2006—2016年研究文献及最新国际会议论文[J].现代远程教育研究,2018(1):98-112.

[2] 张芊茜, 蒋彦, 张琎, 等. Python程序设计课程过程性考核改革探究[C]//教学方法创新与实践科研学术探究. 北京: 2022.

[3] 赵广辉.面向新工科的Python程序设计交叉融合案例教学[J].计算机教育,2017(8):23-27.

[4] 马华.新工科背景下程序设计语言课程的探究式教学[J].计算机时代,2021(3):72-75.

[5] 刘东,赵宁.论高校教师课程思政的能力建设[J].武汉理工大学学报(社会科学版),2022,35(6):151-155.

[6] 王颖,杨茂林,王海云,等.新时代理工科课程思政研究:综述与展望[J].昆明理工大学学报(社会科学版),2023,23(2):127-134.

[7] WING J M.Computational thinking[J].Communications of the ACM,2006,49(3):33-35.

[8] 陈国良,董荣胜.计算思维与大学计算机基础教育[J].中国大学教学,2011(1):7-11,32.

[9] 朱亚宗.论计算思维:计算思维的科学定位、基本原理及创新路径[J].计算机科学,2009,36(4):53-55,93.

[10] 石钟慈.第三种科学方法:计算机时代的科学计算[M].北京:清华大学出版社,2000.

[11] 宋晓冰,陈思佳.以第一性思维引导实践创新:以结构设计竞赛为例[J].高等工程教育研究,2019(6):83-86.

[12] 张金成.第一性原理思维法在页岩气革命中的实践与启示[J].钻探工程,2022,49(2):1-8.

[13] 孙艳,于华民,于丹.以课程思政建设推进《大学物理实验》课程高质效发展[J].大学物理实验,2023,36(1):144-148.

【通联编辑:唐一东】

基金项目:安徽省高校质量工程项目(2023jyxm0234) ;安徽省高等学校省级示范课项目(2020SJJXSF) ;安徽省高校质量工程项目(2023jyxm0250) ;安徽省高校质量工程项目(2017jyxm1322)