徐科,孙媛
(1.中南民族大学计算机科学学院,武汉430074;2.湖北中医药大学科学技术处,武汉430065)
随着互联网Web2.0和云计算等技术的成熟以及知识传播的日益全球化,教学形式呈现多样化,以慕课(Massive Open Online Course,MOOC)为代表的在线学习平台是一种新的教育模式[1]。国际慕课平台edX、Coursera、Udacity和国内慕课平台学堂在线(Xu⁃etangX)、好大学在线等在线学习平台吸引了近千万用户参与学习,慕课理念与实践获得包括哈佛大学、麻省理工学院、斯坦福大学、北京大学和清华大学等国内外优秀大学的认同。慕课具有免费性、开放性、易用性、大规模和学习资源丰富的特点,面向学习者提供在线教学视频、习题作业、测验练习及交互式讨论区,突破学习时间和学习场所等限制,让学习者可以更方便地获取知识[2-3]。同时,鼓励学习者更多自主地学习知识和参与讨论,形成创造性和自主性的知识学习社交网络,引导学习者相互交流和传播知识,相互促进和共同进步[4-5]。
针对高校计算机课程的教学现状和面临的问题,诸多学者论述了大学计算机课程进行教学改革的必要性,从内容、模式和考核等方面提出改革建议。文献[6]以学生为主体,分层次、分模块、有针对性地划分教学内容,运用MOOC和SPOC等教育新模式,对教学和考核进行合理设计。高校程序设计语言类课程的学习具有实用性、普及性等特点,计算机程序设计语言是MOOC平台的开设的重要课程之一。王之元探讨运用MOOC工具同课堂教学相结合进行课程设计实践教学。从概念图、学习目标、主动学习和评价等4个方面开展研究,提出具体建议和操作方法[7]。文献[8]结合Java教学实践,讨论MOOC平台选择和资源建设需要注意的问题,探讨MOOC与课堂教学的有效融合,提高学生的学习兴趣和培养学生创新能力。郑炜分析了MOOC在西北工业大学的《软件测试》课程的实践情况,提出结合MOOC的软件测试课程教学方法[9]。文献[10]分析MOOC对数据库原理实验课程教学的影响,并从实验平台建设、内容、教学方法等方面,提出数据库原理实验教学改进建议。MOOC还被用于高校创业教育课程,在教学与实践环节,采用MOOC、实验拓展和反馈调试等3种模式,构建一个多层次、模块化的理论学习和实践环境,丰富教学效果,更好地指导大学生创业[11]。
当前,计算机学科知识发展日新月异,编程语言不断推陈出新。1972年,C语言由美国贝尔实验室推出,它可以编写系统应用程序,也可以作为应用程序设计语言。1983年,美国贝尔实验室Bjarne在C语言基础上推出C++,它是一种面向对象的程序设计语言。1995年,Sun公司推出Java语言,它具有卓越的通用性、高效性、平台移植性和安全性。1989年,Guido发明Python语言,它的语法简洁而清晰,具有丰富和强大的类库。
程序设计语言类课程是计算机学科的专业基础课程,学生的学习效果直接影响后续专业课程的学习。目前,程序设计语言类课程教学主要面临以下几个问题:(1)教学思想和方式陈旧。教学方式主要以书本为核心、以教师为主导、以课堂为中心,这种单纯知识传授的教学模式可以快速和系统地传递知识,但这种“灌输”方法不利于培养学生的创造能力和创新思维。培养具有创造能力的人才,需要改变传统的教学方法。(2)学习者主动性缺失。在传统教学模式下,学生是被动接受的“听众”群体,忽视调动学生主观能动性。在课堂之外,由于各种因素导致教师和学生双向交流不足,造成学生虽在课堂但没有进入到学习状态的现象。(3)理论教学脱离实践。理论教学过于强调语法知识、注重语法细节,导致知识讲授抽象、枯燥和无味。特别是低年级学生大多数初次接触编程语言,往往难以理解和接受,导致教学成效不佳。
国内外高校的课堂教学模式有着较大的不同,美国高校针对低年级学生采用课堂教学和小组讨论模式,针对高年级学生采用开放式课堂教学模式,程序设计类课程往往需要独立完成项目实践。英国高校主要形式是学生阅读相关内容,作课堂汇报,教师会提出问题,学生就问题在课后继续查阅文献资料,准备下一次汇报。国外高校教师授课是以讲座和研讨会的形式进行,课程对学生能力的考核包括资料查阅、方案设计、社交能力、协助精神、领导力和表达能力等方面。国内高校教学模式主要是传统课堂讲授形式,受制于师资力量和教学资源限制,针对本科生的课堂教学暂时无法实施开放式课堂教学模式,但是在研究生阶段的诸多课程采用课堂汇报和分组讨论形式。由此可见,国外教学模式的特点是“学生为中心”和“重视合作学习”,国内在逐步向这种教学方式转变。MOOC是促进和加速这种教学方式改变的重要工具。
MOOC的迅猛发展,其教学效果受到越来越多的关注。但慕课针对学习者不限制选修条件,由于学习者的基础知识参差不齐,导致慕课注册率高但完成率低[12]。相关研究对当前部分高校在主流慕课平台的学习行为数据进行统计发现,虽然有课程完成率能达到40%的情况,但大部分课程完成率不到10%[13]。慕课的高辍学率和未通过率,是困扰当前包括MOOC在内的在线教育面临的重大难题。提高学习者的学习效果是势在必行,诸多研究通过对在线学习行为与学习效果的关系进行实证研究,发现学习者的学习行为对学习效果有着重要影响[14-15]。哈佛大学、加州大学伯克利分校等全球顶尖高校提出一种比慕课更精细化的课程教学模式——SPOC(Small Private Online Course,小规模限制性在线课程,微课)[16],这类课程的人数规模一般限制在几十人到几百人,要求学习者满足一定门槛要求。微课同慕课一样属于免费在线课程,是融合了实体课堂与在线教育的混合教学模式[12,17]。
MOOC为学习者提供一种新的知识传播模式和学习方式,给学习者带来影响是多方面的:(1)满足学习个性化需求。慕课促使学习者从被动型和功利性学习环境中解脱,让他们体验到非功利性的学习兴趣,形式灵活的微课更贴近新时代大学生的个性化需求和学习习惯。(2)提高学习的自主性。慕课教学模式给学习者更大的灵活自主性,他们可以自主选择学习时间和地点,随时随地学习短视频微课;在较好的学习状态时,选择学习内容和学习进度、视频的观看次数,实现按需学习。(3)增加学习交流互动。慕课给学习者提供更多参与学习活动和互动交流的机会,例如:在线练习、作业互评、学习社区中的交流讨论。学习者与其他学习者、教师等通过平台进行交流互动,突破只能当面向教师提问题的限制,增加学习交流互动的机会。
程序语言设计类课程教学改革,主要从在线学习环境、课堂教学手段、考核方式等三方面着手。通过两个学期的实践,以《C++面向对象程序设计》课程教学为试点,进行教学模式改革探索和实践。
根据计算机类专业学生的实际情况,借鉴微课的教学模式,课程学习流程分为几个环节:(1)课前根据任务开展在线自主学习,观看视频、学习资料,并进行提问。(2)课堂上根据学生的掌握程度,有针对性地讲解和讨论,选取重点案例剖析。(3)课后在线提交作业、实验报告和项目材料。
在国家精品课程资源网(http://www.jingpinke.com)上,选择浙江工业大学的钱能老师开设的《C++程序设计》精品课程作为本课程的学习资料。在2017年至2018年的第1个学期和第2个学期,我们在PTA程序设计类实验辅助教学平台(https://pintia.cn/),分别创建了《C++蓝桥杯竞赛编程》和《C++面向对象程序设计》两门课程的在线学习课程练习模块,前者是面向2014级至2016级计算机专业的选修课,后者是面向2017级计算机科学与技术专业的基础必修课,见图1所示。
图1 在PTA平台开设的课程练习题目集
国外CDIO工程教育理念将课堂教学划分为构思(Conceive)、设计(Design)、实现(Implement)和运作(Operate)等环节[18],涵盖培养计划、教学方法、师资、学生考核以及学习环境等方面,以期达到“做中学”和“基于项目的教育和学习”的目标。根据计算机专业的程序语言设计类课程的相关要求,考虑学生的基础知识特点,我们的课堂教学采用了以下多种教学手段相结合。
(1)课后视频回看与小结。针对上课没听懂的内容,要求学生在课后通过观看MOOC教学视频来补救和复习,并且需要简要进行小结。(2)课前预习与提问。针对即将学习的内容,要求学生在课前观看MOOC视频进行预习,并且要能够提出问题,在任课教师课堂讲授时候进行回复或者提问;带着教师在课堂提出的问题在课后去回看MOOC视频,达到更有效率和有针对性学习。(3)自主在线练习。在PTA程序设计类实验辅助教学平台定期发布在线训练题目和自主测试作业,给学生提供更多编程锻炼机会,培养他们的自主学习能力。(4)自我评价与反馈。在线作业允许学生多次提交,采纳最高分作为最终成绩,学生提交后发现错误后可再提交。每一次提交的错误结果反馈,可以大概指出问题所在,促使学生在多次作业提交中强化所学的知识,达到自动反馈与自我评价,达到“在学中做,并在做中学”的学习效果。(5)项目实践驱动教学。挑选一些有趣、有实际意义、难度适中的“任务”或经典算法以项目实践形式布置给学生。先将课程中抽象的概念与实践任务结合起来,以此加深对概念的理解,再将课程中的重点、难点分解,适时、适量地渗透到各个任务中,让学生循序渐进地学习程序设计的思想和方法。
MOOC环境下程序语言设计类课程教学,要能够保持学生参与学习的持续性。通过MOOC平台提供丰富的学习资源给学生,通过在线练习平台给学生提供训练机会,通过互动讨论及时答疑解惑。在线上和线下学习过程中,提供一些帮助和指导可以帮助学生克服困难、保持兴趣。除了教师的答疑之外,可以鼓励学有余力的学生参与答疑、讨论、互动,来提升学习体验、学习效果。
课程考核是检验教学效果和学生掌握水平的有效方式。计算机类专业的C、C++、Java和Python等程序设计语言是强调操作性、实践性的课程,要求学以致用和解决实际问题。本课程的考核拟采用理论卷面考试、上机实验考试与在线练习考核相结合的方式。本文探讨《C++面向对象程序设计》课程的考核成绩由3个部分构成:(1)平时课堂情况:包括考勤、课堂讨论、回答提问、实验题解答、综合项目完成情况。(2)理论卷面考试成绩,主要考察基础知识的掌握情况,题目类型包括选择题、判断题、填空题、程序结果分析、编程题等。(3)在线练习成绩,在PTA程序设计类实验辅助教学平台完成作业的情况。
本文将选修了《C++面向对象程序设计》的4个小班的学生作为研究对象,分为试验组和对照组,每组两个小班。试验组的教学采用MOOC和SPOC资源,在PTA程序设计类实验辅助教学平台进行在线练习。对照组采用传统教学方式。在数据预处理环节,考虑到对比的可信度,将两组学生都限定为该课程的初学者,将选修学生中非应届初修者的学习数据剔除。
两组学生的教学手段略有不同,但是教学进度相同。试验组的学生被要求在PTA程序设计类实验辅助教学平台进行三次在线练习,每次练习题目根据前一阶段的教学内容进行设定,每次练习题目集由判断题、选择题、函数题、编程题等几种题型构成。三次在线练习考核的知识模块和知识点的分值情况、学生答题情况、得分率,依次见表1、表2、表3所示。
表1 第一次在线练习考核的知识点得分情况
表2 第二次在线练习考核的知识点得分情况
表3 第三次在线练习考核的知识点得分情况
表4 试验组期末考试卷面成绩统计分析
三次在线练习题目覆盖了《C++面向对象程序设计》的知识点,针对知识点得分情况的统计分析,可以分析学生整体的掌握情况。通过分析学生答题过程提交答案的时间、次数、频率等,可以微观分析每位学生针对相关知识的掌握情况。
本文选择期末考试卷面成绩来分析两组学生的学习效果,试验组期末考试卷面成绩统计分析见表4所示,对照组期末考试卷面成绩统计分析见表5所示。试验组学生的平均分为74.67,对照组学生的平均分为71.86;前者的优秀率为17%,后者的优秀率为10%。总体来说,试验组学生的表现优于对照组学生的学习表现。两组学生均来自2017级相同专业的学生,任课教师也相同,学生的选择哪个班级课堂进行学习,是他们自由选择。实验对照结果表明,采用MOOC和SPOC教学模式有助于提高学生的学习效果。
表5 对照组期末考试卷面成绩统计分析
采用MOOC和SPOC教学模式的班级,学生在学习过程中具有更大的优势,讲授内容可以随时重复,得以加深巩固知识;在线练习过程和结果,可以方便教师查看,给出有针对性的学习建议;在讨论区与教师、同学有效互动,提高答疑的效率。因此,计算机类专业程序设计类课程可以尝试采用MOOC和SPOC模式,它能提升教学效果,加深学生对问题的理解和提高学习效果。MOOC环境下的程序设计类课程教学,采用MOOC和SPOC方式改变传统的教学手段,融合线上和线下的混合式教学,在高校课堂中的应用切实可以提高教与学的质量。