程序设计课程中学生自主学习能力培养研究
2024-04-03梁建坤翟菲郑小松王海慧佟欧翟玉萱李定远
梁建坤 翟菲 郑小松 王海慧 佟欧 翟玉萱 李定远
关键词:计算机程序设计;混合式教学;自主学习能力;学习积极性
1 课题背景及研究内容
计算机程序设计基础是高等学校面向非计算机专业开设的公共基础课程[1],难度较大学计算机基础更大。由于近年来各高校普遍存在基础课程学时压缩的问题[2-3],使得该课程的授课进度加快,从而进一步增加了课程难度。由于大一的学生还没有学习专业课程,导致利用编程语言解决学生所学专业实际问题的应用很少;加之程序设计课程的内容相对抽象枯燥,导致诸多高校的相关教师在各级教学研讨会的交流中普遍反映学生的学习兴趣低[4]、对今后学习和工作的实际帮助效果不理想等问题。
按照OBE(Outcome Based Education,能力导向教育)的培养要求,为了培养学生的自主学习能力、激发学生的学习兴趣,作为辽宁省计算机程序设计省级精品课程、省级跨校选修课程的负责单位十多年来沈阳药科大学持续进行了相关教学改革的探索,先后主持了多项相关省部级教改课题。多年的改革实践表明,在“互联网+”环境下通过混合式教学模式,在大一阶段着力重点培养学生的自主学习能力、实现从中学阶段的“填鸭式学习”模式到大学阶段“自主学习”模式的转变、培养学生自身的学习兴趣,才是真正的解决之道[5],正所谓“兴趣才是最好的老师”[6]。
2 建议的方法措施
2.1 前期成果展示——提前画饼
很多教师由于感觉课时紧张,第一节课开篇就从枯燥的程序语法开始讲起,这种做法看似节省了时间,但是会让学生感觉该课程枯燥无聊,感觉只是因为它是学校安排的课程不得不学而已。学生的学习兴趣低,课堂上不认真听、不积极思考,课外更不会主动学习,最终的结果反而适得其反。
建议的方法是第一节课开篇先讲该专业为什么要学程序设计这门课,展示教师自己的科研团队利用程序设计为本专业解决过的实际问题、展示往届学生在课程学习中完成的用于解决学习和生活中实际问题的综合案例作品、展示教师指导往届学生在课外利用程序设计参与各类计算机设计大赛获得的成果等。不但让学生知道自己的专业领域研究离不开程序设计,而且有信心通过本课程的学习自己也能达到期望的水平,从而激发学生自身的学习兴趣,只有课内配合教师认真学习、课外积极自主学习才能真正解决学时有限的问题。
2.2 案例式教学——不断刺激
采用案例式教学,针对重要知识点设计与实际生活和学习相关的案例。首先,通过将实际问题转换为数学模型,培养学生的计算思维能力,而非机械地学习零散、枯燥的知识点。其次,尽管这些案例是经过简化的问题(实际问题的核心知识点),但也都包含需求分析、概要设计、详细设计、编码、测试和调试等环节,从而培养学生利用所学知识解决实际问题的综合应用能力。第三,让学生意识到学有所用,以便于在长期的日常教学中不断激发学生的学习兴趣。例如学习算数运算符时,不要简单给出一堆毫无意义的枯燥算术表达式,让学生觉得为了做题而做题,可以结合近期世界范围内发生的大地震让学生利用P波和S 波的速度差,求解分析并討论观测站发出的地震警报对不同距离城市的预警效果;学习三角函数时可以让学生绘制指定旋转角度的五角星,为后续绘制标准国旗奠定基础;学习列表时可以让学生对身份证号码进行合法性校验,以解决网上录入错误身份证号码的问题等;对于软件测试必须掌握最基本的边界值分析法、等价类划分法,对于软件调试必须掌握最基本的断点法、回溯法。
2.3 功能分解——逐步完善
在各级教学交流会上,很多教师反映能够解决实际问题的案例通常涉及的知识点较多,无法作为教学案例或综合作业。首先由于功能复杂课堂内讲不完;其次如果放到前几章布置任务由于新知识点太多此时学生不会做,如果放到最后章节布置任务由于临近期末学生忙于复习又没有时间完成。
建议的方法是第一作为课程案例需要对问题进行简化,只保留核心知识点;第二将案例进行功能分解,不同章节解决不同的知识点,通过模块化方式完成整个案例。也就是说,不同章节完成对应的模块,功能逐步完善,等最后一个模块完成时整个案例也就完成了。
例如:身份证号码(ID) 校验这个案例。在字符串操作的章节可以完成出生日期的信息提取、身份证长度判断、字符类型的合法性判断等叶子模块的功能;在选择结构章节完成年龄合法性判断、出生日期的合法性判断、性别判断等模块的功能;在列表章节结合循环结构完成身份证号码前17位的加权计算、判断校验位是否合法的模块;在字典章节构建以ID中前6位为key、对应地区名为value的出生地字典,完成对ID 前6位进行合法性校验,如果校验通过检索其出生地模块;在文件章节通过文件操作,实现完整出生地字典的构建模块;在GUI设计章节将前面利用CLI实现的程序改为GUI界面实现;在程序打包和发布章节完成将GUI格式的程序发布为可以在其他计算机直接运行的exe格式的模块,至此经过7步功能分解整个案例就全部完成了。
2.4 混合式教学——学有所依
在“互联网+”环境下采用线上线下混合式教学方式。在线下课堂教学过程中,通过案例式教学教师分析讲授案例涉及的知识点以及相关重点难点;本章的其他知识点由学生利用线上精品课程平台自主学习,在章节测试中对所有知识点进行考查,从而实现学时不足的情况下保证教学质量的目标。由于线上教学平台不受课时的严格限制,因此课程内容和教学形式可以灵活多样,除了核心知识点的讲解外还可以包括相关知识的扩展,通过图文、音频、视频等形式让学习变得更轻松,提升学生的学习兴趣。
2.5 翻转课堂——保持互动
目前很多课堂教学中存在的问题是:教师感觉课时有限,只顾一味地讲解知识点向前赶进度,与学生的互动太少,看起来似乎节省了时间;其实由于学生受传统填鸭式学习方式的影响,只是默默地被动听讲,导致兴趣丧失,课上学习效率低、课下不愿主动学的问题。建议采用翻转课堂,课堂上充分发挥学生的主动参与度,课下调动学生的主动学习积极性,从而提高学习效率、弥补学时不足的问题。
首先,针对下节课的案例布置适量任务,让学生思考该案例在实际应用中的需求分析、解决该问题采用的算法或思路,课堂随机安排人员汇报,汇报结果记为平时课堂成绩;其次,案例之外的知识点需要通过线上平台自学,下次课前10分钟进行无纸化测试;第三,在授课过程中遇到重要的历史知识点,随时通过课堂管理系统软件随机提问,避免学生走神溜号、充分做好前面章节的复习工作。这些做法看似浪费了课堂时间,由于充分调动了学生的课下自主学习时间,不但可以保证教学进度,而且由于学生的主动参与还可以提升学习效果。
2.6 阶梯制综合作品任务——鱼跃龙门
建议整门课程针对不同专业设计3~4个解决实际问题的综合案例,教师给出核心功能,引导学生思考其在实际应用中更加完善的功能需求,通过分组汇报得到较为完整的需求分析。考虑到不同学生的发展目标不同、能力不同、兴趣不同,可以设定阶梯制任务,学生根据自己的实际情况选择不同的层级。这样既可以避免有的学生面对综合任务望而却步,也可以鼓励精英式学生的进一步自由发挥。
例如思政元素案例“绘制代表世界和平手拉手的奥运五环”。入门级为能够绘制出上排并列3个、下排并列2 个、颜色正确的五环示意图,考查学生利用turtle绘图时抬落笔、定位、画圆等基本能力,最高得分60;基础级在入门级的基础上,要求五环的嵌套关系准确,考查学生精准定位绘制圆弧的能力,最高得分80;进阶级在基础级的基础上,要求自行检索奥运五环标准规范,绘制出圆环半径、边框宽度、圆环间距、上下排行距均精准的标准奥运五环图案,培养学生自主学习、严谨求实的能力和精神,最高得分100。在2023年春季学期最终上交的作品中选择这三个层级的比例分别为1.29%、27.95%、70.76%,如图1 所示。结果表明绝大部分学生对绘制标准的奥运五环具有浓厚的兴趣,乐于通过自主学习的方式自行收集资料完成有实际意义的任务。
再如身份证号码校验。目前各网站通常只提供针对长度的校验,如果用户录错了一位或几位,系统不会提示错误,这将导致网上看病预约成功、医院现场身份证校验不通过导致无法看病;甚至网上报名、考试、下发证书都“正常”,找工作时被用人单位以证书中身份证号码与本人不符而被认定为假证的情况发生,因此提供更为精准的辅助校验功能具有重要的现实意义。任务的第1层级为正确判断用户录入的ID长度是否合法、ID号码的最后1位(校验位)是否正确,最高得分65;第2层级在第1层级基础上,增加对出生日期的合法性校验(避免未来人、超级寿星、4月31日/2月30日等非法日期),并汇报出生日期和性别(供用户检查参考),最高得分75;第3层级在第2层级基础上,增加对前6位地区码的校验功能,并汇报出生地信息,最高得分85;第4层级在第3层级基础上,增加GUI图形界面设计功能,最高得分95;第5层级在第4层级基础上,增加程序打包发布exe格式运行文件的功能,最高得分100。最终选择五个层级的人数分布如图2所示,结果显示选择完成所有課堂讲授知识点的人数为48.57%,自学GUI完成图形化界面设计的人数为26.77%,自学打包发布彻底完成整个任务的人数为8.22%。选择课外自主学习的总人数合计为34.99%,超过三分之一,由此表明以上措施对激发学生的学习兴趣、培养学生的自主学习能力具有显著的成效。
2.7 提供合适的编程语言——提供利器
工欲善其事必先利其器,不同专业、不同方向、不同兴趣的学生具有解决不同实际问题的需求,选择适当的编程语言可以更加高效地工作。鉴于Python语言拥有功能强大、领域广泛、数量众多的功能库,可大幅减少数据处理的代码量,建议学校整体范围内优先选用Python语言。此外,为满足不考研、没有大量科研数据进行高级处理分析任务、只需要利用Excel高效办公学生的需求,建议提供VBA编程语言;针对需要动态网站开发的学生,建议提供C#语言。这些语言的课程建议同时开设,学生根据自己的需求随便选择。
2.8“ 1+X”扩展——极限诱惑
多年与专业领域教师合作的科研工作经历表明,医药领域相关专业的学生学习程序设计语言在专业研究中最重要的三大需求为大数据分析、数据可视化、利用网络爬虫从互联网中获取相关研究数据。为了能够让计算机程序设计这门基础课更好地为专业服务,借助“互联网+”环境在承建的辽宁省跨校选修一流课程网络教学平台中,在Python通识课程的基础上增加了大数据分析、数据可视化、网络爬虫三个专业扩展模块,每个模块包含2~3个典型专业案例。每名学生可以根据自己制定的未来专业发展方向和兴趣任选其中1个模块进行课外自主学习,并至少完成其中1个案例。目的是提高学生的自主学习能力、培养学生利用Python的第三方功能库解决相应专业问题的意识,激发学生课外尤其是利用假期主动自主学习更多解决专业问题的兴趣,为后期专业课程的学习和科研奠定基础。结果显示,期末提交完成的案例数量达到两个及以上的学生占比47.26%,有意愿假期学习更多扩展模块和案例的学生占比69.71%。表明学生对于具有明确实际应用价值的知识点更愿意花费时间进行自主学习。
3 结束语
综上所述,通过多种改革方法的联合应用可以较大程度地激发学生的学习兴趣,培养学生的自主学习能力。通过案例式教学和综合作品任务相结合,可以使学生达到学以致用、培养计算思维能力、提升其解决专业实际问题的技能,最终实现OBE的培养目标。采用本教学改革模式以来展示出了良好的教学效果,学生的学习兴趣、实践能力、科研创新能力得到了显著提升。近五年来,计算机程序设计课程的授课教师指导本科生参加大学生创新创业大赛的项目逐步增加,获得国家级、省级项目的比例大幅提升;指导本科生参加省级以上各类计算机设计大赛获一等奖3项、二等奖8项、三等奖14项;指导本科生独立或参与教师科研发表论文7篇;获得学生和教学督导对该课程的教学效果评价全部为优秀。