“情境-问题-探究”式教学法在C语言教学中的应用

2017-12-27 03:37郝蕊洁李妮
现代计算机 2017年33期
关键词:C语言解决问题教学法

郝蕊洁,李妮

(运城学院公共计算机教学部,运城 044000)

“情境-问题-探究”式教学法在C语言教学中的应用

郝蕊洁,李妮

(运城学院公共计算机教学部,运城 044000)

通过对非计算机专业C语言程序设计教学的现状分析,提出“情境-问题-探究”式教学法。介绍“情境-问题-探究”式教学法的内涵,接着通过实例探讨该方法在C语言教学中的应用。最后通过教学效果验证该方法不仅可以提高学生的理论能力,而且使学生的应用与创新能力也得到很大的提高。

情境;C语言程序设计;建构主义

0 C语言教学现状

C语言程序设计课程是我院针对非计算机理工科各专业开设的一门计算机通识教育课程。该课程的重点是培养学生的应用能力和创新能力,使学生获得利用计算机解决实际问题的能力。通过对部分理工科学生和讲授C语言的教师进行了调研,发现目前在C语言教学中主要存在以下问题:

(1)虽然大多数学生想学好C语言,但由于这门课知识体系庞杂、语法知识繁多,随着课程的不断深入,学生失去了学习的兴趣,学习的积极性也逐渐降低。

(2)有些学生认为C语言程序设计难以学以致用,往往以一种机械、被动的状态去学习,无法将知识融会贯通。虽然也通过了期末考试,但是发现问题和解决问题的能力仍然比较弱。

(3)由于课时的限制,教师在课堂上留给学生思考的时间较少,基本上是“满堂灌”的教学方法,学生被动接受知识,不能积极地参与到课堂中,忽视了自主学习能力的培养。

(4)教师因为学生的学习积极性降低,甚至基本的程序结构都难以掌握而感到失望,逐渐丧失教学热情。

1 “情境-问题-探究”式教学法的提出

“情境-问题-探究”式教学法是基于建构主义教学理论的一种教学方法。它的主要特征是:在教学过程中以情境引出问题,以问题为中心,把探究式教学作为解决问题的基本方式,最终实现学生对C语言知识的意义建构[1]。这种教学方法将知识传授与应用型人才的培养有机结合,激发了学生的情感和自主学习的兴趣,培养了学生主动发现问题和解决问题的能力。因此,将“情境-问题-探究”式教学法引入到教学中是C语言教学改革中的一项重要举措。

2 “情境-问题-探究”式教学法在C语言中的应用

2.1 创设情境,激发兴趣

情境是建构主义学习环境的四大要素之一,建构主义学习理论强调创设真实的情境[2]。情境本身包含两个特征[3]:一是客观情境,即静态的情景。教师应在深入研究教材和分析教学目标的基础上,积极引入与学生密切相关的、可激发学生兴趣,并蕴含一定问题的生活素材,将素材通过各种媒体呈现给学生;二是心理情境,即动态的心理活动。孔子曰:“不愤不启,不悱不发,举一隅不以三隅反,则不复也。”,当作为主体的学生处于“愤”与“悱”的状态时,教师适时地启发与引导,可以使学生得到感官刺激,激发某种情感体验,产生解决问题的冲动,并积极主动参与到课堂教学中。

在C语言教学中,笔者对不同的教学内容通过多种途径进行了情境创设。

(1)生活实例情境教学法:讲解if语句时将三种分支结构同生活中“过马路”的红灯停,绿灯行,遇到黄灯减速行,遇到障碍物绕道行...”状态进行类比。

(2)问题情境教学法:讲解数组的基本概念时用多媒体展示一个程序,功能是:有10个学生参加C语言考试,考试成绩由键盘输入,计算平均成绩,并输出比平均成绩高的学生成绩。程序如下:

由于程序采用的是简单数据类型,所以运行后无法实现相应的功能,而学生根据自己的先验知识,会积极主动地提出程序中存在的问题。

(3)游戏情境教学法:在讲解数组的插入算法时,教室第一排中间有六个座位,课前安排五位学生就坐,以游戏的方式演绎插入算法的过程;

(4)直观情境教学法:讲解指针的概念时类比两把钥匙打开两个抽屉。

