A mind for learning english in our project

    English is very important now.I have a mind of learning english,that is two words:use it!It's told me by a friend in the LearnDiary Developing Group(LDDG).And this friend introduce a english learning method-"study english reverse method" invented by generals Zhong DaoLong.This method can be downloaded at this address:,It's need pdf reader with Simpfied Chinese Support Package which can be downloaded at this address:.I suggest the friend like me to learn and exercise this method.

  So I have a mind,it's developing a part of our project in english.For example:private message management model in our project or other model.We can analyse,design,and code this model in english.

  Another,we can communicate each other in my website in english.In this way,we can learn english by using it.Of course,we should also take some other method introduced in manual writed by generals Zhong DaoLong.

  In order to learn english,I will write some type of diary in english,for example:nurture my daughter,felling in my life,and learn jsp.

  I hope there are many friend can join the team of learning english.

学习raorao的PostAdvice0Action.java

我在beforePostArt指的提交文章前的target,当提交文章后,这个target会保存在session

中。当重复提交失败后,页面会定向到beforePostArt所指的target。

因为raorao如果不改定向,提交日记定向的是diarysuccess所指的toSendMailOfGoalAction.do,这个target

提交日记前就已经保留在了session的beforePostArt中。重复提交日记失败后,调用

beforePostArt所指的target,自然就定向到了diarysuccess所指的toSendMailOfGoalAction.do,

就形成了重复发送邮件。

所以,raorao把重复提交日记失败后的target用isBackSubmit重新定向,避免了一般情况下的重复发送邮件。

但由于learndiaryV0.9本身没有彻底解决重复提交问题,在此基础上形成防止重复发送日记的代码在重复提交日记

成功后自然就被绕过了。而这正是学习日记程序设计队现在正在解决的目标之一。

 

学习日记大事记

这篇日记用于记载学习日记网站发生的具有里程碑意义的事件。

1、2004年9月28日,中秋节,学习日记投入运行;

2、2004年11月18日,学习日记开发小组正式成立;

3、约2005年6月,将学习日记的代码提交到http://www.tigris.org开源社区,成立学习日记开源项目http://learndiary.tigris.org

 4、2007年6月中旬,停用Java版学习日记,关闭学习日记开源项目,学习日记改为使用wordpress搭建的个人博客。

在倡议进行信息时代学习理论讨论的同时进行

    在需求分析设计队队长J_Key的来信的启发下,我删除了公告中的大部分其他公告,添加了开发小组成员参与新版学习平台的战略规划的帖子。希望大家可以在此或在学习日记创意集锦这个目标中展开新版学习平台未来的思考、讨论与建议。我觉得大家可以在学习日记创意集锦这个目标的日记中记录一些思考的过程,在战略规划的这个公告的评论中提出思考的结论。我会陆续在前者的日记中作一些学习理论和创意的思考。

    上周联系了一名学习理论的顾问,还在等待回复中。如果有了学习理论顾问的理论支援,我想我们的新版学习平台的理论指导会更完备的。

    上周开始在学习<<系统分析与设计>> 这本书的同时,学习javauml这本软件工程的电子书,为协助需求分析设计队队长J_Key的工作作准备。

    今天是圣诞节,我们这里地处内地,除了一些年龄不大的年青人参与赶时髦外,基本上没有过节的气氛。大家还是向往常一样过周末。不过,我想在学习日记开发小组的成员中,肯定有不少朋友正在欢度圣诞节。在这里祝他们圣诞节快乐。

    现在,临近过年了,大家都很忙,尤其是学生还要考试,我估计开发小组的工作会暂时比较宁静。但学生考试结束后,我想会热闹起来。只不过不知道他们什么时候放寒假。

抛砖引玉--关于新版学习平台的一点设想

我认为,新版学习平台可以采用下面的开发流程:

    总体战略规划-

                       一期计划-一期分析-一期设计-一期实施-一期推广并完善-

                                                                                                                二期计划-二期分析-二期设计-二期实施-二期推广并完善-

                                                                                                                                                                                                     三期计划-三期分析-三期设计-三期实施-三期推广并完善。。。

    这是一种螺旋模型,逐渐完成我们的目标,先完成必须的、风险小的,随着我们经验的增加,再完成风险大的。

一期计划:完成大家写日记的日记系统,可以把learndiaryV0.9.0.3看作探索型原型。推广我们的系统;

二期计划:加入专家智能系统(广义的),从目标确定,过程指导,经验总结,在系统中用一整套机制(资料库,真实专家参与,目标完成分析系统)。推广我们的系统;

三期计划:加入其他一些为学习服务的特性,所有使用我们这个平台的网站以程序的机制形成联盟,提供以人为本的,为一个一生中的所有学习项目提供一揽子解决方案的大网校。推广我们的系统。

    以上是我关于规划的一点初步想法,肯定很不成熟甚至错误,仅在此起一个抛砖引玉的作用,希望大家把你们的玉石一块一块的朝我砸过来吧。

    还有,酒好还怕巷子深。我觉得学习日记开发小组有必要组成一个宣传队,宣传我们的产品,争取我们的外授。

    祝大家圣诞节快乐!

jjj提出的文档规范(转自jjj)

对于文档的设计,我觉得必须有一个普遍的规范,并且这个规范必须可以对项目的开发起到好的效果!

所以我认为(个人观点,仅限于开发部分的文档,至于需求部分大家可以共同讨论)

1.数据库的设计(或者说PO持久化层的设计),必须有一个明确的文档,这个文档中描述了各个表之间的关系

。每个属性对其他表中的数据是怎样影响的,对应关系是什么样的。比如说:一个属性对应另外一个表,并且

是一对多关系,我们就可以明显的看出通过这个属性获得的是一个List;如果是一对一关系,就可以知道,他们

