基于TRIZ理论构建C语言课程复杂度模型
2020-05-13宋存米
宋存米
(衡水学院 经济学与管理学系,河北 衡水 053000)
在中国知网(www.cnki.net)检索到《C语言程序设计》课程教学研究方面的文献资料有3 000多篇,其中50余篇发表在核心期刊,主要从教学模式、教学方法、教学手段、实验教学等几个方面进行了教学改革研究和探索。有作者通过小班化教学(唐晓,2016)、过程化考核(陈昕,2016)、学科竞赛(徐新爱,2015)、建构主义学习理论(肖晓霞,2012)等进行教学模式研究;通过任务驱动(马骏,2016)、面向学生(米磊,2014)等进行教学方法研究;通过交互式虚拟算法(苏仰娜,2010)、自助式虚拟作业系统及考试系统(张彦航,2017)、KM教学法(周颖,2016)等进行教学手段研究;通过微视频(熊启军,2018)、计算思维(刘光蓉,2015)、教育机器人(尹华,2009)等进行实验教学研究。这些研究和探索对提高C语言课程教学效果均有促进作用,但任何教学改革都应该围绕着教学内容进行,不同的教学内容应该采用不同的教学方法和手段,不同的教学内容对教师和学生的要求也是不同的。尽管所有的C语言教材所讲的内容基本是相同的,但学生完成C语言课程中不同章节内容的学习所需要的工作量是不同的。如何对C语言课程内容进行科学分类,针对不同类别的内容采取不同的教学方法和手段,在文献资料中涉及较少,或有涉及也不系统。笔者结合多年的教学实践经验,应用TRIZ理论对C语言教学内容进行深入分析,构建了C语言课程的复杂度模型,为C语言课程教学改革提供了一种新的思路和方法。
一、构建C语言课程复杂度模型
1.C语言教学中存在的主要问题
结合历届学生的试卷分析(见表1),发现学生在《C语言程序设计》课程考试中有关基本知识、简单算法方面得分较高,而在阅读程序和设计程序方面的得分较低,尤其是复杂的程序设计题得分更低,导致整体的教学效果不佳。结合《C语言程序设计》课程的特点,学习程序设计是训练学生思维能力逐渐提高的过程,学生通过程序设计解决实际问题也是一个从简单到复杂的过程。从试卷分析结果可以看出学生通过程序设计解决复杂问题的能力不足,而基本知识和简单算法掌握得较好,说明在C语言教学过程中存在效率不高的薄弱环节。虽然在教学过程中进行了案例式、启发式教学等多种尝试,但教学效果并不理想,因此,需要用一种全新的思路来解决《C语言程序设计》教学中存在的问题。
表1 C语言课程复杂度模型应用之前试卷分析汇总表
2.应用TRIZ理论分析问题
在TRIZ理论中,物-场分析法就是指从物质和场的角度来分析和构造最小技术系统的理论和方法[1],可以用物-场模型来描述任意级别的技术系统。一个完整的技术系统可以表示为由三个基本元素构成的一个三角形结构,包括两个物质(substance)和一个场(field),如图1所示。其中,S1(第一种物质)表示被生产、被控制、被测量的产品;S2(第二种物质)表示进行生产、控制、测量的工具;F(场)表示S1和S2之间的作用[2]。
图1 基本的物-场模型
应用物-场分析法可以发现系统中存在的不同问题,在TRIZ中,将问题的类型用四种不同的物—场模型来描述。
(1)有效完整模型。功能的3个元素都存在且都有效,这种模型是设计者所追求的。
(2)不完整模型。功能的3个元素不齐全,可能缺少物质,也可能是缺少场。
(3)非有效完整模型。功能的3个元素齐全,但设计者追求或预期的效应未能有效实现或只是部分实现。
(4)有害效应的完整模型。功能的3个元素齐全,但产生了与设计者所追求的效应相左的、有害的效应,需要消除这些有害效应。
TRIZ重点关注的是后三种模型,只要出现其中的任何一种,系统就会出现各种问题。为了分析和解决系统存在的问题,TRIZ提出了物—场模型的一般解法和76标准解法。
TRIZ理论虽源于工程技术领域,但现已渗透至多个领域。在C语言教学系统中,上述的物-场模型可以描述为:S1为学生, S2为教师,F为教学场。显然,教学过程中存在效率不高的薄弱环节属于非有效完整模型,即功能的3个元素齐全,但设计者追求或预期的效应未能有效实现或只是部分实现。据此,应用TRIZ理论中的标准解对系统进行改进,此问题可以应用的标准解包括:
(1)标准解14:链式物—场模型,即将单一的物—场模型转化成链式物—场模型。
(2)标准解16:使用更可控的场加强物—场模型,即用更加容易控制的场,来代替原来不容易控制的场,或者叠加到不容易控制的场上。
按照标准解14的提示,改善教学系统的效率需要形成链式物—场,C语言教学系统也是一种链式物-场系统,即C语言的教学过程是将教学内容分为各个单元进行的链式物—场系统,这既符合TRIZ标准解的提示,也是C语言教学的基本要求。进一步分析构成链式物—场的每一个物—场模型,发现在C语言教学单元完成过程中符合教学要求,但从整体教学效果来看又不理想,这就是TRIZ理论中提出的矛盾所在。
按照标准解16的提示,应该使教学场更加可控,考虑C语言教学中存在的主要问题,TRIZ理论给出的标准解就是使每一教学单元更加可控,或是教学环节、教学内容更加可控。结合自己的教学经验,每一教学单元、教学环节、教学内容虽不十分完美,但也足以达到优秀。经过深入分析问题,并将TRIZ理论中的“分割”和“组合(合并)”2条发明原理应用于Nicklaus Wirth提出的著名公式“算法+数据结构=程序”,终于找到了问题的症结所在。
3.应用TRlZ理论构建C语言课程复杂度模型
在计算机科学中,算法的时间复杂度是一个函数,描述了该算法的运行时间。借鉴其含义,即算法的时间复杂度是指执行算法所需要的计算工作量。类似地,学习C语言课程的学习复杂度,即完成学习内容所需要的工作量。显然,学习内容越简单越容易所需要的工作量越少,反之则需要的工作量越多,即学习复杂度与学习内容的难易程度与复杂程度正相关。
在上述分析的基础上,应用TRlZ理论的分割和组合(合并)2条发明原理来构建C语言课程复杂度模型。
(1)分割原理
分割原理是指以虚拟或真实的方式将一个系统分成多个部分,以便分解(分开、分隔、抽取)或合并(结合、集成、联合)一种有益的或有害的系统属性。在多数情况下,会对分隔后得到的多个部分进行重组(或集成),以便实现某些新的功能,并(或)消除有害作用。
应用分割原理的主要解决方法如下:
●针对不同需求的学生制订不同的项目;
●利用目标分析法制定计划;
●创建项目组;
●利用课程单元或模块;
●将整个教学目标分为多个子目标。
(2)组合(合并)原理
组合(合并)既可以是空间上的,也可以时间上的,其目的是将两个或多个相邻的对象(操作或部分)进行组合或合并。或者,在多种功能、特性或部分之间建立联系,以便产生一种新的、想要的或唯一的结果。通过对已有功能的组合,可以生成新的功能。
组合原理的主要解决方法如下[3]:
●利用教学小组发挥教育专家的作用;
●雇用辅助专职人员帮助教师以满足学生的不同需求;
●基于组合实验进行综合技能训练;
●组织分配教员进行学生分组教学制;
●制定分组教学计划;
●多功能教室。将“分割”和“组合(合并)”2条发明原理应用于“算法+数据结构=程序”公式可以得出学习C语言程序设计的复杂度包括“数据结构复杂度”和“算法复杂度”,在C语言中,数据结构的复杂度与数据类型相关,可分为简单、低复杂度、高复杂度3个级别,分别对应基本数据类型(如整型)、简单构造数据类型(如数组)、复杂构造数据类型(如结构数组、链表)。算法的复杂度与控制结构相关,可分为简单控制结构、低复杂度控制结构、高复杂度控制结构3个级别,分别对应1条语句的控制结构(如1条for语句)、2条语句的控制结构(如嵌套for语句)、3条及以上语句的控制结构(如三重for循环语句)。分别将算法和数据结构按照复杂度组合之后,C语言课程的学习复杂度共分九级(见表2),即简单数据类型简单控制结构→简单数据类型低复杂度控制结构→……→高复杂度数据类型高复杂度控制结构,学习复杂度呈递增态势,所需要的学习时间和训练次数呈线性增长。由此可以得出,某一级复杂度的课程内容未能完全理解和掌握,说明相应级别内容的学习、训练时间不足,在不考虑其他因素的情况下,应该增加学习和训练的时间,主要是增加学生自主学习和训练的时间。针对学习复杂度的不同级别,分别提供不同的案例、采用不同的教学方法和教学手段进行教学。这样教学过程清晰,教学目标明确,对学生的学习效果进行分级评价则更加科学。
表2 C语言课程复杂度模型
表2(续)
按上述复杂度模型,当输入一个正整数n(n为奇数)的值之后,要求分别打印输出1行n个*、打印输出n行1—n个*、打印输出一个高度为n行的*菱形图案,完成上述3种输出的程序分别对应简单数据类型简单控制结构、简单数据类型低复杂度控制结构、简单数据类型高复杂度控制结构。显然,其学习复杂度差别很大,针对不同学习复杂度的教学内容,应采用相应的案例、教学方法和手段等有效措施,才能取得良好的教学效果。
4.应用C语言课程复杂度模型教学效果
总结出C语言课程复杂度模型之后,将其应用于教学实践,改革了原来的课堂教学和实践教学等,通过2个学期的教学实践检验,学生在程序设计方面的学习效果较应用之前有了大幅度提高(见表3)。
从表3的试卷分析结果与表2的试卷分析结果进行对比可以看出:
(1)C语言课程复杂度模型应用前后,在单项选择题、填空题、判断题的得分变化不大,应用后较应用前稍有提高。
(2)C语言课程复杂度模型应用前后,在程序阅读题、程序设计题的得分变化较大,尤其是程序设计题的得分提高较多,说明C语言课程复杂度模型的建立对提高课堂教学、实践教学的效果有较大的促进作用。
二、 结语
TRIZ是一种技术创新理论体系,源于工程技术领域,理论上可以解决多领域的问题。本文应用TRIZ理论进行C语言课程教学改革,构建了C语言课程复杂度模型,提高了教学效果,教学实践证明TRIZ理论用于教学改革是科学的、有效的。
表3 C语言课程复杂度模型应用之后试卷分析汇总表