程序设计教学中斯金纳教学理论的应用

来源 :教育科研 | 被引量 : 0次 | 上传用户:chenweihong2008
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要 本文通过《程序设计》课程教学中的一个教学案例,探讨了斯金纳的教学理论在《程序设计》课程教学中的具体应用。教学实践表明这种教学理论在《程序设计》课程教学中的应用能取得较好的教学效果。
  关键词 程序设计;斯金纳;教学理论;小步子原则;教学案例
  AbstractThis paper discussesthe application of B.F.Skinner's teaching theory in programming teaching by a teaching case on programming course. The teaching practice indicates that better teaching effect can be obtained in programming teaching.
  Key wordsprogramming ;Skinner; teaching theory;small step principle; teaching case
  中图分类号G642 文献标识码 B
  
  引言
  
  《程序设计》是高校计算机专业的一门极其重要的专业基础课程,其基本教学目标应是使学生们通过本门课程的学习,熟练掌握某种高级程序设计语言( 如C语言)的基本语法,深刻理解结构化的编程思想,并能应用结构化的编程思想和相应高级语言的基本语法编写较简单的程序,使他们具备初步的程序设计能力,为进一步学习其它专业课程打下良好的基础。然而,由于种种原因,特别是由于《程序设计》这门课程的内容具有非物理的特性以及其内容描述手段的形式化,因此,要真正学好这门课程,需要学生具有较好的计算思维能力即高度的抽象思维能力和严密的逻辑推理能力[1],能够将要求通过编写程序解决的问题模型化,但是,这些能力对于刚刚跨入大学校门的大多数新生而言特别是对很多来自落后地区其高中阶段很少接触计算机的学生而言却是较为缺乏的,因此,他们在学习本课程的过程中困难重重,学习效果很不理想,甚至有相当数量的学生最后干脆完全放弃了对本课程的学习,以至于对整个计算机专业课程的学习完全失去信心和兴趣。
  如何帮助学生克服本课程学习中的困难,实现本课程预期的教学目标,这是承担本课程教学任务的教师需要认真对待的问题。教学活动是一个以学生为主体,以教师为主导的双向交流活动。为了提高教学效果,帮助学生克服学习中的困难,提高他们的自信心,应充分发挥教师的主导作用。本文以多年的《程序设计》教学经验为基础,探讨了斯金纳的程序教学理论和小步子原则在《程序设计》课程教学中的具体应用。
  
  一、斯金纳的程序教学理论
  
  B·F·斯金纳是美国著名的教学心理学家,他通过动物实验建立了操作行为主义的学习理论,并据此提出了程序教学理论及其教学模式,这种程序教学理论及其教学模式曾给20世纪50年代的美国和世界的中小学教育带来广泛而深远的影响[2]。
  斯金纳认为,人类的学习是一种操作反应的强化过程,可以设计一个完整的学习环境,在这个环境中通过一系列层次性的手段,将学习行为引导到预期的最终结果。在斯金纳看来,教师在教学过程中必须充分考虑在规定的时间里教学的内容是什么,如何有效地安排教学环节,也就是说,教师如何对教学目标进行分解,把非常复杂的行为模式逐渐精致地化为一个一个的较小的单位或者步骤,确保每个步骤的行为都得到及时的强化。
  斯金纳提出的程序教学理论要求教师在教学过程中要遵循积极反应原则、小步子原则、即时反馈原则、自定步调原则和低错误率原则。其中小步子原则的主要思想是把教材分解为许多片段知识,并将这些片段知识编成一个逐渐增加难度的、有次序的序列,使任何相邻的两个小步子之间的难度相差很小,前一步的学习为后一步的学习作铺垫,后一步的学习在前一步学习后进行,这样在无形中降低学习的难度,使学生容易感受到学习的成功并自我强化,从而建立起学习的自信心。按照这些原则,斯金纳设计出了经典的程序教学模式即直线式程序教学模式,在这一教学模式中,教师要将教学材料分解成一系列连续的小步子,每一步一个项目,内容很少,系列的安排由浅入深,由简到繁。
  
  二、课程教学中的案例设计
  
  循环控制结构是程序设计语言中的基本结构之一,其执行过程并不复杂,但对初学程序设计的学生来说,用此结构编写程序还是会碰到不少困难。本节以在介绍了循环控制结构知识点后经常会碰到的一个具有代表性的问题做为案例,运用斯金纳的小步子原则和直线式程序教学模式的基本思想,将该问题分解为6个小问题,6个小问题的难度逐步加大,但相邻两个小问题的难度相差较小,从而有效地降低了问题的难度,并能使学生对循环控制结构知识点的理解和掌握得到不断强化,教学实践表明这种方法能取得较好的教学效果。
  问题:编程求
  sin(x)= x/1!-x^3/3!+x^5/5!-x^7/7!+...直至最后一项的绝对值小于10e-5。
  (1)求n!
  这是从原问题分解出的最简单的一个问题,在介绍了for 循环语句这一知识点后大多数学生能较轻松地编写出源程序。但需向学生指出的是表示阶乘值的变量的类型最好定义成double类型,这样n 的值可稍大一些,若定义成int类型,则对较小的n值就可能发生溢出(如n取为17),从而得出错误的结果。相应程序的代码很简单,故略去。
  (2)求1!+2!+...+n!
  此问题比第一个问题稍微增加了一点难度,因为既要求阶乘又要求累加和。不少学生只想到用双重循环来编程,但这样的程序其时间复杂度为O(n2) ,应帮助学生分析其累加和与和式中一般项之间的关系,用单循环来编程,使时间复杂度降为线性阶。程序主要代码如下:
  void main( ) {//求1!+2!+...+n!
   int i,n;
   double fac=1,sum=0; //与第一个小问题相比,增加了一个变量sum的定义
   printf(“请输入一个正整数:”);
   scanf(“%d”,&n);
   for(i=1;i<=n;i++) {
   fac=fac*i;
   sum+=fac;//与第一个小问题相比,只增加了此语句}
   printf(“\nsum=%.lf\n”,sum);}
  (3)求1/1!+1/2!+1/3!+...;直至最后一项小于10e-5
  只要搞清第二个小问题的编程思路,本问题便能较轻松的解决,因为本累加和中的一般项是上一个小问题中的一般项的倒数,因而可增设一个变量t来表示本题中的一般项,它是上一题中一般项fac的倒数。另外,还要让学生们注意到,本题中没有具体指定被累加的项数,故不宜使用for语句,最好使用while语句,并以t>=10e-5 作while循环的条件,当然也不再需要表示项数的变量n。相应程序的主要代码如下:
  void main() {//求1/1!+1/2!+1/3!+...;直至最后一项小于10e-5
   int i=1;double fac=1,t,sum=0;
   t=1/fac;
   while(t>=10e-5) {
   sum+=t;i++;
   fac=fac*i;//本题中被累加的一般项t的分母,即上一小题中被累加的一般项
   t=1/fac; //本题中被累加的一般项t }
   printf(“\nsum=%lf\n”,sum);}
  (4)求1/1!+1/3!+1/5!...;直至最后一项小于10e-5
  本问题比第三个小问题又稍微增加了一点难度,原因在于本题中相邻两项的分母不是连续整数的阶乘,但均相差一个常数2 ,利用此特点便可对第三个小问题的程序稍作修改,从而轻松地得到本题的程序。程序的主要代码如下:
  void main() {//求1/1!+1/3!+1/5!...;直至最后一项小于10e-5
   int i=1;double fac=1,t,sum=0;
   t=1/fac;
   while(t>=10e-5) {
   sum+=t; i=i+2;// 比较第三个程序的相应语句i++;
   fac=fac*(i-1)*i;// 比较第三个程序的相应语句fac=fac*i;
   t=1/fac;}
   printf(“\nsum=%lf\n”,sum);}
  (5)求1/1!-1/3!+1/5!-1/7!+...;直至最后一项的绝对值小于10e-5
  本题与上一小题所不同的是被求累加和的各项正负交替出现,通常解决这种问题的方法之一是定义一初值为1的变量如sn,然后每循环一次使此变量的符号改变一次,即将 -sn值给sn,并通过此变量来交替改变一般项的符号。相应程序的主要代码如下:
  void main( ) {//求1/1!-1/3!+1/5!-1/7!+...;直至最后一项的绝对值小于10e-5
   int i=1,sn=1;//与第四个程序相比,只增加了一个变量sn 的定义
   double fac=1,t,sum=0;
   t=1/fac;
   while(fabs(t)>=10e-5) {
   sum+=t;i=i+2;fac=fac*(i-1)*i;
   sn=-sn; //与第四个程序相比,只增加了这一条执行语句
   t=sn/fac;//与第四个程序相比,通过变量sn交替改变一般项的符号}
   printf(“\nsum=%lf\n”,sum);}
  (6)求x/1!-x^3/3!+x^5/5!-x^7/7!+...;直至最后一项的绝对值小于10e-5
  解决了上述五个小问题后,原有问题就显得较为简单了。事实上,考虑到原题的累加和中任意相邻两项之分子只相差一个因子x^2,因而,在第五个程序的基础上,只要增加两个变量(x与x2)的定义,x2为x初值的平方,然后每循环一次使表示一般项分子的x变为 -x*x2,并使新的x成为新的一般项t的分子。相应程序的主要代码如下:
  void main( ){//求x/1!-x^3/3!+x^5/5!-x^7/7!+...;直至最后一项的绝对值小于10e-5
   int i=1;
   double fac=1,t,sum=0,x,x2;//与第五个程序相比,只增加了二个变量x与x2的定义
   printf(“请输入一个实数:”);
   scanf(“%lf”,&x);//与第五个程序相比增加对x变量的键盘输入
   x2=x*x;//相邻两项之分子相差一个因子x^2
   t=x/fac;
   while(fabs(t)>=10e-5) {
   sum+=t;i=i+2; fac=fac*(i-1)*i;
  x=-x*x2;//与第五个程序相比增加了这一条语句,并通过此语句
  //交替改变一般项的正负号
   t=x/fac;}
   printf(“\nsum=%6.4lf\n”,sum);}
  本案例具有一定的普遍性,当学生们真正掌握了上述6个小问题的程序设计后,一方面,对循环控制结构知识点的理解将更为深刻,运用将更加灵活;另一方面,对于很多类似的求累加和的问题,将能很轻松地写出相应的程序。如:根据公式cosx=(-1)nx2n/(2n)!,编程求cosx的近似值,当某项的绝对值小于10-5时不再累加。
  
  三、结束语
  
  《程序设计》是计算机专业的第一门最具基础性的课程,能否学好这门课程往往直接决定了学生们能否有信心、有兴趣进一步学习和学好计算机专业的其它课程。因此,必须重视学生们在学习本课程时所碰到的各种困难,将课程中重要的、较难的知识点尽可能溶入到经过精心选择的程序设计教学案例之中,对于较难的程序设计问题,可运用斯金纳程序教学理论的小步子原则和直线式程序教学模式的基本思想,尽可能将问题分解为若干个小问题,使各小问题的难度逐步加大,但相邻两个小问题的难度相差较小,从而有效地降低问题的难度,增强学生们学习的自信心,并能使他们对所涉及到的有关知识点的理解和掌握得到不断强化,教学实践表明这种方法能够取得较好的教学效果。
  
  参考文献
  [1] 蒋宗礼.试论计算学科抽象第一的基本教育原理[J].计算机教育,2004,(11):54-58.
  [2] 谢应宽.B·F·斯金纳强化理论探析[J].贵州师范大学学报(自然科学版),2003,(1):110-114.
  [3] 谭浩强.C程序设计[M],第二版.北京:清华大学出版社,1999.12.
  
  作者简介:吴国兵男(1962-),籍贯:江苏东台,汉族,讲师,主要研究方向:数据挖掘和粗糙集理论等.
  
  注:“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
其他文献
摘 要高校对成年大学生也负有安全保障义务。高校违反安全保障义务侵权责任适用过错推定原则,构成侵权责任必须同时具备四个要件。违反安全保障义务侵权行为的责任形态有直接责任和补充责任两种。  关键词 高校;安全保障义务;违反安全保障义务侵权行为;侵权责任    学校对未成年学生负有安全保障义务已经得到立法的明确承认。而法律对成年大学生的安全保障义务则少有规定,导致这一问题长期得不到应有的重视。高校对成年
期刊
摘 要 维特根斯坦的哲学思想可分为前期和后期,前期为逻辑分析哲学、核心是图式说,它对逻辑实证主义具有决定性影响;后期基本上抛弃了前期的哲学观点,即以语言游戏说代替了图式说,以语言分析代替了逻辑分析,以日常语言代替了理想语言。他这一时期的哲学对日常语言哲学和科学哲学中历史主义有较大影响。  关键词 语言游戏;图式说;语言分析  Abstract Wittgenstein's philosophy t
期刊
摘 要 批评是教育学生的方法,恰当的运用批评可以使学生心服口服,自愿改正错误。本文论述了如何把以往批评的生硬方式改为温和方式,从而使学生容易接受批评,避免师生冲突的产生。  关键词 批评;柔性;中职生    批评好似一注良药,可以使学生的毛病得到医治,那么怎样使中职学生接受治疗,并且药效持久,就要考虑到如何“用药”的问题,是把苦味的药丸往学生嘴里灌,还是在药丸的表面裹上一层糖衣,使学生心甘情愿的接
期刊
摘 要 当前高校英语专业学生就业所面临的突出问题在于职业能力的缺乏。为此,本文探讨加强英语专业学生所应具备的职业能力,并从三个方面阐述加强英语专业学生职业能力培养的途径。  关键词 英语专业;职业能力;专业建设  Abstract One of the key problems in employment for English majors lies in lack of vocational
期刊
摘 要 数量的增长是学校工程硕士招生的重要指标,质量的提高是工程硕士招生关注的核心要素。国家、学校的招生政策、学校的声誉、生源的组织、入学考试的水平等都将影响到工程硕士招生的数量和质量,要采取有效措施抓住当前的发展机遇实现招生数量和质量的双赢。  关键词 工程硕士;招生数量;招生质量    研究生教育担负着培养高层次人才和发展科学技术的双重任务,在我国经济建设和社会发展中发挥着重要的作用,工程硕士
期刊
摘 要 采用统计实证的方法,从情绪低落、行为不当和低成就感三个维度描述了武汉地区高校大学生学习倦怠的总体情况,探讨了不同性别、不同专业认同程度和不同家庭经济状况的大学生在学习倦怠上是否存在显著性差异,最后得出结论,并提出了针对性的建议。  关键词 学习倦怠;大学生;武汉高校 ;实证  Abstract This paper adopts statistic authentic method. It
期刊
摘 要 着眼“两多”要求,任职教育中心理素质教育必须在目标指向上实现从单一维度向多位一体转变,在教学重心上实现从知识结构向操作层面转变,在实施形式上实现从集中讲授向系统合成转变,在作用发挥上实现从单兵作战向群策群力转变。  关键词 两多;任职教育;心理素质教育    “提高军队应对多种安全威胁、完成多样化军事任务的能力”,是党中央、中央军委和胡主席对军队建设目标和军事能力提出的新要求。新要求对军事
期刊
摘 要 铅球是《中学体育教学大纲》中规定的教学内容,也是《 国家体育锻炼标准》 要求考核项目之一,铅球的教学必须从教学活动整体,从学生的情况了解,教学方法是否得当而结合学生实际有针对性,教学的组织是否有利于教学方案的实施而取得预期效果,教学进程,教学程序是否合理、科学、有效等多渠道考虑设计。  关键词 铅球;教学    一、技术动作的结构分析    1.握持球及预备姿势  将球放在食指、中指、无名
期刊
摘 要 本文针对网络营销课程教学的特点及传统教学方法存在的弊端,探讨了将任务驱动教学法应用于网络营销课程教学中的方法和要点,并对应用效果进行了总结。  关键词 网络营销;任务驱动;教学方法   AbstractThis article considering the characteristic of e-marketing teaching and the shortcomings of its
期刊
赣南师范学院体育学院(江西341000)   摘 要 本文对客家体育在江西农村中小学开展的可行性进行了全面的分析讨论,并在分析江西农村中小学教学现状的基础上,提出客家体育在农村中小学开展的方法与途径,为江西农村中小学体育教学改革提供参考依据。  关键词 客家体育;江西;农村中小学;推广    一、江西地区农村中小学体育的现状问题    1.中小学体育课正常开课率低  由于受“应试教育”和农村旧的思
期刊