新工科背景下程序设计类课程教学改革

(整期优先)网络出版时间:2021-07-14
/ 5

新工科背景下程序设计类课程教学改革

李瑞旭 姜远明

烟台大学 山东烟台 264005

[摘要]新工科对人才培养提出了新的要求,在分析传统程序设计类课程教学中存在问题的基础上,提出通过修订课程教学大纲、重构教学内容、以小组为单位协同完成综合实验项目和多元化考核方式等措施,着力培养学生应用能力、创新能力和协同能力,以适应软件产业发展对人才的需求。以.NET系列课程为例,介绍了具体改革过程,分析总结了教学改革效果。

[关键词]新工科;创新能力;协同能力;教学改革

1引言

以新技术、新业态、新产业、新模式为特点的新经济快速发展的背景下,教育部自2017年以来,积极推进“新工科”建设。2017 年,教育部发布《教育部高等教育司关于开展新工科研究与实践的通知》,对人才的工程能力培养提出了新要求,需要更新人才培养体系,将新技术和发展前沿引入教学过程[1]。对于计算机专业的大学生而言,新工科建设不仅要求学生具备计算思维能力、程序设计与开发能力,而且更强调学生具备创新能力和协同能力[2]。.NET、Java、Python、C/C++等程序设计类课程具有较强的专业性和实践性,对于提高学生分析和解决复杂工程的能力起到关键作用,成为本科院校培养满足现在软件产业人才需求的重要环节[3]

目前,国内外高校已对程序设计类课程的教学进行了改革。但是,在新工科理念的指导下,面向软件产业发展的新要求,以学生为中心,以学术界和产业界关注的前沿热点项目为导向的教学改革研究尚处于探索阶段,如何调整适应新工科发展需要的教学模式与方法仍是值得研究的重要问题[4]。近年来,笔者所在学校在.NET、Java、Python、C/C++等程序设计类课程教学中,通过修订课程教学大纲、重构教学内容、改革实验教学、采用多元化和过程化考评方式等教学改革措施,努力探索面向新工科人才培养的程序设计类教学改革,以期不断改进程序设计类课程的教学效果,培养具备实践能力、创新能力和协同能力的高素质复合型人才,满足新工科对人才的需求。

2程序设计类课程教学面临挑战

近几年来,高校教育工作者从各自教学实战中,就当前程序设计类课程教学存在的共性问题,以及如何开展教学改革应对这些问题展开了教学探索,相关教研论文在理论和实践探索方面进行了研究与提升。这些问题归纳总结为以下几个方面:

(1)教学模式无法适应软件产业对人才需求

自主创新是软件产业发展的灵魂。程序设计类课程传统的“课堂+实验”教学模式已经不能适应软件产业对人才培养素质的要求,导致学生的创新能力欠缺、自主实践能力较差[5]。具体表现为基础知识掌握普遍较好,在各种考试中成绩良好。但面对实际工程项目则不会主动寻求解决问题的途径,没有主动学习的意识,缺乏创新能力。

(2)理论教学模式落后

程序设计类课程一个特点不但需要掌握的理论知识点较多,而且要求有比较充足的实践锻炼时间。教学过程中普遍遇到问题是授课时间有限,感觉理论课时紧张,理论授课往往采用“满堂灌”的方式;而由于实践时间不足,学生缺乏分析问题、解决问题能力的训练。这种局面长期存在下去,导致学生普遍存在“面对实际问题无从下手”的现象。长此以往,课程学习跟不上进度,对课程存在反感或畏难。编程能力尚且得不到提高,更谈不上创新能力和协同能力的培养。

(3)实验教学缺乏对课程总目标的全面支撑

程序设计类课程实验大多是验证型实验,实验形式比较单一。这种实验只能训练学生对基础理论知识的掌握和巩固。缺乏对知识综合性运用训练,也缺乏团队协作的训练。这与课程总目标是不相符的。

(4)考核方式单一,缺乏科学性

传统期末一张试卷的考试方式是评价学生学习效果的重要手段[6]。这种考核方式无法适应“培养学生应用能力、创新能力和协同能力”的课程目标。单一考核方式只能引导学生对知识的死记硬背,缺失综合能力的培养,是一种应试教育下的考核方式,与当前软件行业对人才的要求相差甚远。

