程序设计课程创新教学方法研究

时间:2022-03-15 08:04:03

程序设计课程创新教学方法研究

摘要:阐述归纳式教学法的基本原理及其对程序设计课程的重要意义,提出程序设计课程在完善案例教学、加强学生实践、改革考试方式等方面,基于归纳式教学法的若干创新教学方法,强调通过实践提高学习效率,培养学生的自主学习能力和创新精神。

关键词:归纳式教学法;程序设计;创新教学方法

程序设计课程是计算机专业的核心基础课程。关于程序设计课程的创新教学方法研究是我国高校重点关注的课题之一。本文重点研究了归纳式教学法在程序设计课程中的应用,首先介绍程序设计课程创新教学方法的研究现状,之后阐述归纳式教学法对程序设计课程的重要意义,再提出基于归纳式教学法的程序设计课程的若干创新教学方法,最后作出总结。

1.程序设计课程创新教学方法的国内外研究现状

1.1国内研究现状

国内很多大学都在程序设计课程创新教学方法上作出了有益的尝试。例如,文献[1]提出以多媒体课件为主、以多本参考书为辅,演示的程序实例不少于400个。文献[2]采用“案例牵引、项目驱动、团队合作、引导互动”为特征的“做中学”教学模式,按照企业过程标准实际完成一个产品或系统的完整构建过程训练。文献[3]通过启发式提问讲解编程原理和方法,然后讲解案例源码,再引导学生分组讨论。文献[4]以培养工程师的综合品质和创新能力为目标,将基于问题和项目的设计教育贯穿整个工程教育过程。

以上学校都是围绕课程教学的具体方法来进行创新,而九校联盟(C9)则提出,要把培养学生的“计算思维”能力作为计算机基础教学的核心任务,并围绕这一核心任务加强计算机课程体系和教学内容的研究。

1.2国外研究现状

文献[6]提出计算机教学中应综合运用不同学科的方法,包括计算机学科、教育学、社会学、心理学等。文献[7]认为建立正确的思维模式对于学习编程十分重要。学生必须改变原有的思维模式,否则虽然在学,却不能真正理解编程。文献[8]发现很多学生对推理和创新不感兴趣,只看重结果,他们认为应当让学生了解计算机学科不仅是一门技术,更需要发挥聪明才智和创造力。文献[9]提出了一种新的案例授课方法。在一门课程中,每次给学生留作业都使用同一个案例(或背景),但是随着课程的深入,要求学生运用不同的知识点来解决这个案例中的不同问题。这种方法可以节省学生理解案例内容的时间,让学生把精力集中于如何解决问题。文献[10]介绍了一种辅助编程软件Alice 3,可以帮助学生利用可视化环境学习Java编程技术。

2.归纳式教学法及其对程序设计课程的重要意义

我们认为要想创新教学方法,首先必须更新教学理念。美国的普林斯和菲尔德总结了“归纳式教学法”在高等教育中的应用。我们认为归纳式教学法的原理和方法非常适合于程序设计课程。事实上,前述国内高校所采用的“案例牵引”“启发式提问”“基于问题和项目的教学”等都属于归纳式教学法的范畴,只是没有从理论上阐明归纳式教学法对于程序设计课程的重要意义。

2.1归纳式教学法简述

归纳式教学法包括一系列教育方法,如探究式学习、基于问题/项目/案例的学习、发现式学习和即时教学等。这些方法的共同特点是“以学习者为中心”,让学生在学习中居于主导地位,采用多种手段激发他们主动学习的精神。归纳式教学法的一般做法是:先提出一个问题、项目或案例,由学生组成小组在课内或课外进行讨论和研究,提出解决方案,再评价不同方案的优劣,从而归纳出相对正确和有效的方法。在这一过程中,学生通过解决问题自行建构知识体系,教师主要起指导、推动和提供必要信息的作用。

与归纳式教学法相比,在传统教学中,教师居于教学的主导地位,通常先由教师讲解原理、方法等,再让学生掌握并运用这些原理和方法解决问题,这是一种演绎式教学法。在这一过程中,教师把原理和方法作为一种结论灌输给学生,学生只是被动地接受,并不清楚这些原理和方法是如何得出来的,也不清楚为什么一定要使用这些方法而不能用其他方法,因此学生很难真正理解并掌握它们。

2.2归纳式教学法的重要意义

程序设计不仅是一门技术,更是一种思维方式。文献[12]指出计算机基础教学的核心任务是计算思维能力的培养,而学习程序设计是计算思维能力培养的重要内容。我们认为在程序设计课程中引入归纳式教学法,有助于学生更好地理解和掌握程序设计的基本思想,从而逐步建立起计算思维能力。这主要体现在以下几个方面。

2.2.1培养学生的自主学习能力

归纳式教学法十分强调培养学生的自主学习精神和能力。当遇到问题时,学生应当有能力利用各种资源、采用各种方法积极地解决问题。而自主学习能力对于学好程序设计十分重要。学生只有具备了自主学习能力,才能不断地更新知识和技术,使自己成为一个合格的应用型人才。

传统的教学方法不强调这种能力的培养,学生只要能利用课堂上的原理和方法去解决问题就够了。但是对于程序设计,仅靠课堂上讲授的知识往往不足以解决复杂的实际问题。因此,必须强调对学生自主学习能力的培养。归纳式教学法中的探究式学习、基于问题的学习、发现式学习等都提供了培养学生自主学习能力的有效方法。

