APP下载

建构主义学习理论在C语言教学中的应用研究

2012-04-13肖晓霞罗铁清

湖南师范大学教育科学学报 2012年6期
关键词:C语言建构主义协作

肖晓霞,罗铁清

(湖南中医药大学 人文信息管理学院,湖南 长沙 410208)

一、建构主义学习理论与传统教学方法

建构主义的思想来源于认知加工学说,以及维果斯基、皮亚杰和布鲁纳等人的思想[1]。建构主义学习理论的核心思想就是以学生为中心[2],强调学生对知识的主动探究和发现[3],强调学生与教师之间以及学生之间的交流和协作,从而达到对所学知识意义的主动建构[4]。而传统教学方法则一般以教师为主体,采用教师讲解,学生被动接受的方式,传统C语言教学经常面临如下问题:

1.教学实例没有现实意义

传统的C语言教学方法是先讲概念或结构,然后以几个简单的例题说明知识点[5],对引导学生利用C语言解决实际问题成效甚微。这样很容易导致学生在学的过程中根本不知道这些例题到底可以做什么,以至于不知道学习C语言到底有什么用,误认为C语言是一门被淘汰的语言,甚至会失去学习C语言的兴趣。

2.教学实例没有连贯性

传统的教学方法中,每个知识点对应的实例前后几乎没有任何联系。这种讲解通常比较枯燥,没有目的性,学生学习起来也觉得很盲目。

3.教学中很少强调协作性

传统C语言实验教学中,通常是由学生在指定时间内完成几个数学方面的程序编写。由于实验任务简单和实验程序几乎没有相关性,学生在实验过程中基本上不需要协作完成,并且教师通常也不会强调这一点。

以上原因严重影响了C语言的教学质量,为了提高教学质量很多教师将基于建构主义学习理论的项目教学法和任务驱动教学方法引入到C语言的教学中。项目教学法是指教师和学生共同实施一个完整的项目工作而进行的教学活动,学生在教师的指导下通过收集资料、设计方案、共同协作实施项目工作来完成教学活动,这种教学方式对初学计算机语言的学生来说是难以适应的。

任务驱动教学法是指教师将教学内容设计成一个或多个任务,以某个实例为先导提出问题引导学生主动思考、积极探究、相互协作,从而使学生形成分析问题和解决问题的能力,学会独立探索知识和与人合作。

在C语言教学过程中,可以以实际项目为教学主线,将完成项目所需的知识点设计成各种具体的任务,采用项目驱动法和任务驱动法相结合的教学方法,使教学既具有层次性和实用性,又使学生形成综合运用所学知识的能力,真正做到学以致用。

二、以项目教学为主线,任务驱动为辅助的教学模式

为了将项目教学和任务驱动教学紧密结合,需要选择设计合适的项目,这个项目要求所涵盖的知识点多、难易适中;也易于根据学习的进度细化和设计各项任务。在整个项目实施过程中,一定要根据不同的进度安排合适任务,同时对学生进行分组,以小组为单位协作学习和完成各项任务和项目模块。对学生所完成的任务要进行及时的评价和考核,才能促使他们达成每堂课程的学习目标。

1.项目选择

为了使一个项目能贯穿整个教学过程且具有层次性,一定要设计学生易于理解、涵盖知识面广、操作性强、易于扩展的项目。设计项目时应注意如下事项:

首先,项目的内容应符合教学目标,具有真实性和实际应用价值,能被学生接受和理解,如可以选择学生学籍管理系统、超市管理系统、ATM机系统、自动售货机系统等[5],这样学生实施这些项目时容易入手。

其次,项目的选择需要考虑学生的能力和已有的知识水平,应该选择难易适中、大小合适的项目,学生有能力完成[5],且有一定的挑战性,需要学生进行思考、探究和与人协作才可以完成,这样可以培养学生独立探索的能力和团队协作的精神。

最后,项目的选择需要考虑学习的层次性,项目应该易于扩展。从第一次引入项目开始,要随着知识点的逐渐深入,不断扩展项目,当整个C语言教学结束后,该项目将包含所有的需要讲解的知识点。并且在课程结束后,项目并不是就此结束,还可以继续扩展,以便引导学生课后更深入地了解C语言,达到熟练应用C语言的目的。

2.任务设计

在C语言的项目教学过程中,对于初学者不可能一开始就要求学生完成一个完整的项目。在整个项目中要设置很多个与当前知识点相联系的任务,以任务驱动模式促使学生对当前知识点深入理解,为以后完成整个项目做好准备。任务的设计可以从以下两点出发:

(1)根据项目设计难易适中的任务,做到理论与实践一体化 任务的设计既要考虑学生学识水平,又要考虑到与贯穿整个教学活动的项目的密切联系。一般应根据具体项目所涉及到的问题来设计任务,如在成绩管理系统中,对还没有教学任何编程知识的情况下,可以提出如何计算和显示学生的单科成绩以及显示学生基本情况的任务。在这类任务的驱动下和老师的指导下,学生主动搜集所需学习资料,了解基本数据类型和表达式的构成,从而得出正确的表达式完成相关计算。这样可以使“做”和“学”一体化,避免了理论与实践二元分离的局面;做到了以具体任务为中心,实现理论与实践一体化教学。

(2)设计的任务要突出重点和难点,便于引导学生主动协作地构建知识 从教学开始,设计的任务都应突出重点和难点,引导学生拿到任务后主动分析问题,对问题所涉及的知识点主动学习并应用之,从而达到培养学生分析问题、解决问题的能力的目的。同时,应该设计突出难点和容易混淆的知识点的任务,引导学生讨论、协作解决,以此培养学生的团队协作能力。

