基于建构主义的高级语言程序设计教学策略研究

2012-08-15 00:48林颖贤
滁州学院学报 2012年5期
关键词:程序设计建构主义建构

林颖贤

(集美大学 计算机工程学院,福建 厦门 361021)

基于建构主义的高级语言程序设计教学策略研究

林颖贤

(集美大学 计算机工程学院,福建 厦门 361021)

建构主义理论对现代教育教学改革具有借鉴作用。为了激发学生的学习兴趣、培养学生的计算思维能力和分析问题、解决问题的能力,高校计算机专业高级语言程序设计课程应把“学生为主体,教师为主导”的原则贯穿整个教学过程,合理设计课前、课堂和课后教学策略,充分利用网络教学平台和资源,采用案例教学法和启发式教学法等手段和方法。

建构主义;高级语言程序设计;教学策略

高级语言程序设计是计算机专业的一门基础课,在培养学生逻辑思维能力过程中发挥着十分重要的作用,也是学好后继课程(如数据结构、操作系统等)的重要前提条件。该课程的教学目标是:“借助程序设计的知识载体,传授基本问题的求解过程和基本思路;建立算法意识,培养良好的思维习惯;从学科方法论上打基础,培养计算思维能力和分析问题、解决问题的能力”[1]。因此,如何激发学生的兴趣、提高学习的积极性,加强学生抽象思维能力和逻辑思维方法的训练,培养学生的计算思维和应用能力,是该课程教学研究的重点,也是计算机专业教学中人们不断探索的问题。目前该课程存在的主要问题是:过分强调语句语法,忽视思路和方法的训练,难以激发学生学习的积极性。本文借鉴建构主义理论和方法,结合课程的特点和目标,探析如何在课程教学中培养学生学习积极性、主动性和分析问题和解决问题的能力。

1 建构主义

近二十多年以来,随着心理学家对人类学习过程认知规律研究的不断深入,把学生作为知识灌输对象的行为主义学习理论,已经让位于把学生看作是信息加工主体的认知学习理论——建构主义。建构主义认为,学习者的知识是在一定情境即社会文化背景下,借助于他人(包括教师和学习伙伴)的帮助,利用必要的学习资料(信息),通过意义的建构而获得的。由于学习是在一定的情境即社会文化背景下,借助其他人的帮助即通过人际间的协作活动而实现的意义建构过程,因此理想的学习环境应当包括情境、协作、交流和意义建构四个部分[2]。建构主义提倡在教师指导下的、以学习者为中心的学习。也就是说,教师的作用不能只是“传道授业解惑”,而是实现学生意义建构的帮助者和推动者。学生是信息获取和加工的主体,是意义的主动建构者,而不是外部刺激的被动接受者和被灌输的对象。建构主义提倡的教学模式是:“以学生为中心,在整个教学过程中由教师起组织者、指导者、帮助者和促进者的作用,利用情境、协作、交流等学习环境要素充分发挥学生的主动性、积极性和创造性,最终达到使学生有效地实现对当前所学知识的意义建构的目的。”[3]建构主义学习观和教学观改变了传统教师和学生的地位和作用,使传统教学模式发生很大变化。教师应吸取新的教学理念,并且在教学过程中应采用新的教学设计和教学策略,避免以教师自己为中心、片面强调传授知识的传统教学模式。由于高级语言程序设计课程教学的重点不是概念和知识点的识记,而是培养学生的思维能力和运用能力,使学生最终能独立分析和解决编程问题,因此有必要借鉴建构主义原理,把“学生为主体,教师为主导”的原则贯穿整个教学过程,合理设计课前、课堂和课后教学策略,培养学生的自主学习能力,最终实现自我建构。

2 教学策略

由于观察的角度和认识的维度不同,国内外学者对教学策略的界定不尽相同,对教学策略的内涵也存在分歧,但是他们对教学策略的理解却有相似之处。那就是,教学策略是指在教学过程中,为了实现某一具体目标,根据不同的教学内容、学生特点以及教学条件,所使用的指导思想和方法,如:教学顺序、教学活动程序、教学组织形式、教学方法和教学媒体等。根据建构主义理论,我们把教学过程分为课前、课堂和课后环节,把学生的自我建构过程划分成课前建构、课堂建构和课后建构,并根据高级语言程序设计课程特点设计相应的教学策略。

2.1 课前构建

课前建构就是教师分析每一章节内容,抓住重点和难点,以实现教学目标为主要任务,根据学生的具体情况,充分利用教学资源,设计学生借助已有的认知结构去建构新知识的策略。课前建构强调教师对问题的设计和学生使用资源的策略,目的是培养学生的“自我建构”意识,即自主学习能力,要求学生带着问题走进课堂。课前建构应注意已学知识和新学知识的联系和衔接,学生新知识学习的过程就是通过利用可获取的资源、解决教师提出的问题、修正以往知识的过程。这个过程对于知识的建构具有重要作用。

