杨福强 尹西杰 刘美珍 赵建秀 孙育红
关键词:课程改革;程序设计竞赛;在线评测;混合式;实践创新
中图分类号:G642 文献标识码:A
文章编号:1009-3044(2022)36-0163-03
1 引言
近年来国家大力推行卓越工程师教育培养计划2.0,面向工业界、面向世界、面向未来,主动应对新一轮科技革命和产业变革挑战,切实推进基于实践创新能力培养的课程混合式应用型教学改革研究与实践具有深远的意义,计算机专业教学改革的突破口在于人才培养目标的定位,研究计算机专业课程改革对推进我国高等教育改革具有重要意义和深远影响。程序设计课程是计算机专业的核心课程,能否高质量地完成该课程的教学任务,对学生的职业能力、就业及其发展前途具有根本的影响。如何改革现有的程序设计课程教学模式,让学生有效地掌握程序设计实际技能,目前已经成为计算机程序设计课程教学急需解决的迫切问题[1]。
该校程序设计基础课程团队积极回应时代与学生需求,构建一种基于实践创新能力培养的《程序设计基础》课程教学模式,用MOOC教学内容、进行问题导向、以赛促学、任务驱动、以实践推动创新的教学方法[2],从技术层面解决困扰程序设计课程教学的瓶颈,提升学生的程序设计能力,实现学生计算思维的形成,满足国家社会、学校和个人发展的实践创新型新工科人才需要。
课程团队一是研究以培养实践创新能力为目标所采取的以国际大学生程序设计竞赛ICPC为导向进行教学实践和开发程序在线评测网站(Online Judge)作为学生平时线上训练平台的这一措施的教学训练效果[3]。二是研究变革课程考核方式、提高平时成绩比重、重视学生代码积累。结合线下作业,实验报告,ACM题库训练,考勤,探索实践教学的导向作用。三是进行基于“MOOC+SPOC+翻转课堂”的混合式教学试点,研究引入SPOC平台作为控制教学过程手段的教学实践效果。
课程团队结合创新型和应用型人才培养目标,确定程序设计基础教育的教学改革方案,构建知识能力结构体系,确定教学内容。培养好学生的创新能力、专业思维与实践能力,具体为:一是使学生達到社会就业及专业本身所需要的计算机基本知识和技能。
二是通过教改方案使学生在实践中形成程序设计能力、计算思维和创新能力,教师督促学生的学习训练,发挥好课上是教师,课下是教练,竞赛是向导的引领作用。三是使学生具备新工科新形势要求,培养学生在国际大学生程序设计竞赛上取得重大突破,满足应用型创新型人才培养市场需求。
2 问题分析
由于该校有浓重的女性特色,计算机相关专业虽然是理工科专业,但是仍然存在女生数量偏多,男生数量偏少的情况,问题分析与教学方案设定基于这一特色前提。现在的程序设计类教学内容设计中存在重视知识传授,忽视学生能力培养特别的解决复杂性、综合性问题的能力培养。存在学生程序设计的入门问题、程序设计能力提升问题、学生实践创新能力弱,计算思维培养不足的问题。具体如下:
1)当前该校在校大学生动手实践能力偏弱,专业程序设计训练不足,大学生创新能力不足、团队精神和在压力下编写程序的能力不足、分析和解决问题能力的有待提高。
2)在校大学生学习计算机的热情可嘉,但是缺乏专业的训练方法,在平时的学习中,仅仅靠教师布置作业,学生完成作业,教师检查作业的模式对于学生对掌握算法,代码能力的提升是低效的。在校大学生需要有更好的系统平台高效提升学生的代码能力与计算机思维。
3)该校在校大学生在当时代视野还不够开阔,专业上应该去学习国内外优秀教师开设的优质课程,提高教育质量,让学生站在巨人的肩上,站在大师的肩上,享受优质的教育资源。线上学习和线下学习相融合的新模式,将传统课堂、网络课堂和互动课堂进行有机结合,促进以学生为中心的教与学,可以有效体现教师对学生学习的指导和思维的引导,增加师生以及生生之间的互动交流,提高学生自主学习能力和学习主动性。
4)纸质考试已经不能实质性地考查学生的程序设计能力,显露出了很多弊端,学生重视成绩仅仅靠记忆提升来的成绩并不能说明学生有很好的代码能力。计算机专业要求学生用计算机编程实现算法,而考试却写在卷面上,平时训练目的与考试不能达成统一,很容易造成学生只会纸上谈兵、而不去实际上机实践提升程序设计能力的尴尬局面。必须改革考试形式,以切实提高在校在大学生的程序设计能力与计算机思维。
5)在当前生多师少的情况下,教师还不能高效教学。教师如何高效引领学生学习,对于教学效果起到了重要作用。怎校实现这一目标,是一个很关键的问题。教师高效教授学生学习的前提是了解每个学生在不同教学内容上的薄弱环节。在如今教师少学生多的情况下一直是不能解决的矛盾问题。学生学习进度无法实时掌握,不能做到教师对在校大学生的因材施教,如何高效提高教师的教与学生的学不相匹配的矛盾,需要教师详细了解学生对各个教学内容的掌握情况。
6)在校大学生学习效果应该更注重在平时教学过程中去检验,不能仅仅靠期末考试去衡量体现学生的学习效果,要继续提平时成绩的比重。对计算机专业的学生来说,学习程序设计应该是一件充满挑战、更充满乐趣的事情,然而传统的考核方式,常常让半数以上的学生感觉编程枯燥乏味,那是因为没有将编程的趣味性即编程之魂真正地挖掘出来。
3 改革方案设计和解决问题的方法
为切实达成实践创新型人才培养目标,解决当前存在的6个方面的关键问题,在该团队的改革方案中,提出6条对应改革措施,以期切实解决这些问题。措施如图1所示。
具体如下:
1)以赛促学,选拔学生参加国际大学生程序设计竞赛,以点带面。
引入具有广泛影响的国际大学生程序设计竞赛ICPC竞赛到课程学习中来,选拔学生参加赛事。国际大学生程序设计竞赛(英文全称:International Colle⁃giate Programming Contest,简称ICPC)最早是由美国计算机协会(ACM)主办的,一项旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的年度竞赛。经过40年左右的发展,国际大学生程序设计竞赛已经发展成为全球最具影响力的大学生程序设计竞赛,是世界上公认的规模最大、水平最高的国际大学生程序设计竞赛。
以ICPC 竞赛活动为有效载体,通过完善人才培养方案、将ICPC 竞赛与程序设计基础课程体系建设有机结合、建立健全ICPC 竞赛的科学运行机制、切实加强学生训练基地建设,积极探索培养创新人才的新模式,全面提高学生的国际视野、实践创新能力和综合素质[4]。
2)开发建设山东女子学院在线评测网站(SDWUOJ, Online Judge),变革学生学习实践训练方式,提升学生程序设计能力,形成计算思维,用好网络手段和先进方法理念。
由课程团队教师牵头组织开发网站,建设山东女子学院在线评测平台,这是一个在线判题系统(英语:Online Judge,缩写OJ),是可在编程竞赛中用来测试参赛程序的在线系统,OJ系统能够编译并执行代码,使用预设的数据对这些程序进行测试。提交的代码一般会在受限的环境下运行,包括时间限制、内存限制、安全限制等。代码的输出会被OJ系统捕获,与标准答案进行比较后返回结果[5]。学生的训练内容增加为课后题、在线测试题、小组项目、实验报告、测试等丰富多样的实践形式。提升学生在展示大学生实践创新能力、团队精神和在压力下编写程序、分析和解决问题能力。激发学生学习热情,全部学生在在线评测OJ平台上做课后练习,教师研究设计详细的针对性的训练计划,使学生逐步掌握课程的重点、难点,形成计算思维。
3)教学手段上使用基于“MOOC+SPOC+翻转课堂”的混合式教学。
课题组成员建设了超星MOOC课程和蓝墨云班课SPOC课程,课前学生预习、课中检查部分学生预习情况、课中线上现场做题,课下安排线上作业,让学生完成,平时课后作业迁移到线上去做,这样每次学生做完之后都会得到成绩,清楚自己学习的薄弱环节,及时学习跟进,教师一方面省去批改作业时间,更多时间和学生在课后线上互动;另一方面教师也得及时掌握学生的总体和个体的学习情况,便于调整教学内容与教学方法。
4)改革考试形式,变纸质考试为上机考试,增加学期中期评测频次。
改革原有纸质化作业及期末考试形式,全部变为上机作业和考试,扎实有效培养计算机专业学生实践创新能力培养,增加学期中期测试次数,以测试作为保障手段督促学生切实提高实践能力,让中期评测作为检验学习效果、了解学生掌握情况,监督促进学生学习长效机制,发现问题教师及时做出调整。
5)开发程序智能监测程序,实时掌握每个学生学习情况,因材施教。
针对山东女子学院OJ在线评测网站,开发智能监测程序,监测每个学生的学习情况,监测所有程序设计基础课程上课所有学生总体趋势、监测班级总体学习趋势。实时掌握学生学习情况,很容易发现学习进度较慢学生,根据数据对学生制订学生方案,因材施教。
6)改革综合成绩组成结构,降低期末上机考试成绩所占比重,增加平时成绩比重。
考核评价采用平时单元测试+综合测试相结合的方法,督促学生既掌握课程中应掌握的基本理论与方法,又能培养学生的综合应用能力。以增加平时训练、测试、监测方式考核学生的理论知识掌握程度,通过模块考试(平时成绩)+期中考试+期末考试的方式,对学生的学习起到常抓不懈的督促作用,为综合能力的测试打好基础[6]。上机考试主要考核学生的综合应用能力和程序设计方法的掌握程度。提高平时成绩在课程总成绩当中的比重,期末考试全部采用线上ACM-OJ平台考试,重视学生的代码积累。平时成绩包括作业、实验报告、ACM题库、考勤、中期测评考试。学生综合成绩=平时成绩50%+期末上机考试×50%。
4 创新点
1)教师引导锻炼提升学生程序设计能力,采用国际大学生程序设计竞赛训练形式和利用好在线测评平台OJ等实践训练方式。
在实践中锻炼提升学生计算思维;引入具有国际影响的ACM-ICPC竞赛训练平台线上学习方式来让学生进行程序设计课程的学习,教师教学方式更加契合当代大学生学习成长环境、作业抛弃纸质化、学生学习方式更容易激发学生学习兴趣、学习手段更容易接受。
2)综合成绩分数结构改革、上机在线考试方式更加注重考查学生的程序设计思维与实践创新能力。
3)课程采用基于“MOOC+SPOC+翻转课堂”的混合式教学模式。保证学生随时随地全方位全平台学习教学内容,拓展课堂教学。
5 成果
经过课程团队自2017年以来的努力,在以下几个方面取得了显著的成绩:
1)大学生创新能力、团队精神和在压力下编写程序的能力、分析和解决问题能力的显著提高。学生通过实践创新能力培养在培养学生在国际大学生程序设计等学科竞赛上取得奖项突破。
2)学生能够掌握程序设计的学习方法,提高程序设计能力,达到社会就业及专业本身所需要的计算机基本知识和技能。
3)学生学习视野得以开阔,学习国内外优秀教师开设的优质课程,提高教育质量,让学生站在巨人的肩上,站在大师的肩上,有更大更好的平台去享受更公平更优质的教育资源。促进了教育的公平化,提高了教育质量。可将传统课堂、网络课堂和互动课堂进行有机结合,促进以学生为中心的教与学,有效的体现教师对学生学习的指导和思维的引导,增加师生以及生生之间的互动交流,提高学生自主学习能力和学习主动性。
4)切实提高了在校在大学生的程序设计能力、计算机思维、创新能力。
5)教师高效引领学生学习,提升教学效果。教师了解每个学生在不同教学内容上的薄弱环节。实时掌握学生学习进度,教师详细了解学生对各个教学内容的掌握情况,做到教师对在校大学生的因材施教。
6)科学综合评价学生的学习效果,引导学生加强课外自主学习,培养学生的计算思维能力和创新思维能力,为后续课程学习和今后工作打下坚实的基础。
在ICPC国际大学生程序设计竞赛方面,以省赛为例,从2017学生参赛没有做出题目,2018年参赛开始做出题2道题目来但是也没有获奖,2019年学生做出5道题目但是仍然没有获奖,2020年因疫情比赛暂停一年,2021年学生首次在ICPC竞赛上获奖,并获得铜牌两项,这几年来学生的竞赛成绩一直在稳步提升。蓝桥杯竞赛方面,2020年获得国赛省赛10项和2021年获得国赛省赛15项。这两项赛事的获奖对于学生而言是巨大的鼓舞,更多的学生看到了教学改革的效果,愿意加入进来。还有队员的编程能力的提升也帮助其在数学建模等赛事上获得奖项。这一竞赛提高他们的分析和解决问题能力、团队精神等实践能力和创新能力。
6 结语
传统的教学模式中强调知识传授,很难满足个性化、差异化的群体需求,师生间交流较少,学生编程能力训练不足,缺乏团队合作。针对目前传统教学模式的缺陷,本文进行了混合式教学改革,通过引入ICPC 学科竞赛训练形式,参考学科竞赛、改革考试成绩组成结构,使用基于“MOOC+SPOC+翻转课堂”的混合式教学模式,着重培养学生通过程序解决问题的能力,以及计算思维能力和团队协作能力。通过對比分析近年来学科竞赛取得的成绩,教学改革达到了预期。以后会进一步攻坚克难,争取在奖项上不断取得新的进步。