总之,要设计能包含新知识点又来源于教学项目中的任务,学生能通过对任务进行分析、讨论,自主学习新知识。由于任务来源于项目,所以随着学习的深入,很多的任务逐渐变成项目中的某个模块,可以稍作修改就可以成为项目中的一个具体模块。这样的任务设计既可以提高学生利用C语言解决实际问题的能力,也可以引导学生随教学的不断深入而不断完善项目。课程结束后学生看到自己所做的小系统,会有一种成就感,而这种成就感将激发学生学习C语言的兴趣,达到持续学习的目的。

3.协作方式

在整个教学过程,不管是任务的完成还是最终项目的完成,都离不开学生与学生、学生与教师之间的协作。所以,教学开始就可以对所教授的班级进行分组,由每一组推选一位组长。在教学过程中,教师要充分调动组长的积极性,督促组长组织组员对任务进行分析和讨论,在任务完成后,组织组员分析总结,并将完成任务的总结整理上交给教师,作为评价和调整教学进度的依据。

4.评价与考核

(1)评价与考核的目的 在教学过程中,教师只有充分了解学生学习现状,才可以采用合适的任务驱动学生更进一步地学习。在学习过程中,学生只有得到恰当的评价,才可能提高继续学习的兴趣,学生只有在教师的鼓励和充分肯定中才有满足感和成就感,才有不断探究的热情,有完成整个项目的信心。

(2)评价与考核的方法 在实际教学过程中,以学生上交完成的阶段性作业对学生进行单独考核既增加教师的工作量又不能真正反映学生的实际能力。为了改变这种状况,可以以小组为单位进行评价和考核,考核的内容不是上交完成的任务,而是要求每个组员将完成任务中遇到的问题和解决问题的方案以及还存在的问题或困惑提交给组长,组长总结后,将待解问题在组内讨论后将总结报告交给教师,这样教师工作量减少了,学生分析问题、解决问题和总结经验的能力得到了提高,同时又有利于教师准确评价和激励学生,激发学生的求知欲,也有利于教师及时准确地调整教学进度,推动教学活动有序进行。

三、项目设计与实施举例

为了很快了解什么是项目,如何来完成项目,可以选择学生最为熟悉的学生学籍管理系统。学生学籍管理系统是目前各个学校管理系统中的一个子系统或者说是其中一部分,学生经常用于查成绩、选课等,故采用学生学籍管理系统作为项目贯穿于整个教学容易让学生理解;并且让学生意识到将要做的项目的实用价值,让学生切身体会到C语言具体可以做什么。

在整个教学过程中,紧扣学籍管理系统这个项目主线,为每一个知识点设计相应的任务,并提出引发学生深入思考的问题,引导学生以学习小组为团队主动运用各种学习方式构建自己的知识。可以根据如下循序渐进的过程来督促学生构建自己的C语言知识:

1)在项目总体设计时引入C程序设计的结构化思想;

2)在处理单个学生单门科目成绩时引入基本数据类型及分支结构;

3)在处理单个学生多门课程成绩时引入循环结构和一维数组;

4)在处理多个学生多门科目成绩时引入二维数组;

5)在多人合作完成项目时引入函数;

6)在多个函数间数据处理的一致性时引入指针;

7)在灵活处理数据一致性问题时引入结构体;

8)在处理大量数据问题时引入文件;

在教师根据学生学籍管理系统项目设计的任务的驱动下,学生逐步掌握C语言的各个知识点,从最基本的数据类型到文件操作都熟练后,学生学籍管理系统项目就可以基本完成了。系统初步完成后,可以引导学生重新对项目进行合理地划分和细化功能模块,加强多人合作开发软件,恰当地使用空函数或信息函数代替未开发的模块进行模块调试,掌握项目调试方法。在项目实现过程中,可以根据学生的学习能力,对该项目进行完善,如加入菜单、对算法进行优化等。

最后对每组完成的项目进行评价和考核,主要是突出各组的优点和指出可以继续完善的建议,引导学生对已完成的项目进行扩展,如对软件界面的设计可以直接使用VC的功能,引入面向对象的概念,为后续的学习做好铺垫。

四、总 结

以项目教学为主线、任务驱动为主体的基于建构主义学习理论的教学模式,非常适合初次学习计算机语言的学生。任务驱动法为主体,可以引导学生循序渐进地自主学习每个知识点,项目的贯穿始终又可以提高学生解决实际问题的能力;两者都可以提高学生主动探究、分析问题、解决问题以及团队协作的能力,从而通过不断的实践、讨论来构建自己的知识体系结构。

[1]陈 越.建构主义与建构主义学习理论综述[EB/OL].http://www.being.org.cn/theory/constructivism.htm,2011-01-20.

[2]李 丁.建构主义框架下教师与学生的角色转变[J].科技信息,2012,(1):301-301.

[3]温彭年,贾国英.建构主义理论与教学改革——建构主义学习理论综述[J].教育理论与实践,2002,(5):35-38.

[4]李 妮,孟朝霞.项目教学课堂用例系列的编制与建设[J].大众科技,2010,(9):169-170.

[5]Alice E.Fischer.C语言程序设计实用教程[M].北京:电子工业出版社,2008.

猜你喜欢

C语言建构主义协作
基于建构主义理论的计算机教育
基于Visual Studio Code的C语言程序设计实践教学探索
旁批:建构主义视域下的语文助读抓手——以统编初中教材为例
团结协作成功易
借鉴建构主义思想培养财会专业人才
基于C语言的计算机软件编程
协作
高职高专院校C语言程序设计教学改革探索
协作
可与您并肩协作的UR3