基于Online Judge的新工科计算机双学位程序设计课程实践

2019-10-21 08:16范江波张学辉张建兵
现代信息科技 2019年11期
关键词:学科交叉程序设计新工科

范江波 张学辉 张建兵

摘  要:新工科强调以信息化带动工业化,作为石油领域的行业性高校,我校培养的新型的石油人才应具有“学科交叉融合”的特征。本文以计算机双学位的“高级语言程序设计”课程为例,以Online Judge在线评测平台为基础地展开了混合式教学,进行了学科交叉融合案例的探索,为石油学科领域提供了信息技术的支撑。

关键词:程序设计;Online Judge;新工科;学科交叉

Abstract:The New Engineering stresses on promoting industrialization by informatization,as a professional university in the field of petroleum,the new petroleum talents trained by our university should have the characteristics of “interdisciplinary integration”. This paper takes the course of “Advanced Language Programming” with a double degree in computer science as an example,On the basis of Online Judge online evaluation platform,we have launched a hybrid teaching model,explored the case of interdisciplinary integration,and provided information technology support for petroleum area。

Keywords:programming;Online Judge;new engineering;interdisciplinary

0  引  言

近期教育部高教司發布了新工科研究与实践的文件,提出了对于工科建设的新目标和新要求[1]。《新工科建设复旦共识》中明确指出:“我国高等工程教育改革发展已经站在新的历史起点。国家正在实施创新驱动发展、‘中国制造2025‘互联网+‘网络强国等重大战略,为响应国家战略需求,支撑服务以新技术、新业态、新产业、新模式为特点的新经济蓬勃发展,突破核心关键技术,构筑先发优势,在未来全球创新生态系统中占据战略制高点,迫切需要培养大批新兴工程科技人才。我国已经建成世界最大规模的高等工程教育,工程教育专业认证体系实现国际实质等效,国家统筹推进世界一流大学和一流学科建设,为加快建设和发展新工科奠定了良好基础。”[2]

新工科是有别于传统的工科,是学科交叉的产物,强调以信息化带动工业化,作为石油领域的行业性高校,我校培养的新型的石油人才应具有“学科交叉融合”的特征,需要信息技术对各石油学科提供支撑。作为我校学科交叉点的计算机双学位,多年的计算机专业基础编程课教学经验、带领学生参与高水平学科竞赛的经验、双学位管理及教学的经验,使我更能够切身体会到,计算机双学位的学生带给主学科的进步与推动,以及在新形势面前,对于计算机双学位教育所提出的全新的要求。

1  编程语言课程教学面临的问题

作为任课教师,本文主要讨论计算机双学位教育中基础编程课程“高级语言程序设计”,程序设计课程是大学计算机基础教育和计算机专业的核心基础课程,是中国计算机科学课程体系2009(CCC2009)、美国计算机课程体系2013(CC2013)6门核心课程的第1门,决定着计算机专业学生的培养质量[3]。计算机学科的计算思维对于理工各科学生的创造性思维培养是必不可少的,计算思维的形成将成为各科学生自主创造、创新和创业的助推器,是培养复合型拔尖创业人才的一个重要内容。

计算机双学位专业的编程语言教学面临着以下问题:

一是如何培养新生独立思考自主学习的能力。如何吸引“网络原生代”的学习兴趣,让他们学会自学是教师面临的第一个问题。

二是传统编程语言类课程的教学案例不够生动,内容大多为经典算法的程序实现和数学问题的求解,与学生的生活和专业问题相去甚远,导致学生学习目标不明确,学习动力不足。

三是如何真正实现个性化教育的问题。学生的专业不同,信息化水平差异很大,如何因材施教,让所有的学生都能学有所获,满足学生的个性化需求,激发学生的个性、爱好、特长和潜质。

2  Online Judge平台简介

在过去几年的实践中,我们尝试将Online Judge(在线评测)平台引入了课程教学,取得了较好的效果。Online Judge平台(后文简称OJ),即在线的程序评测。用户可以在线提交多种语言编写的程序,在对用户提交的源码进行编译和执行后,平台通过预设的一组或多组测试数据来检验用户程序,用户即刻就能收到反馈信息。

我校OJ网站最初上线时间为2015年12月,目前有917个注册账号,6800余道题目,约39万次提交。平台与课程深度融合,不仅成功应用于16级至18级计算机系及双学位学生的课程学习中,还用于编程参赛队员的训练和选拔、成功举办了我校程序设计竞赛决赛及研究生复试选拔。经过团队的136次迭代开发后,该平台已经成功地融合了大数据、可视化技术,成为国内一流的在线评测平台。

