陈文兰
(南通大学信息科学技术学院,江苏南通 226000)
随着信息技术的广泛应用,信息技术与教育教学的融合,正在改变着传统的教育教学观念、教学组织形态、教学与学习方式、教学管理机制、教学方法手段以及教师布局[1]。“强化现代信息技术与教育教学深度融合,解决好教与学模式创新”[2]是目前高校教育教学研究的热点问题。伴随着互联网成长起来的“00 后”学生,具体很强的主体意识,传统面对面的课堂教学已经无法满足他们的自主学习及个性化学习的需求;同时,C++程序设计课程的线下课堂教学也存在着诸多问题。开展课程线上资源建设和线下教学活动设计,融合传统课堂教学和线上教学开展混合教学,可以有效地解决目前课程教学存在的问题,进而提高教学效果。
C++程序设计作为南通大学计算机类专业学生入学后的第一门专业必修课程,目前课程线下教学主要存在以下问题:
1)学生缺乏必要的基础知识。C++程序设计课程在学生入学后的第一学期开设,学生尚未完成计算机导论课程的学习,对计算机中数据的表示、存储及程序执行过程等课程学习所需的基础知识缺乏必要的了解,导致学生普遍存在入门困难的问题。
2)课程教学和考核重理论轻实践。课堂教学由48 个理论学时和32 个实验学时构成,以语法和编程方法讲授为主,上机实验为辅。课程考核以期末卷面考试为主(占70%),以平时学习过程和实验考核为辅(占30%)。重理论轻实践的教学过程和考核方式不能有效地提高学生的编程能力,达到学以致用。
3)课程教学以教师为主导。教学过程中主要以教师讲授的形式开展理论课程的教学,学生参与度不高,无法突出学生学习的主体地位,不能充分调动学生学习的积极性和主动性。
4)课程教学不能满足不同层次学生的需求。本课程的学生来自多个省份,学生的学习基础和学习能力存在较大的差异。但受到课程教学学时的限制,课程教学只能按照相同的内容和过程向前推进,无法兼顾不同层次的学生,教学内容的深度和广度不足,从而导致部分学生“吃不饱”或者“吃不了”。
5)教学反馈不及时且不全面。C++程序设计课堂教学时,主要采用课堂提问、作业、实验情况及平时测验等进行教学反馈。受教学时间安排等客观因素的限制,教师不能全面、及时地了解学生的学习情况,进而有针对性地开展教学。
相对于传统的课堂教学,线上教学为教师教学和学生学习提供了更广阔的空间,合理规划和有效组织的线上教学具有传统课堂教学无法比拟的优势,主要包括:
1)线上教学可以突破时间和空间限制。线上教学可以不受课堂教学时间和空间的限制,学生可以自主地安排学习时间和学习进度,特别适合学生自主学习。
2)教学资源分享和使用方便灵活。授课视频发布到网上,学生可以无限次观看学习;补充的教学内容可以由学生根据自身情况有选择地学习;线上题目也可以供学生反复练习。
3)可以有效地解决教学内容、过程和考核方式同一化问题。教师通过合理规划和设计线上教学内容可以满足不同层次学生的学习需求,可以采用分层次考核方式以更准确地评价学生的学习效果。
4)能够得到及时全面的教学反馈。线上教学平台可以对学生学习过程和学习效果进行记录和分析,教师可以通过平台记录及时全面地了解学生的学习情况,从而有针对性地开展教学。
尽管线上教学具有诸多课堂教学不可比拟的优势,但是,线上教学要求学生必须具有较强的自主学习能力、自我控制和管理能力,对于缺乏相关能力的学生由于缺乏教师的监督,仅仅安排线上教学很难保质保量地完成课程学习。因此,充分利用线上教学的优势组织线上线下混合教学,突出学生学习的主体地位,可以有效地调动学生学习的积极性和主动性,进而提高课程的教学效果。
C++程序设计是南通大学计算机类专业学生必修的一门专业基础课,也是学习程序设计的入门语言。课程的教学目的是使学生掌握程序设计的基本思想和方法,建立良好的编程习惯,基本具备使用C++语言进行软件开发的能力。同时,该课程也是后续学习数据结构、操作系统等专业课程的基础。从某种程度上来说,课程的学习情况直接决定了学生后续的学习和发展。
课程组基于工程教育专业认证标准的毕业要求制定了课程质量标准,从知识、能力和素质三方面确定了课程目标。
知识方面:熟悉C++的基本语法;理解面向对象程序设计概念和方法。
能力方面:能够熟练使用C++的编程环境,掌握C++程序的调试方法;能够针对具体的应用问题,运用面向对象设计思想,设计、编写并调试程序;能够完成小型软件的开发。
素质方面:形成良好的团队合作精神和沟通能力,勇于探索的科学精神。
课程组选择中国大学MOOC[3]和头歌实践教学平台(EduCoder)[4]作为C++程序设计理论和实验教学的线上教学平台,基于课程教学需求,进行课程资源建设。
1)教学视频
按照课程教学过程录制C++程序设计理论教学视频,建立理论教学SPOC 课程。为了满足实验课程线上线下混合教学的需要,基于单次实验,录制实验指导视频,主要介绍实验涉及的知识点、重难点、易错点和实验所需的课外知识。理论教学视频和实验课程教学视频依据教学进度,按章发布给学生。
2)导学案
导学案是教师在学习理论、教育原理的指导下,在授课前依据课程质量标准和学生认知结构的特点从学生的角度设计的指导学生进行自主学习、自主探究、自主创新的导学材料[5]。在C++程序设计教学过程中,由教师根据课程质量标准中学习目标和学习内容分章和课次编制导学案,详细说明知识准备、学习目标和重难点,分析学习内容结构,指导自学流程,解析学习难点,另外,每课次均设置不少于3道思考题。导学案发布到SPOC,以指导学生自主学习。
3)试题库
中国大学MOOC 支持在SPOC 建立试题库,并允许对一道题目打多个标签。建立试题库时为每个题目打4个标签,分别是章、课次、类型和等级,其中“章”标识题目所在教材章节,分为ch1~ch12;“课次”标识题目为所在章的第几次课,分为No1、No2……;“类型”即题目类型,分别为选择题、填空题,题目考查内容包括基础知识、程序阅读和程序填空;“等级”标识题目难度,分别为高、中、低三个难度。课前测试和课后测试均按照难度设置三份试卷,试卷由在题库中随机抽取题目自动生成,根据题目难度和数量设置完成时间,要求学生在指定时间内完成。课后作业除编程题外也按测试试卷生成方法生成,只是不限制学生的完成时间。
4)EduCoder项目
EduCoder 上的项目分为作业和实验2 类,作业部分为课后作业的编程题,实验部分为实验项目。C++程序设计共有32个实验学时,设计12个单人实验和1个团队实验,每个实验由易到难设计初级、中级和高级3类实验项目。初级难度只涉及课程的基础知识,要求所有学生都要完成;中级难度对学生具有一些技术性的要求,大部分学生能够完成;高级难度涉及需要学习的新知识,少部分有能力的学生通过进一步学习和探索可以完成。以数组为例,初级难度包含回文判断、九九乘法表打印、矩阵转置运算;中级难度包括字符数组中删除重复字符、多项式加法、丢手绢问题、幻方问题;高级难度包括混合四则运算表达式求解、归并排序。课后作业的编程题也按相同方式设置。
线上线下混合教学活动设计时,应突出学生学习的主体地位,以调动学生的主观能动性,激发学生学习热情,而教师则作为学生学习的引领者、指导者和督促者,引导和督促学生主动学习和充分参与教学活动过程,并为学生答疑解惑和指明学习方向。将C++程序设计线上线下混合教学活动划分为课前(线上)、课堂(线下)和课后(线上)三个阶段,理论教学各阶段的活动如图1所示。
图1 C++程序设计教学活动
1)课前活动
课前教学活动为课堂教学的准备阶段,教师通过SPOC发布导学案、课程学习视频和其他教学资料,学生以此为基础完成内容学习,参与学习效果测试,并准备进行课程交流汇报的材料。学习过程中,学生可通过SPOC 讨论区和QQ 群进行讨论,教师进行线上辅导。
教师基于线上测试、讨论和辅导情况进行学情分析,确定课堂教学内容,并以此为基础将学生按学习情况进行分成三类,从每类学生中选取部分同学参与课堂汇报交流。
2)课堂活动
课堂教学中,首先由教师进行内容串讲,主要讲授重难点内容和学生在课前学习中出现的问题,中间穿插进行课堂交流和基于慕课堂的在线答题;然后,由学生进行学习情况汇报,每个学生汇报完成后,允许其他同学进行提问和交流;最后,基于学生汇报和交流情况,由教师进行点评和总结。各部分大致按照30分钟、40分钟、10分钟进行安排。
3)课后活动
课后教学活动以SPOC 课程内容为主导,学生通过作业、测试和讨论巩固学习成果,基于内容扩展开展进一步学习。作业和测试中低级难度的内容要求所有学生都必须完成,中、高级难度内容由学生根据自己情况自主选择完成。
实验课也按照三个阶段组织,课前由学生基于导学案和实验指导视频进行预习和实验准备,并完成相应的思考题;课堂教学过程中,前60分钟由学生完成EduCoder在线实践平台上的初级难度的实验项目,教师巡查学生的上课情况,对有需要的学生提供指导,并通过平台反馈了解学生实验情况;后20分钟由教师进行总结实验情况,并与学生进行交流。课后由学生根据自己的能力选择完成中级和高级难度的实验项目。团队实验课题则将学生分成3人一组,每组自主选择一个题目,共安排8个学时,前6个学时由学生进行设计、编程和调试,后2 个学时由学生进行汇报和交流。
为了能够对学生学习过程、学习态度和学习效果进行综合评价,课程组修改了课程质量标准中课程考核大纲。课程总评成绩由平时成绩和期末考试成绩构成,各占50%。平时成绩包括线上学习情况(5%)、作业及测试成绩(15%)、交流汇报情况(5%)和实验情况(25%)。作业及测试成绩中,低级难度内容占10%,中高级占5%;实验情况中初级难度实验占20%,中高级难度实验占5%。期末考试成绩为线下考试的卷面成绩。
以上教学方法在“数据科学与大数据技术”专业2022级96位学生中进行了实践,取得了较好的效果。主要体现在:1)学生学习的积极性得到了有效调动。能够按要求完成所有课前任务的学生为92人,占比为95.83%,按时完成低级难度作业和测试的学生为95人,占比为98.95%,全部学生均完成了初级难度实验项目。2)学生学习的主动性和探索精神有了较大的提升。完成中级难度实验的学生为81 人,占比84.38%;完成高级难度实验的学生为46 人,占比47.91%;主动参与教学互动和提问的学生比例明显高于往届。3)教学质量有了一定程度的提高。大部分学生较好地掌握了C++程序设计的基础知识和程序设计方法,具有一定的程序设计能力。期末考核成绩相对于2021级有了一定程度的提升,达成课程目标的学生比例由79.37%提高到91.67%,平均成绩由76.03分提高到84.67分。
线上线下混合教学是高校课程教学发展的一个趋势。通过融合线上理论和实践教学平台并为实现分层次教学建设相应的教学资源,开展C++程序设计理论和实验课程的线上线下混合教学,可以充分利用线上教学的优势以解决传统课堂教学存在的问题。通过线上线下混合的方式组织课程教学,可以有效地提升课程的教学效果。