这些问题是各高校程序设计类课程教学中共性问题,如何解决这些问题许多教育工作者进行了有益的探索。我们在此基础之上,从课堂设计、实验教学和评价方式等方面进行了探索和实践。

3课程教学改革总体设计

在新工科背景下,程序设计类课程教学改革总体原则是以软件产业对人才需求为导向,采用OBE工程认证理念,围绕课程教学大纲修订、教学内容重构、课程资源建设、实验教学改革、考核评价方式改革等方面展开。并通过课程目标达成度分析,定量评价教学改革效果,为持续改进指引方向。

3.1修订课程教学大纲

OBE工程教育认证主要倡导三个基本理念“以学生为中心、以产出为导向、持续改进”。在新工科背景下, OBE核心思想为以学生的学习产出驱动整个教学过程。培养目标的设定是整个实施过程的开始。通过对毕业5年以上学生问卷调查,走访省内一些企业,以2015 年我国工程教育认证协会确定的一般性的工程专业学生应具备的 12 条毕业要求为准则,客观评价了毕业生解决复杂工程问题的能力

[7]。并以此溯源,分析了原培养方案的优点与问题。教学团队据此确定了清晰的培养目标,修订了原培养方案,分类有序优化了各课程教学大纲。下面以《.NET开发技术》课程为例,说明修改后的课程目标与毕业要求之间的支撑关系见表1。

表1 课程目标及其对毕业标准指标点的支撑

课程目标

支撑的毕业标准指标点

权重

课程目标1:掌握.NET基本语言、类库、集合的使用【掌握】,熟练掌握面向对象的程序设计思想及方法【掌握】。对实际问题运用所学知识进行分析、设计和实现【创造】。

3-2 能够针对特定需求,完成软件模块的设计与实现【创造】;

39

课程目标2:掌握.NET平台上各类应用开发【掌握】,能根据具体问题,完成需求分析【分析】,综合运用上述技术开发出满足需求的应用【创造】。

5-1 能开发【创造】、选择与使用【应用】恰当的技术、资源及工具,完成软件工程领域的复杂工程问题的模拟、仿真与开发;

46

课程目标3:对一些复杂工程问题,以团队协作方式,完成系统分析、设计、编码实现、测试和优化【创造】。

9-2 能够在团队中独自或合作开展工作,具有良好的团队合作意识;

15


3.2重构教学内容

程序设计类课程特点是操作性强,传统的课程目标是系统地掌握相关知识,强调的是编程能力、算法能力。在新工科背景下,需要侧重培养运用所学知识和方法分析、解决实际工程问题能力,以协同能力。因此,需要借助课程内容重构使得课程教学支撑课程目标。

课程组通过知识点管理方式,将课程目标细化到每个知识点的掌握和应用中,而且要求每个知识点具备可度量、易评价、高内聚、低耦合属性。在教学过程中,教师通过组合这些知识点建立从课程目标到教学内容的对应支撑关系。学生每个评价环节考核评价通过,则表明学生在相关能力点达到考核要求,以此来保证课程内容对课程目标达成支撑的有效性。表2是《.NET开发技术》课程内容能力要求与课程目标之间的部分支撑关系。

表2课程内容能力要求与课程目标之间的支撑关系(部分)

章节

知识

单元

教学内容

教学内容要求

能力

要求

支撑

课程

目标

9.1

9.3

D11

D12

D13

(1)ADO.NET

(2)数据库的连接

(3)直接访问数据库

(4)集体项目实验

能了解ADO.NET框架下.NET数据提供程序和DataSet两个核心组件。能熟练掌握数据库操纵的常用方法。

培养学生协同能力和综合能力

能够基于软件工程思想,应用数据流图、用例图完成需求分析;能够掌握数据库操纵的常用方法

课程目标2

课程目标3


3.4实验教学改革

新工科培养的是实践能力和创新能力强,具备国际竞争力的高素质复合型人才。课程组对实验课从内容、组织、考评三个方面进行了教学改革。首先,将实验课分为单元实验和集体项目实验两种类型。其中,单元实验主要以知识单元为单位的设计性实验;集体项目实验以小组为单位集体完成1~3个实际工程项目。

3.4.1单元实验

单元实验基本沿用传统实验课模式。教师给出实验内容、目标、要求,要求学生在自建的OJ平台上完成。对能够采用OJ平台自动评分的实验采用自动评分,不能实现自动评分的实验采用学生自评的方式。实验成绩由实验评分(60%)和报告分(40%)组成。

