李梦雪
摘 要:教师教学能力和学生学习能力,在“新工科”的背景下,又面临新的挑战。高职院校与企业深度合作开展工程化教学是应对新挑战的合理路径和策略。本文以高职软件技术专业C语言教学为例,引入工程化教学思想并设计教改策略,通过实践在一定程度上提高了学生创新实践能力和就业能力。
关键词:C语言;工程化教学;教学研究;工程思维
0 引言
教师教学能力和学生学习能力,在“新工科”的背景下,又面临新的挑战。教学改革势在必行,作为工程学科的软件专业更应该走在教学改革的前列,创新校企合作策略,与企业协同育人构建良好的产业生态,让学生在校期间的学习内容与企业的工作岗位无缝衔接。
C语言课程是软件技术专业的专业基础课,是计算机其他相关专业的必修课程,也是一门有利于培养学生求解能力的课程。对C语言课程工程化教学在软件技术专业的研究,有利于成果在其他专业的实践与推广。
传统的C语言教学缺点有:(1)教学内容以模块化教学为主,以章节为基础,由浅入深,各章节实践环节没有必然衔接,很少涉及工程思维;(2)采取教师主导一切的教学方式,学生在教师的引导下被迫接受学习内容,没有系统且长效的问题驱动机制保障学生学习的热情;(3)教学创新程度不够,不能真正促进学生能力的提升,不利于未来职业发展。
1 工程背景下软件技术专业C语言教学改革
工程背景下,要求学生能够熟练掌握工程问题的描述与求解过程,高职院校的软件技术专业虽不同于本科院校的软件工程专业,但在解决“软件开发”这种工程化问题时基本方法与路径是相通的。
对比本科院校,结合高职院校自身特点,对软件技术专业课程体系进行优化,如图1所示。优化后的课程体系包含“一中心两主线”。其中一中心是要解决的中心问题,包括三方面:工程思维培养、长效驅动机制保障、创新能力培养;两主线,其一是软件工程教育,以软件工程八大阶段为依据,最终让学生掌握软件开发的工程化过程;其二是核心课程教育,内容安排由浅入深,涵盖工程思维培养,算法描述,代码实现等多个方面,是解决软件工程问题的实用工具。
C语言课程在“核心课程教育”中占据承上启下的地位,是工程思维到工程实践的桥梁,其难点是算法理解和程序设计语言表达。本文从以下几个方面进行教学改革。
1.1 教学案例设计
教学改革中C语言课程的教学案例主要来自校企合作企业,以实际软件开发项目为基础,按照分层教学的要求软件开发项目又细分为小型软件开发项目和大型软件开发项目,同时这些项目根据不同的场合分为课堂教学项目、实验项目和拓展项目。从三个维度设计教学案例丰富了教学资源。以软件工程应用问题为牵引,结合实际软件工程应用项目,将适合C语言教学的工程案例进行简化和改造,融入教学过程中。针对软件开发项目中子问题设计实验案例,每个案例按照简化后软件工程过程实施(少于八个步骤)。对于综合项目实践环节则选取较小规模软件开发项目,按照较规范的软件工程过程实施。
1.2 教学模式多元化
软件技术专业属于电子信息类专业,具备天然的信息化教学条件,“新工科”建设背景下,工程化教学的引入催生了多元化教学模式。传统教学中,理论课和实践课被割裂开来,学生在课堂学习理论知识在机房练习编程,模式固定僵化。
提升教学质量、提升学生创新能力是多元化教学模式的中心和侧重点,采取各种教学方法和手段提高教学质量,其中包括教学互动的翻转课堂、线上线下交流的雨课堂,以及像MOOC这样的在线学习平台。疫情期间,高校教师对在线直播与录播进行了大量的探索与实践,为多元化教学模式积累了大量的经验。
1.3 分层培养
多元化教学模式的改革以及多维度教学案例设计能够充分开展因材施教、推进分层培养人才。学生的基础、学习能力不尽相同,针对性的课程案例让学生的潜力被充分挖掘,实践兴趣与能力显著提升,有效地建立了长效驱动机制保障学生学习质量和兴趣。
学生在C语言程序课程教学实践项目中能深刻体会到C语言的地位和重要性。对于基础薄弱的学生应更侧重于简单项目实践,实践中不断提升学生的兴趣和自信心;对学有余力且实践能力较强的同学为其提供更多机会参与技能比赛和科研项目。
当然,这些措施的具体实施需要合理的多维度的教学案例作为支撑,它是教改环节的关键。
2 C语言教学设计
通过软件工程的八个过程逐步展现C语言的语法规范和算法设计规则,培养和提高学生综合项目实践能力。具体教学设计按照案例选择—知识关联—教学内容设计三个步骤逐层开展。
2.1 软件工程案例选择
由于面向软件技术专业学生,工程案例选择以系统设计问题为主,涉及到系统稳定性、设备可靠性、传输可靠性等。
2.2 知识关联
将系统设计类工程问题选作案例之后的核心问题就是知识点的映射关联,C语言的知识体系从简单的表达式、流程控制等到复杂的函数、数组、指针、结构体等。选取具体的系统设计案例,如玩具汽车信息管理系统对各章节一级知识点进行映射。
2.3 教学内容设计
对C语言各章节中一级知识点和二级知识点进行映射之后接下来就是设计教学内容。以工程化的思路逐层展开,学生在工程问题的驱动下配合教师按照分析问题、建模、求解3个步骤实施,以玩具车信息管理为例。
分析问题环节,对玩具车信息管理就是对其名称、型号、生产日期、价格等信息的管理。玩具车信息管理系统的信息处理主要体现在对汽车信息的增、删、改、查、排序等方面。
建模环节主要是数据结构设计和系统功能设计,对玩具汽车的信息可以用C语言中的结构体进行描述如图2。
系统功能的实现以数据结构设计为基础,利用C语言函数的相关知识完成增、删、改、查、排序等功能模块定义,如删除功能函数可定义为int delete(ToyCar car,int n,int num);该函数能实现显示编号为num的玩具汽车,用户确定删除该记录后,返回剩余玩具汽车数量,如果系统中没有该编号则报错。
问题求解环节需要编码实现功能函数,需要对C语言的知识进行综合应用,在工程化思想中编码之后还要对系统进行测试和维护。
C语言工程化教学改革的课程设计通过上述三个步骤得到实践。
3 教学实施与分析
本次教学改革活动分别在2019级和2020级软件技术专业部分学生中开展。首先,按照以上的教学设计实施具体教学,引入工程问题,并将问题与课程的一级和二级知识点进行映射,逐层开展讲授求解过程。其次,在实践课程环节学生针对具体的函数功能模块编码实现。另外,为学有余力的同学提供更多的机会参与项目中来。
课程结束之后对教学效果进行了分析,参与学生120人,结果如表4。
实施结果表明,通过本次教学改革整体取得一定成效,大部分学生投入实践课的时长明显加长,期末平均分提高显著,但部分同学认为工程化项目教学引入C语言课程占据了大量时间,比原来教学时长更长且工程问题较晦涩难懂。本文提出的分层教学方法还存在一定缺陷,相信在不断的教学实践中会变得越来越完善。
参考文献
[1]蒋宗礼.本科工程教育:聚焦学生解决复杂工程问题能力的培养[J].中国大学教学,2016,(11):27-30.
[2]谢红梅,周勇,陆荣.工程化课程教学探索研究——以“C语言程学设计”课程为例[J].工业和信息化教育,2021,(01):48-52.