共用一个ID,通过这个实体就可以获得另外一个实体(DAO.load("***Id));如果是多对一关系,我们就要考虑

在编写EJB的时候是否需要通过懒加载(Lazy

)的方法获得这个po。

2.Action和ActonForm的文档

 

必须重视他们,虽然他们有时看来很简单,如果可以有一个详尽的文档,对开发action来说很有帮助。

  我举个我们写的文档 的例子吧:

  2.1概述

     在**详细信息页面(**Detail.jsp)上的保存按钮所调用的Action。

    2.2数据session传输方式

   从session获取数据列表:

   获取名称   参数类型    参数说明

    **Form    **Form **Form

    2.3 属性

无。

     4.4 数据request传输方式

     从request获取数据列表:

     获取名称 参数类型 参数说明

      在request存入数据列表:

      存入名称   参数类型 参数说明

     4.5调用ejb的接口描述

      接口名称:ejb.**.**. **

      方法名称:public void save**(PO  po,List  **,List        **)throws

DataOperationException,RemoteException

        方法说明:保存**单和**电路;

      返回值:void

     4.6 异常处理

      异常:DataOperationException

      错误号:处理异常时与输出信息相对应的错误编号

      说明:数据操作异常

      跳转路径:error(所有的出错信息都跳转到这个页面)

     4.7 功能描述

     

**详细信息页面(**Detail.jsp)上的保存按钮所调用的Action,将修改后的受理单保存。

     4.8 逻辑实现

      1.获取**Form;

     

2.从**Form中提取出**单po信息,和需要删除的电路列表deleteList和要保存的列表saveList;

      3.调用ejb方法public void save**(PO  po,List  save**List,List 

**List)throws

DataOperationException,RemoteException,来保存受理单、接入电路;

       4.如果保存成功则删除**Form;

      5.如果成功,则forward=success, page=**Success.jsp;

      6.否则,转向错误页面**Error.jsp

希望大家写代码一定要参照代码规范(转自kula)

1. Java 命名约定

除了以下几个特例之外,命名时应始终采用完整的英文描述符。此外,一般应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。

1.1 一般概念

n 尽量使用完整的英文描述符

n 采用适用于相关领域的术语

n 采用大小写混合使名字可读

n 尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一

n 避免使用长的名字(小于 15 个字母是个好主意)

n 避免使用类似的名字,或者仅仅是大小写不同的名字

n 避免使用下划线(除静态常量等)

1.2 示范

包(Package) 采用完整的英文描述符,应该都是由小写字母组成。对于全局包,将你的 Internet 域名反转并接上包名。 java.awt,com.learndiary.www.persistence

类(Class) 采用完整的英文描述符,所有单词的第一个字母大写。 Customer, SavingsAccount

接口(Interface) 采用完整的英文描述符说明接口封装,所有单词的第一个字母大写。习惯上,名字后面加上后缀 able, ible 或者 er,但这不是必需的。 Contactable,Prompter

组件/部件(Component) 使用完整的英文描述来说明组件的用途,末端应接上组件类型。 okButton, customerList,fileMenu

异常(Exception) 通常采用字母 e 表示异常。 e

类变量 字段采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。 firstName, lastName

实参/参数 同字段/属性的命名规则 public void setFirstName(String firstName){ this.firstName = firstName;}

局部变量 同字段/属性的命名规则

获取成员函数 被访问字段名的前面加上前缀 get。 getFirstName(), getLastName()

布尔型的获取成员函数 所有的布尔型获取函数必须用单词 is 做前缀。 isPersistent(), isString()

设置成员函数 被访问字段名的前面加上前缀 set。 setFirstName(), setLastName(),setWarpSpeed()

普通成员函数 采用完整的英文描述说明成员函数功能,第一个单词尽可能采用一个生动的动词,第一个字母小写。 openFile(), addAccount()

静态常量字段(static final) 全部采用大写字母,单词之间用下划线分隔。 MIN_BALANCE, DEFAULT_DATE

循环计数器 通常采用字母 i,j,k 或者 counter 都可以接受。 i, j, k, counter

数组 数组应该总是用下面的方式来命名:objectType[]。 byte[] buffer;

2. Java 注释约定

一个很好的可遵循的有关注释的经验法则是:问问你自己,你如果从未见过这段代码,要在合理的时间内有效地明白这段代码,你需要哪些信息。

2.1. 一般概念

n 注释应该增加代码的清晰度

n 保持注释的简洁

n 在写代码之前写注释

n 注释出为什么做了一些事,而不仅仅是做了什么

2.2. 示范

文档注释 在紧靠接口、类、成员函数和字段声明的前面注释它们。 /** 客户:客户是我们将服务和产品卖给的人或机构。*/

C 语言风格 采用 C 语言风格的注释去掉不再使用但你仍想保留的代码。仍想保留是因为用户万一会改变想法,或者在调试过程中想让它暂时失效。 /* 这部分代码因为已被它之前的代码取代,由 B.Gustafsson, 于 1999 年 6 月 4 日注释掉。如果两年之后还未使用,将其删除。. . . (源代码)*/

单行 在成员函数内采用单行注释,来说明业务逻辑、代码段和暂时变量的声明。注释符"//"后必须紧跟一个空格,然后才是注释信息。 // 遵照 Sarek 的规定,给所有// 超过 $1000 的发货单// 打 5% 的折扣。让利活// 动于 1995年 2 月开始.

2.3. 注释哪些部分

类 类的目的、即类所完成的功能,注释出采用的不变量。

接口 设置接口的目的、它应如何被使用以及如何不被使用。

成员函数注释 对于设置与获取成员函数,在成员变量已有说明的情况下,可以不加注释;普通成员函数要求说明完成什么功能,参数含义是什么返回什么;

普通成员函数内部注释 控制结构,代码做了些什么以及为什么这样做,处理顺序等。

实参/参数 参数含义、及其它任何约束或前提条件

字段/属性 字段描述

局部变量 无特别意义的情况下不加注释

3. Java 文件样式约定

所有的 Java(*.java) 文件都必须遵守如下的样式规则:

1) 版权信息

版权信息必须在 java 文件的开头,比如:

/** * Copyright ? 2000 Shanghai XXX Co. Ltd. * All right reserved. */

其他不需要出现在 javadoc 的信息也可以包含在这里。

2) Package/Imports

package 行要在 import 行之前,import 中标准的包名要在本地的包名之前,而且按照字母顺序排列。如果 import 行中包含了同一个包中的不同子目录,则应该用 * 来处理。

package hotlava.net.stats;import java.io.*;import java.util.Observable;import hotlava.util.Application;

这里 java.io.* 是用来代替InputStream and OutputStream 的。

3) Class

接下来的是类的注释,一般是用来解释类的。

/** * A class representing a set of packet and byte counters * It is observable to allow it to be watched, but only * reports changes when the current set is complete */

接下来是类定义,包含了在不同的行的 extends 和 implements

public class CounterSet extends Observable implements Cloneable{……}

4) Class Fields

接下来是类的成员变量:

/** * Packet counters */protected int[] packets;

public 的成员变量必须生成文档(JavaDoc)。proceted、private和 package 定义的成员变量如果名字含义明确的话,可以没有注释。

5) 存取方法(类的设置与获取成员函数)

接下来是类变量的存取的方法。它只是简单的用来将类的变量赋值获取值的话,可以简单的写在一行上,如类的成员变量已经有注释,类变量的存取方法可以没有注释。

public int[] getPackets() { return this.packets; }public void setPackets(int[] packets) { this.packets = packets; }……

要求说明的是,对于集合,加入成员函数来插入和删除项;另其它的方法不要写在一行上。

6) 构造函数

接下来是构造函数,它应该用递增的方式写(比如:参数多的写在后面)。

public CounterSet(int size){ this.size = size;}

7) 克隆方法

如果这个类是可以被克隆的,那么下一步就是 clone 方法:

public Object clone() { try { …… }catch(CloneNotSupportedException e) { …… }}

8) 类方法 (类的普通成员函数)

下面开始写类的方法:

/** * Set the packet counters * param r1 - …… * param r2 - …… * …… */protected final void setArray(int[] r1, int[] r2, int[] r3, int[] r4) throws IllegalArgumentException{ // Ensure the arrays are of equal size ……}

9) toString 方法

一般情况下,每一个类都应该定义 toString 方法:

public String toString() { ……}

10) main 方法

普通类,考虑置入一个main()方法,其中包含用于测试那个类的代码,如果包含了main() 方法, 那么它应该写在类的底部。

4. Java编码其它约定

n 文档化

必须用 javadoc 来为类生成文档。不仅因为它是标准,这也是被各种 java 编译器都认可的方法。使用 @author 标记是不被推荐的,因为代码不应该是被个人拥有的。

n 缩进

缩进应该是每行2个空格。 不要在源文件中保存Tab字符, 在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度。

如果你使用 UltrEdit 作为你的 Java 源代码编辑器的话,你可以通过如下操作来禁止保存Tab字符, 方法是通过 UltrEdit中先设定 Tab 使用的长度室2个空格,然后用 Format|Tabs to Spaces 菜单将 Tab 转换为空格。

n 页宽