根据单元实验项目要达成的目标,设计了下列资料:

(1)设计了实验总结模板。学期实验结束后,每个学生都要在此填写自己的实验完成情况,总结实验在知识、技能方面的收获、感受,以及对课程学习、实验的改进意见。

(2)设计了实验自评标准量表,用于学生对实验的自评。

(3)设计实验总结评价标准量表,用于教师评价学生提交的实验总结。

3.4.2集体项目实验

集体项目实验目的是培养学生的创新能力和协同能力。一般5~9人为一组,集体完成1~3个规模较大、技术较复杂、贴近实际应用的工程项目。教师只给出项目的基本要求,具体项目、功能由小组自行设计。

集体项目实验时,每组提交一个软件系统(应用)、一份项目报告,组内学生得分相同。具体作法为:

(1)每个集体项目实验开始之前,由教师在课程网站发布文档,明确分组、技术要求、进度安排、评分办法、验收标准、报告要求等,并选定小组长。每组自主拟定具体项目功能、实现技术。(2)在小组长协调下,完成组内分工、需求分析、设计、编码、测试、实验报告撰写、验收答辩准备等工作。(3)验收评委由教师和每组随机抽取1名同学组成。另外,教师在每组随机抽取一名同学代表本组进行项目讲解、回答评委问题,由评委给每个小组打分。图1是2020-2021第1学期《.NET开发技术》集体项目实验答辩、验收现场。图2 是该学期《.NET开发技术》课程集体项目实验学生评委、答辩人员和原始成绩。(4)教师统计各组分值,按照“(同学评委去掉一个最高分和一个最低分后取平均分*0.5+教师打分*0.5)*0.6+实验报告*0.4”计算出各组百分制的分值,并进行总结、讲评。每组一个成绩,组内成员按照此成绩计分。

60eea75d510b5_html_7329fd7cbb8157d4.jpg

图1 2020-2021第1学期《.NET开发技术》课程分组实验答辩现场


60eea75d510b5_html_6171631afa97713d.png

图2 2020-2021第1学期《.NET开发技术》课程分组实验学生评委、答辩人员和原始成绩


集体项目实验的改革在多个学期的教学过程中进行了尝试,其收获可以归纳为四条:(1)克服单个学生在较短时间内无法完成较大较难项目弊端,通过一些实际集体项目调动了学生创造性,激发起成就感和使命感。(2)学生喜爱,热情之高出乎意料;(3)学生作品质量之优超出意料;(4)学生评委认真程度之高出乎意料。

3.5考评方式设计

OBE教育理念强调建立科学的教学评价机制。此次课程教学改革采用多元化、过程化、项目化的考核方式取代“期末一张卷”单一考核方式。以2020-2021第1学期的《.NET开发技术》为例,课程总成绩=期末成绩*0.5+9次随堂测试*0.15+2个集体项目(按组计成绩)*0.15+10次单元实验*0.10+7次作业*0.10,具体如表3所示。期末考试、随堂测试为机考,客观题自动阅卷,主观题(编程题、设计类题)人工阅卷。

表3 课程评价方式与成绩评定方法

课程目标

毕业要求

指标点

评价方式与成绩评定

分值

集体

项目

随堂

测验

实验

作业

期末

考试

课程目标1

3-2

0

10

4

5

20

39

课程目标2

5-1

0

5

6

5

30

46

课程目标3

9-2

15

0

0

0

0

15

合计

15

15

10

10

50

100

通过多元化考核方式不仅考核学生对基础知识掌握,而且考核其综合应用能力;通过过程化考核方式,持续刺激学生学习积极性和参与性,不断衡量和纠正教学过程;通过项目化的考核方式,强化对学生创新能力和协同能力培养。这种考核方式改革也与OBE工程教育认证的理念一致,着重关注学生学习过程和效果,用目标和指标来衡量和推进教学工作。


4教学改革实施、评价与持续改进

笔者所在学院近几年为本院本科生不同专业开设.NET、Java、C/C++三种程序设计类课程。在新工科背景下,2019年起开始实施工程教育专业认证,程序设计类课程组积极参与面向工程认证的教学改革,依据专业培养目标和毕业要求,确定课程教学大纲为培养学生应用能力、创新能力和协同能力。课程组从教学大纲、教学内容、实验教学、考核评价方式等方面展开系列教学改革。