Online Judge系统最初使用于ACM-ICPC国际大学生程序设计竞赛中的自动判题和排名。ACM-ICPC国际大学生程序设计竞赛(英文全称:ACM International Collegiate Programming Contest(简称ACM-ICPC或ICPC),是一项由国际计算机协会(ACM)主办的,旨在展示大学生创新能力、团队精神和在压力下编写程序、分析和解决问题能力的全球性的年度竞赛,ACM-ICPC国际大学生程序设计竞赛是目前全球最具影响力的大学生程序设计竞赛。2017年12月中国高等教育学会公布了《中国高校创新人才培养暨学科竞赛评估结果》,“ACM-ICPC国际大学生程序设计竞赛”(简称ACM-ICPC)排名第4[4]。

3  以Online Judge为突破口的教学实践

过去几年的实践中,我们以OJ为突破口,结合SPOC展开混合式教学改革,实现了教学模式及个性化教学的转变:由知识传授转变为既传授知识、又培养独立思考和自学能力;由单纯经典算法的程序实现转变为学科交叉融合案例;由专业化培养转变为个性化培养,让所有的学生都能学有所获。

3.1  推动混合式教学改革,培养学生思考与自学能力

教育不能只教知识,更要培养学生思考与自学的能力、为终身学习打下基础。作为学习活动的设计者,学习环境的营造者,学习过程的辅导者,教师的作用应该不仅体现在课堂上,更体现在如何主导学生课前和课后的学习。我们开展了“OJ+SPOC”的混合式教学改革,重造教学流程:学生课前在SPOC上预习,教师可以凭借教学经验或在SPOC中嵌入的形成性评测掌握学情,从而在课堂上展开有针对性的讲述或探讨,应精讲突出重点和易错点,传授编程思路,培养思辨精神[5]。传统纸质手工批改的作业有着较长的流转周期,学生在收到作业时可能已经忘了当初作业时的思考状态;课下通过OJ平台发放作业,学生在提交题目后可以即时收到精准的反馈,以便第一时间确认或者修正自己对知识点的掌握,及时查阅相关知识点改正错误,为后续学习打下坚实基础。学生自学时间、自学帮助性以及自学能力提升的统计如图1-3所示,证明OJ确实有助于自学。

3.2  将专业需求凝练成案例、习题

随着新工科建设的兴起以及人工智能技术的发展,傳统程序设计课程的教学面临着新的挑战和发展机遇,不仅担负着培养计算思维能力的传统任务,还要为计算机学科与其他学科的交叉融合做好知识与能力的储备。而目前非计算机编程教学普遍存在的一个问题是:教师不关注学生有哪些专业问题需要用程序求解,教学案例多半是简单数学问题求解和经典算法的程序实现。这些教学案例与学生专业问题相去甚远,学生无法将这些案例与自己的专业问题关联起来,学习目标不明确,学习动力不足。

在教师和完成程序设计课程的双学位学生的协助下,我们抽取了石油相关专业的适于编程的问题、设计成Online Judge格式的案例,并补充了测试数据,用于课程教学。案例连接起了程序设计与石油相关专业的问题,从而达到提升学生解决实际问题的能力。经过两年的积累,目前已有专业融合案例50多个,实践中效果良好,扩展了学生的知识面,为培养新工科的复合型创新人才做出了一份贡献。

3.3  用分级题库展开个性化教学

个性化教育的核心是允许学生有个性、有差异、有不同,真正使每个学生都能在学校找到适合自己的教育,让每个学生的天赋、特长、潜质都能得到充分发挥,让不同层次的学生都能有所收获,提高了学生的学习积极性。程序设计是一门实践性很强的课程,没有恰当的、饱和的训练辅助,学习效果将大打折扣。据此,课程团队针对不同基础、不同层次学生,利用大数据技术,分析历届学生的提交状况,根据通过率把题目分为三个等级:基础题(*)、提升题(**)、开拓题(***),使得学生可以根据自己的能力,循序渐进地选择做题的顺序以及做题的难度和数目,如图4所示

(1)基础题:考核学生的基本计算思维能力和简单的现实问题求解能力,该类题目旨在帮助学生强化基础知识,构建较为完整的知识体系,为培养后续的能力和实现教学目标打下基础。

(2)提升题:考核较高层次的应用技能,让学生能够综合运用所学的编程技术解决实际场景中较复杂的实际问题。

(3)开拓题:鼓励部分学有余力的学生在完成提升题后,可以选做部分开拓题。开拓题是具有一定的难度和规模的实际问题,学生通过分解、抽象、子问题求解、系统集成等步骤,完成对开拓题的求解,可以培养学生的计算思维、创新能力、使用计算机解决复杂现实问题的能力。

4  结  论

实践证明,架构在Online Judge平台上的专业融合案例,以能力培养为导向,激发了学生的学习兴趣,在专业问题的求解过程中,培养了学生的计算思维、创新能力、使用计算机解决复杂现实问题的能力,为新工科建设提供更好的信息技术的支撑。

参考文献:

[1] 教育部高教司.教育部高等教育司关于开展新工科研究与实践的通知(教高司函〔2017〕6号)[Z].2017-02-20.

[2] 教育部高教司.新工科建设复旦共识 [EB/OL].http://www.moe.edu.cn/s78/A08/moe_745/201702/t20170223_2971 22.html,2017-02-23.

[3] 姜学锋,刘君瑞.以赛课结合为抓手的编程技能培养 [J].计算机教育,2017(10):131-134.

[4] 陆国栋,陈临强,何钦铭,等.高校学科竞赛评估:思路、方法和探索 [J].中国高教研究,2018(2):63-68+74.

[5] 范江波,张建兵.高级语言程序设计混合式教学的系统构建与实践 [J].教育教学论坛,2018(44):130-131.

作者简介:范江波(1975.09-),女,汉族,山东莱州人,硕士研究生,讲师,研究方向:稀疏矩阵。

猜你喜欢
学科交叉程序设计新工科
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
面向新工科的Python程序设计交叉融合案例教学
新工科形势下高校二级学院毕业设计管理探索
新工科背景下大学生创新创业教育探索
新形式下计算机辅助翻译实验室建设探究
大学科技社团关于学科交叉建设的探索和思考
《机电传动控制》课程教学改革的探索