开篇:润墨网以专业的文秘视角,为您筛选了一篇《计算机程序设计》课程教学改革与实践范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
摘要:《计算机程序设计》课程是各高校普遍开设的必修课之一,其逻辑性强、编程灵活等特点,给同学在学习的过程中造成一定的困难。为了提高学生的编程能力,在“基于问题的学习”的基础上提出了适合于程序设计课程的教学改革方法,并从教学模式的设计、上机操作的强化、考试方法的改革几方面进行了改革与实践,取得了较好的教学效果。
关键词:计算机程序设计;课程;教学模式;改革;实践
中图分类号:TP311.11文献标识码:A 文章编号:1009-3044(2007)12-21739-01
Reform and Practice ofProgramming Language Course
ZHENG Li
(Business College of Beijing Union University , Beijing 100025,China)
Abstract:Programming is a widely required course in the University. The strong logicality, operating agility, made it hard to learn. In order to improve the programming ability, on the basis of “Problem-based Learning”, put forward several appropriate reform methods. At the same time, reforms and practice are carried out in the teaching mode design, manipulating and examination. Good effects have been acquired.
Key words:Programming; course; teaching mode; reform; practice
前苏联学者伊尔肖夫提出“计算机程序设计语言是第二文化”,这种说法在世界各国广为流传,表明人们已充分认识到计算机程序设计在自然科学以及社会生活等各个领域中所发挥的重要作用。目前,计算机程序设计已成为各高校普遍开设的必修课之一。但在教学过程中,我们发现,相当一部分学生在学习该课程时存在一定的困难。其原因在于,计算机程序设计是一门综合性课程,逻辑性很强,而且程序的编写灵活多样。为了让学生在有限的时间内掌握程序编写的基本方法,具备较强的编程能力,我们对计算机程序设计课程的教学方法进行了改革,提出了“基于问题的学习”的程序设计方法。
1 基于问题的学习简介
基于问题的学习,即PBL(Problem-based Learning),产生于1966年的美国McMaster大学的“三年规划”。该规划针对的对象是医学院学生,其特点是:①把分析解决人类身体健康的核心问题作为获取以及应用知识的主要途径,从而打破学科的界限,把人类生物学的许多课程融合在一起,并强调问题的解决过程;②强调学习者在学习过程中变消极为积极,变被动为主动,以发展学习者独立自主学习和终身学习的技能;③把学习者分成小组,每个小组有5-6名学习者和一个指导教师[1][4][5]。
根据程序设计课程的特点以及我院学生的实际情况,我们在上述基于问题的学习理论的基础上,提出了程序设计课程教学改革的方法,其内容是:①以分析解决实际问题为目标,以编写程序为手段,将数学、物理学等相关学科与程序设计课程紧密结合起来,打破学科的界限,强调在问题解决过程中学生逻辑思维的锻炼;②鼓励学生在学习过程中积极参与,在课堂讲授时教师通过巧妙设问,激发学生的好奇心,并适当留给学生一定的独立思考时间,使其变被动接受知识为主动吸收知识,培养学生自主学习的习惯和能力;③在上机及课程设计环节可以对学生适当分组,提倡学生之间的互帮互学、研讨辩论,培养学生的团队意识及协作精神。
2 教学模式的设计
2.1 明确教学目标
教学活动是一种有目的、有计划的培养人的活动,因此,教学目标的明确对于教学活动合理有序的开展至关重要。美国教育学家布卢姆(B.J.Bloom)等人提出将教育目标分为三大领域,即认知领域、情感领域和动作技能领域。关于认知领域,他又提出六个层次的分类目标:认知、理解、应用、分析、综合和评价[2]。根据此理论,我们在上课伊始,即向同学阐明本课程的教学目标,并在以后每次上课时,首先明确本次课的教学目标,使学生在学习过程中,充分了解本课程的学习任务、重点难点以及要达到的高度,我们期望每个教学方案、甚至每个教学单元都能够给学生带来某种(甚至是几种)重要变化。这样,学生便能根据学习目标有效地收集各种学习资料与信息,并运用阅读、讨论、上机实验、网上检索等获取信息的方法,提高自主学习的能力,更好地掌握本课程的内容。
2.2 设置教学情境
教师通过对教学情境的展现,达到唤起学生兴趣,引起学生注意的目的。
计算机程序设计中有三种基本控制结构,即顺序结构、选择结构和循环结构。一般而言,当学生学习到循环结构时,常会由于问题的趋于复杂和灵活多样而引起学习的困难,该阶段的学习如果解决不好,将会严重影响后面章节比如数组等的学习。因此,在讲授该章节的内容时,我们尝试了多种方法,经比较认为,基于问题的学习方法尤其适合于该阶段的教学。
(1)提出问题
以算法之一“穷举法”为例。首先提供给学生的是一个非常有趣的“百钱百鸡”问题:公鸡5元钱一只,母鸡3元钱一只,小鸡一元钱3只,用100元钱去买100只鸡,问有多少种不同的买法。
学生听清楚老师的问题后,引发了强烈的好奇心,很多人马上拿出纸笔,很快就写出了求解的方程组:设买公鸡x只,母鸡y只,小鸡z只,根据题意,则有:
但是,这些同学立即意识到了一个问题,两个方程,却有三个未知数,应该如何求解呢?学生的疑问及好奇心完全被调动起来了,此时此刻,师生均完全沉浸在问题之中。于是,非常自然地,教学进入第二个阶段――分析问题。
(2)分析问题
经过老师的适当启发,同学结合自己所学过的数学知识积极思考,有同学提出了解决问题的方法:逐个试验。但很快,这位同学又泄气了,这么多的数据,一个个试验,这需要多少时间呢?教学进行到这个时候,老师分析问题的最佳时机就来到了。我们从计算机处理问题的特点入手,对循环结构的形式、特点、流程及处理方法进行了剖析和讲解,明确了用计算机对该问题进行逐个试验的可行性与必要性,学生的思路逐渐明朗。于是教学转入第三个阶段――解决问题。
(3)解决问题
在分析清楚问题之后,老师要求学生拿出纸笔,自己编写程序。经巡视,部分同学能够自己独立编写程序,另有部分同学虽然程序编写的不完整,但基本思路已经清晰,欠缺的只是语句的语法规则没有记清楚。之后,教师将程序呈现在屏幕上,并在实际环境中进行运行,结果马上显示了出来。同学们看到打印出来的结果,对各种购买方法有了一个直观的认识。为了增强说服力,我们还对其中任选的一个结果进行了验证。问题解决了,同学们感到非常高兴,成就感油然而生,教师则不失时机地再次总结“穷举法”的特点、用计算机处理类似问题的基本方法、以及循环结构的语句形式和功能,同时阐明自己所认为的快乐教育的真谛:所谓快乐教育,是指解决了问题后学生身心所产生的满足感。
(4)问题的延伸
为了加强学生对穷举法的认识,更熟练地解决此类问题,我们在课后会布置一些类似的作业,比如,让学生自己编写程序,解决“水仙花数”的问题、完数问题、勾股数组问题等。这些问题趣味性很强,又和学生的数学知识结合的非常紧密,学生在课下需要完成的作业,不再是为了应付差事而必须去做的机械乏味的工作,整个学习过程将会变得兴趣盎然。
教学情境的设置因所讲内容的不同而有所区别,但其本质不变,即:针对本次课的内容,合理选择实际问题,与学生原有的认知结构建立实质性的关系。教师在讲课过程中,尽量激发学生积极主动地从自己原有的知识体系中提取最有关联的旧知识以和新知识建立联系,固化新知识,周而复始,形成良性循环,保持学生的学习积极性和主动性。
3 强化上机操作
程序设计是一门实践性很强的课程,上机操作是教学环节的重要组成部分。它具有课堂讲授所无法比拟的优势,能够最大限度地促进学生学习的主动性、探索性和创造性。正因如此,每次上机课前,教师均根据所讲内容和学生已有的认知水平,提出一些既可接受,又有挑战性的问题,充分激发学生的求知欲,培养学生的探索研究精神。为了保证上机课的效率,对于布置的作业,要求同学在上机前进行适当准备。上机题目由同学独立完成,但允许周围同学小声讨论,教师在上机的过程中对学生进行随时指导。针对学生遇到的较为普遍的问题,要及时给予启发,同时注意给同学留下独立思考的空间。
上机操作在很大程度上强化了同学们对课堂所讲授内容的理解。有些问题,看似明白了,但自己真正动手去编写程序、运行程序,却往往会发生这样或那样的错误,因此上机实际上是不断的改正错误或改进方法的过程。这一过程,对学生的好奇心、独立性、耐性、情绪、责任心等都有不同程度的影响。作为教师,要注意适时提供反馈,评定行为,对做得好的同学要及时表扬,达到强化知识的目的。对一时有困难的同学,要耐心询问,了解症结的所在,以便有针对性的进行辅导。上机过程中教师要注意引导学生循序渐进,脚踏实地。古人云,“不及跬步,无以至千里;不积细流,无以成江海”,只有把远大的目标与现实的努力结合起来,同学们的学习能力才会得到较大的提高。
4 改革考试方法
考试是检查、评价、督促教学和反馈信息的重要手段。学校通过组织各种考试、测验,确定实现教育教学目标的圆满程度,实现日常教学决策[2]。考试主要应该起到两方面的作用:一是能够正确评价教育教学效果,提高教学质量;二是能够检查和评价学生学业成就,甄别学生能力高低。
在教学过程中,我们根据教学的内容及教学进度,适当安排了若干次小测验,大约在学习内容进行到一半时进行期中考试,期末进行年级统一的期末考试。另外,因为计算机程序设计课程是理论与实践并重的课程,对学生的实际操作能力要求比较高,所以在考试中均增加了上机操作的测试。学生整个学期的综合成绩由以上几部分及平时成绩等按一定比例计算得出,与过去的一考定终身相比,综合评定成绩更侧重学生学习过程的管理,既能促进学生平时的学习,又能较为全面地反映学生的实际水平。
5 结语
经过几个学期的实践,同学们对于《计算机程序设计》课程的学习取得了良好的成绩,更为重要的是,他们对程序设计课程更加感兴趣,并能够从中体会到学习编程的快乐。作为教师,我们为学生的进步感到欣慰,另一方面,又在对这种教育教学方法进行进一步的探索和完善。我们希望指导学生学会抓住教师讲授的思路,捕捉学习的疑点,培养独立获取知识的能力。我们期待学生通过程序设计课程的学习,能够培养高度的自觉性和独立性,并始终保持旺盛的求知欲和强烈的进取心,以健康的心理素质和良好的知识结构迎接社会的变更与挑战。
参考文献:
[1]马红亮,杨冬.网络环境下PBL的模式研究[J].现代教育技术,2002,(3):17-21.
[2]教育部人事司组编.高等教育心理学[M].北京:高等教育出版社,2001.
[3]教育部人事司组编.高等教育学[M].北京:高等教育出版社,2001.
[4]马红亮.基于PBL的WEB学习环境设计[J].四川师范学院学报(哲学社会科学版),2003,(4):135-138.
[5]马红亮.PBL在本科生教学中的准实验研究及思考[J].现代教育技术,2004,14(1):71-75.
[6]李绯.计算机辅助教学中基于问题解决学习的教学模式的设计[J].电化教育研究,1999,(3).
“本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”