页宽应该设置为80字符。 源代码一般不会超过这个宽度, 并导致无法完整显示, 但这一设置也可以灵活调整。 在任何情况下, 超长的语句应该在一个逗号或者一个操作符后折行。 一条语句折行后, 应该比原来的语句再缩进2个字符。

n {} 对

{} 中的语句应该单独作为一行。 例如, 下面的第1行是错误的, 第2行是正确的:

if (i>0) { i ++ }; // 错误, { 和 } 在同一行 if (i>0) { i ++ }; // 正确, 单独作为一行

n 括号

左括号和后一个字符之间不应该出现空格; 同样, 右括号和前一个字符之间也不应该出现空格。 下面的例子说明括号和空格的错误及正确使用:

CallProc( AParameter ); // 错误

CallProc(AParameter); // 正确

不要在语句中使用无意义的括号,括号只应该为达到某种目的而出现在源代码中。

n JSP文件命名

采用完整的英文描述说明JSP所完成的功能,尽可能包括一个生动的动词,第一个字母小写,如:viewMessage.jsp、editUser.jsp或者forumChooser.jsp等。

n Servlet类命名

一般对应于所服务的对象加后缀Service来命名,如:UserService,TradeService等。

5. 一些编程建议

n 使用 StringBuffer 对象

在处理 String 的时候要尽量使用 StringBuffer 类,StringBuffer 类是构成 String 类的基础。String 类将 StringBuffer 类封装了起来,(以花费更多时间为代价)为开发人员提供了一个安全的接口。当我们在构造字符串的时候,我们应该用 StringBuffer 来实现大部分的工作,当工作完成后将 StringBuffer 对象再转换为需要的 String 对象。比如:如果有一个字符串必须不断地在其后添加许多字符来完成构造,那么我们应该使用 StringBuffer 对象和它的 append() 方法。如果我们用 String 对象代替 StringBuffer 对象的话,会花费许多不必要的创建和释放对象的 CPU 时间。

n 避免太多的使用 synchronized 关键字

避免不必要的使用关键字 synchronized,应该在必要的时候再使用它,这是一个避免死锁的好方法。 必须使用时,也尽量控制范围,最好在块级控制。

n 避免使用 java.util.Vector 类

因为"Unlike the new collection implementations, Vector is synchronized.",所以使用java.util.Vector类在性能上会有所减低。

n 尽量使用接口而不是一个具体的类

比方如下需求,给定一个SQL语句,返回一个对象的列表,实现中用java.util.ArrayList实现,于是定义方法为:

public java.util.ArrayList getObjectItems(String sql)

上面的方法存在一个问题,当getObjectItems内改用Vector或LinkedList实现,外部类必须做相应更改。一个更好的方法是定义返回值为java.util.AbstractList更合适:

public java.util.AbstractList getObjectItems(String sql)

这样即使更改实现,外部类也不必做相应更改。

n 避免使用索引来调用数据库中间层组件返回的结果集

如:

for(int i=1; i<=dt.getRowCount(); i++){ String field1 = dt.getField(i, 0).toString(); ……}

而应用字段名来存取结果集:

for(int i=1; i<=dt.getRowCount(); i++){ String field1 = dt.getField(i, "field1").toString(); ……}

这样在数据库设计更改或查询的SQL语句发生变化时,不会影响到程序的执行。

n 一行不能超过80个字

n 函数能写一行的话就写一行.比如 public bealean isLearn(){ return false; }

n 除非上面的情况.括号单独占一行.

//code example

package querysms;

import java.util.*;

import java.text.*;

public class test

{

    public static void main(String[] argv)

    {

        GregorianCalendar d1=new GregorianCalendar(1986,04,05);

        GregorianCalendar d2=new GregorianCalendar();

        Calendar d3=Calendar.getInstance();

        System.out.println("It was then"+d1.getTime());

        System.out.println("It is now"+d2.getTime());

        System.out.println("It is now"+d3.getTime());

        d3.set(Calendar.YEAR,1915);

        d3.set(Calendar.MONTH,Calendar.APRIL);

        System.out.println("D3 set to "+d3.getTime());

    }

}

对学习日志的一点建议

能否在下一个版本里不用struts.这个框架很落后.缺点很多.

其实我们这个系统不是很大.用框架好的作用起不到反而会限制系统的灵活性.

我们可以参考一下struts.参考一下mvc.在设计的时候尽量用到他们的思想.但是不能让自己局限在这些死的框架中.可以我们自己设计,分工.做起来也会很有乐趣的。.

发出第1份调查表和聘请开发小组学习理论顾

    今天单位有事,没有到工地。

    早上发了调查章程修改意见的信。原来的副组长失踪了,这次聘请新的副组长又没答应,还要继续努力啊。晚上,发了聘请学习理论顾问的信。陈建翔的联系方式找不到。在网上查找他的信息,发现最多的信息是说他是“全国购书网的CEO”,但是网上提供的全国购书网网站正在建设中。

    昨天,顾问linzc来信提出了dao的建议,我把他的建议放在了本站下载页。他还提议在发的帖子中最好可以附带图片。我觉得他的建议很好,但是由于现在我们的主要精力是放在新版学习平台的规划上,他的建议可以在新版的学习系统中采用。

建构主义学习观要义评析 [转]

   

        

 

Username  Password  

   

 

   

    建构主义学习观要义评析 

 2003-5-7 

 

 

 

陈 琦 张建伟(北京师范大学心理学系)

摘 要:

  在发展过程中,建构主义表现出六种不同的倾向:激进建构主义、社会性建构主义、社会文化认知的观点、信息加工的建构主义、社会性建构论和控制论系统的观点。它们都以某种方式、在一定程度上对知识的确定性和可靠性提出了怀疑,都把学习看成是学习者通过新旧经验间双向的相互作用而建构自己的经验体系的过程;但在“外部输入-内部生成”和“个体-社会”两个维度上,它们又表现出一定的分歧。在认识论上,建构主义深入阐述了认识的建构性原则,但却带有唯心主义和相对主义的色彩。

