APP下载

基于混合教学模式的 程序设计课程的探索

2021-06-10衷宜陆建峰赵学龙

关键词:线上线下混合式教学翻转课堂

衷宜 陆建峰 赵学龙

摘    要:按照金课的建设要求,文章提出把混合式教学模式引入“C++程序设计”教学中,利用MOOC平台、翻转课堂工具、程序自动评判平台等信息化教学工具,实施小班化教学、知行结合的机房教学等举措,以编程实践、分组讨论、弹幕、投稿等方式增强学生参与感,并将敏捷开发的价值观和原则应用于编程实践中,提升学生的自信心和成就感。实践结果表明,该教学模式能有效提高学生对理论知识的掌握以及实践能力,对比线下教学具备明显的优势。

关键词:线上线下混合式教学;MOOC;SPOC;翻转课堂

中图分类号:G642          文献标识码:A          文章编号:1002-4107(2021)05-0027-02

为了切实提高学生的编程能力,南京理工大学计算机学院根据教育部“淘汰‘水课、打造‘金课”的要求[1],开始在多门编程能力相关课程中实施线上线下混合式教学模式[2],以期达到课程的高阶性、创新性和挑战度,打造出“以学生为中心”的系列金课,其中,“C++

程序设计”作为计算机大类全体大一新生的程序设计

入门课,与第二年暑期的“C++课程设计”共同完成的C++语言及其程序设计的教学内容,对学生编程兴趣、软件基础能力、系统能力等方面的培养起到了奠基作用,自然成为了教学改革的先锋之一。

一、教学组织

在“C++程序设计”课程中,课程团队以“金課”的高阶性、创新性和挑战度为标准设计课堂教学:不仅要达到掌握坚实的理论基础的目标,更要培养学生应用、分析、评价甚至创造的能力;采用先进的信息技术手段,增加师生、生生互动,并满足程序设计课程的需求;以学生发展为中心,根据学生的学习状况,实时调整课程进度和重点;在实践和作业中设有一定难度的内容,并以循序渐进的方式引导学生进行深入研究。

(一)信息化教学工具的选取

在“C++程序设计”课程的混合式教学实践中,课程团队采用了“MOOC + SPOC + 翻转课堂+机房”的模式。课程团队教师在智慧树平台建设了MOOC课程“程序设计基础”,并在该MOOC课程基础上建设了SPOC校内课。翻转课堂采用了“雨课堂”工具实现课堂的组织:测验、投稿、弹幕等,同时采用了自建的“程序提交与自动评判平台”实现课堂编程、提交、判分。该平台由团队教师以Moodle[3]为核心建立,不仅可以实现普通的Online Judge功能(根据用例判断完整程序的正确性),

还创新性地实现部分程序的运行,例如函数的正确性判定。所有的线下课堂教学在计算机机房进行,每个学生分配一台有C++开发环境的联网计算机。

(二)教学流程的组织

结合信息化教学环境,课程团队在教学中,实施小班化教学、实践与理论结合的机房教学等教学方式,将教学活动扩展到课前、课中和课后,并通过教学组织实现课程的高阶性和挑战度。

每次课前,教师都会将预习要求(观看SPOC的视频、阅读资料、完成测试等)和学习目标通过“雨课堂”发给学生,并收集学生的学习信息(学习时间、测试结果等)。在课前的学习活动中,希望学生能够记住相应语法规则,并能读懂、对比相关的C++程序,这在Bloom模型[4]中属于记忆、理解和初步应用部分,即低阶目标。

课堂中,则是课程向高阶目标迈进的阶段。首先,是基本概念查缺补漏的前测环节。在简单、快速的知识点回顾中,课程团队利用“雨课堂”的客观题(单选、多选、填空)功能检验低阶目标的达成度。这些客观题以C++基本语法和规则的概念、应用为主。当某个知识点的正确率不高时,教师将以案例的形式厘清概念,以确保80%以上的学生达成低阶目标。

然后,进入“参与式的程序设计案例分析与实践”环节。C++语法和规则的学习都是为能够编写程序解决问题而服务的,因此,参与编程实践才是真正实现分析、评价、创造这些高阶目标的唯一途径。编程实践利用“程序提交与自动评判平台”进行,学生完成设计、编码、调试后,提交程序,根据返回结果可知程序的正确性。将敏捷开发的价值观和原则应用于编程环节中,将任务分解,建立不同层次和不同阶段的任务目标,以循序渐进地提高难度的方式,保持学生的自信心,并使其在教师指引下完成具有挑战度的工作,从而让学生对于有一定难度的问题,“跳一跳能够得着”[1],够着后又能获得较大的成就感。部分实践通过分组的方式进行,让学生在团队讨论中实现思维碰撞,从而产生智慧的“火花”。同时,在实践环节中,学生还可通过弹幕、投稿等方式,提出自己的疑惑,展示自己的成果,使得教师可以及时进行引导式解惑,并发现典型问题和优秀样例,以此进行解析和讲评。这些翻转课堂的手段,不但调动了学生参与的积极性,还增加了师生、生生之间的互动。

