解 敏 梁 立 陈玉华
摘要:完成C语言综合性实验是一个学习复杂任务的过程。本文依据马扎诺的学习模式理论,就进一步提高C语言综合性实验的教学效果,从任务设置、学习策略、基础知识技能三方面探讨了自我系统、元认知系统和知识系统有效参与认知的过程。
关键词:自我系统;元认知系统;知识系统;综合性实验教学;C语言
中图分类号:G642 文献标识码:B
1引言
随着社会对人才素质及大学教学质量要求的提高,2007年教育部提出了“本科教学质量与教学改革工程”,综合性实验成了很多学科及课程的必开部分和教学改革研究的热点。C语言综合性实验旨在提高学生利用程序设计解决问题的高层次能力。教学实践发现,通过实验,虽然学生程序设计能力得到了发展,但其期末考试成绩与那些没有实施综合性实验的学生相比,差异并不显著。为此,有必要进一步了解C语言综合性实验的教学效果及存在的问题。
2C语言综合性实验教学实践与存在的问题
在某高校2007级计算机专业开始C语言综合性实验前,教师给出了实验要求及参考选题,并介绍了大型程序开发的一般步骤,实验中,教师提供必要的指导并督促实验进度,学生则利用上机时间或课外时间,独立或协作完
成实验,学期末提交作品及综合性实验报告,最后,教师挑选出优秀作品参加展示。从表1可以看出,作品的源程序文件长度、所定义的函数量、程序功能等方面与平时的上机作业相比都有了很大的变化,这反映了学生分析与解决问题的能力、程序设计能力、程序调试能力都有了很大发展。
尽管表1说明学生程序设计能力有所提高,但将2007级C语言期末成绩与没有开设综合性实验的2003级做独立样本T检验,发现差异不显著。两个年级在C语言课程开设情况、学生人数方面都相近,期末成绩都呈正态分布。为了进一步了解综合性实验的效果,将各年级的成绩排序,然后按27%的人数比例选取高分组(1组)和低分组(3组),剩下的作为中间组(2组)进行比较。从表2、表3可以看出:两个年级之间1组、2组差异不显著,但3组差异显著。该分析结果表明:通过综合实验,高分组同学得到了一定的提高,中间组没有明显变化,但低分组却没能达到预期的目标。
进一步分析后发现,造成低分组差异显著的原因主要有:(1)中学时期学生学习动机主要来源于外部的升学压力,而进入高校以后由于缺乏类似的诱因,使学生的动机激发和维持变得困难。低分组学生在平时的练习中容易遭到挫败,遇到高难度的综合性实验,更难树立顺利完成任务的信心,缺乏完成综合性实验的必要动力。(2)我国高校大一学生的学习策略普遍低下,学生极不善于使用高级的认知监控策略,缺乏自主,这极大地影响了他们的学习效率。低分组学生缺乏有效的学习策略,在解决综合性实验复杂任务的过程中遇到问题时,学生不知道怎样去找出问题的原因,致使任务搁浅。(3)低分组学生没有形成足够的完成综合性实验任务所需的知识技能,因而,实验中不能有效地获取完成任务的信息,导致不能很好地完成学习任务。由于以上原因,基础差、学习能力弱的学生被任务“难”住了,从而影响了教学的整体效果。
由此可见,如果不能很好地解决基础差且不具备有效学习策略的低分组学生学习的问题,则C语言综合性实验教学的效果必定大打折扣。为此,需要解决学生完成任务动力不足、学习策略欠缺、知识与技能基础不够这三个方面的问题,使大部分学生能顺利地进入综合性实验,从而在完成实验的过程中得到更好的发展。
3马扎诺学习模式
罗伯特• 马扎诺(Robert J. Marzano)2007年提出人的学习模式如图1所示。该模式从人的行为模式出发整体考虑学习的机制,在各种学习情境中勾勒出信息的流程:加工过程总是从自我系统开始的,再向元认知系统发展,然后是认知系统,最后是知识系统。其中一个系统中各种因子的状况总是影响到另一个系统中各种因子的状况。认知系统负责有效处理信息以完成学习任务,但为了有效地完成C语言综合性实验的复杂任务,需要自我系统、元认知系统、知识系统参与学习的过程。
3.1自我系统
自我系统用来判断学习者介入一项新任务的收益,是一个人参与学习任务的主要动机激发力量,包括以下四个子系统:(1)检查重要性,指识别任务作为满足人的基本需要或达到个人目标的手段的程度;(2)检查效能,涉及检查个体相信自己拥有与任务相关的才能、力量或必要资源的程度;(3)检查情感,反映包括分析个体对于给定任务的情感反映以及情感反映在个人动机中的作用;(4)检查总体动机,总体动机是前述三个因素的函数。三个决定性的自我系统对动机的影响可能不相等,有可能重要性的感知超过了缺少效能和负面情感反映的感知。当学习者面对一个新任务时,首先由自我系统识别个体在给定任务中的动机水平,然后识别关于决定了动机水平的重要性信念、效能信念、情感反映的相互关系,决定是否需要介入。
学生进入大学后虽然缺少了升学的压力,但是如果学习内容确实令人感兴趣,则学生愿意花精力去钻研相关知识,反之则不愿去深入学习,这就要求综合性实验的任务内容要尽可能地使学生感到:(1)任务有价值,对提升自己的能力很重要,(2)任务是自己能胜任的。这样,增加了学生在试图探索任务时的兴趣,从而加强了学生完成实验任务的动机。
3.2元认知系统
作为一种需要较高意识控制水平的认知活动,元认知系统有以下功能:(1)确定目标和计划,包括建立关于特定知识的清晰的目标并提出完成目标的计划;(2)过程监控和调节,负责监控实际过程的有效实施,并作出相应的调整;(3)对过程清楚准确的评价,确定个体对特定知识清楚和正确理解的程度。如果个体选择了某项新任务之后,就会由元认知系统提出与完成新任务有关的目标,并选择达成学习目标的策略。
C语言综合性实验是一项复杂的学习任务,对于元认知系统的训练尤为重要,学生需要学会:(1)确定任务目标,(2)反思与调控程序设计的过程确保实验任务按计划顺利完成,(3)学会正确评价学习的过程和结果,借此获得良好的学习体验和对学习过程进行调控的反馈信息。
3.3知识系统
知识系统由信息(陈述性知识)、心理过程(程序性知识)和心理动作过程(运用复杂的身体活动的能力)组成。自我系统、元认知系统、认知系统的运作都需要借助已经贮存的知识系统,要想取得学习的成功,很大程度上取决于个体对某一任务所掌握的知识量。
C语言综合性实验教学中,教师需要:(1)促进陈述性知识向程序性知识的转换,促进知识的迁移,以帮助学生建立合理的认知结构,(2)让学生学会更新知识的方法,及时补充完成实验任务所欠缺的知识。
由此可知,作为学习过程必不可少的组成部分,认知过程需要自我系统、元认知系统、知识系统的有效参与,无论缺少了哪一部分的参与都不可能取得满意的学习结果。若能促进自我系统、元认知系统、知识系统参与学习活动,则能解决学生完成任务的动力不足、学习策略欠缺、知识与技能基础不够三方面的问题,从而进一步提高C语言综合性实验教学的效果。
4C语言综合性实验教学中如何促进自我系统、元认知系统、知识系统参与学习过程
4.1精心设置学习任务,调动自我系统,促使学生愿意完成综合性实验任务
任务内容应该是有用的、有趣的,能让学生感觉到完成任务对于提升自己的程序设计能力是重要的。应该选择与学生日常生活有联系的题目,如“学生成绩管理系统”、“通信录管理系统”等,由于学生对这些系统有一定的了解,所以,他们容易产生动手试试的想法,而完成这样的任务,会使学生有成就感。
任务要求应该是可选择的、可实现的,让学生感觉自己有足够的知识,有能力完成任务。陈述参考题目时仅需按真实问题的形式给出基本要求。考虑到每个同学生活环境、所掌握的知识与能力的差异,题目要有适当的难度层次,按基本要求、一般要求和拓展要求分层给出。不同层次的学生都能选择适合自己的任务难度,并体验到成功完成任务的快乐,以加强其自信心和对学科的兴趣。
4.2改善学习策略,良好的元认知系统让学生善于完成综合性实验
为学生描绘的任务目标应该是具体的、可触及的图景,这有利于学生形成清晰的目标并形成开发计划。一年级的学生,没有一个自己设计程序最终的具体图景,也不明白自己要做什么,不知从何下手。所以,课程伊始,教师要提出综合性实验的任务,并展示一些往届学生实现的系统。此外,教师在上课的过程中要做一些启发性的引导,留一些“问题”给学生,这样,可以为学生完成综合实验打下基础,使学生在此基础上“跳一跳就能触及目标”。另外,还要让学生学会“自顶向下”的结构化程序设计方法,这有助于提出阶段性的子目标,确保实验任务的顺利完成,也有利于小组协作完成任务。
让学生学会反思自己的学习过程,监控自己的学习过程,并及时调节目标和修改计划,保证实验步骤的有效性。在基础知识学习阶段,教师要注意引入软件工程实践原则,让学生知道为什么要这样设计数据结构和算法,清楚每一阶段要做什么、得到了什么,与目标对比还需要做哪些改进,教师自己也应注意在平时的教学中运用这样的思维方法。同时,也要要求学生在上机实践的时候用心体会各个阶段所做的工作并把握好进度,应用并学会程序设计的一般方法。另外,按软件工程不同阶段记录的实验报告有助于学生理清思路,检验自己的思维过程,以便及时调控学习过程。
让学生获得对自己学习结果评估的方法,为自己学习过程的调节提供反馈信息,树立完成任务的信心,正确认识自己在本学科学习中获得的能力。从基础知识学习阶段开始,就应让学生学会设计基本的测试用例,通过观察程序运行结果来检验程序是否达到题目要求,并根据检验结果对程序进行查错和改进,学会评价自己设计的程序。到了综合性实验的最后阶段,优秀作品的展示既是对小组的肯定,也是同学间互相学习和交流情感的机会。此时,让一部分学生参与作品的评价既能避免教师评价的主观性,又能让学生了解外部评价的目标倾向,增加参评学生的荣誉感。
4.3优化知识结构,合理的知识系统让学生能够完成综合性实验任务
帮助学生建立良好而有序的知识结构,这有利于知识的记忆和提取。教师在引入新知识时要注意应用建构主义的思想,为学生创设一个问题情境,让学生充分理解算法的应用条件,这有利于新知识的同化,促进知识结构的优化,促使陈述性知识向程序性知识转化。此外,还应该提供相关的应用新知识的环境,使学生有机会应用所学的知识,通过反复练习达到自动化的程度。学生只有对一些基本概念和操作步骤达到自动化的水平后,才能在遇到复杂问题时为其分配更多的时间和精力,使实现程序性知识向策略性知识的转换。
让学生学会更新自身知识结构的方法。在完成综合性实验时,教师还应让学生懂得从何处能获取完成任务所需的资料。对于软件系统来说,最重要的是弄清用户的需求。因为很多实验题目来源于身边的真实环境,例如“医院管理系统”和“超市管理系统”,可以鼓励学生去了解现行系统的工作过程,界定自己将要重点完成真实系统中哪一部分功能。对于像“公交车模拟调度”这样的程序,可以提示学生去了解“数据结构”中关于队列的知识。另外,可以给学生介绍一些库函数手册和经典的C语言编程学习网站。
5结束语
完成C语言综合性实验是一个复杂问题的学习过程,教学中要解决学生完成任务的动力不足、学习策略欠缺、知识与技能基础不够的问题,需要自我系统、元认知系统和知识系统充分参与认知活动过程。
C语言综合性实验实施的过程中,根据马扎诺学习模式,教师可以从三方面来提高教学效果:(1)实验任务应该是有价值的并且是学生能胜任;(2)帮助学生确定任务目标,学会反思与调控程序设计的过程,学会正确评价学习的过程和结果;(3)帮助学生建立合理的认知结构,学会更新知识的方法。
程序设计能力的提升是一个在整个C语言教学过程中动态积累的过程,不是一次综合实验就能彻底改变的。因此,教师需要根据马扎诺分类学的要求,从C语言课程整体的认知、情感、技能目标出发,安排一系列循序渐进的学习任务,甚至从学科群的角度系统考虑和安排学习任务与目标,唯有如此才能全面提高教学质量。
参考文献:
[1] 黄荣怀,周跃良. 关于远程学习特征的分析[J]. 中国电化教育,2003(3):75-79.
[2] 盛群力. 旨在培养解决问题的高层次能力——马扎诺认知目标分类学详解[J]. 开放教育研究,2008(2):10-21.
[3] Robert J. Marzano. John S. Kendall. The New Taxonomy of Educational Objectives [M]. 2th ed. Thousand Oaks, CA: Corwin Press,2007:53-60.
[4] 张宏如,沈烈敏. 学习动机、元认知对学业成就的影响[J]. 心理科学,2005(1):114-116.
[5] 汪玲,郭德俊. 元认知的本质与要素[J]. 心理学报,2000(4):458-463.
[6] 陈岗. 加拿大高校创新人才培养方式的启示[J]. 中国大学教学,2007(11):92-95.
[7] 衷克定. SPSS for Windows数据统计分析工具应用教程[M]. 2版. 北京:北京师范大学出版社,2008:128-131.