关键词: 建构,建构主义,学习,学习理论。

  1996年,我们发表了《从认知主义到建构主义》一文(北京师大学报(社科版)1996年第4期),主要对建构主义的发展及其对学习和教学的具体理解做了分析,在本文中,我们将首先描绘一下建构主义的基本轮廓,看看其中的不同倾向,它们的共同主张是什么?分歧又在哪里?如何看待它们的分歧?而后对其认识论基础作分析。当然,本文并不涉及建构主义的方方面面,而是围绕学习理论的核心问题来展开,即学习是怎么回事?

  一、建构主义的不同倾向

  建构主义可谓当代教育心理学界的时髦字眼,很多人都想表明自己的立场:我是建构主义者。然而,细看一下就会发现,这些建构主义者对学习的理解并不完全相同,甚至有很大的分歧。

  从1990年开始,美国乔治亚大学教育学院组织了“ 教育中的新认识论” 系列研讨会,邀请建构主义学习理论领域的著名学者参加,包括von Glasersfeld、Steffe、Driver、Cobb、Spiro等,在轮番讨论中,主要出现了六种不同倾向的建构主义:激进建构主义(radical constructivism)、社会性建构主义(social constructivism)、社会文化认知的观点(socialcultural cognition)、信息加工的建构主义(information-processing constructivism)、社会建构论(social constructionism)和控制论系统(cybernetic system)。

  (一)激进建构主义

  这是在皮亚杰思想基础上发展起来的建构主义,以von Glasersfeld 和Steffe等为典型代表。von Glasersfeld(1989,见Ernest,1995)提出,激进建构主义有两条基本原则:(1)知识不是通过感觉或交流而被个体被动地接受的,而是由认知主体主动地建构起来的,建构是通过新旧经验的相互作用而实现的。(2)认识的机能是适应自己的经验世界,帮助组织自己的经验世界,而不是去发现本体论意义上的现实。象他的前辈康德一样,他相信世界的本来面目是我们无法知道的,而且也没有必要去推测它,我们所知道的只是我们的经验。所以他(1990,1995)认为,应该用“ 生存力” (viability)来代替“ 真理” 一词,只要某种知识能帮助我们解决具体问题,或能提供关于经验世界的一致性解释,那它就是适应的,就是有“生存力”的(适者生存),不要去追求经验与客体的一致。为了适应不断扩展的经验,个体的图式会不断进化,所有的知识都是在这种个体与经验世界的对话中建构起来的,而这要以个体的认知过程为基础。激进建构主义以这些思想为基础,深入研究了概念的形成、组织和转变,其研究之深入是各家建构主义中独一无二的,但这种建构主义主要关注个体与其物理环境的相互作用,对学习的社会性的一面则重视不够。

  (二)社会性建构主义(social constructivism)

  与激进建构主义不同,这是主要以维果斯基的理论为基础的建构主义。它也在一定程度上对知识的确定性和客观性提出了怀疑,认为所有的认识都是有问题的,没有绝对优胜的观点,但它又比激进建构主义稍温和,它认为,世界是客观存在的,对每个认识世界的个体来说是共通的。知识是在人类社会范围里建构起来的,又在不断地被改造,以尽可能与世界的本来面目相一致,尽管永远也达不到一致(见Ernest, 1995)。另外,它也把学习看成是个体建构自己的知识和理解的过程,但它更关心这一建构过程的社会的一面。这些研究者主张(见Confrey, 1995),知识不仅是在个体与物理环境的相互作用中建构的,社会性的相互作用同样重要,甚至更加重要,人的高级心理机能的发展是社会性相互作用内化的结果,而在此过程中,语言等符号具有极为重要的意义。学习者在自己的日常生活、交往和游戏等活动中,形成了大量的个体经验,这可以叫做“ 自下而上的知识” ,它从具体水平向知识的高级水平发展,走向以语言实现的概括,具有了理解性和随意性。而在人类的社会实践活动中则形成了公共文化知识,在个体的学习中,这种知识首先以语言符号的形式出现,由概括向具体经验领域发展,所以可以称为“ 自上而下的知识” (也可见维果斯基,1994,p. 189-304)。儿童在与成人或比他稍成熟的社会成员的交往活动(特别是教学活动)中,在他们的帮助下,解决自己还不能独立解决的问题,理解体现在成人身上的“ 自上而下的知识” ,并以自己已有的知识为基础,使之获得意义,从而把“ 最近发展区” 变成现实的发展,这是儿童知识经验发展的基本途径。当然,这种观点也在吸收当今建构主义的研究成果,开始重视感知-动作发展的作用,并深入解释概念的发展过程,强调个体发展中自然的与社会的两条线索的相互作用。Bauersfeld(1995)和Becker & Varelas(1995)基本属于这种观点。

  (三)社会文化认知的观点

  这种倾向与社会性建构主义有很大的相似之处,它也也受到了维果斯基的突出影响,也把学习看成是建构过程,关注学习的社会的方面。但它又与后者有所不同,它认为,心理活动是与一定的文化、历史和风俗习惯背景密切联系在一起的,知识与学习都是存在于一定的社会文化背景中的,不同的社会实践活动是知识的来源,所以,它着重研究不同文化、不同时代和不同情境下个体的学习和问题解决等活动的差别(Wertsch & Toma, 1995)。Saxe作为这种倾向的一个代表,他(1995)借鉴人类学的方法,研究一定文化背景下的个体为达到某种目的而进行的实际活动(如Oksapmin人的商品交换),他认为,这些实际活动是以一定的社会交往、社会规范、社会文化产品为背景的,个体以自己原有的知识经验为基础,通过一系列的活动,解决所出现的各种问题,最终达到活动的目标。他认为,学习应该象这些实际活动一样展开,在为达到某种目标而进行的实际活动中,解决遇到的实际问题,从而学习某种知识,学生在问题的提出及解决中都处于主动地位,而且在其中可以获得一定的支持。这种观点提倡师徒式(apprenticeship)教学,就象工厂中师傅带徒弟那样去教学。

  (四)信息加工的建构主义

  本来,信息加工论不属于建构主义,因为尽管它认识到认知是个积极的心理加工过程,学习不是被动的S-R联结,而是包含了信息的选择、加工和存储在内的复杂过程,在此意义上,信息加工论比行为主义大大前进了一步,但是,信息加工论假定,信息或知识是事先以某种先在的形式存在的,个体必须首先接受它们才能进行认知加工,那些更复杂的认知活动才得以进行。即便它看到了已有的知识在新知识获得中的作用,也基本不是把它看成是新旧经验间的反复的、双向的相互作用过程,它只是强调原有知识经验在新信息的编码表征中的作用,而忽略了新经验对原有知识经验的影响,比如加涅的学习模式,它无法解释学习的建构过程,不完全符合“ 知识是由个体建构而成” 这一原则,所以,它基本是认知主义的,是与客观主义传统相一致的,而不是建构主义的(Ernest,1995)。

  这里顺便说明一下,“ 认知主义” 并不是“ 认知心理学” 或“ 认知倾向” 、“ 认知派” 的同义语,相反,它与建构主义都是认知倾向的,都是与行为主义相对立的,它们两者的区分是在与客观主义的对比中显示出来的,信息加工论作为认知主义的观点,它是客观主义的,而建构主义则反对客观主义的传统。当然,它们之间的界限并不泾渭分明,比如,有人把J. Anderson的理论划到认知主义之列(Duffy & Jonassen, 1991),而有人则认为他是建构主义的(Silver, 1987)。

  信息加工的建构主义比信息加工论又前进了一步,它仍然坚持信息加工的基本范式,但完全接受了von Glasersfeld的第一条原则,即知识是由个体建构而成的,这不仅是对外部信息的加工,而且意味着外来信息与已有知识之间存在双向的、反复的相互作用,新经验意义的获得要以原有的知识经验为基础,从而超越所给的信息,而原有经验又会在此过程中被调整或改造。但这种观点并不接受von Glasersfeld的第二条原则,即知识是对经验世界的适应,它并不说明事物本来怎样。所以Ernest(1995)称信息加工的建构主义为“ 轻微的建构主义” 。Spiro等人的认知灵活性理论就是一种这样的建构主义,他们看到了学习中的双向建构,即新知识的获得以及原有知识的提取应用都是一个建构过程,针对“ 结构不良领域” ,他们提出了“ 高级知识获得” 及“ 随机通达教学” 等概念,我们在《从认知主义到建构主义》一文中已对此作了较多介绍。

  (五)社会性建构论 (social constructionism)*

  与社会性建构主义(social constructivism)有些相似,它也强调社会对个体发展的影响,但它比前者走得更远,它把社会置于个体之上,在大社会而不是在心理水平谈社会交往对个体学习的影响。它认为,知识根本不存在于个体内部,而是属于社会的,它以文本的形式存在,所有的人都以自己的方式解释文本的意义。Gergon是这种观点的代表,他(1995)认为,constructionism和constructivism都反对传统的经验论,反对逻辑实证主义,但它们选择的出路却不同,constructionism彻底抛弃了二元论的传统,转而分析人的语言,而后者仍然基于二元论传统,只是强调知识是由个体建构而成的,不再去问知识是否与客体一致。社会性建构论对教育的影响不太大(Ernest,1995)。

  (六)控制论(cybernetics)的观点

  这种观点以循环控制思想为基础,它不仅关注人与外界的相互作用与反馈,而且强调自我反省。Steier(1995)认为,认识主体不是站在世界之外的静止的观察者,而是一个积极主动的观察者,观察者同时又是参与者,所有的观察都是一种反省性的参与。而且观察者处于一定的社会之中,在不同观察者之间也存在复杂的相互作用。这种观点重视交互式教学(reciprocal teaching)和协作学习(collaborative learning),对学习的更多的解释尚未见到。

  建构主义作为一种学习观还没有形成稳定、清晰的体系,以上六种倾向并不是建构主义学习理论的全部(比如S. Papert也称自己的理论为建构论(constructionism),但与以上几种倾向相比又有自己的特色,而且,有很多“建构主义者”都不简单属于上面的某一种倾向,他们只是坚持了建构主义的一些基本思想),但从目前的了解来看,它们基本反映了建构主义的主体情况。

  二、不同建构主义的共同主张

  以上是六种不同倾向的建构主义,我们着重介绍了它们与学习和教学有关的观点。当然,建构主义的影响不止于此,它在科学哲学、社会科学、历史科学乃至社会政治中都有具体影响(Phillips, 1995),这里不加评论。从以上介绍可以看出,建构主义者提出问题的角度、使用的术语都有很大不同,但却都称作建构主义,那他们共同的落脚点在哪儿呢?要回答这个问题并不容易,因为几乎“ 有多少建构主义者就有多少种建构主义” ,这里只是尝试就学习观的三个基本问题做些分析。

  (一)怎样看待知识?

  知识是学习的重要内容,又是学习的主要结果。按照客观主义的观点,事物是客观存在的,而知识是对事物的表征,科学概念是与各种事物相对应的,科学命题、定理等是经过科学验证了的对事物的唯一正确的、真实的解释。而且只要掌握了这些知识,我们便掌握了这个世界的运转法则,便具有了支配世界的的力量。另外,语言可以赋予知识以客观的形式,通过语言便可以实现知识在人们之间的传递。然而,建构主义却在一定程度上,对知识的客观性和确定性提出了质疑。建构主义者(特别是激进的部分)一般强调,知识并不是对现实的准确表征,它只是一种解释、一种假设,它并不是问题的最终答案,相反,它会随着人类的进步而不断地被“ 革命” 掉,并随之出现新的假设;而且,知识并不能精确地概括世界的法则,在具体问题中,我们并不是拿来便用,一用就灵,而是需要针对具体情境进行再创造,这一点即便是“轻微的建构主义”也是强调的。另外,建构主义认为,知识不可能以实体的形式存在于具体个体之外,尽管我们通过语言符号赋予了知识一定的外在形式,甚至这些命题还得到了较普遍的认可,但这并不意味着学习者会对这些命题有同样的理解,因为这些理解只能由个体学习者基于自己的经验背景而建构起来,这取决于特定情境下的学习历程。

  建构主义的这种知识观尽管不免过于激进,但它向传统的教学和课程理论提出了巨大挑战,值得我们深思。按照这种观点,课本知识只是一种关于各种现象的较为可靠的假设,而不是解释现实的“ 模板” 。科学知识包含真理性,但不是绝对正确的最终答案,它只是对现实的一种更可能正确的解释。而且,更重要的是,这些知识在被个体接受之前,它对个体来说是毫无权威可言的,不能把知识作为预先决定了的东西教给学生,不要用我们对知识正确性的强调作为让个体接受它的理由,不能用科学家、教师、课本的权威来压服学生,学生对知识的“ 接受” 只能靠他自己的建构来完成,以他们自己的经验、信念为背景来分析知识的合理性。学生的学习不仅是对新知识的理解,而且是对新知识的分析、检验和批判。另外,知识在各种情况下应用并不是简单套用,具体情境总有自己的特异性,所以,学习知识不能满足于教条式的掌握,而是需要不断深化,把握它在具体情境中的复杂变化,使学习走向“思维中的具体”(见张建伟、陈琦,1996)。

  (二)如何理解学习活动?

  建构主义认为,学习不是知识由教师向学生的传递,而是学生建构自己的知识的过程,学习者不是被动的信息吸收者,相反,他要主动地建构信息的意义,这种建构不可能由其他人代替,在这一点上,不同倾向的建构主义是基本一致的。

  什么是建构呢?“ 建构” 本来用于建筑或木器加工中,指为了某种目的而把已有的零件、材料制成某种结构。在这里,建构在于学习者通过新、旧知识经验之间的反复的、双向的相互作用,来形成和调整自己的经验结构。在这种建构过程中,一方面学习者对当前信息的理解需要以原有的知识经验为基础,超越外部信息本身;另一方面,对原有知识经验的运用又不只是简单地提取和套用,个体同时需要依据新经验对原有经验本身也作出某种调整和改造,即同化和顺应两方面的统一。

  学习是个体建构自己的知识的过程,这意味着学习是主动的,学习者不是被动的刺激接受者,他要对外部信息做主动的选择和加工,因而不是行为主义所描述的S-R过程。而且,知识或意义也不是简单由外部信息决定的,外部信息本身没有意义,意义是学习者通过新旧知识经验间反复的、双向的相互作用过程而建构成的,其中,每个学习者都在以自己原有的经验系统为基础对新的信息进行编码,建构自己的理解,而且,原有知识又因为新经验的进入而发生调整和改变,所以学习并不简单是信息的量的积累,它同时包含由于新、旧经验的冲突而引发的观念转变和结构重组,学习过程并不简单是信息的输入、存储和提取,而是新旧经验之间的双向的相互作用过程,因此,建构主义又与认知主义的信息加工论有所不同。

  以往的学习理论(比如奥苏伯尔的“同化论”)一般重在从同化的一面来解释学习过程,强调以原有的知识为基础来理解和记忆新知识,而对原有知识经验因为新知识而发生的顺应则重视不够(尽管也有所涉及)。由于这一缺陷,我们往往把同化等同于理解或意义的获得,好象学生理解了新知识,也便接受了新知识,也就把它同化到了自己的认知结构之中了。从这种观念出发,我们往往只关心学生的那些与新知识有关、而且一致的已有经验,那些能帮助学生理解新知识的经验,把它们作为同化新知识的固定点。但实际上,学生头脑中的经验是相当丰富的,在这些知识经验中,有些是与当前要学习的知识一致的;而有些经验则与新知识并不完全一致,甚至是完全冲突的,比如,儿童有大量的经验表明,轻物体要比重物体落地慢,而现在要教给他伽利略的原理:“ 两个物体同时落地” ,这两者就是相互冲突的,这时即便儿童理解了课本所描述的定理的含义,他也很可能想不通,并不相信它,尽管他可能把它记忆下来,考试时按照这一说法作答,但他并不能真正把它变成自己的经验结构的一部分,在实际情况面前,他还是按自己的经验行事,这能说新知识被同化到学生的认知结构中了吗?可见,同化固然不是机械记忆,死记硬背,但也不简单是理解性记忆,它不仅意味着学生“ 知道” 某种知识,而且意味着“ 相信” 它,相信这一说法的合理性和有效性,使新知识真正与已有的知识经验一体化,成为(即建构成为)自己的经验。这不仅需要利用学生头脑中与新知识一致的知识经验,作为同化新知识的固定点,而且还要看到学生已有的、与当前知识不一致的知识经验,看到新旧经验之间的冲突,并通过调整来解决这种冲突,而这常常需要学生转变原有的错误观念(张建伟,待发)。因此,学习不仅是理解和记忆新知识,而且要分析它的合理性、有效性,从而形成自己对事物的观点,形成自己的思想;学习不仅是新的知识经验的获得,同时还意味着既有知识经验的改造。顺应要以同化为前提,而离开顺应的一面,新知识的同化也是很难真正完成的。只有将同化和顺应统一起来才能深刻地理解学习的实质,同化和顺应的统一就是知识建构的具体机制。