课后,通过“雨课堂”推送任务。任务以学生课中的“雨课堂”和“程序提交与自动评判平台”的统计数据为依据进行设计,强化薄弱部分,并适当难度进阶。

(三)具体案例

在此,以“C++程序设计”中的教学单元“分支语句”的教学实施为例,来说明教学流程的组织情况。分支语句”教学单元的设置在“数据类型和表达式”教学单元之后。该单元的教学目标为:掌握if语句的语法,尤其是能够将多分支语句中的else匹配对应的if,以规范的书写形式编写分支结构的程序,且能注意内嵌语句的限制问题。

在课程组织的前测环节,针对单元知识点设计选择题,尤其关注难点“if与else的配对”问题,结合测试题的解析,确保学生对基本语法的掌握。

在“案例分析与实践环节”中,以二元一次方程求解作为核心问题,课程团队设计了递进式的任务目标。在“分支语句”之前,学生只学习了C++的基本类型和表达式,最初的任务就从表达式入手,实现一元一次方程ax+b=0的求解(暂时不考虑a为0的情况)。第二阶段任务,考虑a为0的情况,将基本分支结构运用到问题求解中。第三阶段任务是考虑更为复杂的二元一次方程ax2+bx+c=0的求解。在讲授库函数sqrt()的使用方法后,让学生分组讨论该问题需要考虑的各种情况

(a为0、b为0、一个根、两个根、复数根等),并使用多分支结构编程。对比投稿的程序,看哪组考虑的情况更全面,程序更完整。同时,从投稿中挑选典型问题,例如:对于if else的多条内嵌语句不加括号使之称为一条复合语句、搞不清楚else到底和哪个if配对、不注意缩排和对齐等。

最后,总结实践环节中的通用性错误,要求学生在课后首先将课上所编程序进一步完善,再完成相关编程作业。

二、教学效果

在2019—2020学年第一学期,南京理工大学计算机学院为计算机大类全体大一学生共7个班级开设了“C++程序设计”课程。所有班级均为小班化机房授课,其中,8403班开展了线上线下混合式教学模式,其他6个班级均为线下授课。

2020年1月,完成了期末測试。最终成绩由3个部分组成:期末笔试、期末上机测试和平时成绩。其中,期末笔试由选择题、读程序题、填程序题和编程题组成,共100分,7位教师集中流水阅卷;上机测试包含 3道题,每道题100分,共计300分,Online Judge自动判分;线下授课的平时成绩由考勤和作业组成,混合式教学的平时成绩由课堂情况(出勤、课前测、投稿情况)、线上情况(视频观看、章节测验、编程作业)组成。

由于平时成绩的评判标准不同,因此,只将期末上机测试和期末笔试成绩进行对比,班级平均成绩对比结果分别如图1和图2所示。从图中可以明显看出,混合式教学模式下的8403班,无论是笔试,还是上机测试,成绩都明显高于其他班级。上机测试平均分高于其他班级7.2~38.69分,笔试平均分高于其他班级5.81~12.44分。且8403班课程及格率为100%,无一人挂科。

从对比数据中,我们可以分析出:课堂的“前测环节”夯实了学生对理论知识的掌握,“分析和实践环节”提高了学生针对问题设计、编写、调试程序的能力。同时,基于敏捷开发的价值观和原则的递进式任务设计,几乎让所有学生都能“够得着”,即使是中学从未接触过计算机编程的学生,也不会因为畏难情绪而放弃学习。因此,在程序设计类课程中,运用本文所描述的线上线下混合式教学模式,能够有效地培养和提高学生操作各项软件的基础能力,对比纯线下教学具备明显的优势。

三、总结与展望

在这次的线上线下混合式教学中,课程团队仍然遇到了一些问题:部分学生仍然不习惯于视频学习,导致在课堂上花费大量的时间进行“查缺补漏”,进而缩短了实践环节的时长。在未来的工作中,课程团队还将致力于平台的融合,并利用更多监督或奖励机制激励学生保质保量地完成课前学习,建设更具有挑战性和趣味性的C++练习库,进一步调动学生的积极性。

参考文献:

[1]吴岩.建设中国“金课”[J].中国大学教学,2018(12).

[2]张策,徐晓飞,张龙,等.利用MOOC优势重塑教学 实现    线上线下混合式教学新模式[J].中国大学教学,2018(5).

猜你喜欢

线上线下混合式教学翻转课堂
线上线下混合式教学在高职英语教学中的应用研究
高职护理专业线上线下混合式教学模式研究
利用MOOC优势重塑教学 实现线上线下混合式教学新模式
MOOC教学试点学院探究
翻转课堂在小学数学教学中的应用