C语言教学中创造性思维的开发
2016-05-06殷振环
殷振环
【摘要】 《C编程和设计》是一门重要的计算机基础课程,旨在提高学生的逻辑思维能力实际的编程技巧。作者根据多年的教学经验体会到,C语言编程设计具有高度抽象性和逻辑逻辑性,这门课程不仅提供学生非常丰富思维材料和更广阔的思维空间,更开发他们的创造性。
【关键词】 C语言 创造性 教学模式
一、引言
创新性思维是思维的高级形式和创造力的核心,是人们特别的意图或者任务。培养学生的创造性思维是对现代教育的根本使命,特别是高等教育。C语言这门课程具有高度抽象性和逻辑性,可以提供学生广阔的思维空间。从我多年的教学经验,形成意见这个过程是一个伟大的培养学生的创新思维的过程。那么我们怎么可以培养学生的创造性思维?现在我将阐述我的观点。
二、使学生掌握C编程的一般方法
引导学生持有共同的方法C语言是发展的基础学生的创造性思维。当学生开始他们的C语言学习,他们通常无法找到他们面临的一个编程问题的出路。为什么呢?一个原因是,学生不能摆脱在中学时的旧的思维模式,另一个是他们还没有掌握C语言的编程方法。因此,教师应该多说多讲编程方法的例子,以便我们能为培养学生的创造性思维创造一个良好的环境。例1:输入两正整数为m和n。然后找出它们的最大公约数和最小公倍数。
算法分析:
第一步,读取问题。学生仔细阅读问题,关注它是两个正整数,要输入数据和理解最大公约数和最小公倍数的定义。
第二步,绘制的流程图描述算法的实现过程(见图1)。在该算法中,而循环使用,如果m
第三步,根据算法编写的C代码过程。
第四步,上机调试,最终得到程序的正确的结果。
三、舒适的环境启发学生的创意灵感
教学是教师和学生表达自己的感情和相互传染的心情的一个过程。培养学生的创造性思维,教师首先要设置一个舒适创意的环境。还有在课堂教学中需要注意:1、教师应尊重每一个学生,特别是对待那些编程不好的学生。这样,每个学生会觉得自己被认可,然后他们可以无压力的开拓自己的思维,找到他们的激励创新。以作者为例如,笔者曾在黑板上给定一个问题,然后让三学生完成它,。完成之后,作者做了一些算法分析工作,即使结果是错误的,还是给予更多的鼓励、少批评。2、分组讨论提倡学生互相帮助。组内成员之间应该没有任何区别。当讨论明确问题的结果,语言代表整个群体的智慧,并使每个组员快乐的讨论学习,可以有一个积极的态度和一个很好的机会培养学生的创新思维。
四、突破传统的研究方法培养学生的创造性思维
通常我们在传统的三个步骤教学理论给出的定义->解释定义->显示定义的例子;然而在实际的C语言编程课程中应该有新的三个步骤:提出问题→发现解>总结规律或方法。传统的方法是从理论到实践,从抽象的示范和推广专业化,而C编程应遵循从实践到理论的方法,从示范到抽象、从专业化的推广。笔者在教学中,笔者经常首先给出的代码,然后让他们的学生验证码;有时作者故意犯了一些错误,让学生正确的记录结果的程序。当回到课堂,这作者将要求学生思考算法和代码中的错误,然后的课堂气氛也会高,很多学生给出他们的意见,可以很好地发展他们的创造力。最后,老师会分析这个问题并作出结论。作为一个结果,我们可以得到很好的理论教学效果。
例2:4×4矩阵的转置
该程序的代码如下:
main()
{int a[4][4]m*p,i;
printf(“Please input a(by row)4×4 matrix:\n”);
for(i=0;i<4;i++)
scanf(“%d%d%d%d”,&a;[1][0],&a;[1][1],&a;[1][2],&a;
[1][3]);
p=&a;[0][0];
为了发展学生他的创造性思维,讨论了该程序的算法。最后,教师应给出分析和结论:矩阵的转置交换一个a[i] [j]和a[j] [i]。但这个程序使用指针作为参数的函数参考,因此,交换的指针是pointer +4*i+j和pointer + 4*j +i,我考虑的要素多维数组由行(每行4个)存储,和指针变量是用来存储一些数组元素的地址,或在其他组元素。如果一个a[1] [3]和a[3][1]交换,事实上交换数组元素所指向的值pointer + 4*i+ 3 和 pointer + 4*3 +i指针,如果学生能理解算法,那么对学生创造力的发展是有益的。
五、鼓励学生带着问题去思考
教师设置问题应巧妙利用课堂提问的艺术。课堂提问可以提高学生和老师之间的相互作用。设置问题应按照“学生之间的差异”,所提问题的层次是发展的学生创造性思维的关键。
例3:从100到200,找到所有的素数。
教师根据程序提出了一些问题:(1)素数的定义是什么?(2)有多少次循环?如何开始循环工作?(3)结束循环的标志是什么?(4)输出格式是怎样的?让学生思考一会儿,然后回答这些问题。在学生回答,老师给出了自己的结论:一个素数是一个整数且大于1,除了本身和和1之外不能被整除的数。该程序是一个双重循环,每执行一次外循环,内循环将重复执行,直到表达式不成立;在执行完所有运算后退出循环并输出结果,显示每10个数一行。提问是必不可少的学习环节,作者应该给学生一些时间提问,可以鼓励他们去思考和发展的创造力。作者经常让学生修改一些程序,他们发现错误,提出新的问题,完善程序,这种方法可以激发他们的兴趣和创造力。
六、激发学生发散性思维和培养学生的创造力
发散性思维是创新的核心思考。发散性思维是想从不同的观察方向和角度,发现更多新的信息和寻找答案。在教学过程中,让学生激励自己学习和鼓励他们打破传统的方式,尝试新的方法,以找到自己的适合的方法来解决问题。这是提出了一些新的编程方法,程序使用不同的算法,找到自己的解决方案问题和讨论这些差异答案。作为一个结果,学生可以发展他们的希望学习和创造性思维的能力。
例4:输入3个数,A,B,C,找出最大的一个数。
对于这个问题,有些同学给出的代码如下:
一个问题通过多种方法来解决,教师可以拓宽学生的思想,激发他们的创造性思维。
七、用创造性的方式教授新知
在多年的教学中,笔者发现系统的教学考虑将正常教学与创新教学作为一种系统,通过整合教学实现教学目标。如下图所示:形成一个系统的教学模式:(1)系统的教学模式是一种模式,可以培养学生的创新品质、是有帮助的为了解创造力的概念教育。(2)系统的教学模式能体现现代教育理念,有利于发挥学生和教师他们的主动性和创造性。(3)系统的教学模式有助于创新教学方法,更有助于拓展新教学方法的运用。教师应强化C语言教学中的理论教学和时间教学的互动,激发并引导学生学习主观能动性,C的教学过程是培养学生的兴趣,激发学生的创新精神和培养他们的创造力思考的一个过程。
参 考 文 献
[1]谭浩强《C程序设计(第三版)》清华大学出版社,2005。
[2] Eric S.Roberts 《Programming Abstractions in C : A Second Course in Computer Science》。
[3](美)Brian W. Kernighan / (美)Dennis M. Ritchie 《C程序设计语言》机械工业出版社 2004-1-1。