于 波,刘 佳,张云晶,张 晶
(1.吉林化工学院 信息与控制工程学院,吉林 吉林 132022;2.吉林机电工程学校 电气实训处,吉林 吉林 132021)
第四次工业革命的到来,促使工程教育进行全方位的变革。建设“新工科”是高等工程教育面对《中国制造2025》所做的积极回应。研究表明高等工程教育的改革必须重视基于能力的教育[1]。高等工程教育能力培养改革的源头是基于课程的“自下”的改革,课程改革的发端是基础课,《C语言程序设计》是高等工科院校普遍开设的一门计算机基础课,该课程现有的教学模式是以“考”为中心的教学,考核以考试成绩为衡量教学的标准。针对新工科人才能力培养需求,大学生计算机编程能力是新工科人才能力组成的重要部分。为在C语言教学中实现学生编程能力培养,解决C语言教学中学生学习的困难;尝试实施C语言支架式教学,通过支架降低学生学习困难,提升自主学习能力,消除认知障碍。支架式C语言教学是培养学生编程思维与能力的探索与实践。
根据欧共体“远距离教育与训练项目”(DGX Ⅲ)的有关文件,支架式教学被定义为:“支架式教学应当为学习者建构对知识的理解提供一种概念框架(conceptualframe work)。这种框架中的概念是为发展学习者对问题的进一步理解所需要的,为此,事先要把复杂的学习任务加以分解,以便于把学习者的理解逐步引向深入[2]。”
支架式教学的理论基础是来源于前苏联著名心理学家维果斯基的“最邻近发展区”理论[3]。维果斯基认为,在儿童智力活动中,对于所要解决问题和原有能力之间可能存在差异,通过教学,儿童在教师帮助下可以消除这种差异,这个差异就是“最邻近发展区”。换句话说,最邻近发展区定义为,儿童独立解决问题时的实际发展水平(第一个发展水平)和教师指导下解决问题时的潜在发展水平(第二个发展水平)之间的距离。可见儿童的两个发展水平之间的状态是由教学决定的,即教学可以支架式教学设计的方法创造最邻近发展区[4]。
在教学中学生的发展水平有两种:一是学生现有水平,指独立活动时所能达到的解决问题的水平;另一是学生可能发展水平,也就是通过教学所获得的潜在目标发展水平。两者之间的差异就是最近发展区。
建构主义学习理论提倡在教师指导下的、以学习者为中心的学习[5]。既强调学习者的认知主体作用,又不忽视教师的指导作用。教师是意义建构的一个环境因素,对意义建构起着不可或缺的帮助和促进作用,是整个学习过程中的组织者、帮助者和促进者,而不是知识的传授者和灌输者。支架式教学的学习理论基础是建构主义学习理论。
C语言教学的授课对象是大学一年级学生,通常电类相关专业开设课程时间是大一上学期,非电类专业开设课程时间是大一下学期。大一学生的原有知识结构、学习模式、学习方法、学习成绩、学生学习偏好是学生程序设计学习第一发展水平。
C语言教学中学生的最终目标发展水平是:建立编程思维、养成编程习惯、获得编程能力。学生个人能力表现:具备简单问题分析、算法建立、编程解决问题的能力。
C语言教学中,学生主要学习困难表现为:固有学习模式与计算机科学学习模式的不一致,固有思维模式与程序设计学习思维模式的矛盾,原有知识基础与编程学习存在的缝隙、不匹配,个人学习习惯缺乏障碍,程序设计学习中高阶思维建立客观障碍与主观困难,这些困难区就是学生的“最邻近发展区”。
基于C语言教学“最邻近发展区”的剖析,类似美国教育学者伯尼·道奇教授的支架式教学法[6,7],根据学习支架在学习不同内容,达到不同目标上将C语言支架教学从功能上划分,可以搭建三类C语言教学支架。
知识接受型支架设计的目的有利于知识的识记、辨析、理解,主要应用于C语言教学中语言关键字的记忆、语言使用规范的识记。这类支架设计的教学策略为应用类比、比较、区分的方法建立支架。
模式固化式支架设计的目的是辅助,引导学生建立程序设计中的应用范式框架,如程序的框架、函数的框架、算法设计的框架、函数应用的框架等。这类支架设计的教学策略为结合工程实践按实际需要、删繁就简搭建支架。
知识内化式支架设计的目的是提高学生的知识迁移和高阶思维的建立,培养学生的创新、创造能力。这类支架设计需要教师有较高的知识应用能力,能够灵活,动态、巧设题目,搭建支架。
支架式教学设计的核心是寻找学生的“最邻近发展区”,对于计算机程序设计教学而言,寻找“最邻近发展区”,首先要确立学生的原有知识区。大学生原有知识区的确定在教学设计中是按全体学生普遍具备的原有知识储备为依据。C语言程序设计开设课程的时间为大一上或大一下,学生具有教育基础为基本的英语和数学水平。支架式教学设计基础为数学基本理解运算力及英语初级水平。
C语言教学中,语言知识部分教学内容比较枯燥,这部分内容教学又是后续程序设计教学的基础,为打好基础,开启学生学习C语言的兴趣之门,激发学生求知欲是接受型C语言支架设计的核心。
这部分支架设计的要点是将繁杂内容力求以“简单”面目呈现出来,以学生原有知识为参照进行类比,比较,支架设计精炼。以C语言运算符内容为例说明这部分支架[8,9]。见表1。
表1 知识接受型C语言支架案例
C语言教学中让学生学会程序设计的教学目标,需要通过固化程序设计中的一些基本内容,并反复重复应用来强化,这部分内容设计了固化简化支架来辅助学习,教学上以教师总结的“三步教学”[10]经验和内容提炼为教学设计的依据。针对C语言应用进行梳理设计了“三步支架”。部分教学“三步支架”见表2。
表2 C语言“三步支架”
知识内化式支架设计目的是建立知识网络。知识内化式支架设计需统筹C语言程序设计的各部分知识,按照知识由点→线→面→网,能力培养由初级→中级→高级,从统一、整体角度设计教学支架,以问题为支架问题由简单→稍复杂→复杂呈递进形式设置。如以用海伦公式求三角形面积[11,12]为例设计内化式支架见表3。
表3 海伦公式内化式支架
应用支架式C语言教学,在C语言的两届六个班进行教学实践,实践证明支架式C语言实践教学能够将学生编程能力培养分级、分层纳入课程教学中;能将学生发散、模糊、混乱的程序设计思维清晰、规范化;能够有效培养学生的程序设计思维、建立程序设计习惯;增强学生应用程序设计语言解决实际问题的意识;提高学生自主学习的能动性。支架式C语言教学可以将能力培养的过程清晰化、阶段化、可操作化。