11月15日,2020年中国高校计算机教育MOOC联盟年会在北京盛大召开。会议吸引了来自全国各的地高校领导、高校计算机相关专业院系领导、MOOC名师、课程负责人、一线教师以及MOOC平台、行业企业的负责人等500余名嘉宾和代表相聚北京,在总结一年来实践的基础上,深入探讨后疫情时期计算机类在线开放课程在高校的广泛深入的模式和方法,以促进高校计算机类教育教学更好的发展。北京理工大学副教授黄天羽在会上以“会编程到懂软件:‘软件工程基础训练’混合式课程建设与实践”为题从强化专业认知找准教育教学问题、以问题为导向开展混合课程建设、线上线下混合模式开展教学实践三个角度作了分享。
北京理工大学副教授黄天羽
今天我汇报的题目是“会编程到懂软件:软件工程基础训练混合式课程建设与实践”。建设一流的课程,首先要找准问题。以问题为导向开展混合课程建设,进而进行线上线下混合式教学实践。
首先,我针对“软件工程基础训练”课程如何找准教学问题进行简单介绍。“软件工程基础训练”是北京理工大学开设的一门必修课,面向软件工程专业大二学生,这是我校软件工程教育专业认证的一个重要支撑课程。课程以讲授和实训相结合的方式,主要是培养软件工程学生的基本理念和能力。学生在这个阶段,主要特点是已经学习了一门程序设计语言,我校开设的是C语言程序设计。同学们普遍表现出,对本专业习兴趣浓厚,对软件工程的专业认知度较高。但是,学生们常常会有困惑,包括我自己在上学的过程中,我也有过“学了编程,我能做什么?”这样的困惑。
软件工程专业的定位是立足国家战略,服务国家工业智能化转型升级,解决自主产权数字芯困境,培养行业背景的软件工程人才。作为一名教师,我们还应该思考,如何帮助树立学生的专业认知的使命感,所以我们这门课还承载了一个重要的使命—树立软件报国的远大抱负。在课程中,引导学生树立软件报国的远大抱负,帮助学生建立开源社会利他的概念,因此,我们建议让学生了解当前我国的软件产业需求,将懂软件的认知提前。
在建设课程的过程中,为了实现从基础课向专业基础课转变,我们也提出了“1+N选1”的课程内容模式,引入多门国家精品在线开放课程,构建“强基础、重个性”的教学模式,同时新技术专题领域,来帮助学生构建从编程到懂软件的目的。
找准问题是课程建设的关键。以往课程教学中因为内容易,学时少,学生多,带来三个突出问题。先进的解数学题的内容与我们生产生活中实际相关的领域比较少,激发学生的学习兴趣比较困难。另外,编程要求高,软件方法广,学时供给不足。大班学生多,在一个课堂里,很难做到因材施教,缺失个性化的教学。面对这些挑战,我们以问题为导向,开展了线上线下混合式课程的建设。
2017年,我们加强了软件工程基础训练课程的总体目标,强化了从会编程到懂软件的过渡。课程里我们充分利用线上的资源,课程团队构建了以Python为工具的新工科路径的系列课程,总选课人数超过四百万,从2017年起用于本课程的教学改革。除了利用线上的课程资源之外,我们还出版了三本在线题库,构建了两千多个精品习题,通过Python123在线实践平台开展教学实践。本门课程的线下实体课堂,重点讲授方法,包括程序设计方法、软件开发方法;解析案例,如身边先进的计算案例和实际工程的案例;引入新技术专题,包括数据的、智能的、网络的和图形可视化的,指导学生结合个人兴趣完成综合项目选题,帮助同学们来初识软件工程。
整个混合课程建设的思路,是以会编程到懂软件为教学目标,培养学生具有软件工程实践的基本能力。针对当前面临的内容易、学时少、学生多所带来的学习兴趣激发困难、学时供给不足和个性化教学缺失的问题,我们重新构建了教学内容。教学内容由三个部分组成,分别是强化编程、实践领域和理解软件。
课程内容的建设要以问题为导向开展。
针对“兴趣激发困难”的问题,课程引入了先进技术和多领域软件技术,包括大数据、人工智能、虚拟现实等,引导学生的关注点从编程类的案例问题向实际应用类的软件工程转变。同时依托团队承担的科研项目,包括国家重大活动的科技保障任务,如奥运会、国庆、春晚等,通过将任务教学案例化引入课堂,大大激发了学生学习的热情。
针对“学时供给不足”的问题,我们通过引入一门Phthon课程,帮助同学们建立计算生态的概念,让学生更早接触先进领域,包括数据分析、图形可视化、人工智能以及虚拟现实等领域。通过引入线上课程,学生课前学习,课内老师精讲,课后开展训练,把编程基础加强提前到了课前,解决了学时不足带来的会编程但不懂软件的问题。课程由原来的讲授24学时和实践24学识扩展为线上24学时、讲授24学时和实践24学时。
针对“个性教学缺失”的问题,学生根据自已兴趣选择一门专题课开展线上学习,专题课课时精短,教学内容约12小时,进而根据所学专题开展综合实践项目设计和开发。通过选题,体现了同学们个性化选题和创新的意识。
通过解决上述的三个问题,我们对教学内容和组织进行了重构。形成了三个阶段的教学内容,分别为强化编程、实践领域和理解软件。综上,“软件工程基础训练”课程结合1+N共七门慕课,通过自主线上学习,课堂精讲提升,课后密集训练开展混合教学。
接下来介绍我们在各个阶段的课程是如何具体开展的。
第一阶段基础训练,强化编程。在这一阶段,课程主要讲授语法的重点难点、讲述程序设计方法和软件开发方法。比如给同学们介绍函数定义以及函数调用关系,进一步讲授分而治之的设计方法,通过引入一个简单的体育竞技分析案例来讲解模块化的设计。在应用案例中,为了让同学们生动的理解这种方法如何运用,通过引入平昌冬奥会北京文艺表演仿真系统的设计,使得同学们印象深刻的掌握了复杂软件系统的模块化设计思想。
第二个阶段实践领域,重点进行专题学习。我们引入了六门phthon专题课,在课堂上介绍软件设计流程。同学们在课下选择一门线上专题进行自学,设计自已感兴趣的实践项目。
第三个阶段理解软件,重点让学生开展综合实践。在课堂上主要讲授的是软件工程方法,学生通过课上交流和讨论,以及答疑环节,做到了知一懂多,学一会多。课下16个学时完成项目的实施,包括代码编写、程序测试以及项目文档。这就构成了我们整个软件工程基础训练从会编程到懂软件的教学内容组织。
在混合教学内容组织安排上,上面是线下部分,下面是线上的部分,学生通过12学时的慕课学习和12学时的一门专题课学习,开展两次编程实验,以及20学时的综合实践项目,达到了从会编程到懂软件的知识理解过程。
在线上线下混合模式开展的教学实践中,通过开展1+N选1的慕课学习,以及通过课前学习、课上精讲和课后实践对学时维度进行了扩展,构建了知识学习和实践相融合的教学模式,基本上解决了原本课程中的痛点问题。从2017年到2020年,我们在北京理工大学校内软件工程专业开展了课程改革实践,培养学生503人。总的来说,在学时维度扩展上,相比于传统课程,程序设计部分的讲授学时由原来80%降为30%,理论方法讲解的学时得到提升,解决了软件工程教学过程中学时不足的问题。特别是,以往在学习了一门程序设计语言之后,同学们能够编写的程序范围比较少。通过本课程Phthon以及相关的专题学习,学生们能够编写的软件范围随之扩大。
在开展混合式教学过程中,我们总结出“1+N选1”的混合教学模式。这个模式不仅适用于软件工程专业,也同样适用于其他专业,该模式构建了“从基础课,到建立快速的专业认知,向专业基础课演进的教学路线”。
在混合课程建设过程中,要更关注的是教学问题和关注教学效果。首先在课程中挖掘课程所存在的教学问题,通过线上的资源和线上的实践平台进行在线求解,构建自己课程的建设思路、建设方法和教学体系内容。最后进行线上线下的实施,达成一定的效果,去检验我们是否解决了教学问题。只有做好教学效果,这门课的线上线下混合式开展才能成功。
最后对整个课程教学改革做个总结。第一,坚持问题导向,挖掘“软件工程基础训练”课程所面对的教学问题。第二,经过四年,建设了软件工程基础训练的混合式课程,线上线下融入N门慕课。第三,探索了“1+N选1”混合教学模式在构建专业基础认知中的作用。
评论前必须登录!
注册