(5)故事情境教学法:讲解递归调用时通过熟知的“从前有座山……”的故事引入,学生感兴趣而且可以将故事讲下去,当学生疑惑故事和递归的关系时,教师提示这是一个典型的递归故事,学生带着悬念,积极投入到算法的实现中。

总之,情境的安排应该以学生的学习为中心,能够引起学生好奇心和兴趣,激发学生的认知冲突,使学生置身其中并积极思考。

2.2 积极思维,提出问题

问题是探究式教学的起点,没有问题,就不可能有师生共同探究的过程[3]。“情境-问题-探究”式教学中,无论以哪种方法进行情境创设,都必然会引出问题,有些问题是学生主动发现的,有些问题需要教师进行引导,学生在问题情境中积极思维,产生探究的欲望,从而逐步解决问题。

问题不是简单的是非题,也并非为了提问而简单对事实加上“为什么”。问题应具有科学性,应当是赋予了情境的问题,是学生对情境中的现象或事物产生疑问后,经过思维逻辑加工后的问题。因此,在教学中,教师没有必要呈现具体的问题,可以通过各种教学方式,创设合适的情境,将问题蕴含在一定的情境中。

例如,在按照升序排列的数组中实现插入操作中,可以引导学生思考这样的问题:是先移动位置还是先进行插入操作?从哪个元素开始移动?移动时是顺序进行还是逆序进行?教师引导学生进行理论分析,并实现程序段如下:

当这一系列的问题解决后,教师可结合学生的结论和程序进行拓展,引出下一系列的问题:如果插入的位置恰好在最后一个,还需要移动位置吗?如果已知要插入的具体位置,算法如何实现?删除算法和插入算法的区别是什么?后一系列的问题是前一系列问题更深入的讨论与研究,教师可引导学生进行理论和算法分析,再通过运行程序进行验证,从而使问题得到解决。

2.3 探索研究,解决问题

探究式教学是以学生为主体,在教师引导下,学生在原有经验的基础上,主动研究、探索、发现事物的内在规律,掌握认识和解决问题的方法和步骤,最终对事物形成自己的概念。在探究式教学的过程中,学生的主体地位、自主能力都得到了加强。在学生尝试解决问题的过程中,教师是一个组织者、引导者,应及时规范学生的探索过程。同时教师应鼓励学生提出各种问题,当学生无法解决问题时,教师应及时参与到讨论中,使学生根据教师的引导和自己的先验知识,实现对知识的重构。这样,不但完成了知识的传授,也增强了师生间的互动。

例如,讲解素数问题时,学生根据原有数学经验和对break的理解,可以实现对整数n是否是素数的判定。那么,如何输出相应的信息呢?当学生利用已有知识无法解决这个问题时,教师及时提示学生观察循环结束后循环变量i的值,学生经过分析和讨论可以得出i的取值有两种情况。教师及时总结,只要在循环结束后检查循环变量的值,就可以判定循环是正常结束还是提前结束。在对循环变量终值法的探索过程中,实现了素数问题的解决。

讲解递归调用时将讲故事的过程包装成一个函数,多媒体展示程序,学生分析程序会发现程序将无终止的执行,问题就出现了:如何修改程序使故事只讲三遍?教师提示学生观察数学中实现n!的分段函数,提出递归调用中必须有结束递归的条件,当递归函数实现后,教师可对递归调用的概念进行总结,并提出递归调用的步骤及注意事项。

这一阶段重在让学生体验解决问题的过程,学生根据教师的引导和生活中的常识积极思考,体验科学家探究物质的方法和过程。

2.4 意义建构,应用创新

在建构主义学习环境中,学生学习的最终目的是实现对知识的意义建构[4],即会解决问题,并能在问题的解决过程中锻炼技能、培养视野、发展创新思维与实践能力。在探究式学习中,当学生面对一个问题时,首先会调动自己的已有知识与经验,以此为基础去理解问题,并尝试解决问题,若发现仅凭已有的知识无法解决问题时,就会陷入一种困境,若此时得到新知识,并将新知识同化与顺应到旧知识体系中,这样在新知识和已有经验的共同作用下,就会得到解决问题的方法。在解决问题的过程中,学生原来的知识体系结构发生了调整。这样,在解决问题的过程中完成了对C语言知识的深刻理解和掌握,最终实现了对C语言知识的意义建构。