当然,不同倾向的建构主义所关注的知识建构的侧面是不同的,它们或者关心个体在与其物理环境打交道的过程中实现的知识建构,或者关心个体与社会环境的相互作用,但它们却都把学习看成是建构过程,都以新旧知识经验的相互作用来解释知识建构的机制。

  (三)怎样看待学习者?

  我们常常认为,在教学之前,学生对所要学习的主题本身基本是无所知的,他们所具有的只是些零碎的、片面的日常经验,以及一些相关的知识基础,而日常经验与课本知识往往是相互冲突的,它常常会妨碍正常的知识传授,所以教学必须把正规的知识告诉学生,这可以是教师讲授,也可以是学生自学教材等,在此之前,学生自己是无法或很难形成这些知识的,当然也就无法解决与此有关的问题。建构主义者强调,学习者并不是空着脑袋走进教室的,在日常生活中,在以往的学习中,他们已经形成了丰富的经验,小到身边的衣食住行,大到宇宙、星体的运行,从自然现象到社会生活,他们几乎都有一些自己的看法。而且,有些问题即便他们还没有接触过,没有现成的经验,但当问题一旦呈现在面前时,他们往往也可以基于相关的经验,依靠他们的认知能力(理智),形成对问题的某种解释,这并不都是胡乱猜测,而是从他们的经验背景出发而推出的合乎逻辑的假设。所以,教学不能无视学生的这些经验,另起炉灶,从外部装进新知识,而是要把儿童现有的知识经验作为新知识的生长点,引导儿童从原有的知识经验中“生长”出新的知识经验。教学不是知识的传递(transmission),而是知识的处理( transaction )和转换(transformation)(Chang-Wells & Wells,1993)。教师不简单是知识的呈现者,他应该重视学生自己对各种现象的理解,倾听他们现在的想法,洞察他们这些想法的由来,以此为根据,引导学生丰富或调整自己的理解。这不是简单的“告诉”就能奏效的,而是需要与学生共同针对某些问题进行探索,并在此过程中相互交流和质疑,了解彼此的想法,彼此作出某些调整。由于经验背景的差异,学习者对问题的理解常常各异,在学习者的共同体之中,这种差异本身便构成了一种宝贵的学习资源。当然,在个体的自我发展和外部引导两者之间,尽管建构主义着力研究的是前者,但它并不否认后者,它并不是取消教师的影响,而是说不能径直地教(Duit, 1995)。

  三、不同建构主义的分歧