2.2.2培养学生的创新精神

归纳式教学法十分注重培养学生的创新精神。针对同一个案例或问题,归纳式教学法不会给出统一的标准答案,而是鼓励学生采用不同方法提出多种解决方案。这种方法非常适合程序设计教学。因为在程序设计中,针对某一问题往往没有唯一的解决方案。学生应根据不同的环境背景,提出一种或几种比较适合的方案。这就要求学生具备足够的创新精神。

传统教学中,仅靠教师在课堂上讲解一个个知识点不利于培养学生的创新精神。而归纳式教学法中的很多方法,如基于案例/项目的学习等,有助于培养学生的创新精神。

2.2.3通过实践提高学习效率

实践对于学好程序设计意义重大。学生只有通过大量的实践才能真正理解并掌握程序设计方法。归纳式教学法就十分强调学生的实践。例如,归纳式教学法中的即时教学法要求学生先独立回答一些问题,教师从中发现学生易犯的错误和存在的问题,然后有针对性地讲解。将这种方法应用到程序设计教学中,可以使学生认识到自己易犯什么错误,并通过改正这些错误而进一步增强对所学知识的理解。

相比之下,在传统教学法中,教师虽然对每个知识点都详细讲解,但学生们却不容易真正掌握。例如,Java中的switch语句只接受几种固定的数据类型,但仅靠学生死记硬背很难记住,相反,让学生上机实践一次,甚至错过一次,学生自然就会记住了。类似现象在程序设计课程教学中很常见。

3.基于归纳式教学法的创新教学方法

归纳式教学法的总体原则适用于程序设计教学,但具体方法不宜照搬。我们在教学实践中以归纳式教学法的基本思想为指导,在完善案例教学、加强学生实践、改革考试方式等方面提出了若干创新教学方法。

3.1完善案例教学

传统教学中,教师先讲解知识点,后讲解案例。学生在学习知识点时,缺少感性认识,往往不知所云,教学效果不好。我们依据归纳式教学法的原理,对案例教学做出了几点改革。

一是将案例提前。每次上课首先提出一个案例,通过讲解这个案例引出将要学习的知识点。这样学生对新知识点会有一个感性认识,了解某一知识点在整个程序中的具体用途和用法,比较容易理解和吸收。二是提供完整的案例。每次讲解案例时,不是仅截取一段程序演示,而是从某一具体的问题或需求出发,讨论如何解决这一问题,再在计算机上演示完整的程序,直至运行、输出结果。这样可以让学生对编程的完整过程有所了解,有助于对程序的理解。三是开设案例讨论课。每月开展一次,预先将案例交给学生分组准备,课堂上每组学生演示自己的程序,然后组织学生讨论,最后教师点评。

3.2加强学生实践

大量的实践对于学好程序设计是至关重要的。教师反复讲解,不如让学生实践一次。但是实践不能仅考虑数量(例如编写多少行代码)。我们提出除了要保证代码量外,还应做到以下几点:

一是尽量提前实践开始时间。学生开始上机实践的时间越早越好。即使学生还没有学习编程方法,也可以先熟悉一下编程环境,熟悉如何建立文件或试着写几行代码等。二是保证实践机会。我们应尽量让学生在需要实践的时候能够实践。教师刚讲解完知识点时立刻让学生实践,这时的效果最好。我们在课堂上总是留出一部分时间让学生分组编写程序,然后选出1-2组演示程序。教师根据演示情况随时予以点评,并针对易犯的错误深入剖析。三是鼓励学生每天做一点编程练习。理论上,学生都知道程序设计必须实践,但实际上并不了解具体的实践方法和步骤。我们提倡学生天天编程、日日练习,这对学生来说是可行的、具体的。在这一过程中,学生逐渐养成编程实践的习惯,并体会到只有经过日积月累的实践,才能提高程序设计的能力。

3.3改进考试方式

在考试方式上,国内教师较多地采用传统的客观题考试方式(如选择题、填空题等),国外教师则尝试采用小组考试。我们认为这两种方式都不适合国内的程序设计教学。在期末考试中,我们采用的仍是单独考试,但仅考编程题和简述题,不考客观题。这种方式更符合程序设计课程的培养目标,即培养应用型的程序设计人才,强调编程能力,而不是死记硬背。学生学习都是以考试为导向的。如果我们考察的是编程能力,学生平时就会更积极地进行编程练习,而不会死记硬背概念和语法。

4.结语

归纳式教学法是与传统的演绎式教学法完全不同的一种教学方法,它不是直接提供结论,而是先提出问题,让学生通过解决问题自己归纳出相对正确的方法。归纳式教学法有助于培养学生的自主学习能力和创新精神,因此十分适合于程序设计教学。

我们依据归纳式教学法的基本原理,在完善案例教学、加强学生实践、改进考试方式等方面提出了若干创新教学方法,取得了较好的教学效果。以Java程序设计相关课程为例,根据调查,77%的学生认为课堂上的程序实例对于他们理解Java“很有帮助”或“有帮助”;85%的学生认为考查编程能力更能体现他们的学习水平。这说明我们的改革方向是正确的,符合学生的需要。

最后要说明的是,本文讨论归纳式教学法在程序设计课程中的应用,但并非完全排除传统的演绎式教学法,在实践中应将二者有机结合。

上一篇:有线数字电视整转后的常见故障排除 下一篇:传统零售业自我突围之三大变革