课程导入与项目驱动在C语言教学中的应用*
2012-11-06赵玉玲
赵玉玲
(天津天狮学院 天津 301700)
课程导入与项目驱动在C语言教学中的应用*
赵玉玲
(天津天狮学院 天津 301700)
针对目前C语言课程教学中存在的“教师难教,学生难学”的问题,文章提出了在《C语言程序设计》课程教学中进行课程导入设计、项目驱动式教学等教学模式,旨在提高教学质量,激发学生的学习兴趣,加深学生对理论知识的理解和掌握,培养分析和解决具体问题的能力,进而培养学生分析问题的完备性以及统筹全局、协调关系的基本素质。
C语言教学;课程导入;项目驱动式;软件工程
C语言程序设计是一门过程性程序设计语言,它的发展贯穿了计算机发展的历程,它蕴含了程序设计的基本思想,囊括了程序设计的基本概念,所以它是理工科高等院校的一门基础课程。另外,在计算机教育方面,C语言是为数不多的与国外保持内容同步的课程之一,因此,它在相关专业教学中的地位和重要性不言而喻。
C语言教学的现状
传统的C语言程序设计的教学,从教学形式上看,通常是多媒体教室讲课+学生上机训练。从教学内容上来看一般都是“说明书”式的教学,即教师进行教学时往往是逐一地讲解相应的知识点,然后加以举例说明,最后学生进行针对性练习。这种以概念、举例、练习三部曲的方式来按部就班地组织教学,由于受到教学课时等因素的影响,在讲授程序设计思想、方法等重要概念和应用时,已没有足够的教学时间让学生去做一些具体的综合性练习。这种教学方式的缺点是:一般都脱离了实际应用,纯粹的过程性程序设计使学生在学习和上机时,将学习重点放在C语言的语法上,不知道所学习的东西有什么用,不能很好地把握知识的重点,也不能很好地训练在实际工作中所需要的技能。由于不能很好地调动学生的积极性,因此普遍存在着“教师难教,学生难学”的状况。
C语言教学改革
针对以上问题,我们认识到在C语言课程的学习上,首先要转变一种观念,使学生学习C语言的主要目的不再局限于单纯地了解和掌握基本语法规范,而是把学习的重心转移到培养学生运用C语言解决实际问题的编程能力,把C语言作为一种实践工具,介绍程序设计的基本思想和方法,培养学生无论以后在学习、工作中使用什么语言编程,都能灵活应用这些思想和方法的能力。
在实际教学中,将课程导入设计和项目驱动教学引入C语言教学中,取得了一定的效果。
(一)课程导入在C语言教学中的应用
课程导入的设计 课堂导入是课堂教学中的第一个环节,是指课堂教学伊始的3~5分钟内教师和学生所有教学活动的统称。这一环节时间很短,但作用重大,如果设计得当,可以快速集中学生的注意力,激起学生的求知欲,为后续教学的顺利开展带来极大的便利。所以,课堂导入是课堂教学中一个不可忽视的重要环节。下面通过对课堂导入环节的分析,结合教学实例,提出这一环节的一些设计原则。
课程导入的教学示范 课程导入需要良好的教学案例。下面以C语言中的循环结构程序设计部分的课程导入为例加以介绍。
1.强化理解概念。循环的相关概念如循环控制条件、循环变量、循环体等是设计循环结构程序的关键因素,在本部分教学之初,必须透彻理解。因此,设计了“植树”案例。具体描述为:学校要求每人种植50棵树,种树的具体过程描述如图1所示。通过图1,可以对循环基本概念进行如下定义:(1)循环体:重复执行的动作,如图1中的“挖坑、浇水”;(2)循环控制条件:重复执行循环体的条件,如图1中的“总棵数<=50”;(3)循环控制变量:决定循环次数的变量,如图1中的“总棵数”。这里需要说明的是,上面三个概念是循环程序设计的三要素。
图1 种树过程的描述图
2.归纳、总结,强调功能。现实中许多问题的求解都可以归纳为计算机能重复执行的操作。例如,数值计算中的数列问题,数值计算中的对象遍历(查找、排序)等问题。重复工作是计算机特别擅长的工作之一,也是计算机解决问题时遇到最多的一类问题。这部分主要强调循环结构在程序设计中的重要作用。
3.循循善诱,引出新课环节。介绍C语言提供的三种循环控制语句:(1)while语句;(2)do-while语句;(3)for语句。这部分主要使学生认识到编制循环结构的程序所需要掌握的工具。
4.分析简单的数列求和实例,练习编制循环程序引入程序设计实例求“1+2+3+…+100累加和”。通过提问、启发等多种方式共同设计算法,如下所示:
规律:每一步都是两个数相加,加数总是比上一步加数增加1后参与本次加法运算,被加数总是上一步加法运算的和。可以考虑用一个变量i存放加数,一个变量sum存放上一步的和。那么每一步都可以写成:sum+i
算法1:直接写出算式(用变量sum存放和)
sum=1+2+3+4+5+…+100
算法2:
步骤1:考虑1+2+3+…+100可以改写为:(((1+2)+3)+…+ 100),
sum=0;
sum=sum+1;
sum=sum+2;
…
sum=sum+100;
步骤2:根据规律上述式子可以改成:
sum=sum+i,i=i+1
…
步骤3:完整算法:sum=0,i=1;
判断如果i小于或等于100,执行步骤3,否则算法结束;
sum=sum+i;i=i+1;返回步骤2
(二)在C语言教学中实施项目驱动教学法
提高教学质量和教学效果,不但要通过良好课程导入的设计使学生很容易地融入新的教学内容中,还要在具体知识的学习上吸引学生,提高学生的学习兴趣。“项目驱动”教学法以提高学生的学习兴趣,重点培养学生分析问题、解决问题的能力为目的,是培养学生自主学习能力的一种新的教学法。
所谓项目驱动教学法,是师生通过共同实施一个完整的“项目”工作而进行的教学活动,它既是一种课程模式,又是一种教学方法。可以看出,项目教学都是实践导向的和任务驱动式的教学。
C语言程序设计作为计算机类专业的基础课程,若摆脱传统的“说明书”式的教学模式,采用“项目驱动”教学模式,将学生的关注点由繁复的C语言语法转移到实践性较强的项目的设计与开发上来,将会极大地提高教学效果。
帮助学生树立软件工程的基本思想 在计算机行业中,软件是通过人们的智力活动把知识与技术转化成信息的一种产品。软件的设计已经用工程的观念来进行管理,软件设计工作被当作一项系统工程来对待。C语言作为大多数工科院校学生接触的第一门程序设计语言,在学习之初,首先应该让学生简单了解什么是软件工程思想。同时,当前的程序设计教学也必须以切合将来软件工程开发的实际需要为第一目标,使学生在学习程序设计的初级阶段就树立正确的软件工程观点。这样做,不仅可以为学生将来从事计算机应用设计打下良好的基础,而且有利于培养学生分析问题的完备性以及统筹全局、协调关系等基本素质。
软件工程思想 经典的软件工程思想将软件开发分为3个阶段:软件定义、软件开发和软件维护。软件定义可进一步划分为问题定义、可行性分析和需求分析。在这一阶段,通过对应用问题及其环境的理解与分析,建立系统模型,将用户的需求精确化、完全化。软件开发阶段可进而划分为总体设计、详细设计、编码和测试。总体设计阶段的主要任务是如何得到一个能够实现用户需求的理想的系统结构,详细设计的任务是进行系统所需要的数据结构设计或者数据库的物理设计以及模块逻辑开发。编码即软件系统的实现阶段,在现代软件工程中,编码阶段所占的比重正在逐渐地缩小。软件测试是软件工程过程的一个重要阶段,其主要任务是对软件分析、设计和编码各阶段的产品进行检查,保证软件开发产品的正确性、完全性和一致性,检测并修正软件中出现的错误。软件维护是在软件产品交付给用户之后进行的修改工作,维护工作的好坏直接影响到用户的满意程度,关系到开发者的信誉。
以软件工程思想指导一个完整的软件开发项目 在C语言教学实施过程中,配合“项目拓展驱动教学法”,整个课程教学围绕一个“工程项目”进行,以项目的构建过程为线索安排教学步骤,教学过程由项目任务来驱动;同时,以软件工程思想指导整个软件项目的建设。下面以“通讯录管理系统”的设计与实现为例,简单加以介绍。首先,将整个课程学习分为两个阶段。第一阶段为单项的编程练习阶段。该阶段重点是掌握C语言的基本语句、数据类型与程序结构等;第二阶段是实训项目编程实践阶段。主要进行数组、函数、结构、指针和文件内容教学,同时,逐步组建“通讯录管理系统”,并且添加文本菜单,整合扩展记录添加、排序、查询、统计和记录浏览等功能并编写程序文档,形成完完整整的应用软件。具体设计参见表1。
表1 通讯录管理系统项目驱动教学表
通过这种逐步拓展的实训项目和设计,不但可以将C语言的知识点都融化到一个个实训项目的程序编写中,而且可以熟悉一个软件项目的简单设计过程。在学习过程中,学生参与整个完整项目的分析、设计、实现全过程,在课堂教学中将理论与实践教学有机地结合起来。这种开放性、创新性的教育思想和模式可使学生从被动接受者变成主动参与者,促进学生应用能力的提高。
良好的课程导入设计可以充分调动学生的求知欲,为后续教学环节的顺利开展带来极大的便利;而将软件工程思想结合项目驱动教学法引入C语言的教学中,从学生接触编程语言开始,就培养软件工程思想,有助于学生从整体上体会软件开发的全过程,充分调动学生的学习兴趣。
[1]肖荣,黄宏新,车云霞.论课堂导入及其设计[J].天津市教科院学报,2001,(4):38-41.
[2]杨玫,刘瑜,孔波.引入软件工程思想的C语言案例教学法[J].科技信息,2010,(20).
[3]李爱军.“项目驱动”教学法在C语言教学中的应用[J].办公自动化杂志,2010,(18).
G712
A
1672-5727(2012)04-0095-02
2009年度天津市教委高等学校人文社会科学研究项目《基于工作过程的计算机编程课程立体化教学模式研究》(项目编号:20092511)
赵玉玲(1977—),女,天津市人,硕士,天津天狮学院讲师,研究方向为计算机应用。