面向复杂工程问题的程序设计类课程教学改革与实践

2022-05-30 15:09彭晏飞李季崔彩峰
大学教育 2022年10期
关键词:复杂工程问题强化训练自主学习

彭晏飞 李季 崔彩峰

[摘 要]文章针对传统教学方式在培养学生编程能力和解决复杂工程问题方面存在的弊端,提出在程序设计类课程的理论与实验教学过程中采用“案例驱动+自主学习+强化训练”的教学方式,充分发挥教师的主导性和学生的主体性,完成从传统的以教师“教”为主向以学生“学”为主的转变,让学生学会自主学习,强化程序设计能力的训练,培养学生的编程思维、软件开发能力和解决生产生活中的复杂工程问题的能力。

[关键词]复杂工程问题;案例驱动;自主学习;强化训练

[中图分类号] G642 [文献标识码] A [文章编号] 2095-3437(2022)10-0045-03

复杂工程问题在工程教育认证通用标准的8项毕业要求中被提及,因此培养学生对复杂工程问题的分析与解决能力是工程教育的核心内容。计算机类专业课程体系的设计需要围绕复杂工程问题进行改进和完善,以支持相关毕业要求的达成[1]。程序设计类课程作为计算机类专业的基础与核心课程群体,占有相当大的比重,在复杂工程问题编程能力培养方面起着举足轻重的作用,因此其理论授课和实践训练等培养模式也需要根据工程教育认证的要求进行优化和调整,以不断提高教学质量和培养效果,进一步提高学生的编程能力和水平[2]。目前,在计算机类专业的本科教学过程中,多数教师和学生都认为程序设计类课程所涉及的概念较多,语法规则较复杂,知识点也相对较多,不易记忆与掌握,而且出错的概率也较高,部分学生反映上课时能够听懂,但当自己动手编程时却无从下手,出现课上听得懂、课下编不出程序的现象,尤其面对复杂工程问题时,更是一筹莫展。针对这一问题,我们提出在程序设计类课程的理论与实验教学过程中采用“案例驱动+自主学习+强化训练”的教学方式,充分发挥教师的主导性和学生的主体性,完成从传统的以教师“教”为主向以学生“学”为主的转变,让学生学会自主学习,强化程序设计能力的训练。教学以高阶性、创新性、挑战度“两性一度”的标准来培养学生,提高学生的程序设计能力,同时培养学生的编程思维、软件开发能力和利用高级语言程序解决生产生活中的复杂工程问题的能力。下面以辽宁工程技术大学(以下简称“我校”)计算机科学与技术专业为例,介绍我们实施的程序设计类课程“教与学”模式改革。

一、程序设计类课程教学改革方案

我校从2015年开始实施教育教学质量提高工程,强调复杂工程问题能力培养,鼓励教师在理论和实践课程中进行“教与学”模式的改革。

(一)课程群团队建立

参照我校教育教学质量提高工程实施方案中“每门课程多人研究和多人建设”的原则,计算机系组织成立了程序设计类课程群团队,团队中教师相互协作、共同参与课程建设[3]。我们对课程群中的每门课程,如C语言程序设计、面向对象程序设计、数据结构、汇编语言程序设计、Java语言程序设计和Python语言程序设计等课程都进行了“教与学”模式的改革。另外,针对每门课程,我们还成立了至少由3名教师组成的课程小组,负责该门课程的建设,由教学经验丰富并长期教授该门课程的老教师担任组长,小组成员在组长的带领下进一步优化教学大纲,并完成教学内容、教学模式的制订和编排,按照解决复杂工程问题和提高编程能力的要求,着重进行提高实验内容的质量和数量的方案设计。

(二)“教与学”模式设计

每门课程“教与学”模式的总体设计包含以下几个方面。

第一,案例驱动。根据优化后的课程教学大纲,每门课程设计若干具体案例用于授课。案例设计以工程性、趣味性为原则,每个案例涵盖一个或多个知识点。教师围绕案例展开教学,以案例引出知识点,然后又结合案例讲授知识点,并理解其在案例中的应用。教学中知识点与案例互通互融、相互促进,避免了传统的以知识点为主进行授课的枯燥,同时使学生能够充分了解该知识点的具体应用[4],进而培养学生解决复杂工程问题的能力。

第二,自主学习。教师每次授课前都将授课电子教案和案例发给学生,学生结合教材、案例和电子教案进行课前预习。这种自主學习具有明确的目的性,提高了学生学习的积极性和自学能力,使学生听课时能有的放矢、重点突出,教师授课过程更加轻松,教学效果事半功倍[5]。

