非计算机专业理工科C语言程序设计教学方法的探索

2009-06-18 05:05石跃祥朱东辉
计算机教育 2009年12期
关键词:C语言程序设计教学方法

石跃祥 朱东辉

摘要:本文针对大学本科非计算机专业理工科C语言教学中,如何培养学生的程序设计能力,掌握好程序设计工具,为所学专业的计算机应用创造训练与锻炼的条件等问题进行了论述;讨论了通过程序设计的演示法、尝试法和实训法三个环节,采取课堂教学互动和三维立体教学法改进教学效果,培养学生学习程序设计的兴趣。经对比分析,通过教学方法的改革,学生程序设计的能力有明显的改善与提高。

关键词:C语言;程序设计;教学方法

中图分类号:G642文献标识码:B

1前言

笔者从事高级语言程序设计教学与实习,结合国内外优秀编程语言的教学方法和模式,不断地总结和积累经验并运用于教学实践之中,取得了较好的教学效果。这种教学方法有助于学生在有限的教学时间内,以最快最简单易懂的方式,扎实地掌握C语言的内容,并能运用自如。

2培养学习计算机兴趣

学生进入大学校园后,对大学充满了好奇与幻想,而在学习方法上,这是最需要老师正确引导与影响的时刻。大学的学习与中学的学习有显著的区别,大学需要培养有学习方法和学习思维的人才,通过在大学校园竞争、创新、个性培养和发展的平台上,展示学生最华彩的人生。

把学生从兴奋、激动的心情中引入到学习中来,高校老师有着义不容辞的责任。恩格斯说:“兴趣与爱好是最好的老师”。在C语言教学中,为了使初学者能尽快地掌握计算机知识,进入计算机课程的学习,在课程讲授过程中,要特别注意培养学生的学习兴趣。我采取的方法是,一开始就加入计算机应用对社会带来影响的具体例子,如网络、银行和游戏等,把学生的注意力吸引到计算机应用的变革上。

上课的初始阶段,我会介绍一些国外高校计算机学科发展的形势与状态,让学生充分认识到学习计算机课程和C语言的必要性,同时,也找一些“高等数学”、“线性代数”等课程中的问题,如:“菲波纳契兔子问题”、“水仙花数”、“竞赛记分”等例题,培养学生的学习兴趣,让大家积极主动、自觉独立地获取知识,打好学习程序设计语言的基础。整个教学过程中把问题的分析,解题思路、方法和步骤(即“算法”),该题目的关键与亮点当作授课的重点,从而让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。

随着课程的不断深入,大量的规则、定义、要求和格式等内容的出现,很容易使一部分(甚至是大部分)学生产生枯燥无味的感觉。这时,在讲述这部分内容的时候,我会把这些规则和格式在实际应用中的地位与作用结合起来,并将它们在应用中的体现描绘出来,让学生知道所以然,把好奇转化为学习兴趣,努力把枯燥无味的“语言”讲得生动、活泼。

3教学过程的循序渐进

虽然有的学生在大学之前就已经接触过计算机,但绝大部分学生是第一次接受计算机语言,“通俗性、可接受性”的教学原则是一直要把握的。在课程讲授过程中,我们没有把重点放在语法规则的叙述上,而是放在算法和程序设计方法上,放在培养学生思考与分析的过程中,把形式化的规则放到具体的问题中来讲解。通常由几个例题引出一种语法规则,通过一些求解具体问题的程序来分析算法,介绍程序设计的基本方法和技巧,既注重程序设计的系统性、科学性,又注意易读性和启发性。从最简单的问题入手,一开始就介绍程序,要求学生编写程序,通过反复编写、运行程序来掌握语言的规定和程序设计的方法。同一个语法规则、同一种算法,在选择例题时也是由简到难,逐步呈现给学生。在学习上不要求学生死记语法规则,而是要求学生能把各个孤立的语句组织成一个有机的、好的程序。注意培养学生良好的编程风格,让学生在编制程序过程中不断总结、巩固,达到学会方法、记住语法规则,提高设计技巧的目的。

以“菲波纳契兔子问题”为例,在基本程序设计部分,可以启发学生使用循环语句,利用变量的交替赋值实现。

第一个问题,让学生思考变量的定义,提议变量的定义,应有利于运算和与菲波纳的表示接近。

第二个问题,提出四十个菲波纳兔子如何用循环语句实现。

第三个问题,四十个菲波纳兔子需要循环的次数。

最后总结,通过变量的变位和在每次循环中可以得到的菲波纳兔子数而有效输出的结果,通过这种模式,逐步训练学生程序设计的思维方式和想象的空间。

如果在学习了数组后,让学生思考如何利用数组及下标来输出该结果。这样,通过对两种解法的比较和分析,帮助学生更好地掌握循环语句和数组的概念。

4课堂实现教学的互动模式

教学中,我们要求学生课前做好预习,实际上是要求他们通过自学,发现学习中的问题和难点,讲课前先了解一下将要讲述内容的难点;讲解中,将这些问题重点剖析,只讲难点、重点、有变化之处,一般性的内容则轻点而过,这样既给了学生思维分析的余地,又节省了课时。这就要求老师在以往教学中,通过积累与分析,掌握学生对这部分内容学习的轻、重、难和关联点,必须精选教学内容,注意详略安排的合理性,在章节间的授课安排也注意要注意详略得当。

