高校程序设计课程教学改革与实践
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
高校程序设计课程教学改革与实践
摘要:本文针对目前高校程序设计课程教学方法陈旧、教学手段单一以及实践环节重视程度不够等现状,就“C程序设计”课程从教学方法、教学手段等方面的改革进行了研究和探讨,通过教学改革加强对学生思维方式和创新意识的培养,锻炼学生的应用能力,进一步提高课程的教学质量。
关键词:程序设计;教学改革;教学组织形式
程序设计课程是计算机教育的基础与重点,是高校计算机专业及相关专业开设的计算机应用类的重要课程。通过该类课程的学习,不仅要求学生掌握高级语言程序设计的知识,更重要的是在实践中逐步掌握程序设计的思想和方法以培养学生解决实际问题的应用能力。因此,这是一类以培养学生探索创新精神和实践能力为重点并具有鲜明特色的课程。目前学校开设的计算机程序设计课程主要有“C程序设计”、“Visual C++”、“Visual Basic”、“Java”、“C#”等。提高高校程序设计课程的教学效率,最大限度的培养学生的思维方式和应用能力以提高学生的综合素质是实际教学过程中急需解决的问题。笔者结合近年来从事程序设计课程教学的经验,对“C程序设计”等课程从教学方法、教学手段等方面提出如下改革并取得了较好的教学效果。
1课程的教学现状及存在的问题
(1) 传统的教学模式不利于发挥学生学习的主观能动性。传统教学过程多以教师的课堂讲授为主,教师是课堂上的绝对权威,这种典型的“教师中心”教学模式注重教师教的过程,却忽视了学生学的过程。师生互动性差,学生学习的主动性和积极性未调动起来,不利于学生创造性的培养。现在,传统教学过程中的“教师中心”模式正逐渐被“学生中心”模式所取代,现代教学过程强调学生是学习过程的主体,而教师是学习过程的组织者和设计者。[1]
(2) 课程定位不够明确,教学培养目标针对性不强。课程定位和课程目标不够明晰,对于究竟要培养学生的什么能力,以及培养的目的、方法和手段是什么在各任课教师中还没有形成明确、统一的认识。教学培养目标的针对性不强,教学计划的制定缺少对行业市场的充分调研,对专业领域相关职业岗位没有认真研究与分析,目标定得过高,甚至不切实际。
(3) 过分注重学科体系的完整性和程序设计的语法规则。传统的教学模式过分注重学科体系的完整性与程序设计语言语法规则的讲授,忽视对学生编程思路和运用知识的技能的培养,不利于提高学生独立分析问题和解决问题的能力。
2程序设计课程教学方法的改革措施
针对课程教学中存在的以上几方面问题,结合自身教学实践,构建以程序设计的基本方法和思想为主线,以语法和程序结构为核心,以对学生运用知识的技能培
养和提高学习兴趣为目标的多方面改革措施。
(1) 强调算法的重要性。算法就是为解决一个问题而采取的方法和步骤,而程序设计的目的就是运用计算机语言描述需要解决的问题和解决问题的方法。算法是程序设计的根本,是程序设计的灵魂。“算法”的概念要起初就在学生的头脑中建立,教学过程中应尽量多引导学生分析问题,调动学生学习的积极性并提高学习兴趣。
程序的设计过程、设计的思路(算法)是动态的知识,它培养的是学生的思维能力。学生只有将静态的理论知识转化为动态的思维能力,才能把所学的知识化为己有并应用到实践中。教师教学的重点应放在解题思路、算法设计、编程构思上,编程语言的语句只是表达工具。在课堂上老师可以从具体问题入手提出问题并引出有关的语法规则,然后通过例题讲解理解掌握其中的语法、句法要求,而不是孤立地讲授语法规则。
(2) 运用比较归纳法。高级语言程序设计课程中有很多的概念和语法规则,它们的使用非常灵活也难以记忆。运用比较归纳法可以使学生获得的零散知识系统化,对知识理解得更深刻,掌握得更牢固。例如在讲解循环控制语句时,有while 语句、do-while语句和for语句,这三种语句的作用都是实现循环控制,可解决同一个实际问题。可以对同一个题目运用三种不同的循环语句编写程序,通过程序的比较讲解让学生深刻理解它们之间的异同,然后再归纳出它们的语法区别:while 语句在语句前赋初值,先判定条件再执行循环体;do-while语句也在语句前赋初值,但是先执行循环体再判断条件;for语句在语句前或表达式中赋初值,先判断再执行;总结这三种循环语句各自的执行过程,在何种条件下它们可以相互替代,使用者可以根据需要灵活选择。
再如,关于从1加到10的整数求和问题,如果都采用while循环语句来解决,但是给变量i赋予不同的初值,设置不同的循环条件和将循环体中相同语句的执行顺序颠倒,上述任何一个环节的变更都会影响求和的结果以及该程序循环的次数。如图1所示,两个程序的变量i的初值不同,循环条件不同,循环体中的语句相同且总数都为两条但是语句的先后执行顺序不同。第一个程序变量i的初值为1,终值为10,整个程序共循环了10次,每次循环都把当前i的值送往sum相加然后再使i的值自增1,最后sum的值为55;而第二个程序变量i的初值为0,终值为9,整个程序共循环了10次,但是每次循环是先使i的值自增1然后再把变化之后i 的值送往sum相加,最后sum的值同样也为55。通过运用比较归纳法,使得学生对循环语句的认识更系统,运用会更灵活。
图1while循环语句结构的两个程序
(3) 以学生为中心,遵循启发式教学原则。启发式教学是建立在建构主义理论基础上,以学生为中心,属于探究式教学模式的一种。为培养学生的逻辑思维和创新能力,在教学过程中教师应遵循启发式教学原则,通过各种教学方法和手段激发学生的学习欲望,让学生积极投入到学习活动中并学会发现问题、提出问题然后
逐步解决问题。其中,最关键的是在教学过程中每一步都应与学生一起探讨,采用能够启发学生编程思维的教学方法,让学生在启发下思考,在思考中解决问题,从而掌握独立分析问题、解决问题的方法,这对于程序设计课程尤为重要。[2]程序设计课程是一门逻辑性强、知识内在联系紧密的课程,教师在授课的过程中应该始终注意体现这种联系,使得新知识的引出有理有据,易于被学生接受和理解。
通过应用程序实例为线索展开教学内容,给学生一个比较实际的切入点,通过教师的演示使学生感觉容易入手,然后再通过将此实例不断修改、扩充,引导学生编写程序解决这个复杂的问题,对于学生在设计过程中一些不切实际的想法和做法给予及时的纠正。在启发式教学过程中,通过发现问题、提出问题、分析并解决问题、扩展问题、再解决问题等多个环节,在这个不断向前推进的过程中调动学生的学习热情,通过问题的不断深入和扩展,有效地拓宽学生的思维,提高学生的实践能力,使得学生在课堂上成为真正的主体。[3]
(4) 采用案例教学法。案例教学法是教师根据课堂教学目标和教学内容的需要,通过设置具体案例将学生引入一个特定的真实情境中,通过教师与学生之间以及学生相互之间的双向和多向互动,积极参与分析、讨论、表达等活动,进而提高学生分析问题和解决问题的能力的一种教学方法。
在教学过程中采用案例教学法,根据课程的知识、能力结构要求,由任课教师精心设计若干个案例,案例要求由浅入深,将知识融入这些案例中,由任课教师指导学生自主分析案例,充分发挥学生的主观能动性和创造性,变传统的被动接收知识点为现在的主动去查找所需知识点。
3形式多样的程序设计课程教学手段
(1) 多媒体教学为主,“粉笔+黑板”教学为辅助的教学模式。多媒体教学方式的优点是信息量大、图文直观,便于算法的动态演示,有助于增强学生学习的积极性,有利于优化教学过程,提高教学效率和教学质量。教学过程中,运用多媒体技术教学,有利于激发学生的学习兴趣,能发展学生的主体能力。同时借助于编译系统进行程序从编辑、编译、链接、运行到测试与调试的整个过程的演示,可增强学生对程序设计的感性认识。但多媒体教学有其不利之处,主要体现在幻灯片内容更新速度过快,学生有时反应不过来,跟不上教师的思路。同时,不恰当的幻灯片使用会分散学生的注意力,影响对主要问题的理解,不便于学生进行前后内容的对照,而传统的“粉笔+黑板”教学手段恰好弥补了这一缺陷,所以采用多媒体教学手段为主,传统的“粉笔+黑板”教学辅助的模式既节约了传统的板书时间,以更加整齐、生动和可重现方式展现课程内容,又增加了信息量,达到了提高教学效率和增强教学效果的目的[4]。例如:可以将概念、含义、知识要点及大量信息的程序代码制作成PPT课件,在课堂教学过程中做演示供学生增加信息量,简化传统教学无法板书的缺点,课堂教学也不再显得枯燥无味。但对于程序设计的分析和编码过程可以发挥传统教学手段的优势,进行课堂讨论、板书讲解、结合提问将问题层层剖析、层层深入,以达到师生互动的效果。
(2) 现场编程演示,列举学生感兴趣的实例。教师课堂现场编程演示,避免只