教师在讲授新课之前,可以先列出每一章节必须掌握的主要内容及常用算法,利用本课程已建立的教学网站和资源,引导学生自主学习,让他们发现问题,带着问题走进课堂。这样,学生可以有目的地集中注意力参与课堂教学活动。例如:在讲到程序控制这一章节之前,教师可要求学生写出这一章节的预习报告,完成一些典型选择题并阅读所给的书写规范的编程题,如判断任意整数是否回文、n个数找出最大数等(可通过教学网站进行),要求他们与前面章节编写过的找3个整数中最大数及判断五位整数是否是回文进行比较,总结它们的不同点。通过程序控制这章的讲解,学生掌握了用循环控制实现:输入任意n位整数判断该数是否回文。讲到数组这章之前,课前又可以布置这样一道编程题:输入的值可以是数字或字符串(如:12321,abcdcba),如何判断该值是否为回文?学生通过自学数组这章节,发现用所学的知识无法实现,必须用到数组。因此,从这题又可以引申到下章要讲的数组。讲到函数这章之前,又可以让学生思考如何用递归函数来实现该题。

课前建构主要通过利用各种信息资源建立教学资源库、搭建网上教学平台和进行网上导学手段进行。导学内容可以包括:学习任务和要求、学习计划、学习方法、根据具体教学内容提供各种形式的导学材料。在教师的指导下,学生结合自己的实际情况,明确课程学习的具体步骤、目标、方法等。

2.2 课堂构建

课堂教学是教师发挥主导作用的核心环节,是实现学生“自我构建”的重要过程。教师要避免 “一言堂”和“填鸭式”的教学方式。因此,高级语言程序设计的课堂教学模式应彰显学生的主体地位,强化师生之间的互动,充分发挥学生的积极性和参与性。教学过程应强调教师导入和教师设问。教师导入和教师设问其实就是情境的创设,是课堂建构过程的重要环节。当学生课前已学的知识不足以解决当前遇到的问题,学生就迷惑了,求知欲望便被激发。这种激发求知欲望的情境正是新知识意义建构的契机。新知识意义建构的过程就是就是教师引导学生探索、解决一个个问题的过程。在课堂构建中,可以采用案例教学法和启发式教学法。

(1)案例教学法

教师在进行“案例教学”的过程中,要精选案例,选择上要注重系统性,实践性、启发性和趣味性,要能够体现知识点之间的联系。这样才能激发学生学习程序设计的兴趣和参与的积极性。在课堂案例教学中,教师在讲解每一新的知识体系前,运用即将学到的知识设计一个吸引学生的小游戏、动画程序或图形设计内容。例如:在讲解程序控制这一章节时,课堂上先给学生展示一个简单“贪吃虫游戏程序”,并在课堂上现场编写该小程序,让学生了解通过学到的if语句、while语句,再加上gotoxy()、kbhit()、getch()、printf()函数,就能实现光标上下移动,并能吃掉发现的巧克力豆。该题的解题思路关健在于通过输出空格来覆盖当前位置的图案。通过这题的讲解,学生掌握解题的基本思路。这时教师可以设问:为什么该程序小虫移到屏幕四周后无法再控制?通过提问、互动,学生掌握了解决该问题的关健:必须判断坐标点是否超出屏幕的范围,如果超出,重新设置坐标点。课后要求学生在教师所给的例子基础上加以创新,如:通过自学和上机调试,在这简单的程序中增加计时功能、障碍物;或增加背影音乐及难度级别等。伴随着课程教学内容的逐步深入,要求学生将学到的新知识不断运用到该小游戏中。例如:在讲完函数这章节,要求学生能用多文件修改该程序;讲到结构体和文件这章节,要求学生定义食物和小虫的结构体来修改程序并将结果保存到文件中。通过这一案例,增强了学生的学习积极性,提高学生综合分析问题的能力。这样,随着学生完成的案例积累,学生的操作水平也逐渐提高。每完成一个案例,学生就有一种成就感,其学习的积极性也随之大大提高。案例教学法不但能帮助教师实施整体教学,也利于学生主动意义建构,加强逻辑思维训练,并提高解决实际问题的能力。

(2)启发式教学法

启发式教学法就是针对授课的教学目标,设计合理的情景问题,引导学生对问题进行观察、分析,激发学生学习的主动性,提高学生课堂教学的参与意识的教学活动。以下阐述在多重循环程序设计的教学过程中,运用启发式教学法的例子。

问题的提出:用C语言输出各种图形(如三角形、菱形,金字塔),先从最简单的打印4行的等腰三角形讲解,学生最初的想法是用4条printf语句实现,如果只针对这道题,这种想法是正确的,但明显不符合程序设计的思想。这时教师可以进一步设问:如果用户希望输几行就能打印出几行的三角形?这时候学生就发现只用pirnf语句肯定不行,便会积极思考到底该如何解决?教师可以引导学生去发现图形的规律。经分析:等腰三角形每一行由若干个空格、星号和一个回车换行符构成,可以通过外循环控制行数(i=1,2,3,4),内循环控制空格数(j=3,2,1)和星号数(k=1,3,5,7),由此得出它们间的数学关系:j=4-i,k=2*i-1。则等腰三角形的构成规律可描述为:第i行由(4一i)个空格和(2×i-1)个星号和一个回车符构成。通过以上分析,程序便很容易实现了。采用以上方法,可以使学生很容易编写出菱形和金字塔图案的程序。关键点在于让学生找出图形中行号与每一行的空格数以及星号数的关系,分析其中的构成规律。