在知识点和问题的讲解中,并不是一开始就讲述解决问题的过程,而是先提出问题,给出学生思考的时间,在思考的基础上,安排学生回答或在黑板上做题,这一环节,就可以掌握学生对这知识掌握的程度和分析问题的能力,这有利于上课时集中学生的注意力和提高学习的兴趣。

对于学生的回答或解题的结果,先对这些内容作分析,给出学生思维的过程和方法,在些基础上,对回答作一个结论,然后再给出回答或解题的新思考,如方法上、策略上和形式上的改进。引导学生在问题思考过程中的多元化,开拓学生的思路,达到举一反三的效果。另外,还应经常找一些设计技巧比较好、解题思路比较精的例题让学生自己“读程序”、“写程序”和“分析程序”,找出精妙之处或不理解之处,对普遍性的问题共同讲解,个别问题课后解答,并提出某些精辟的东西在其他地方、其他学科中的应用。

此外,对有些问题,课堂上组织一定时间内的讨论。例如:给出一种程序设计方法后,让学生讨论,看看还有没有其他的程序设计方法和思路,让他们发表意见,提出自己的解题思路编程方法,给学生以表达已见、陈述思路、交流观点的机会。这就要求老师既有引导又能放开,既有事先的精心备课,又有课堂上的因势利导,随机应变的能力,同时也可以从学生讨论中提出的问题来丰富教学内容,不断地改进教学效果。

5三位一体的立体训练法

做作业是复习、练习的过程,也是继续和深入学习的过程。每次课后,给学生布置与教学内容紧密联系的一些习题,以巩固课堂上所学的内容,另外还可以通过学生所做作业的好坏来了解学生对课程内容的掌握程度以及教师的教学效果。对作业中比较普遍出现的错误,我们都要有适当的时间进行讲解,更进一步地帮助学生巩固所学知识。作业中表现出与众不同的、新颖的程序设计方法和思路,也要对该学生进行表扬与讲解,鼓励学生在思维上、方法上寻找不同的特色,培养另辟新径的有创意的学风。

每次上机前,老师都应该根据教学计划,有系统地布置上机实习作业,让学生明确上机任务,编写好上机调试的程序,使学生在每次上机实习中有所收获。上机要求按所学内容划分层次:知识运用,创新设计和合作分析等。在上机过程中,对好的、有创新思维的程序,通过投影设备,让大家分享这独特的方法与内容,不断提升学生的竞争意识;对有代表性的问题,则通过讲解与分析,让学生避免上机调试过程的一般性错误。这种在实习过程中,老师对一些操作难点,分组集中演示的方法,也能起到事半功倍的效果。

一般在学习一章后,安排时间进行讨论,老师提出一个主题或一些问题,学生分组进行商量后,拟定一个对策与方案,然后与其他组的同学进行讨论,各方可提出解决问题的思路,也可以提出不同的方法,并且对提出新颖的策略一方给予肯定与表扬。通过讨论,学生可以提高口头表达和分析问题的能力,并在这过程中学到不同的解决问题的方法,取长补短,培养协作精神和团队理念。

6网络学习与自评系统的开放

在提高学习能力方面,可以网络加强习题练习与程序设计的学习,我们联络了国外C语言网络学习的网站:http://codelab.discoverips.com/codelab,提供网上开放环境及相关视频链接:http://codelab.discoverips.com/codelab/intro,以此帮助学生进行网上练习与学习,同学们也可以共享国际最先进的教学资源,达到与国际接轨的教学水平。

同时,通过对我院的程序设计网站和教学网站,包括课程资料,实验指导,网上答疑,知识自测等子系统的应用,学生在师生教与学的过程中,充分发挥了主观能动性和创造性,在认知生成过程中融入了自己的创造性见解。

2007年,我校将“C语言程序设计”课程确定为校级精品课程建设项目,并取得了丰硕的成果。我们开创了网络教学的多层次课程教学新模式,详细修订了教学大纲,细化了教学内容;设计编写了课堂教学样本教案、实验教案、课程设计样本和试卷库,建立了非计算机专业的C语言网上考试系统和模拟系统,使教学与考试分离,教学手段和考核机制更加规范;制作了电子教案和辅助教学课件,提高了学生的学习兴趣和教师的授课效果;提高了任课教师的整体素质,建立了青年教师培养机制和提高办法;为其他课程起到了示范和积累教学经验的作用;全校非计算机专业学生的计算机等级考试通过率不断提高。

7结论

通过对非计算机专业理工科“C语言程序设计”的教学改革,学生对如何运用计算机工具更好地解决本专业应用中所面临的问题,在思维方式上、分析问题上、设计和编程上都有了充分的认识和积累。实践证明,注重思维方式的训练,讲究动手能力的提高,充分调动学生的主动性,加强网络上的训练与考核,就可以培养出有扎实基础,能灵活运用知识编程调试、解决实际问题的创新性学生。

参考文献:

[1] 何岸. 论《C语言程序设计》课程的趣味教学[J]. 高等函授学报:自然科学版,2008(05):24-25.

[2] 苏丹丹,孟祥锐,褚丽娟. 高校非计算机专业C语言程序设计课程四位一体教学模式研究[J]. 长春师范学院学报:人文社会科学版,2008(10):129-132.

猜你喜欢
C语言程序设计教学方法
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
基于gitee的皮肤科教学方法研究
“C语言程序设计”课程混合教学探索
《计算方法》关于插值法的教学方法研讨
《计算方法》关于插值法的教学方法研讨
小学语文字理教学方法探析
基于C语言的计算机软件编程技术探究