APP下载

基于MOOC的线上线下混合式教学探讨
——以C语言程序设计教学为例

2021-01-15张素真杨学锋曹东燕杨延玲

黑龙江科学 2021年13期
关键词:C语言程序设计编程

张素真,杨学锋,曹东燕,杨延玲

(德州学院 物理与电子信息学院,山东 德州 253023)

C语言是全世界普及推广的程序设计语言之一,其语言简洁、使用灵活、可移植性好、更接近计算机底层设计、执行效率高,历年在软件开发领域占据主流地位[1],因此,成为了高等学校非计算机专业普遍开设的一门专业基础课程。该课程不仅是后续专业课程的基础,也是学生以后从事编程行业必备的学习基础。通过对该课程的学习,可以培养学生的计算机逻辑思维能力,为学生从业后拓展职业发展空间打下坚实基础。本研究从C语言程序设计的课程特点、传统课堂教学模式的特点及学生学习认知的特点出发,分析了实际教学中存在的问题,并结合MOOC网络课程的特点,进一步探讨如何将MOOC与传统教学相融合,通过线上线下混合教学的模式来提高学生学习的积极性及实际编程的能力。

1 C语言程序设计课程

C语言程序设计是德州学院面向电子信息和物联网专业开设的必修课和专业基础课。该课程的前导课程是计算机应用基础,其后续课程有物联网软件设计基础、射频识别技术及应用、Java SE程序设计及实践、Android程序设计及实践、Android特色应用开发等专业课程,它不仅是电子信息类和通讯类等专业的基础课程,也是计算机、软件等各种专业等级资格考试中所要求的程序设计语言之一。

C语言程序设计课程内容繁多,主要包括基础知识概述、选择结构程序设计、循环结构程序设计、数组、函数、指针、结构体与共用体、编译预处理和文件等核心单元。每个核心单元中的知识点也很多,如:函数这一单元中就包含了函数的定义、函数的参数与函数值、函数的调用和变量的作用域与存储类型等内容,而且每个知识点中的内容还可以进一步细分。该课程的教学目标不仅要求学生了解算法的基本概念,掌握基本的语法知识,还要培养学生的计算思维能力及运用C语言编程来解决实际问题的能力[2]。以传统教学方式通过有限的64学时来完成以上教学内容并实现相应的教学目标,无论是对学生还是对教师来说,都具有一定的挑战性。

2 传统教学模式存在的问题

2.1 学生缺少自主学习的能力

C语言程序设计是大部分理工科的专业基础课程,很多专业的开课时间都设置在大一下学期或大二上学期。对于初进大学的很多学生来说,此时还没有形成自主学习的能力,而且C语言程序设计也是大部分学生接触的第一门编程类课程,无论是在学习方式,还是对课程的认识上,都还需要一定的适应过程。此外,C语言程序设计的学习内容较多,C语言语法繁琐,比较接近计算机的硬件底层,很容易让初学者摸不到“门”,特别是指针部分的学习。指针是内存空间的地址,在C语言中的应用十分广泛,利用指针可以有效表示各种数据结构,方便使用数组和字符串,能够简洁实现各种函数之间的数据传递,使编写的程序高效而简练。但指针的使用复杂,难以理解,容易出错,一旦发生错误,其纠错相对也比较困难。指针不但是C语言学习的重点,也是学习的难点。在教学过程中,经常有学生表示指针这部分内容特别抽象,很难理解,学习的时候有畏惧心理,以至于学习的主动性和积极性都不高。

2.2 教学方式及效果不尽人意

传统课堂教学大多是以教师为主体,学生被动接受的填鸭式教学。C语言程序设计内容繁杂,包括十几个章节,每个章节里面又有大量的概念和众多的语法规则,涉及的算法很多且比较抽象,前后知识点之间的相关性较强,加之有些学生学习的主动性和积极性不高,一旦某个知识点没掌握,就会对后续课程的学习造成很大影响,部分学生越来越听不懂,以至于渐渐丧失了学习的自信心。

C语言程序设计是一门专业基础课程,大多都采用大班或合班上课的形式。由于上课学生人数众多,教师不能兼顾到所有学生,不能全面掌握学生学习的具体情况。C语言程序设计的课时有限,一般周学时只有3个或4个,而课程的教学内容又很多,教师在课堂上花费大量时间进行内容讲解,留给学生自己思考和探索的时间较少,很难实现学生编程思维能力的训练,这也是目前学生实际编程能力普遍较弱的重要原因。