以上分析了六种倾向的建构主义的共同点,那它们的分歧究竟在何处呢?这里不想对方方面面的分歧一一分析,参照Phillips(1995)、Ernest(1995)的分析,我们仅从“外部输入-内部生成”和“个体-社会”这两个维度,对各种倾向的建构主义学习理论的主要分歧做分析,并以图1来描述这种分歧。

图1 行为主义及不同倾向建构主义的分歧示意图

 (一)维度一:“外部输入-内部生成”

  个体的知识是怎样形成的?它是由外部输入的,还是由内部生成的?这两方面到底怎样权衡?这是学习理论的一个基本问题。如果说知识是由外界输入到个体学习者头脑中的,这就意味着学习过程就是要接受来自外部的刺激或信息,接受作为人类现有认识成果的知识体系。如果说知识是由个体生成的,那就意味着学习就是学习者运用自己的头脑形成对事物或现象的解释和理解的过程,就是探索问题的解决途径的过程。“外部输入-内部生成”是一个连续体,在这一维度上的定位很大程度上决定了一种学习理论的基本性质。以客观主义的经验论为基础的学习理论(含行为主义与认知主义)更倾向于把知识看成是由外部输入的,认识是外部事物的直接映象,知识是客观的,它可以由语言来表征,而教师先具有某种知识,他们通过讲授的方式把知识准确地传递给学生。建构主义反对客观主义的外塑论,它把知识看成是主体与客体相互作用的结果,而不是单由哪一方面产生的,同时,它一般又更强调学习者内部的生成作用。但是,外部信息的输入与学习者内部的生成各自的重要性到底如何?不同倾向的建构主义在此问题上又表现出了重大分歧。以Spiro等为代表的信息加工的建构主义比较温和,它承认知识的客观性和可靠性的一面,只是强调实际情境的复杂性和变化性,反对客观主义把知识教条化和过分简单化的做法。针对“结构不良”领域的特征,他们提出了“高级知识获得”的概念,主张加深知识理解的深度,把握其具体变化,以实现学习在具体情境中的广泛而灵活的迁移。而von Glasersfeld则鲜明地提出,知识不是对客观事物本来面目的反映,它是适应的结果,它只体现我们的经验。知识是不能传递的,它只能由个体学习者建构起来。教学的作用仅仅在于给了学生有效的活动机会,在活动和讨论中,在问题解决的过程中,学生自己建构自己的知识。教师是活动的促进者,但不能直接告诉学生什么东西。可见,他把内部生成在知识形成中的作用推到了极高的地位。社会性建构主义、社会文化认知的观点要比激进建构主义稍温和些,它们认为,已有的社会文化知识有一定的可靠性,是可以被个体学习者接受的,但这又不是简单的传递,而需要个体在已有经验的基础上,建构起对这些知识的理解。“ 外部输入-内部生成” 是与“ 建构” 密切相关的维度,从在这一维度上的定位,可以看出某种学习观点是否属于建构主义,以及它的激进程度如何,研究者把建构主义区分为极端的、微弱的和折衷的,这就是根据这一维度划分的。

  建构主义强调学习是一个建构过程,这对于揭示学习过程的积极主动性、克服传统教学的被动与机械具有重要的价值,但激进建构主义、社会建构论等却走向了另一个极端,它们否认知识传递的可能,否认学生对人类现有文化知识的学习。建构固然重要,但学生是不是要从头建构所有的知识呢?教师真的就不能告诉学生一些东西吗?在这一点上,建构主义(特别是其中的极端部分)是有偏颇的。学习作为一种特殊的认识活动,它有自己的客观性,而不是任意地建构。而且,学习者作为人类的一个个体,他没有必要去从头建构所有的知识,相反,他应该而且也能够继承人类既有的知识成果,当然,这种继承并不完全是传统教学的做法,这离不开通过教学这一途径实现的经验传递,但它又不是简单由教师或课本告诉学生,学习者要以自己的经验为基础,通过新旧知识经验间的同化和顺应来建构自己的理解,从而使间接知识的学习取得与在活动中建构知识相同的效果。实际上,一些研究者已经对此提出了强烈的批评(Anderson等,1996;Osborne,1996)。而且一些建构主义者也对此存有异议(Driver,1994; Becker & Varelas, 1995)。Anderson等(1996)对建构主义主要提出了以下不同看法:(1)教学有时是必要的、有益的,操练是能力增长的必要途径;(2)语言等符号是可以表征知识的,当然,需要对学习者头脑中的知识表征作深入研究;(3)对学习内容需要作必要的简单化,学习不一定都在复杂的情境中发生;(4)可以用一定的手段对学习进行测量。

  (二)维度二:“ 个体-社会”

  建构主义者都重视学习中的“相互作用”,但这又有不同情况。Driver(1995)划分了三种知识建构:个体的建构(个体与其物理环境的相互作用)、个体间(儿童-儿童、儿童-成人的相互作用)的建构、以及在更大社会文化背景下的公共知识建构,不同倾向的建构主义对这三者的重视程度是不同的。是把学习看成个体与物理环境相互作用的过程?还是更关注学习中的社会性相互作用?在“ 个体-社会” 这一连续体上,不同的建构主义表现出明显的差异。von Glasersfeld更关注的是个体学习者的知识建构,他沿着皮亚杰的路线,深入揭示个体在与客体的相互作用中形成、改造自己的知识经验的过程,即便谈到“ 他人” 时,他也主要把“ 他人” 理解为与一般物理客体相同的对象,而不是理解为与学习者一样的认知主体(von Glasersfeld,1996)。社会性建构主义、社会文化认知观点等更重视的是学习的社会的一面。它们继承维果斯基的观点,认为人的高级心理活动源于社会性相互作用,它们一方面重视合作、讨论在学习中的作用,另一方面重视人类现有的社会文化知识在个体学习中的作用,强调把社会文化知识内化为个体的经验。

  应该如何看待这种争议呢?皮亚杰等深入研究了个体的知识建构,但他毕竟对学习的社会的一面未给以足够的重视(当然他也有所涉及),个体与同伴、与成人之间的相互作用对个体的知识发展具有重大意义,特别是,个体可以通过与人类已有的知识成果之间的相互作用,大大促进自己知识的发展。而当今的激进建构主义在这方面也有同样的缺陷。以维果斯基为基础的社会性建构主义及社会文化认知观点等对学习的社会的一面做了深入的研究,但维果斯基也有致命的弱点,比如,他认为人的高级心理活动源于社会相互作用的内化,但内化的机制是怎样的呢?是模仿吗?是通过语言就可以实现的吗?对于这些问题,当今的建构主义者并没能很好地回答。另外,维果斯基过于强调成人帮助对儿童知识发展的作用,教师先具有某种知识,教师帮助学生解决问题,学生从中看到教师是怎样做的,渐渐学会独立解决问题,按照这种思想进行的教学具有权威主义的色彩(Confrey,1995; Hatano, 1993)。总之,我们应该对学生学习的社会的一面给以足够的重视,但与此同时,学习作为个体建构自己的理解的过程,个体内部的建构过程是基础,它同样是社会及文化等在学习中起作用的具体机制,必须对个体的建构过程做深入的研究。实际上,当前各派建构主义在“ 个体-社会” 这一维度上的分歧正在逐渐缩小,激进建构主义也看到了社会性相互作用的重要性,而社会性建构主义也在吸收激进建构主义等对个体知识建构的研究成果,以充实自己的理论基础(Ernest, 1995),一些研究者(Confrey, 1995; Hatano, 1993; Cobb, 1994; Driver, 1994)都试图寻求社会性建构主义与激进建构主义的整合途径。而且,很多研究者本来就不能简单归到哪一种倾向中去,他们常常是混合型的,如Yackel(1995)自称是激进建构主义者,但实际上却也在研究学习的社会的一面,认为讨论、交流在学习中是很重要的。

  四、建构主义的认识论评析

  建构主义作为一种新的认识论,在教育领域中产生了深远影响,该怎样从认识论上评价建构主义呢?

  (一)建构主义阐释了认识的建构性原则,有力地揭示了认识的能动性。

  马克思主义的认识论是能动的反映论,但是,我们以前更多在强调认识的客观性,而对认识的能动性则缺乏足够的重视和深入的揭示,在实际教育工作中更是如此。于是,我们把教材内容看成是对世界的标准解释,又用标准的语言表征出来,教师首先具有了些知识,他用清楚的语言表述出来,让学生达到标准的理解,最后再通过考试检查学生的理解。而且,我们把知识教条化,好象学生知道了这些条条,便掌握了事物的规律,便可以去用它解决实际问题了。这不就是典型的“ 填鸭式” 的教学吗?建构主义反对机械反映论,它认为,认识不是人脑对事物直接的简单的反映,而是以原有知识为基础、在主客体的相互作用中建构而成的,对事物的认识依赖于主体指向事物的活动,依赖于主体对自身活动的反思。建构性是认识能动性的具体体现,建构主义关于知识建构的研究对于揭示认识的能动性是很有启发的。

  在认识的能动性上,我们要注意以下问题:首先,认识不是对事物本身的直接的反映,而是通过人的实践,通过主客体的相互作用而实现的,而且认识的正确与否,也主要通过实践来检验。从这种意义上说,学习者的活动在学习中具有重要意义,同时,活动本身强烈地受到物质对象的限制,因而,经得起活动的检验便在一定程度上反映了知识本身的客观性。其次,对事物的认识是以个体的知识经验、需要、信念等为基础的,它不只是简单吸收来自客体的信息,因此,要重视学习者头脑中原有的知识经验的作用,而不要把他们看成是等着装东西的空容器。再次,认识是一个复杂的辩证的过程,认识开始于感性直观,同时它又要通过分析、抽象,对感性材料作筛选识别,抽取并概括出一定的抽象的规定,超越感性的具体限制;而且,认识活动仍不就此终止,而是反过头来,进一步把事物的各种规定(属性)、各个方面按照它们在具体总体中的真实关系具体地结合起来,统一起来,达到对事物的具体的、而不仅是抽象的把握,即从本质抽象走向“ 思维中的具体” 。因此,学习不能满足于对抽象的概念、规则的理解和记忆,而是要进一步深入,把握它在具体问题中的复杂性和具体变化。最后,真理同时具有绝对性和相对性,现实是复杂的,处于不断变化之中,知识对事物的把握只能是相对的,对于知识的相对性的一面,我们应给以足够的重视,这会影响到我们对教学内容的看法。

  实际上,在80年代到90年代初期,受皮亚杰发生认识论的影响,我国哲学界就曾对认识的“ 建构” 问题进行过热烈的讨论(王玉梁,1988,1991;王振武,1987;赵璧如,1988;邓兆明,1988;陈新权,1988),经过讨论,多数人承认了认识的建构原则,它与认识的主体性原则、主客体相互作用原则和中介原则等一起,构成了我国认识论研究中的观念性突破(夏甄陶,王永昌,1989)。

  (二)建构主义的很多观点具有明显的主观唯心主义和相对主义的色彩。

  建构主义看到了客观主义经验论的种种弊端,对此给予了不遗余力的攻击,应该说这种批评是切中要害的。但与此同时,建构主义(特别是激进的部分)却走向了与客观主义相对立的另一个极端:相对主义与主观唯心主义。它虽然一般不否定客观世界的存在,但一些研究者却怀疑认识的可能性,否认客观对主观的决定作用。它认为,知识并不反映世界的本来面目,不要去追求“ 真理” ,只能评价知识的一致性、“ 生存力” ,看它能否帮助我到达行为的目的,所以在真理观上又是实用主义和工具主义的(Gergon, 1995; Osborne, 1996)。Von Glasersfeld (1996)认为,传统哲学面临这样的困境:认识永远无法证明自己与客观世界的一致性,因为这样的比较又是靠另一次认识活动完成的。所以激进建构主义要在这一点上与传统哲学决裂:不再问知识与客观世界是否一致,是否“真”,而是把知识看成是经验世界而非本体论世界的体现,看成是适应的结果,去追求它的“ 生存力” ,看它在活动中的效果。他把这种适应仅仅归结为生物进化论意义上的适应,归结为经验内部的一致性,而没有看到在活动中折射出来的认识的客观性,走向了主观唯心主义和不可知论(也可见Phillips, 1995)。另外,一些建构主义者过于强调世界的不确定性和变化性,甚至完全否认本质,否认规律,否认一般,有一定的相对主义色彩。

  综上所述,当今的建构主义者对学习和教学做了新的解释,这是学习和教学理论在杜威、维果斯基、皮亚杰和布鲁纳等的思想基础上的又一次大综合和大发展,是为改革传统教学而进行的又一次大胆尝试。学生是自己的知识的建构者,这正是其主体性的内在根据。学生的主体性不是我们仁慈地赋予他们的,而是他们作为学习者天然具有的,只有认识了学习的建构性才能真正认识到学生的主体性所在。

