面向工程教育专业认证的“C程序设计”教学研究
2024-01-30岳殿佐侯玉双刘爱勇
岳殿佐 侯玉双 刘爱勇
摘 要:从工程教育专业认证的理念出发,结合“C程序设计”课程教学现状,总结教学中存在的普遍问题并详细分析原因,探索教学改革的措施。从持续改进培养目标、积极调整教学内容、探索适合的教学方法三个方面进行了阐述,旨在培养学生编程思维,提高自主学习能力、解决实际工程性问题的能力以及团队协作和沟通能力。
关键词:C程序设计;工程教育专业认证;教学研究
Exploration on Teaching Reform of Pattern Recognition Technology
Yue Dianzuo1 Hou Yushuang1,2 Liu Aiyong1
1.Hebei Normal University of Science and Technology HebeiQinhuangdao 066004;
2.Inner Mongolia University of Science and Technology Inner MongoliaBaotou 014010
Abstract:Based on the concept of professional certification of engineering education,combined with the teaching status of "C programming" course,this paper summarizes the common problems in teaching,analyzes the causes in detail,and explores the measures of teaching reform.This paper expounds three aspects:continuous improvement of training objectives,active adjustment of teaching content and exploration of suitable teaching methods,aiming at cultivating students' programming thinking,improving their ability of independent learning,solving practical engineering problems and teamwork and communication.
Keywords:C programming;Engineering education professional certification;Teaching research
1 概述
工程教育專业认证是国际通行的工程教育质量保证制度,也是实现工程教育国际互认和工程师资格国际互认的重要基础,是针对高等教育本科工程类专业开展的一种合格评价[1]。2023年,我国高校毕业生人数预计达1158万人。大学生就业形势不容乐观,其原因是多方面的,其中之一是市场对人才技能的需求与大学生所掌握的知识没有衔接起来。这导致一部分企业招不到心仪的人才,而一部分人才找不到心仪的企业。在这种情况下,高校积极推进工程教育专业认证就显得尤其重要。工程教育专业认证秉承以学生为中心,以产出为导向,持续改进的理念,围绕培养目标和全体学生毕业要求的达成进行资源配置和教学安排,并将学生和用人单位满意度作为专业评价的重要参考依据[2]。强调学生学习成果(学生学到了什么)而非教育输入(教师教什么),强调质量监控、持续改进的机制,从而推动专业人才质量的提升。工程教育专业认证工作落到实处、落到细节上要从课程教学改革入手,按照以学生为中心的教学理念积极探索教学模式、持续改进[3]。
“C程序设计”课程是我校理工科专业的必修基础课程,是一门理论与工程实践相结合的课程。该课程不仅是学生学习后续专业课的重要先导课程,也是学生在日后从事相关专业的必备技能。课程主要传授程序设计的基本知识与方法,课程应用性强,涉及的内容广泛,包括算法的基本概念、数据类型、运算符与表达式、顺序、选择、循环结构、数组、函数、指针、结构体等章节,课程讲授的内容多,基本语法细碎、繁多,课时短,教学难度大。在工程教育认证背景下,如何在有限课时内提高C语言课程教学质量,使学生能够在工程实践中运用计算机编程解决复杂问题是课程改革的重点和难点。随着高校工程教育认证的不断深入,“C程序设计”课程教学改革势在必行,这对于培养适应社会需求、能够独立解决实际工程问题的合格人才,提高应用型人才培养能力有着深远的意义[4]。
2 “C程序设计”教学改革分析
在对“C程序设计”课程的调查中显示,学生反映的主要问题有三点。
(1)感觉课程枯燥乏味,学习兴趣不高。
(2)知识点零散,难以贯穿起来,学习有畏难情绪。
(3)课上讲的知识点都听懂了,但是编程时仍然毫无头绪,感觉无从下手。
“C程序设计”教学中存在的问题、原因及应对措施解析图
上图对上述学生反映的三个问题进行剖析,分析这些问题产生的原因,从而探索可采取的应对措施。
(1)学生感觉课程枯燥乏味而学习兴趣不高的原因主要是课程内容设置缺乏灵活性和教学方法单一。“C程序设计”教学中也存在目标达成感差的问题。因此,我们可以在教学中借鉴一些游戏中的手段,提升学生学习的目标达成感,提高学生的求知欲。相应的方法很多,比如设置一些闯关式学习环节;通过引入一些小的编程项目来引发学生的思考。如在学习选择结构程序设计的章节时,可以让学生编写一个猜数字的游戏。学生带着疑问去学习,遇到不懂的地方主动查找资料解决。在编写完猜数字的游戏之后,教师再对选择结构程序设计方法进行系统性的讲解,并结合猜数字游戏的例子,规范学生的编程方法、习惯。尤其在C程序设计中往往一个问题的解决没有标准答案,应当启发学生集思广益,举一反三。此外,单纯传授教材内容,侧重学生应试、考级能力的教学方式应进行调整。使用传统的课堂讲授教学方法虽然能在短时间内讲述较多的内容,但也容易导致学生消极学习情绪的滋生。在传统教学方法中穿插启发式自主学习方法,比如开展竞赛式、组队式教学活动,让学生成为学习的主体,让教师转变为学习主体的帮助者和促进者。此外,传统课堂的教学方式与网络和移动终端在线教学方式相结合,充分利用丰富的网络资源和移动终端的灵活性,拓展学生学习渠道,提高学生业余时间学习的灵活性。这样一来,学生的学习兴趣提高了,教学目标也达到了。再者,教材中部分案例及习题是通用型题目,没有专业针对性,缺乏趣味性,比如求水仙花、求素数、求闰年等题目在一本教材中反复出现,容易导致学生兴趣缩减。因此,在教学中,应当把“C程序设计”的教学与专业领域的实际问题相结合,调整程序设计题目,增加趣味性、工程性题目,补充当前研究的热点问题。
(2)在传统的教学中,教师大多会依照教材顺序,依次讲解。该课程使用的主流教材均表现为知识点多、语法规则多、语句使用异常灵活、易出错,学生易出现畏难心理。其次,由于教材内容安排上前浅后深,但难度深浅的幅度变化較大,学生前期不抓紧,导致后期无法跟上进度。再者,由于教学课时紧张,机械地按照教材内容教学,会导致后期指针、结构体、文件等C语言的重点、难点问题上安排的学时不够,甚至部分内容只能一笔带过。比如,教材上内容的顺序是由浅入深,前三章(绪论、算法、顺序结构)相对简单,中间三章(选择结构、循环结构、数组)难度一般,后三章(函数、指针、结构体)相对困难。这种内容的安排虽然是由易到难的顺序,但学生学习前面的内容时会因知识点相对简单而产生轻敌的思想,造成注意力不集中,导致后面遇到困难的部分时又产生消极放弃的思想。因此,为了在有限课时内完成教学目标,适应新形势下人才培养的需求,教学内容应当进行相应的调整与改革,应以问题为导向,将难、易知识点相互穿插结合;适时地将难点部分前移,使学生有一定的心理准备和充足的时间消化接收难度较大的内容。目前“C程序设计”教学内容的安排上章节间缺少联系,知识点显得多而零碎,学生学起来感觉衔接不上,不清楚每一章节学习的内容如何在实际应用中体现。对此,教学中应以问题为导向,适时提出与实际应用相结合的工程问题,以解决问题为目标,抽丝剥茧般引出各部分教学内容。比如,在教学中可以适时引出基于C语言编写学生信息管理系统等任务,并展示这些程序的功能,激发学生编写程序的热情。这些例子中用到了几乎C程序设计课程的全部知识点,比如选择、循环、数组、函数、结构体等,能够将零散的知识点融合在一个小的开发项目中。同时要培养学生的团队合作意识,将一个较复杂的任务分解为几个小的任务,团队成员各负责一块,又相互协作。当学生完成了一个小的项目后,学习的自信心、学习兴趣都会有所增长。
(3)在传统的教学模式中,教师往往过多注重C语言语句的书写、语法的规则,而把编程逻辑、项目规划、解题思路放到了次要位置,这导致学生感觉课上讲的知识点都听懂了,但是编程时仍然毫无头绪,感觉无从下手。甚至曾经这门课考高分的同学毕业后从事相关程序设计工作,提起“C程序设计”课程,感觉学过了,但好像又没学过。这说明学生往往在考试中成绩较高,但解决本领域内的实际问题、动手编写程序的能力较差,不能将所学习到的知识和工程应用相衔接。这一问题反映出传统的教学目标与实际人才技能需求相脱离,不符合工程教育专业认证的理念。工程教育认证背景下的教学的目标要适应人才需求,注重学生学习兴趣和计算思维的建立,注重学生动手编程解决实际工程问题的能力的培养[5]。对于用人单位来说,他们更看中学生的动手编程能力、学习能力、沟通能力,不是会做多少试题。因此,在工程教育专业认证的背景下,“C程序设计”课程的培养目标要强调培养学生自学、终生学习的能力,独立解决问题的能力,团队间沟通协作的能力。在短短几十个学时的学习中不可能将学生培养为编程高手,而应当注重学习方法、编程思维的培养[6]。C语言的规则是不变的,但实际需求是千变万化的,学生要具有较强的学习能力才能不断适应新的开发场景。
“C程序设计”课程一般在大一期间开设,相当于编程的启蒙课程,因此培养目标中要注重编程思维的建立。比如要做一道菜(编写一个程序),那么要分析需要哪些食材、调味料(输入),用煎炒烹炸哪种方式(设计算法),最后呈现出什么样的成品(输出),都要有一个统筹的分析过程。学习编程语言也是一样的道理,要把一个程序设计问题分解为输入、输出、设计算法的几个过程,接下来就是落实在代码上的过程。这种思维的建立需要反复练习,动手去做才能逐渐培养起来。站在岸上看游泳是学不会游泳的,整天背菜谱是学不会炒菜的,只掌握了C语言的语法是不能完成一个项目的编写的。学生感觉“C程序设计”似学过非学过的原因就在于没有将所学到的知识运用到解决实际问题上,而只是停留在了对表面知识点的肤浅背诵上。因此,在教学中应当经常性布置一些学生独立完成的小的程序开发任务,经历了从流程图设计,算法设计,到语句编写到调试,编写程序说明书等一个完整的过程,才能逐渐培养起解决实际问题的能力。对任何用人单位来说,员工的沟通能力都是工作效率的核心保障。所以,还要布置具有一定复杂度的较大项目的开发任务以锻炼学生的协作和沟通能力。
结语
工程教育专业认证旨在保证学校培养的工程技术人才的教育质量,使学生掌握行业内所需的专业技能。在我国迈向社会主义现代化的进程中,结合工程教育专业认证的背景实施相关课程的教学改革对提高人才质量、提高学校影响力等各方面均有着重要意义。针对“C程序设计”课程而言,打破传统教育方式,持续改进培养目标,积极调整教学内容,探索适合的教学方法势在必行。在授课中制定合理的教学目标,以目标为导向,整体目标与阶段性目标相结合。调整教学内容,以问题为导向,难易穿插,教材内外、不同专业领域知识相融合。优化教学方法,多种教学形式相结合,线下与线上资源相结合。最终期望培养的人才具有编程思维、较强的自主学习能力和终身学习意识、较强的解决实际工程性问题的能力以及团队协作和沟通能力。
参考文献:
[1]李艳平.工程教育认证背景下Linux系统实践课程教学改革的探索[J].电脑知识与技术,2021(14):110112.
[2]顾佩华,胡文龙,林鹏,等.基于“学习产出”(OBE)的工程教育模式——汕头大学的实践与探索[J].高等工程教育研究,2014(1):2737.
[3]孙桓五,张铮.基于工程教育专业认证理念的地方高校工科专业建设实践[J].中国大学教学,2017(11):3942.
[4]杨琦,张晓月,韩鑫.C程序设计课程案例教学内容研究与实践[J].高教学刊,2023,9(12):112115.
[5]彭芳策.基于工程模式的《C#程序设计》课程教学改革探究[J].电脑知识与技术,2021,17(31):205207.
[6]赵一.基于OBE概念改进的《C++程序设计》课程研析[J].电脑知识与技术,2021(13):5153.
基金项目:国家自然科学基金(地区基金)(课题编号62065015);河北省自然科学基金面上项目(课题编号F2022407007);河北科技师范学院教改项目(工程认证背景下《C程序设计》教学改革研究),线上线下混合式教学改革与实践——以“物联网控制基础”课程为例
作者简介:岳殿佐(1982— ),男,汉族,河北唐山人,博士,河北科技师范学院高级工程师,主要从事物联网专业教学工作,研究方向:模式识别、人工神经网络、C程序设计;侯玉双(1979— ),女,博士,河北科技师范学院教授,研究方向:智能计算;刘爱勇(1981— ),女,讲师,研究方向:物联网技术。