基于建构主义的“C程序设计”分段教学
时间:2022-05-31 12:14:01 浏览次数:次
摘要:本文提出了将“C程序设计”教学分成引导入门、实践提高、实际应用三个阶段进行,每个阶段均有不同的学习任务和内容,并根据不同阶段的特点选用不同的教学方法。分段教学能使学生在具备扎实的基础知识的同时,又具备解决实际问题的能力。
关键词:建构主义;分段教学;“C程序设计”教学
中图分类号:G642 文献标识码:B
文章编号:1672-5913 (2007) 20-0053-03
信息社会对计算机专业的学生提出了更高的要求:不仅要会使用编程工具,而且要能应用编程工具解决实际问题。然而,传统的程序设计教学方法过多地关注语言细节而缺乏对学生程序设计方法和能力的训练,并在一个人为简化了的教学环境下传授知识,不利于知识迁移,因此出现了学生学完了程序设计课程却不会编程的现象。如何使学生具备扎实的基础知识,同时又具备解决实际问题能力,是目前亟待解决的问题。
建构主义因其倡导的有意义学习,被越来越多的教师用于指导程序设计课程的教学,并塑造了一些教学运作的新方式[1]。但建构主义理论本身还在不断完善和发展中,建构主义在程序设计教学实践中的应用还有待进一步的探讨。
1建构主义教学观
实际教学中倾向于选择建构主义教学观还是传统教学观,应该根据学生的认知规律与教学内容特点而定。
传统教学观与建构主义教学观处于一个系统的两个极端[2]。传统教学观不太强调学习者内在的条件,认为外在知识的内容和结构能完全复制到学生的头脑中,为了减少学习者的混乱而简化了真理;建构主义则处于另一个极端,强调学习者,认为学习是对学习者已有概念重新调整的过程,强调提供丰富多彩的学习环境以利于技能的迁移。
以教师为中心的传统教学观忽视了学习者对知识的主动建构,忽视了发展学习者的高阶思维能力。尽管传统教学观遭到批判,但它依然是广大教师使用最广泛的教学模式之一,有其存在的价值。传统的讲授法是一种高效的形式和方法,有利于基础知识和基本技能的系统传授,并能最大限度地发挥教师的主控作用,教学操作性强,适合学习者初级阶段的发展水平。
建构主义教学观越来越受到普遍的关注。建构主义在知识观、学习观、教学观、师生关系观和信息技术应用观等方面提出了与传统教学观不同的观点,有利于促进学习者高阶学习和高阶能力。它与当前我国教育理念改革和教育信息化的发展方向是一致的。
对于初学程序设计的大学一年级新生,因为没有建立有效的计算机模型,适于在较为简单的、限制的环境中,循序渐进地建立关于程序设计的基本概念。此阶段主要采用传统教学方法,帮助初学者较快地建立有效的计算机模型。当学生不再对计算机感到困惑时,应该由传统教学方法逐步过渡到建构主义教学方法,所呈现的教学情景越来越接近真实问题的环境,从而使学生分析问题、用编程工具解决问题的能力得到越来越多的训练。
根据“C程序设计”教学内容的特点及学生认知能力的发展过程,教学可分3个阶段,分别选用不同的教学方法进行(见表1)。
2分阶段选用不同的教学方法
2.1引导入门阶段
对于刚接触程序设计的初学者来说,本阶段的任务是快速建立有效的计算机模型,掌握程序的基本构成及常用算法模式,掌握用计算机检验所学知识的方法,为后继阶段的学习作积累。
主要学习的内容包括:程序基本构成,控制结构,简单函数。上机实践内容主要是学习使用编程环境,验证和熟悉语法,熟悉常用算法模式,会用计算机来验证语言知识,分析程序的执行。
教学一开始就应将课程的整体框架引入,让学生有个整体的概念和学习目标。“概念图”、“思维导图”之类的图形化工具有助于概念知识的表达,可以用于整体框架的引入,也可用于评价学生的学习。
课堂教学中,主要学习程序的阅读与分析。通过已编好的难度合适的程序将枯燥的数据类型、运算符等基本概念引入课堂,通过问题的解决来研究语法的结构、功能和使用效果;研究各部分代码的来龙去脉,形成完整的程序结构;研究常见算法模式与编程技巧。同时也使学生了解程序设计风格、技术规范、软件适用性、程序效率等。问题解决过程中应尽量结合学生原有的学习与生活经验,有利于新知识的同化。课后,对于常见算法模式,如交换两个数,查找,求累加和,数组的基本操作等,要求学生熟记并模仿。
通过测试、上机及课后作业等手段,教师利用负反馈及时发现学生的问题,使教师的教与学生的学同步。并要求学生经常小结上机调试经验。
2.2实践提高阶段
通过引导入门阶段的学习,学生已经建立了基本的计算机求解模型,了解了程序的基本构成、程序设计的基本策略与常用算法模式,基本会使用编程工具。此时需要在已有基础上学习高阶的问题分析、程序设计方法,提高解决问题的能力,完成实际技能的提升。
主要学习的内容包括:常见算法,函数,结构,文件。上机实践内容主要是设计较简单程序,学会用计算机来测试程序正确与否。
课堂教学中,主要学习问题的分析与解决。对于高阶思维的学习适于选用建构主义教学方法。教师需要对课程的知识点有整体的把握,有所选择地把主要知识点合理地组织到有趣的实际任务中,并考虑到新旧知识的联系,以推动学习的进行。教学中包括以下要素:
(1) 情景:通过呈现有趣的、接近实际的任务情境,激起学生解决任务的兴趣。多媒体及演示动画的应用有助于学生对任务的理解,使情景更逼真。
(2) 协作:2~4人一个小组。
教师提出任务后,小组内通过交流确定学习目标:明确要实现的功能和功能的划分。在选择数据结构与实现方法时,学生可以分工合作,借助教材、参考书、系统帮助等工具获取算法思路、库函数使用方法等知识。对于较复杂算法的实现,学生可以分工完成。
(3) 会话:通过会话促进知识的建构,包括师生会话和生生会话。
师生会话:教师引导学生自顶向下地逐步分析出解题思路,并注意启发性,鼓励学生提出不同的想法。利用结构化的算法描述工具,如PAD图,NS图,可以清晰地呈现解题思路。
生生会话:选择可用的概念,讨论解决的方法,调整概念结构。学生与学生由于拥有更加接近的知识和生活经验,更容易沟通和相互促进。
(4) 意义建构:通过知识建构环境中学习目标、学习者原有概念、学习经验等众多复杂因素的相互作用,学习者形成自己独有的解决任务的思路、技巧和方法,即意义建构。
2.3实际应用阶段
当课程主要内容学完后,应为学生提供一个综合性的、更真实的大任务,要求学生遵从软件工程过程,合作完成任务。任务应有一定的复杂度,使得学生必须协作完成。课堂上主要解决一些普遍存在的问题,学生必须利用课外时间才能按时完成任务,可以借助图书馆、Internet获得必要的帮助。任务完成后,通过展示与评价学生作品来评价任务完成情况,通过提交书面报告实现对任务实现过程的总结。
3建构主义教学实践中应注意的问题
建构主义教学条件要求较高,需要丰富的教学资源,并要求改变教师和学生的观点。要引起教学实质的变革,必须全面地理解建构主义各原则之间的联系[2]。由于多数教师对建构主义的认识是逐步加深的,建构主义对教学实践的指导也是逐步进行的,如此可能只是引起了一些表面的变化,甚至使情况变得更糟。
笔者一接触到任务驱动教学法就被这种方法吸引了,并开始在教学中实践。由于对建构主义原则理解不深,加上学生未能主动参与知识建构,教师还未实现从传授知识向意义建构促进的转变,而且难度合适组织方法相近的可用教材较少,学生反映起点高,难度大。同时也反映,若课前做过预习,则效率很高。后继课程的教师则反映学生的程序设计能力有所提高。由于上述原因,教学实践未达到预期效果,但学生和其他教师的反馈也说明:建构主义所倡导的教学原则对程序设计思路和方法的学习确实有帮助。
另外,建构主义教学方法实施中比较困难的是:从传统的线性知识组织形式向任务式组织形式的转变,此时需要从全局上把握学科知识并有所选择。在课堂教学中,应注意把握好教学节奏,给学生足够的时间协作和会话,从而完成意义的建构。此时,教师要注意结合实际课堂给予学生动态的引导。
4结束语
在思考程序设计课程教学中的问题时,很自然地被引向了建构主义。建构主义教学方法处于传统教学方法的另一个极端,在教学实践中,应根据学习内容与学生的认知类型分阶段选用不同的教学方法,以便在有限的教学时数内促进学生完成程序设计的高阶学习任务。
参考文献
[1] 余胜泉. 基于建构主义的教学设计模式[J]. 电化教育研究,2000,(12):7-13.
[2] Tony Greeing主编,麦中凡译. 21世纪计算机科学教育[M]. 高等教育出版社,2001:55-94.
[3] 张长海. 以程序设计为主线讲授“高级语言程序设计”课[J]. 计算机教育,2005,(5):9-12.
[4] 高顺富. “C语言课程设计”教学的思考与实践[J]. 电气电子教学学报,2002,(1):103-105.
作者简介:解敏(1975-),女,云南人,讲师,主要从事程序设计和信息系统方向的研究。
通信地址:云南 昆明 云南师范大学 计算机科学与信息技术学院 650092
E-mail:xmin7186@yahoo.com.cn
电话:13888083126
本项目受“2005年云南师范大学精品课程建设”资助。