参考文献

陈新权:《认识是反映与建构的统一》,哲学研究,1988年第1期。

邓兆明:《马克思主义认识论与皮亚杰建构学说》,社会科学(甘肃), 1988年第3期。

王玉梁:《论反映、建构与重构》,天津社会科学,1988年第5期。

王玉梁:《论反映与建构?缰のㄎ镏饕逵肫ぱ墙艿慕ü顾当嫖觥罚?仕嗌缁峥蒲В?991年第1 期。

维果茨基著,余震球译:《维果茨基教育论著选》,人民教育出版社,1994。

夏甄陶、王永昌:《十年来认识论研究和发展述评》,江海学刊,1989年第3期。

张建伟、陈琦:《从认知主义到建构主义》,北京师范大学学报(社科版),1996年第4期。

张建伟:《概念转变模型及其发展》,心理学动态,待发。

赵璧如:《再论列宁的反映论和皮亚杰的发生认识论》,中国社会科学,1988年第5期。

Anderson, J. R., Reder, L. M. & Simon, H. A. (1996). Application and misapplication of cognitive psychology to mathematics education. On WWW.

Bauersfeld, H. (1995). The structuring of the structures: Development and function of mathematizing as a social practice. In: L. P. Steffe & J. Gale(ed.), Constructivism in education (p. 137-158). Lawrence Erlbaum Associates, Publishers.