2.3 学生存在个体差异

学生在智力、学习能力和认知能力等方面都存在差异。学生之间的智力差异是客观存在的,从而直接影响其学习能力和认知能力。此外,学生学习的内部动机也存在差异,有些学生有很强的自我提高内驱力,对C语言本身很感兴趣,有很强烈的学习愿望,能主动学习,提前预习,很好地完成教师布置的任务,而有的学生更多依赖于外部动机,自己没有学习愿望或学习愿望很弱,在课堂上主要表现为注意力不集中,学习不认真、不努力。由以上的个体差异从而导致了学生认知方式的差异,也就是掌握知识过程中的具体表现差异,如学生是否提前预习、听课是否认真、课后是否复习、是否能很好地完成教师布置的作业以及在完成教师布置的任务之外能否更进一步积极主动拓展自己的知识面,等等。

不同学生对学习内容的接受程度是不同的,有的学生学得又快又好,能当堂掌握所学知识,甚至课后积极主动的进一步扩大自己的知识面,而有的学生学习能力和知识接受能力稍差,跟不上教师的节奏,难以掌握当堂所学知识。在传统教学中,因为教学进度及课时的限制,教师不可能反复多次讲解,也不可能对每个学生都能做到因材施教,这就使得有些学生进入了一步跟不上,步步跟不上的恶性循环。

3 MOOC的特点

MOOC简称为“慕课”,是英文Massive Open Online Course的首字母缩写,其中文直译为“大规模开放在线课程”。MOOC是在互联网大背景下发展起来的一种在线免费课程,其目的是使学习者不受地域、年龄、学习时间和学习地点的限制,能够根据自己的兴趣自主地、有系统地进行学习[3-5]。MOOC自出现以来就形成了一股浪潮,受到了极大关注,国内很多高校也都纷纷加入到MOOC建设中去。

针对C语言程序设计课程本身的特点,本研究分析了MOOC与传统教学方法相比所具有的优势及存在的缺点。MOOC通过互联网平台将传统课堂以在线学习的形式呈现,为学员提供优质视频、课件及教学资料,具有“大规模”“开放”“在线”三个最主要的特征[6-7]。越来越多的商业机构和高等院校都纷纷加入到MOOC建设的浪潮中,大大增加了网上课程的数量及种类,拓展了学生的学习途径,使学生的学习方式有了更多的可能性和选择性。

大数据统计,国内很多高校都开设了C语言相关的在线课程,如浙江大学翁恺老师的程序设计入门——C语言、C语言程序设计和C语言程序设计进阶及哈尔滨工业大学苏小红老师的C语言程序设计精髓,等等。中国大学MOOC网上有很多这样的国家精品课程,学生可以根据自己的喜好和需要选择适合的课程。MOOC的课程是以短视频的形式呈现的,其视频长度往往控制在20 min以内,主题鲜明,重点突出,特别适合C语言知识点繁杂的情况。传统课堂教学每节课长达45 min,学生很难保持始终如一的注意力,而MOOC时间较短,学生的注意力相对比较集中,可以很好地提高学习效率[8]。

随着互联网的普及,学生可以通过电脑、手机等多种终端随时随地进行上网,摆脱了课堂时间上的束缚,为更好地利用各种碎片时间进行学习提供了可能。和传统教学相比,MOOC的另一大优势是它的可重复性。同一班级中,不同学生之间的学习能力和认知能力是不同的,有的学生学习能力强,接受比较快,可以跟上教师上课的节奏,而有的学生反应比较慢,理解能力也比较差,课堂上跟不上教师的节奏,慢慢的,差距越来越大,以致失去学习的信心。若将MOOC引入教学中,每一个知识点都可以录成相应的视频、音频或其他类型的可重复载体,学生可以针对每一个知识点或某一个视频进行反复学习,不受时间和次数的限制。将MOOC引入传统教学,可以很好地解决学生学习能力差异与传统统一式教学模式之间的矛盾。

除了上面说到的各种优点,MOOC也存在缺点[9]。一是课程的监管问题。对于专注和求知欲强的学生而言,他们往往能自觉完成课前网上课程的学习任务,但对于一些基础较弱的学生而言,由于缺乏师生间的直接互动,加之本身的自制力较差,网上学习又有太多的诱惑,很容易注意力不集中。因此,在网课学习的过程中,学生的完成情况和学习效果都要打一个大大的问号;二是MOOC的互动性不如传统教学直接和有效。MOOC的互动性主要体现在讨论区及发帖提问,但无论是哪种方式,都没有及时反馈的效果,而在学习过程中,及时反馈是非常重要的;三是MOOC的录制往往需要投入很大的人力、物力及财力。如何在内容上更能吸引学生,制作高质量的课程,这对教学任务本身就十分繁重的教师来说有一定难度。虽然可以选择MOOC网络平台上的已有课程,但这种课程往往有时间限制,在上课时间的选择上受限制。