4.1准备阶段

为了配合课程教学改革,课程组经过多年持续建设,构建了较为完整的课程资源,为课程教学改革做好准备。

(1)组织编写了序设计类课程相关教材。先后自编了.NET、Java、C/C++三类课程本科生教材,教材也进行了不断改进,推出了第2版、第3版。

(2)依托学校网络综合教学平台以及云班课等互联网教学资源平台,创建了课程网络平台和考试平台,已投入使用多年,且持续补充完善。课程网络平台包含了教学视频、答疑讨论、课程作业、课程问卷、课件、实验、在线测试等诸多模块。考试平台采用系统自动判卷为主,人工阅卷为辅的方式,极大地降低了教师阅卷的工作量,使得随堂测验常态化成为现实,课程考核更合理和客观。

(3)各程序设计类课程均建设了课程题库。比如,《.NET开发技术》课程已经配套建设了1800道试题的题库,且不断在充实。

(4)依托云班课APP,为课程网络平台配套了移动端课程在线学习APP,内容与课程网络平台同步。

课程资源建设为教学内容重构奠定了基础,也为多元化、过程化考核方式提供了支撑。

4.2实践阶段

课程组依据新的教学大纲,分理论教学和实验教学两个方面实施教改。理论教学采用线上线下混合式教学模式,将教学内容分为线下学习和在线学习两个部分进行组织设计。实验教学按照如前所述设计开展实施,分为单元实验和以小组为单位的集体项目实验两部分。

理论教学依托学校网络教学平台和北京蓝墨科技的云班课构建了完整的课程平台。这套平台包括课程网站,移动端APP。平台包含了如前所述的课程资源中所列的诸多模块。课前或课后,学生根据教学日历提示,利用碎片化的时间对知识单元进行线上自主学习。教师则通过云班课对学生学习过程中的问题进行答疑。同时,学生进行自测,以进一步巩固、检验知识内化的效果。课中,教师引导学生开展问题探究式学习活动。

4.3教学改革效果分析评价

为了定量分析、评价教学改革效果。课程组采用OBE专业工程认证对教学效果评价方法,计算并分析课程目标达成度和毕业要求指标点达成度。限于篇幅,这里仅介绍课程目标达成度。

课程目标的达成度等于学生在该目标对应的各得分点所得分数占应得总分的比例,本次授课总体课程目标达成度为各学生课程目标达成度的均值。计算公式如下[8]

60eea75d510b5_html_a9de35e509204568.gif


其中 oi 为第 i 个课程目标,N 为学生总数, oi 在各成绩中的计分项共 n 项,60eea75d510b5_html_3d31522edf072e77.gif 为第 j 个学生 在第 k 个计分项上的得分,M 为该学生在所有计分项上应得的总分。下面以2020-2021第1学期的《.NET开发技术》为例说明课程目标达成度分析过程,以及持续改进措施。

表4课程目标达成情况

课程目标

评价方式与成绩评定

大纲

分值

实际

分值

最后

得分

达成度

上一轮

达成度

集体

项目

随堂

测验

实验

作业

期末

考试

课程目标1

0

10

4

5

20

39

38.6

32.2

83.4%

83.0%

课程目标2

0

5

6

5

30

46

46.4

37.4

80.6%

81.8%

课程目标3

15

0

0

0

0

15

15

13.6

90.7%

83.7%

合计

15

15

10

10

50

100

100

83.2




表4为2020-2021第1学期《.NET开发技术》课程目标达成度情况。据此对课程教学效果分析如下:

(1)课程目标1达成度83.4%,比上一轮达成度微小增加。课程目标1主要是实现学生对基础知识的掌握,对实际问题进行分析、设计并求解。在教学过程中,借助9次随堂测验、7次作业以及10次单元实验,持续对学生学习效果进行检查反馈。从实际效果看,过程化考核方式对学生约束力明显、及时、持续。

(2)课程目标2达成度为80.6%,比上一轮达成度略微下降。表明还需要进一步加强对实际问题的分析、设计和编程能力。

(3)课程目标3达成度为90.7%,比上一轮达成度明显增加。课程目标3主要培养学生的创新能力和协同能力,通过集体项目达成。学生以小组为单位,共同完成规模较大、技术较为先进、贴近实际应用的工程项目。达成度数据说明,这种方式既能激发学生学习和研究热情,又可以培养学生的创新能力和协同能力。