教学特别要注意渐进性原则,应力争逐步启发、环环紧扣,由仿制到创新。程序设计的基本思想不是背出来的,是通过不断的模仿、实践总结出来的。应注意对算法的积累,如找最大数和最小数、判断回文、进制的相互转换,判断素数、打印日历、hanoi塔、杨辉三角形、冒泡排序、选择排序、顺序查找,二查找算法等。解决一个问题可用多种方法与途径,让学生比较各种途径的优势和劣势,并分析各方法分别适合于什么情况,引导学生发散性思维和养成周密考虑问题的习惯。例如:编程求出Fibonacci数列的前40个数,可以用迭代法,使用循环语句和基本数据类型进行处理,也可用数组和循环语句处理,还可以用递归函数实现。当所求的Fibonacci数列值超过double类型时可用数组实现。

2.3 课后建构

课后建构,也可称为实践建构。通过实践,学生把课堂所学知识进一步内化和掌握,并融入自己已有的知识结构体系中,以达到融会贯通和灵活运用,真正实现“自我建构”。程序设计是一门实践性很强的课程,只重视课堂上的教学是远远不够的,编程能力的培养还必须经过上机实践,从而让学生真正理解和掌握课堂所学内容,积累经验,以达到学以致用的目的。课后编程实践要突出实用性和灵活性,避免生搬硬套,否则就不能激活学生的积极性。教师可以编写与教材配套的实验指导书,在设计实验题目时应充分考虑能力目标的培养,并针对学生层次的不同设计出不同层次的实验内容,供学生独立或分组完成。如实验题目可分为基础部分和拓展部分。基础部分的题目由学生个人独立完成,其目的主要是检测学生是否掌握基础知识和基本编程方法。拓展部分的题目以学生小组为单位完成,其目的主要是提高学生的综合编程能力,并把它应用到解决现实中的问题。拓展部分可以难度略大、实用性更强,例如:博饼、龟兔赛跑、海龟作图、走迷宫等。通过小组成员的讨论、合作和交流,为每个学生创造平等参与的机会,加强学生间情感沟通和信息交流,使学生成为教学活动的积极参与者,有利于实现“自我建构”。

课后建构还可借助网络环境。为了加强学生和教师的互动和交流,教师可以通过QQ群、E-mail、网络课堂等媒介对学生进行实践指导和答疑,也可就某些问题展开讨论,以弥补课堂教学的不足。此外,建构主义学习强调学习过程的最终目的是完成意义建构和实践能力的培养,因此,成绩评定应注重对学生学习过程的评价,体现多元化和个性化评价。通过更多地关注学生的学习过程、用发展的眼光评价学生,可以更好地体现评价的激励功能,促进学生主动学习。

3 结束语

在高级语言程序设计的教学中,运用建构主义教学原理,能够很好地激发学生的学习兴趣和主动性,有利于培养学生自主学习能力,对于提高课程的教学质量和培养学生的问题求解能力和创新能力有着积极的借鉴作用。

[1]吴文虎.精心铸精品理念须先行[J].计算机教育,2008(13):47-49.

[2]高 文,徐斌艳,吴 刚.建构主义教育研究[M].北京:教育科学出版社,2008:87-92.

[3]庞维国.自主学习:学与教的原理和策略[M].上海:华东师范大学出版社,2003:83.

A Study of Teaching Strategy for Advanced Language Programming Based on Constructivism

Lin Yingxian

The constructivism theory can be used for reference in modern education and teaching reform.In order to stimulate the students'learning interest and cultivate their abilities in computational thinking in programming,the teaching of Advanced Language Programming in universities should be implemented by following the rule of"students-centered,teacher-led"in the whole teaching process.And the course is also operated by making good use of network teaching platform and resources,designing proper teaching strategies for before-class,in-class and after-class teaching activities,applying the case teaching method and the heuristic method of teaching,and changing the way of assessment.

constructivism;Advanced Language Programming;teaching strategies

G642

A

1673-1794(2012)05-0107-03

林颖贤(1963-),女,副教授,主要研究方向数据库技术及应用。

集美大学教育教学改革项目(JY09143)

2012-08-11

猜你喜欢
程序设计建构主义建构
基于建构主义理论的计算机教育
消解、建构以及新的可能——阿来文学创作论
残酷青春中的自我建构和救赎
基于Visual Studio Code的C语言程序设计实践教学探索
旁批:建构主义视域下的语文助读抓手——以统编初中教材为例
从细节入手,谈PLC程序设计技巧
借鉴建构主义思想培养财会专业人才
建构游戏玩不够
高职高专院校C语言程序设计教学改革探索
紧抓十进制 建构数的认知体系——以《亿以内数的认识》例谈