4 MOOC在C语言程序设计中的应用

MOOC是一种新兴的课程形式,既有网络课程的独特优越性,又有网络课程的一些弊端。要想将其运用到教学过程中,还需要不断进行研究和探索。关于MOOC在C语言程序设计中的应用,针对前面对此课程的分析以及该课程在传统教学中存在的问题和MOOC课程的特点,可以将传统教学和MOOC有效结合起来,取长补短,采用线上线下混合的方式充分发挥两种教学形式的优点。下面在教学的三个过程中分别加以讨论。

4.1 课前线上自主学习

教师根据教学内容,提前布置教学任务,让学生在网上观看相应的教学视频,完成初步的、低层次的认知过程,这一过程可以缓解课堂满堂灌的问题。至于所观看的视频,可以是教师本人录制,也可以是网上各种MOOC平台上的现有资源。虽然这个过程看似与传统教学中的课前预习相似,但在这种混合式教学中却是至关重要的,是混合式教学的关键。要想学生能自觉按时、按要求完成教师提前布置的自学任务,那就面临一个监管的问题,如何保证学生提前观看视频?建议采用学习小组的形式,小组以宿舍为单位集体观看视频并相互讨论,小组长负责监督。同时,教师在录制视频时也要考虑如何能更吸引学生,如何在微信、微博和抖音等各种软件中吸引那些求知欲不强、自制力不高的学生。针对C语言程序设计这门课,建议以知识点为单位设计课程视频,尽量短小精悍。如果知识点内容较多,可以适当分解,但不能打断课程的连续性和完整性。

4.2 课堂教学

课堂教学是以学生课前完成线上学习任务为基础,教师应该对学生课前的学习情况有一个大致的了解。学生应将观看视频过程中存在的问题反馈给教师,教师要通过提问进一步了解学生掌握的情况。在此基础上,教师将教学任务整体梳理一遍,使学生将独立分散的知识点形成完整的知识体系,并通过适当引导让学生掌握重点和难点。当教师和学生之间进行充分沟通且学生对知识有了深层次理解之后,进入编程训练阶段。教师要先根据程序实例讲解编程思想及编程过程中需要注意的语法规则,然后让学生自主上机练习,并通过改写程序进一步加强训练。这个过程中,教师的主要任务是引导并帮助学生解决编程过程中遇到的实际问题,比如一些不易察觉的逻辑错误,一些容易忽视的语法错误,等等。通过不断地练习和纠错,逐步提高学生灵活运用所学知识并熟练编程的能力。

4.3 课后巩固和实践

教师可根据上课的实际情况,布置一定的实践任务,比如根据教学任务设计几个趣味小程序,也可以完成MOOC网络平台上面的作业与练习以及每个章节后面的测验与作业,或根据学生的情况将两者结合起来。基于及时反馈在教学过程中的重要性,为了弥补MOOC难以在师生之间进行有效及时反馈的弊端,教师可以建立一个班级QQ群,这样就建立了师生之间实时有效的沟通渠道,学生在学习中遇到任何问题都可以在群中提出,教师或同学都可以给出及时解答。通过这种有效的交流,学生的疑问可以被高效解决。此外,通过学生的反馈教师能够知道学生有没有认真去学习和思考;通过教师的反馈学生也能知道自己的答案对不对,是否掌握了知识的要点。

5 结语

基于C语言程序设计的课程特点,在教学过程中引入MOOC网络平台,实现线上和线下的混合式教学模式。针对传统教学和MOOC各自的优缺点,将两者有效结合并给出了具体的方法和实施措施。MOOC平台的引入增加了学生和认知之间的链接通道,让教师课上的时间更加充裕。这种方式能有效改变传统教学教师满堂灌,学生被动接受知识的现状,也有利于调动学生学习的积极性和主动性,进而提高学生的计算思维能力和实际编程能力。

猜你喜欢

C语言程序设计编程
医学专业“Python程序设计”课程教学改革总结与思考
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
基于Visual Studio Code的C语言程序设计实践教学探索
纺织机上诞生的编程
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索