程序设计中逐步培养学生逻辑思维能力
来源:用户上传
作者:
摘 要:阐述程序设计与学生逻辑思维能力培养的重要性,如何在程序设计中逐步培养学生逻辑思维的方法,程序设计应分析问题且精心设计算法并调试成功的过程,进而更好地发挥学生的学识和才智。
关键词:程序设计 算法设计 调试 逻辑思维
中图分类号:TP311.52 文献标识码:A 文章编号:1672-3791(2019)12(a)-0222-02
在程序设计中较为关心的是程序效率与正确性。程序效率常由算法的效率来决定。程序设计有一个特点,就是它必须与实践密切相联。在计算机上进行实际操作是学好程序设计的重要环节,它直接关系着教学质量的好坏。因此,在上机实践中,我们应该培养学生掌握正确的逻辑思维方法,只有养成好的程序设计习惯,才能使其编制的程序具有良好风格。心理学家纽威尔在总结人类大量的思维活动经验的基础上发现,人在解决各种不同的问题时,存在某些共同的规律。概括起来主要为以下3个方面:首先先想出大致的“解题计划”,其次根据理论和推理规则,去“组织解决”,最后进行“方法—目的分析”。因此,我们编制程序时应提倡独立思考,要讲点思维逻辑。程序设计一般要经过分析问题、确定算法、编制程序、上机调试这样几个步骤。
1 在分析问题时逐步培养学生独立思维的能力
上机操作前,我们强调让学生做好前期准备工作,最好把程序写好。一般来讲,写完一个程序只能说完成了设计任务的一半。往往有这样的情况,有的程序编好了,在上机时又全部被否定。现象一:程序的运行没有得到预期的结果。现象二:想让程序做的事,程序并没有去做或者是做错了。
为什么会发生这样的现象呢?有的学生对客观实际问题了解得不够全面,有的则是没有掌握好解决问题的方法。可以这样说,各种计算机语言都是用来解决客观问题的工具。编制程序时,除掌握好工具之外,更要有解决客观实际的科学思维方法。我们常在学生提出问题时,不是马上去告诉其如何去做,而是启发他“再想一想”。以问题促进思考,用问题启发思维,这个“再想一想”就是一个培养其从借助于感觉和表象认识客观事物的外部,联系到借助于判断和推理逐步认识客观事物的内部联系的思维过程。为了解决一个问题,学生们都在进行思考,有的同学善于看到问题的焦点,有的同学却走了许多弯路,可见,这个过程不是一朝一夕就能完成的。
2 在程序設计中有意识地运用逻辑思维
计算机技术具有实践性很强的技术。要求从事这一领域的人不仅应了解和熟悉有关理论和方法,还要求自己动手实践。计算机可以像“人脑”一样进行计算、进行逻辑判断,但计算机的计算和判断都是受到程序制约的。用高级语言编写程序,可以摆脱计算机本身的特性限制,而集中精力于算法本身。
2.1 注重算法设计
算法设计是整个程序设计的核心。算法设计必须精益求精,算法要经得起各方面的推敲。如果算法有误,可能导致整个程序的失败。对于一般的数值运算,有成熟的算法可供参考。我们要求学生掌握这些算法,并能根据需要做必要的修改,善于从基本常用算法中归纳总结出解决同类问题的算法。比如:学习了递推法,知道求N!的算法,这个算法做点修改就可以得到用近似公式,求自然对数底的值算法。对于非数值的算法,由于实际问题多样化,没有统一的算法,学生应能根据需要认真分析问题,设计所需算法。一旦程序运行结果不对,很多同学懂得这样去想:“我这个算法对吗?”“错在哪?”。
算法用于解决客观实际问题,要求同学们要进行周密的思考,思维方式要符合客观实际的逻辑规律,才能尽量避免出现逻辑错误。解题常常需要借助于一定的逻辑规律,我们要求学生从题目出发,对整个问题不断分析,一步步细化,直至每一个子问题都简明易解。引导学生由浅入深,由表及里,即可轻而易举地设计算法框图,再用高级语言来描述之。在算法设计的过程中,逐步培养学生的逻辑思维能力和严谨的科学作风。
2.2 程序的逻辑结构要严密
程序的逻辑结构是程序的骨架,我们目前大多数程序都是用模块化结构来设计的。一个程序的逻辑结构安排是否合理,也是程序能否编制好的关键问题之一。学生编制的程序有时会出现这样的情况,程序结构松散不能将算法和各模块紧密结合起来,我们要求学生要学会分析,全面细致地分析各模块之间的内在联系,只有通过分析明确各模块之间的内在联系,才能用综合方法把解决不同问题的各个模块联系起来,以便完成程序的整体逻辑结构。
程序应当是深思熟虑且通盘思考精心设计的结果,而不应是信手拈来或东拼西凑的产物。
在“软件工程”的课程设计过程中经常要完成复杂的题目,有的学生花几小时编完了程序,修改与调试的时间往往比编程所花费的时间要多好几倍,这就是由于该同学忽视程序的逻辑结构设计,没有遵循一定的规律,他希望把结构设计是否合理留给计算机系统去判断,当出现问题再去修改,这样的程序即使勉强通过,质量也会很差,最可惜的是它还浪费了宝贵的机时。
因此,如果程序的逻辑结构严密,在编制各个模块的程序代码时相对出现的问题较少,这给程序调试节省了时间。
3 排除程序的逻辑错误
编写好的程序是否有错误是我们极其关心的问题,尽管我们在编写时十分认真,但程序有时难免蕴含着各种错误。程序设计的各个环节都是密切相关的,哪一个环节出现错误,其最终都以非正常的运行结果表现出来。
由于缺乏程序设计的经验,所以在程序调试时会遇到这样那样的问题。为了尽量减少排除人为疏忽造成的纸面上的静态错误所占用的时间,我们要求学生在上机前编写程序,并经人工检查无误时才输入程序,以提高上机效率。
程序中的语法错误比逻辑错误容易排除。下面我们来看看,在C语言中要实现:1+2+3+…+100之和为多少这样一段程序。
Main()
{int i,sum=0;
i=1;
while (i<=100)
sum=sum+i;
i++;
printf(”sum=%d\n ”,sum);}
这段小程序中无语法错误,源程序的编译和链接都能通能通过,但程序的运行结果却不对,while语句的循环只能到其后的第一个分号为止,所以这段程序只能重复sum=sum+i的操作,无输出结果,而循环不终止(其错误在于没有用花括号将循环体的复合语句括起来)。C编程系统无法辨别程序的语句是否符合设计者的意愿,只是忠实地执行sum=sum+i这条指令。程序出现的这种错误就是常说的“这个程序有逻辑问题”,即广义上指的是一种思维混乱现象,它是由于人为因素而造成的对客观事物的非准确反应。这种逻辑错误必须排除,否则会使程序设计的结果难以预料。
对于程序的逻辑错误而言解决的方法很多,通常需要检查流程图或设置输出“断点”,或检查算法或使用DEBUG(调试)工具来找出逻辑错误,避免在以后的程序设计中产生类似的错误。我们调试程序的目的,不仅仅是证明程序是正确的,而且要去找出并排除程序的逻辑错误。
4 结语
总之,程序设计是一项细致而复杂的工作,需要学生多动脑多动手。在实际操作中总结经验,用合乎逻辑规律的方法分析解决不同程序设计中的问题,我们对程序设计的目的不仅仅要使程序正确,更重要的是要使学生提高程序设计的科学逻辑思维能力,更好地发挥学生的学识和才智,为今后的学习和工作打下良好的程序设计基础。
参考文献
[1] 梁宇.数学教育中逻辑思维能力的培养策略[J].教学与管理,2017(5):86-88.
[2] 谭浩强.C程序设计[M].5版.北京:清华大学出版社,2017.
[3] 李文生,吴舜歆.面向计算思维能力培养的程序设计课程[J].计算机教育,2014(3):57-60.
[4] 张晨静.用计算机思维知道程序设计课程[J].科教文汇. 2013(36):63-65.
转载注明来源:https://www.xzbu.com/8/view-15124769.htm