摘要:计算思维、逻辑思维、实证思维被称为三大科学思维,其中计算思维是当代大学生适应智能化时代的必然需求。本文在分析计算思维培养的必要性基础上,以Python课程为例,通过设计计算思维培养模型、分层教学,并融入计算思维培养模式,来探寻有效的编程教学方法,优化编程教学策略。
关键词:计算思维;分层教学;教学实践
中图分类号:G434 文献标识码:A 论文编号:1674-2117(2024)17-0000-04
2006年,周以真教授首次提出计算思维及其概念,明确计算思维是产生于问题解决过程中的思维活动,是在问题解决过程中采用计算机解决问题的方式界定问题、抽象特征、建立结构模型、合理组织信息资源等一系列思维活动。同时指出,具备计算思维能力的学生,能够根据信息资源做出判断,形成解决问题的方案,总结解决问题的过程和方法,并迁移应用到简单或复杂的问题情境中去。同时,编程学习是一种思维训练,强调严谨、科学地分析问题,寻找解决思路。因此,在编程教学中融入对计算思维的培养,能有效提升学生的抽象能力、编程能力,最终提升其解决问题的能力。
计算思维培养的必要性
1.学生发展的需要
随着外界环境的变化,大学生每天接收大量来自学习和网络媒体的信息,仅凭传统思维来处理这些数据将消耗大量时间,花费大量精力,而运用计算思维可以在短时间内掌握问题的核心,节约时间和精力。具备计算思维能力的学生,在遇到问题时,不仅可以模拟计算机建构模型、设计算法解决问题,还能成为新模型算法的发明者、创造者,提高创新能力。同时,计算思维是信息素养的能力体现,是21世纪中叶人人必备的适应数字化时代的基本能力。
2.有效教学的需要
计算思维能力培养的目标是要将复杂问题进行拆解,通过抽象关键数据、建立模型、约简等形式解决问题,该过程可同步应用于同类问题的解决。课堂上,对于计算思维的学习不仅要学会对数字设备的访问,还要利用数字设备提高学科学习、问题解决及创新能力。在Python教学中,融入计算思维的培养,引导学生利用计算思维去发现问题、解决问题,可提高学生对问题的分析能力和解决能力。
Python程序设计课程教学现状分析
1.课程特点
计算机程序设计教学是高校计算机基础教学的必修课,非计算机专业的学生需学习该课程。通过编程学习,学生可以掌握一定的编程能力和开发能力,培养思维能力,成为能够掌握计算机技术的高素质人才。Python编程语言的设计哲学是“优雅”“明确”“简单”,易于学习且功能强大。其具有学习难度低、开发效率高、资源丰富、可移植性好、拓展性好等特点,在科学计算、网络爬虫、数据处理、人工智能等领域有广泛应用。此外,Python还拥有大量开源第三方库,学习者无需了解语言细节,可以直接通过接口使用相关功能,方便学习和应用。但由于Python是新兴语言,教师在教学中要将它与传统语言的教学区分开来,寻找适合该课程学习的教学方法。
2.高校计算思维培养现状分析
虽然程序课程在高校教学中占据重要地位,但很多教师在进行教学时却比较盲目,采用传统的教师讲学生听、教师演示学生模仿的模式,教师占据课堂主导地位,实际教学过于重视传授学生基础知识、上机操作技能,未引导学生开展深层次思考,过分注重定势套路的传授,对思维过程的重视不足,缺乏对计算思维的培养。这种教学模式无法将知识与解决问题的方法上升到思维的高度,导致学生的思维和创新能力无法得到充分发展,使得学生素养发展受到阻碍。
3.学生学习基础分析
计算思维培养的是学生解决问题的能力,因此,在教学过程中应充分尊重学生的主体地位。但由于受地区、专业、家庭环境等因素的影响,进入高校的学生计算机学习经历、基础存在很大差异,虽然经过之前大学计算机基础课程的学习,学生的计算机操作能力有了一定提升,但他们对计算机的工作过程还是一知半解,程序学习的基础存在差异。
教学模式分析
1.计算思维培养模型分析
利用计算思维解决问题需分步进行,并融合抽象、建模、约简、递归等方法,以实现问题的最优解,图1为计算思维培养模型。
(1)提炼关键信息——抽象问题
在遇到复杂问题情境时,能从多种复杂问题情境中抽象提炼出关键信息,即完成信息的提炼重组过程。例如找零问题,商店需要找钱给顾客,现在只有20元、5元、1元的人民币若干张,要求输入一个整数金额,给出找钱方案,假设人民币足够多,设计一个算法,输出所有可能的找零方案,同时输出所需纸币的张数,从所有找零方案中寻找输出所需纸币张数最少的情况。
提炼关键信息,建立数学模型,转换成数学问题,如输入整数金额为m,设20元人民币需要x张,5元人民币需要y张,1元人民币需要z张,该问题抽象成求20x+5y+z=m的所有正整数解,并寻找x+y+z的和最小的情况。
(2)形成可能方案——重组数据,寻找最优解
通过给定条件,寻找解决问题的多种方案,对比不同方案的优缺点及实现条件,形成适合问题解决的最优方案。针对前面提到的找零问题,可以提出以下三种方案。
方案一:20元人民币所需张数x从0到m//20变化,5元人民币所需张数y从0到m//5变化,在满足1元人民币所需张数z=m-20x-5y,且z>=0的情况下,寻找x+y+z的和s,即为纸币所需总张数,从所有的s中寻找最小值,即为所需纸币最少的情况。
方案二:5元人民币所需张数y从0到m//5变化,20元人民币所需张数y从0到m//20变化,在满足1元人民币所需张数z=m-20x-5y,且z>=0的情况下,寻找x+y+z的和s,即为纸币所需总张数,从所有的s中寻找最小值,即为所需纸币最少的情况。
方案三:20元人民币所需张数x从0到m//20变化,x每变化一个值,5元人民币所需张数y的值从0到m-20*x变化,在满足1元人民币所需张数z=m-20x-5y,且z>=0的情况下,寻找x+y+z的和s,即为纸币所需总张数,从所有的s中寻找最小值,即为所需纸币最少的情况。
分析不同解决方案,从中选择最优解,即为最佳方案。
(3)迁移推广——类似问题
在问题方案的形成和最优解寻找的过程,经历了抽象、建模、约简等过程,最优方案可同步推广到相应问题解决方案中,如寻找孪生素数问题、不同规格包装盒选择问题、餐厅点餐套餐搭配问题等。
2.优化Python程序设计课程教学策略
(1)开展分层教学
教师可以以班级为单位,通过问卷调查、知识测试了解学生学习现状,开展分组层次化教学。问卷调查主要调查学生对编程课程的学习兴趣和学习经历,知识测试了解当前学生对计算机基础知识掌握情况、对编程的理解程度等信息。
调查问卷采用在线文档收集的形式进行,知识测试选择一级计算机基础试题及程序语句(含注释)的阅读,依据答题情况给出相应分值,并根据得分情况统计调查结果,其中分为两个维度:学习兴趣和经历及掌握情况(如图2)。其中,学习兴趣浓厚(总评得分90到100分)和比较感兴趣(总评得分80到89分)的学生对编程学习有明确的态度,愿意主动上网查询知识盲区,学习新知识;学习兴趣一般(总评得分70到79分)和不太感兴趣(总评得分70分以下)的学生逻辑思维能力有待发展,能学习简单的编程。编程学习经历及掌握情况根据调查结果分为熟练能编写、学习过会编写简单语句、无但能理解一点、无且不能理解。其中,对学习有浓厚兴趣或比较感兴趣,同时有一定的学习经历,具备该两项特征的学生分到提高组,其余学生被分到基础学习组。根据分组结果开展线上线下同步教学,线上采取统一录制的网课和PPT,以微课为主,教授单个知识点,将教学资源上传到雨课堂中,线上资源主要用于学生对知识的课下自学,采取以学生为主的教学模式进行。
(2)教学内容安排
Python程序设计课程的教学目标是使学生系统掌握基本语法及简单程序编写方法,掌握函数、模块、类及面向对象等概念,了解常见第三方库及应用,具备利用所学知识解决实际问题的基本能力,培养学生独立思考、分析、解决问题的能力。因学生学习基础、学习经历和兴趣不同,通过设计提高组和基础学习组的不同内容,在达到基本学习目标的基础上,满足提高组学生更高层次的学习需求,使教学效果最大化。
为简洁说明教学内容上的区别,笔者以《函数》一章为例列表进行了比较。如上页表所示,左半部分是基础学习组学习效果,右半部分是提高学习组所达到的学习效果,基础学习组所达到的目的偏向于程序的理解,提高学习组在基础学习之后更多的是偏向计算思维的培养,在理解的基础上能够独立完成问题解决,并同步应用到相类似问题中,达到知识的迁移。
(3)融入计算思维
教学过程中融入计算思维的培养,需以学生为主,设计任务驱动,教师角色由主导者转为引导者,帮助学生实现对知识的主动探索和构建。例如,在递归函数的讲解中,第一步抛出任务,对输入的任意整数n,求阶乘,并输出。第二步分析提炼关键信息,建立模型,该任务为求解阶乘,对非负整数的阶乘定义为n!=n×(n-1)×(n-2)×···×2×1,当n=1时,n!=1。第三步设计不同方案,寻找最优解。不同小组学习内容安排如下:提高组学生探索多种解决方案,并从中找出最优的Python程序语句;基础学习组学生对比两种程序语句——循环结构和递归函数的优缺点,并完成程序填空。通过学习,学生理解了递归函数的定义、递归步骤及终止条件,加深了对递归函数的理解,并将解决问题方案应用到同类型问题中,如斐波那契数列、猴子吃桃问题等。
(4)课堂教学效果
通过课程结课后的调查显示,95%以上的学生表示在今后遇到问题时愿意用计算思维解决问题,认为计算思维解决问题流程清晰,可操作性强。同时,任务驱动下的小组合作学习,不仅增强了学生利用计算机解决问题的能力,还帮助学生克服了恐惧和紧张情绪,增强了学生的自信心和合作能力。
结语
本文在Python程序设计课程的教学中,探索计算思维培养模型,并在此基础上提出分层教学,根据学生学习基础、学习兴趣开展教学,旨在提升学生解决问题能力,培养学生计算思维能力,使其成为合格的数字化时代的公民。
参考文献:
[1]中华人民共和国教育部.普通高中信息技术课程标准(2017年版)[S].北京:人民教育出版社,2018.
[2]任惠霞.可视化助力计算思维在教学中有效落地——以“小海龟勇闯迷宫”为例[J].中国现代教育装备,2024(08):52-54.
[3]王玉冉,然孜古丽·甫拉提,周鹏.非计算机专业Python课程教学方法的探究与实践[J].内江科技,2024,45(04):45-47.
[4]武蓬蓬.基于计算思维培养的“编程实验教学”模式研究——以“人体感应行人自助过街红绿灯系统优化方案”为例[J].中国信息技术教育,2024(08):32-34.
第一作者简介:葛晓静(1989—),女,河南濮阳人,硕士,助教,主要从事计算机基础课程教学及研究生管理工作。
基金项目:河南省研究性教学改革研究与实践项目——“双碳”背景下基于项目案例驱动的五位一体式研究性教学模式研究与实践;河南理工大学教育教学改革与实践项目——“双碳”目标思政引领下以学生为中心的“能源动力类三大专业核心课”教学模式改革与实践。