第三,单元强化训练。每次课后布置若干训练题目让学生在课后和上机实验课中进行编程训练,从最简单的程序编起,循序渐进,逐步提高学生的编程能力和解决复杂工程问题的能力。教师在每个知识单元讲解及训练结束后都进行单元测验,根据测验结果有针对性地对每个成绩不理想的学生进行一对一辅导,直至其能够独立解决此类问题为止。

第四,综合训练。按教学内容分期安排3个综合训练项目(典型案例),项目内容按照学习进度进行设计,遵循循序渐进、由浅入深原则,并制订详细的训练内容和评价标准。每项综合训练项目结束后,教师都要求学生提交源程序和设计报告,并以演示、答辩的方式检查各综合训练项目的完成情况,给出相应的成绩,这样能在完成考核的同时培养学生的语言表达能力和团队合作能力。

第五,课后答疑。利用互联网的优势采用线上线下相结合的答疑方式,每周安排两次固定时间和地点的面对面线下答疑,同时建立QQ群,随时进行线上答疑。

二、程序设计类课程教学方法与实施

(一)理论教学方法与实施过程

课题组改变了传统的“填鸭式”教学方法,采用以学生为主体的“案例讲解+自主学习”教学方法,具体到课程教学的设计中,是指课前对课程的全部内容按照知识点进行归纳,并由浅入深地设计出若干个案例,即将不同的知识点隐含到不同的案例当中。为了增强学生的兴趣,设计的案例要有较强的数学性、知识性、趣味性及实用性,同时加入一些复杂工程问题和相应的解决思路[6]。课前将案例所对应的授课电子教案发给学生,让学生结合教材自主学习,这样方便学生明确自主学习的目的性,提高了学生自主学习的积极性。教师讲课过程中应注重互动交流、随机提问,使学生能集中精力听课。学生有问题可以随时提出,教师应当场给予答复。教师应根据学生自主学习情况将各知识点融合到具体案例中进行演示讲解,以加深学生印象,让学生充分了解该知识点的具体应用。此方法在实施中受到了学生的普遍欢迎。

(二)实验教学方法与实施过程

课程实验教学是对课堂教学的有力补充,是提高学生编程能力的必要手段,所以我们着重加强实验教学任务的设计,提高实验内容的质量。实验教学采用“单元强化训练与测试+综合项目训练”的形式,在实验过程中师生相互配合。教师在每个知识单元讲解结束后布置若干单元训练题给学生进行课后训练(含上机实验),训练结束后进行单元测验,根据测验结果有针对性地对答错题的学生进行单独辅导,直至其能够独立解决此类问题为止。根据授课进度和内容,我们设计了三个综合训练项目供学生分阶段完成,以锻炼学生的独立思考能力和团队协作能力。根据项目的难易程度及学生的能力,我们采用学生独立完成或小组共同完成的方式进行训练。综合训练项目一授课内容少、涉及的知识点少,较容易完成,所以要求学生独立完成;综合训练项目二和三设置在课程进行的中期和后期,涵盖的知识点多,综合性更强,所以采用小组形式进行,每组4~5人。训练过程中教师引导学生一边学一边做,真正实现“学中做”和“做中学”,以此来达到让学生真正掌握知识和技能的目的。小组完成的项目需要小组成员在给定的时间内分工完成各自的任务,但也强调每组学生相互协作、共同提高。学生完成综合训练后提交设计报告书,同时要进行项目的演示和答辩。大量的训练培养了学生程序设计的综合能力、研究创新能力、语言表达能力以及团队合作能力[7]。

(三)课后答疑过程

答疑采用线上线下相结合的方式进行。教师课后每周至少安排两次面对面线下答疑,尤其是对单元测验成绩不理想的学生,要求其在规定时间规定地点进行答疑。利用建立的QQ群,教师每天不定时地对学生提出的问题进行答疑,甚至是做到随时提问、随时答疑。在白天,学生课程较多、问题较少,因此多数答疑都安排在晚上进行。这种方式不但解答了学生的问题,而且让其他学生也能看到别人的问題以及解决的方法。同时,学生之间也可以通过QQ群沟通交流、答疑解惑,相互帮助、相互学习,进而增强彼此的感情和集体荣誉感。

(四)考核方式

课程考核改变以往由期末一次性考试确定成绩,从而造成评价过于片面的情况,强化质量监控机制,强调教学过程与考核结果相互制约,采用过程性考核,与期末标准化考试相结合的方式,加大过程考核比例。