Becker, J. & Varelas, M. (1995). Assissing construction: The role of the teacher in assisting the learner’ s construction of preexisting cultural knowledge. In: L. P. Steffe & J. Gale(ed.), Constructivism in education (p. 433-446). Lawrence Erlbaum Associates, Publishers.

Chang-Wells, G. L. M. & Wells, G. (1993). Dynamics of discourse: Lateracy and the construction of knowledge. In: Forman, E. A., Minick, N. & Stone, C. A.(ed.). Contexts for learning: Socialcultural dynamics in children’ s development(p.58-90). New York: Oxford University Press.

Cobb. P. (1994). Where is the mind? Constructivist and socialcultural perspectives on mathematical development. Educational researcher, 23 (7): 13-20.

Confrey, J. (1995). How compatible are radical constructivism , social cultural approaches, and social constructivism? In: L. P. Steffe & J. Gale(ed.), Constructivism in education (p.185-225). Lawrence Erlbaum Associates, Publishers.

Driver, R., Asoko, H., Leach, J., Mortimer, E. & Scott, P.(1994). Constructing scientific knowledge in the classroom. Educational researcher, 23 (7): 5-12.

Duffy, T. M. & Jonassen, D. H. (1991). Constructivism: New implications for instructional techonology ? Educational techonology, 31(5): 7-12.

Duit, R. (1995). The constructivist view: A fashionable and fruitful paradigm for science education research and practice. In: L. P. Steffe & J. Gale(ed.), Constructivism in education (p. 271-286). Lawrence Erlbaum Associates, Publishers.

Ernest, P. (1995). The one and the many. In: L. P. Steffe & J. Gale(ed.), Constructivism in education(p.459-486). Lawrence Erlbaum Associates, Publishers.

Gergon, K. J. (1995). Social construction and the education process. In: L. P. Steffe & J. Gale(ed.), Constructivism in education (p.17-39). Lawrence Erlbaum Associates, Publishers.

Hatano, G. (1993). Time to merge Vygotskian and constructivist conception of knowledge acquisition. In: Forman, E. A., Minick, N. & Stone, C. A.(ed.). Contexts for learning: Socialcultural dynamics in children’ s development(p.153-166). New York: Oxford University Press.

Osborne, J. F. (1996). Beyond constructivism. Science education, 80(1): 53-82.

Phillips, D. C. (1995). The good, the bad, and the ugly: The many faces of constructivism. Educational researcher, 24(7): 5-12.

Phllips, D. C. (1996). Response to Ernt von Glasersfeld. Educational researcher, 25(6): 20.

Saxe, C. B. (1995). From the field to the classroom: Studies in mathematical understanding. In: L. P. Steffe & J. Gale(ed.), Constructivism in education (p. 287-312). Lawrence Erlbaum Associates, Publishers.

Shotter, J. (1995). In dialogue: Social constructionism and radical constructivism. In: L. P. Steffe & J. Gale(ed.), Constructivism in education(p.41-56). Lawrence Erlbaum Associates, Publishers.

Silver, E. A. (1987). Foudations of cognitive theory and research for mathematics problem-solving. In: A. H. Schoenfeld (ed.). Cognitive science and mathematics education (p.33-60). New Jersey: Lawrence Erlbaum Associates, Publishers.

Spiro, R. J. et. al. (1995). Cognitive flexibility, constructivism, and hypertext: Random access instruction for advanced knowledge acquisition in ill-structured domains. In: L. P. Steffe & J. Gale(ed.), Constructivism in education (p.85-107). Lawrence Erlbaum Associates, Publishers.

Steier, F. (1995). From universing to conversing: An ecological constructionist approach to learning and multiple description. In: L. P. Steffe & J. Gale(ed.), Constructivism in education (p.67-84). Lawrence Erlbaum Associates, Publishers.

Von Glasersfeld, E. (1990). An Exposition of constructivism: Why some like it radical. Journal for research in mathematics education, Monograph, 4, p.19-23.

Von Glasersfeld, E. (1995). A constructivist approach to teaching. In: L. P. Steffe & J. Gale(ed.), Constructivism in education(p.3-15). Lawrence Erlbaum Associates, Publishers.

Von Glasersfeld, E. (1996). Footnotes to “ The many faces of constructivism” . Educational researcher, 25(6): 19.

Wertsch, J. V. & Toma, C. (1995). Discourse and learning in the classroom: A Socialcultural approach. In: L. P. Steffe & J. Gale(ed.), Constructivism in education (p. 159-174). Lawrence Erlbaum Associates, Publishers.

Wood, J., Cobb, P. & Yackel, E. (1995). Reflection on Learning and teaching mathematics in elementary school. In: L. P. Steffe & J. Gale(ed.), Constructivism in education (p.401-422). Lawrence Erlbaum Associates, Publishers.

 

 

 

 

 

 

Contact        ?Design.2003 yxswff@sina.com