利用循环变量终值法解决素数问题后,教师可引导学生继续对问题进行探究,寻求其他的解决方法。教师提示可以设立标记变量flag,其值为1表示n是素数,若判断不是素数更改其值为0,最终根据flag的值输出是否素数的信息,并在此算法的基础上引导学生实现判断整数中是否包含数字8。整个探究过程拓展了学生的思维,调整了他们的知识体系结构,并建立了同类型问题的解决方法。

Fibonacci数列是一个有趣的古典数学问题[5],学生已经掌握用迭代法实现输出数列的前40项。在学习了递归调用后,可以让学生尝试用递归算法实现;学习了数组后,再让学生用数组实现。这样在新旧知识的相互作用下,既让学生体会到了算法的多样性,又加深了对递归算法的理解,实现了对递归调用的意义建构。

3 教学效果

为了解“情境-问题-探究”式教学法的教学效果,分别在两个学期的两个小班进行了实践教学,并在学期末对学生进行了教学效果的调查,调查情况如表1所示:

表1 学期末学生教学效果反馈

通过以上调查表可以看出,学生对“情境-问题-探究”式教学法持肯定态度,而且各班的期末总成绩都能呈正态分布。“情境-问题-探究”式教学法能激发学生的学习兴趣,培养学生自主学习、发现问题和解决问题的能力,提高学生的学习效果。

4 结语

在C语言程序设计的教学中引入“情境-问题-探究”式教学法,使得学生在问题情境的驱动下,对C语言程序设计产生了浓厚的兴趣,能够主动、积极投入到课堂中,既掌握了基本的理论知识,同时对自己的思维进行了训练和提升。并使作为主导者的教师和作为主体的学生在情感和思维上产生了互动,而且是一种“主动式互动”,进而构建一种设疑、激趣、探究、启发的教学模式,达到了教学效果良好,师生双赢的局面。教师应在认真分析教学内容的基础上,多思考,多实践,合理应用各种情境进行教学,最终不断完善“情境-问题-探究”式教学法在C语言程序设计中的应用,提高学生的实际应用和创新能力。

[1]王广,郭黎萍,王春雷.“情境-问题-探究”式高师分析化学教学模式探索[J].大学教育,2013(3).

[2]何克抗.建构主义——革新传统教学的理论基础[J].学科教育,1998(6).

[3]王较过,刘海涛,朱贺.物理探究教学中问题情境的创设[J].天津师范大学学报(基础教育版),2008,9(2).

[4]何克抗.建构主义的教学模式、教学方法与教学设计[J].北京师范大学学报(社会科学版),1997(5).

[5]谭浩强.C程序设计[M].北京:清华大学出版社,2013.

Application of Situation-Question-Inquiry Teaching Method in C Language Teaching

HAO Rui-Jie,LI Ni
(Department of Public Computer Teaching,Yuncheng University,Yuncheng 044000)

By actuality analysis the C language programming teaching for no-computer major,brings forward the method of the situation-question-in⁃quiry teaching.Introduces the connotation of the situation-question-inquiry teaching,then,discusses the application of this method in the C language teaching,verifies the method by the teaching effect can not only improve students'ability in theory,but also makes the applica⁃tion and innovation ability of students are greatly improved.

Situation;Question;Inquiry;C Language Programming Design;Constructivism

运城学院教改项目(No.JG201731、JG201627)、教改项目(No.JG201731、No.JG201627)

1007-1423(2017)33-0030-04

10.3969/j.issn.1007-1423.2017.33.007

郝蕊洁(1982-),女,山西临猗人,硕士,研究方向为数字图像处理、计算机应用

李妮(1981-),女,山西省临汾人,硕士,副教授,研究方向为智能算法

2017-10-17

2017-11-15

猜你喜欢
C语言解决问题教学法
联系实际 解决问题
助农解决问题增收致富
批注式阅读教学法探究
基于Visual Studio Code的C语言程序设计实践教学探索
实施“六步教学法”构建高中政治高效课堂
解决问题的设计
51单片机C语言入门方法
面对面沟通交流 实打实解决问题
基于C语言的计算机软件编程
高中数学实践教学法的创新策略探讨