1.过程性考核(50%)。根据学生出勤与课堂表现,自主学习、单元强化训练情况、综合项目训练情况给出过程性考核评价分数。其中出勤与课堂表现占过程性考核的10%;自主学习考核采用课前提问与回答的形式,考核学生预习与自学情况,占过程性考核的20%;单元强化训练考核以每次测试成绩为依据给出分数,占过程性考核的30%;综合项目训练的考核根据每次完成的报告、项目演示与答辩以及小组成员合作情况给出相应成绩,占过程性考核的40%。

2.期末标准化考试(50%)。根据学生期末标准化考试成绩予以评定。

改革考核方式后,依据考核过程及结果可以及时发现教学过程中教师的教与学生的学存在的问题,为后续持续改进教学方式与方法提供参考。

三、教学模式改革学习效果

程序设计类课程“教与学”模式改革的宗旨就是提高学生的程序设计能力、解决复杂工程问题的能力以及软件开发能力,从平时授课观察、单元测试和综合训练提交的设计报告、源程序代码以及演示和答辩的情况看,“案例驱动+自主学习+强化训练”的教学方式对提高学生的编程能力起到了非常好的效果。从期末标准化考核情况看,从2015级学生开始,程序设计类课程期末考核取消客观题,全部改为编程类主观题,考核难度较之前有明显增加,但从考核结果看,自开展“教与学”模式改革以来,每一级学生的成绩都较原来有所提高,优良率升高,不及格率明显降低。编程能力提高,学生自信心也随之增强,近几年来报名参加计算机类学科竞赛的人数成倍增加,例如参加“蓝桥杯”全国软件和信息技术专业人才大赛、全国计算机设计大赛等比赛的人数明显增加,竞赛获奖人数也逐年增加,获省级和国家级奖的学生数量从原来的每年几人增加到几十人,呈现出倍数增长态势,形成了以学促赛、以赛代练的良性循环。

四、结语

程序设计类课程教学改革是计算机类专业课程建设中的重要组成部分,在解决计算机领域复杂工程问题上有着举足轻重的作用。“案例驱动+自主学习+强化训练”教学模式是该类课程在理论和实验教学方式、方法上进行的有效探索和实践,充分发挥了学习过程中教师的主导性和学生的主体性作用,激发了学生的学习潜能,培养了学生的编程思维,促进了学生自主学习和深入钻研习惯的养成,同时推动了学生团队协作精神的形成,提高了学生的程序设计和软件开发能力,对培养合格的、符合当今社会需求的计算机类专业技术人才有积极的现实意义。

[ 参 考 文 献 ]

[1] 蒋宗礼.本科工程教育:聚焦学生解决复杂工程问题能力的培养[J].中国大学教学,2016(11):27-30,84.

[2] 许建秋,李鑫,孙涵.面向复杂工程问题的C++程序设计教学及实践[J].计算机教育,2019(2):61-64,68.

[3] 王海舜,蒋巍巍,刘师少.基于程序设计能力培养的软件设计类课程群架构[J].计算机教育,2012(3):23-26.

[4] 张新平,冯晓敏.重思案例教学的知识观、师生观与教学观[J].高等教育研究,2015(11):64-68.

[5] 张昱,李金双,徐彬,等.以自主学习能力培养为目标的大学计算机课程教学改革[J].计算机教育,2016(9): 103-105,110.

[6] 李骏扬,魏海坤.从课堂教学到项目教学的跨越:双轨并行的程序设计教学改革探索与实践[J].计算机教育,2018(10):113-117.

[7] 彭晏飞,沈学利,张全贵.计算机软件系列课程实验教学研究与实践[J].实验技术与管理,2012(4):173-175.

[8] 李昱,郭晓燕,梁艳春.应用型本科计算机专业程序设计类课程教学模式改革与实践[J].计算机教育,2020(11):111-116.

[9] 李斌.程序设计教学设计与学业考核模式改革[J].大学教育,2019(12):68-70.

[责任编辑:钟 岚]

猜你喜欢
复杂工程问题强化训练自主学习
“三角、数列、平面向量”强化训练
空间几何、解析几何强化训练参考答案
空间几何、解析几何强化训练
集合与微积分强化训练
面向解决复杂工程问题的失效分析课程教学研究
复杂工程驱动的MATLAB课程改革
“通信原理”教学中对复杂工程问题的探索与实践
中职学校“生本课堂”的调查研究与实践
践行少教多学,构建高效课堂
对学生自主学习的探索