刘喆昕
(广东舞蹈戏剧职业学院,广东 广州 510075)
计算机课程的传统教学模式由理论教学环节与实践教学环节构成[1],该模式下的计算机课堂教学主要以教师讲授理论、演示为主,学生实践的比例较少。计算机编程类课程的特点是操作性强,因此传统教学模式下会存在课上学生不能通过实践来及时发现学习遇到的问题,课后教师也不能及时掌握学生的学习情况,这在一定程度上导致学生学习过程中没有成就感甚至感到挫败,从而影响学生对编程技能的掌握。随着互联网技术的更新、普及以及教学模式的创新,越来越多课程进行了在线课程的建设,本文将以Python 基础编程课程为例就混合式教学模式下计算机编程类课程的建设进行探析,提供计算机编程课程混合模式下的建设策略。
Python 基础编程课程是一门专业平台课,旨在培养学生的编程基础技能和思维,为后续专业课程、技能的学习打下基础。课程授课对象是计算机应用技术专业2022级学生,与其他学校不同的是这批学生是文科生并且在学习本课程之前没有接触过编程,但通过与辅导员和其他任课教师交流,这批学生整体积极主动、学习热情高,喜欢探索并与任课教师进行沟通交流,在其他课程的学习上表现良好。有研究认为,学生的人格特质类型不同,对于学习活动的适应性也会有所差异,并直接对学习效果产生影响[2]。还有研究认为,要针对不同人格特质类型学生设计学习活动,从而保持学习的满意度[3]。鉴于学生善于沟通交流,一是在Python基础编程在线课程设计上增加了问答题类型,注重学生对知识点的梳理,强化学生用自己的语言来描述知识的能力;二是线下课程中,增加教学中师生互动的比例,比如提问、小调查、师生讨论,通过良好的交流互动及时掌握学生的学习情况;三是建立基于即时通信软件的课程学习群,方便师生及时沟通。考虑到学生喜欢探索,一是在线下课程中增加学生编程实践的时间,二是在学习中锻炼学生将现实问题转化为编程问题的能力,三是作业中增加对知识点的考核比例,让学生巩固所学内容,强化技能掌握程度。通过对学情数据的分析,教师充分发挥学生善于沟通交流和喜欢探索的特点,让学生在学习中感受到学习和编程的乐趣。
由于Python基础编程的授课对象不足百人,且暂时只面对学校计算机应用技术专业一年级学生,因此线上课程选定了SPOC(Small Private Online Course,小规模限制性在线课程)模式。教学中引入的SPOC 模式,不仅已在众多外国名校中进行了实践并取得了良好的教学效果,而且在国内的实践过程中也取得了良好的发展[4]。就计算机编程类课程而言,SPOC模式还能弥补学生个人学习能力差异与传统统一教学模式之间的矛盾[5]。不论是线上课程还是线下课程都要体现教师的教学设计理念,在Python基础编程课程的混合式教学中注重以问题为导向、以任务为驱动,与学生形成良好互动。线上课程以理论讲解、代码演示、教学问答、作业练习为主,线下课程通过学生的线上学习反馈进行重点、难点问题的深度探讨,注重强化学生的动手能力,实现线上线下的有机整合。
在线课程的底层核心是教学内容拆解、知识碎片化[4],教学资源数量要做到充足,覆盖全部课程教学内容[6]。因此在制作教学资源时,教师要紧紧围绕课程标准、教学设计来制作,突出知识点的内容。
通过对课程标准、教学设计进行梳理,将Python基础编程课程内容拆分为178 个知识点(见表1),知识点覆盖了课程的全部教学内容并做了适当延伸。针对知识点讲解,绝大多数知识点采取视频的形式,小部分采取辅助文档的形式。考虑到学习效果,教学视频采取短视频的方式进行录制,每个视频只针对单个知识点进行讲解,方便学生对知识点的学习和回顾。录制教学视频时,视频时长严格控制在20分钟以内,在Python 基础编程课程的教学视频制作中,绝大多数视频时长在10分钟以内。相关研究表明短视频的好处是不仅降低了视频制作难度,还让单次学习时间变短,让学生更容易理解掌握知识点[4]。
表1 各章节教学视频统计
由上表可看出,第4 章Python 数据类型的教学视频明显较其他章节多,这是因为在讲解数据类型时须要讲解各种数据类型的常用方法,而每种方法的讲解就是一个短视频。
为保证线上学习效果,Python 基础编程的线上课程还配备了练习题用于检测学生对知识点的掌握情况。习题的类型包括选择题、问答题、编程题,共计118道(见图1)。选择题侧重在考查学生对理论的掌握情况,由在线学习平台自动判定,作业成绩发布后学生可以通过查看答案解析及时理清思路并加深对知识点的理解。问答题让学生用自己的语言来描述自己对知识点的理解,注重考查学生对某一类或某几类知识点的理解程度,由教师进行评判。编程题由学生编程解决一个实际问题,考查学生运用Python语言编写程序解决实际问题的能力、逻辑思维能力和编程规范,由教师进行评判。
图1 各章配套练习题统计
线上课程的主要资源类型是视频,但线上课程还要根据课程、学生的特点准备其他类型资源。Python基础编程的线上课程为学生准备了补充文档、安装包、源代码、答疑等类型的学习资源,总体情况见图2。补充文档是对知识点的延伸和补充,在线上课程中属于选修内容,有利于高开放性学生进行学习和探索。安装包为学生提供学习过程中需要使用到的开发环境、工具。源代码方便学生回顾学习视频中使用到的代码,因此在源代码中要添加适当的注释。答疑一是方便学生在线上课程学习时及时就遇到的问题进行提问;二是让能力较强的学生尝试解答其他学生遇到的问题,教师根据回答情况予以采用,增强回答一方学生的自信心;三是答疑的问题也可以形成一个知识库,方便其他学生检索和查看。在教学资源准备时,要筛选出优质、有效、适合自己执教班级学生学情的教学资源,做到资源的优化整合,避免堆砌各种资料[7]。
图2 各章其他类型学习资源情况
线上课程配套的练习题不仅方便教师及时掌握学生的学习情况以便在线下课程针对重点难点进行补充加强,还能检测不同人格特质类型学生的学习效果。以第2章编程基础为例,通过学生的作业反馈(见表2),教师可以清晰地了解学生对各知识点的掌握情况。
表2 第2章编程基础学生作业得分情况
表3 教与学交互过程中的引导示例
由上表可知有4 道题目的得分率低于80%,查看学生的答题情况,造成得分率低的原因有:对知识点的理解存在偏差,对知识点的掌握不够牢固,审题不清。知识点“代码块&行处理”练习题中,题目要求选择描述错误的选项,32.4%的学生选择了正确的描述项,这是由于学生一方面审题不清,另一方面对错误描述中的斜杠和反斜杠不能正确区分造成的。知识点“成员运算符”练习题中,43.2%的学生选择了同一干扰项,这是因为学生对成员运算符的使用理解上存在偏差,没有记清楚其不能使用于数字类型。知识点“比较运算符&身份运算符”练习题中,选择了错误项的学生中82.6%的人选择了同一干扰项,表明这些学生虽然能理解比较运算符“==”的功能,但却没有掌握身份运算符“is”的使用。而在知识点“变量赋值&运算符使用&格式化输出”编程题作业上,学生的失分主要体现在编程规范上,即虽然变量命名符合了标识符规范,但无法通过变量名了解其代表的含义。
在Python基础编程的线下课程中,教师依据线上作业的分析结果解决学生遇到的问题并改善学生的学习效果。一是就知识点中理解存在偏差的部分进行再讲解,加深学生的理解程度,通过课堂上实时互动了解学生的学习成效;二是通过练习和编程实践,夯实学生对知识点的掌握程度,增加学生自信心的同时也提升学习兴趣;三是向学生展示优秀编程作业,让学生通过读代码体会到遵守编程规范的好处,进一步认同编程规范,并在今后的编程实践中严格遵守。
大学生更感兴趣的教学方式是传统线下课堂,线下教学模式中更倾向于传递-接受式[8]。因此混合模式教学中,教师不能简单地将教学任务全部依托于线上课程,而是要以学生为本做好线下课程中知识的传递与学习的反馈。
大学生在线学习过程中交互方面存在的主要问题是不能准确表述学习问题和自己的求助不能得到有效回复[9]。虽然教学平台上提供了答疑功能,但学生在学习过程中遇到问题时更希望直接与教师进行沟通,而不是通过教学平台这个媒介,因为平台的沟通会存在一定的滞后性。为了解决教学过程中学生与教师交互过程中的这个问题,Python基础编程课程在教学过程中开通了基于即时通信软件的学习群,让教师与学生的沟通更直接更便捷。教师与学生的沟通过程中,学生的问题主要集中在编程实践中遇到的各种问题,因此教师要充分引导学生在沟通中正确描述自己遇到的问题并及时给予解答,通过问题的解决让学生累积编程经验,以便在以后的学习过程中可以自己解决一些常见问题,让学生从单纯的提问者蜕变为问题的解决者。
大学生在线学习时往往会在获取知识、自我实现上遇到挫折,而激励有助于解决大学生遇到的这些问题[9]。Python 基础编程是一门专业平台课,是学生学习编程的入门课程,学生对这门课程的学习情况很大程度决定了其今后学习其他专业课程的热情和态度,因此教师在教学过程中要充分尊重学生各自的特点,不断激励学生、增强学生的自信心和对学科的认可度。线上课程,教师在准备教学资源时要以基础知识点为主,代码演示要求清晰便于模仿,作业批改时对于完成较好的学生要进行激励指出其闪光点,完成不好的学生要鼓励和指出其改进方向。线下课程,教学中的提问要以基础性为主,通过问答培养学生的自信心和继续探究的勇气,在实践时要引导学生进行问题的拆解和分析,培养实现用编程解决实际问题的能力,增强学生的成就感。通过学习群解答学生疑问时教师要耐心细致,把握学生的情绪和问题,指导学生一步步解决问题,消除学生的挫折感,增强学生的自信心。
混合教学模式吸取了线上、线下教学各自的优点,相互支撑互有倚重。在该模式下,Python 基础编程在构建课程时不仅考虑到计算机学科的特点,还考虑到不同人格特质类型的学生特点。课程的学习在于人,教师要因材施教,既要把握课程建设的共性又要把握学生的个性。Python 基础编程课程线上课程的构建有效助力于学生编程思维的形成和实际编程能力的提升,也在一定程度上解决了传统教学模式下计算机课程的问题。