4.4持续改进

依据上面课程目标达成度数据,形成如下几点改进意见。

(1)在下轮教学实践中继续坚持过程性考核,以过程性考核促动学习,以过程性考核持续激发学习热情,以过程性考核增强学生课程参与感。

(2)从达成度数据分析,课程目标2的达成度相对最低。结合学生反馈信息,反应出传统实验对学生学习过程缺乏监督和有效激励。今后需要改进实验组织形式,通过激励机制,增强学生对课程认同感,提高课程参与性。初步设想为,以闯关方式组织实验内容,实验评价尽量客观、定量。

(3)集体项目实验无论从教学效果,学生接受程度,还是对学生能力的培养,都取得了良好效果。在下一轮教学过程中,保持集体项目次数在2~3,着重完善集体项目组织和考核程序,确保不流于形式。对于与理论课时冲突的矛盾,以增加在线课程视频,减少理论课时的方法予以应对。

4.5注意问题

教学改革是一种不断探索、持续改进过程。在实施过程中,需要注意一些问题,一是,做好课程目标修订工作。软件产业对人才素质需求不是一成不变,也存在一个发展过程。另外,程序设计类课程所采用的技术更新速度快,这就决定这类课程需要不断更新课程教学大纲,重构教学内容。二是,集体项目实验是教学改革的亮点,也取得了明显的效果。但在具体实施集体项目实验时,选题、进度、分工、验收答辩、学生评委和答辩学生选择必须由教师主导。特别是选题、验收两个关键环节,教师要对题目、目标、关键技术、计划等方面进行审核和具体指导;并组织好验收工作,采用随机抽取答辩人员、学生评委,既避免项目由少数学生代做,也培养了学生集体责任感。

6结束语

程序设计类课程教学改革是在新工科背景下展开的。程序设计类课程进行改革既符合课程自身特点,更是创新社会对高等教育的迫切要求。近几年,在学校教学改革的助力下,程序设计类课程以培养学生应用能力、创新能力和协同能力为目标,通过对教学设计、教学内容、考核方式均等方面进行教学改革,不但受到了学生喜爱,也提高了教师成就感。达成度数据显示,在学校教学改革助力下,通过课程教学改革基本实现了从毕业要求到课程目标,从课程目标到教学内容的两层对应支撑关系,达到预期课程目标。同时,程序设计类课程教学改革是一种教育理念和教育方式的探索,其意义远远胜于课程改革的本身。实际上一些实践性和综合性较强课程均可以采用这些做法。


参考文献

[1]教育部高等教育司.新工科建设指南(“北京指南”)[J].高等工程教育研究,2017,35(4):20-21

[2]林健.工程教育认证与工程教育改革和发展[J].高等工程教育研究, 2015(2): 10-19.

[3]韦迎春,文俊浩,陈蜀宇.以能力培养为核心构建示范性软件学院实践教学体系[J].中国高等教育,2011(2):49-50.

[4] 钟登华. 新工科建设的内涵和行动[J]. 高等工程教育研究, 2017(3): 1-6.

[5] 鲍鹏,邢薇薇,卢苇等.新工科背景下人工智能实践类课程教学模式创新研究[J].计算机教育,2021,(06)105-108.

[6]黄俊莲,赵冬岩,冯花平.高校计算机编程语言类课程过程考核的研究及实践[J].教育现代化,2019,6(32):149-151.

[7] 张延亮,康国栋,周清平.工程教育认证标准视角下软件工程专业课程教学改革探索与实践—以“C 语言程序设计基础”课程为例[J].煤炭高等教育.2018.9,36(5):117-121.

[8] 郑丽伟,刘建宾,崔展齐.基于OBE的软件工程课程改革与探索[J]. 计算机教育, 2021(5): 166-169.





[基金项目]

项目来源:2019烟台大学教学改革项目,“基于创新和协同能力培养的 《.NET开发技术》教学方法实践”(项目编号:jyxm2019021)


项目来源:教育部高等教育司2017年第二批产学合作协同育人项目,“AR方向创新创业人才培养的教育实践”(项目编号:201702084001)


第一作者简介:李瑞旭,男,副教授,烟台大学教师,从事物联网、人工智能的研究与教学。

第二作者简介:姜远明,男,副教授,烟台大学教师。



7 / 7