“任务驱动教学法”在《C语言程序设计》课程教学中的应用

2013-04-13 05:53重庆工商职业学院
电子世界 2013年1期
关键词:C语言程序设计C语言字符

重庆工商职业学院 龚 卫

一、引言

《C语言程序设计》课程是国内高职计算机软件技术专业的必修课,该门课程是程序设计的入门学科,是学生学习面向对象程序设计语言的基础。在多年的C语言程序设计的教学中,笔者发现,教师多采取传统教学模式,在教学中占主导,学生被动吸收,这种教学方式,学生目的不明确,学习主动性不高,对下一步软件设计的深入学习产生极大的影响。

高职教育,重在培养“有一定理论基础、善于动手”的应用型人才。在教学中,重点突出学生主体地位,教师应引导学生主动学习,主动思考。在《C语言程序设计》教学中采用“任务驱动教学法”,紧紧围绕教学目标,联系实际,设计学生感兴趣的任务,在任务驱动下开展教学,引导学生主动思考,逐步深入,分析问题,解决问题,促使学生积累程序设计的经验,产生对后续课程学习的兴趣。

二、应用

“任务驱动教学法”在教学中主要包括“任务描述”、“任务咨询”、“任务实施”、“任务拓展”四个过程。“任务描述”是提出任务,分析任务。“任务咨询”是给出基本理论,从易到难分解任务。“任务实施”是解决任务。“任务拓展”是任务升级和拓展。本文以“双重循环”教学为例,阐述“任务驱动教学法”在教学过程中的具体应用。

(1)任务描述

“双重循环”的教学,建立在学生熟练掌握了“顺序结构”、“选择结构”、“基本循环结构”内容的基础上,而“双重循环”又是学习后续内容二维数组的基础。教学中,任务的选择相当重要,任务既要贯穿整个教学设计过程,又要考虑循序渐进的学习原则。笔者在教学中,以如图1所示图形作为“双重循环”学习的任务。该任务具有系统性,可以由易到难的安排教学。

任务提出后,学生结合当前所学习的内容,进行分析。可以利用顺序结构,通过多条printf(“******* ”)语句来解决问题。也可以对其中一行进行分析,根据星号的个数,用for循环语句for(i=1;i<=n;i++)printf(“*”);printf(“ ”);来解决。如果有N行,那么就需要N条类似的语句,显然上面的两种方法都不是解决这个问题的最好方法。这样自然的引入“双重循环”的学习。

(2)任务咨询

解决任务,需要了解掌握一定的理论知识。这是任务咨询阶段首先要做的事情。让学生了解“双重循环”的一般结构:for(循环初值;循环终值;步长值){for(循环初值;循环终值;步长值) {内循环语句;} 外循环语句;},以及“双重循环”对于二维图形的输出控制方式,外循环一般控制行,内循环控制每行具体输出等相关知识点。

图1

图2

图3

图4

然后从易到难,对任务进行分解。先来讨论,如何输出如图2所示图形。该图形是一个长方形,每行的输出使由相同个数的星号字符和回车换行符两部分组成。外循环语句控制行for(i=1;i<=4;i++),内循环语句控制每行具体输出{for(j=1;j<=4;j++)printf(“*”);printf(“ ”);},这里特别提醒学生注意内循环星号和回车换行是两个同级的输出,需要用{}把上面语句括起来。完成该案例后,提出思考,外循环变量和内循环变量是否可以同名。行数和列数如果不确定,需要从键盘获得取值,应该如何修改程序。

在解决了图2的基础上,进一步讨论如何输出图3(1)所示图形。该图形是一个直角三角形,每行的输出由星号字符和回车换行符两部分组成,而该案例与图2所示案例的不同在于,星号的个数随着行数的增加有规律的递增,解决问题还需要寻找内循环每行循环次数(星号个数)和外循环行号变量的关系。不难看出,第一行,输出一个星号,内循环循环一次;第二行,输出两个星号,内循环循环二次;第N行,输出N个星号,内循环循环N次。于是得到内循环语句为{for(j=1;j<=i;i++)printf(“*”);printf(“ ”);}。完成该案例后,再一次提出思考,如果图形上下翻转为如图3(2)所示图形,又应该怎样考虑内循环每行循环次数(星号个数)和外循环行号变量的关系。

进一步深入,提出输出如图4所示图形的案例。该图形仍然是一个三角形,但每行的输出有了一定的变化,它是由空格字符、星号、回车换行符三部分组成。空格字符、星号字符个数随着行数的变化而变化,变化规律不同。由于每行先输出的是空格字符,先考虑空格字符和行数的关系。第一行,输出三个空格字符;第二行,输出二个空格字符;第三行,输出一个空格字符;第四行,不输出空格。于是得到行号和列号的关系j<=4-i。星号的输出与图3(1)的规律相同。所以内循环语句为{for(j=1;j<=4-i;j++) printf(“”); for(k=1;k<=i;i++) printf(“*”);printf(“ ”);}。完成该案例后,提出思考,如何解决如图4(2)所示图形。学生很容易发现星号个数和外循环行号的关系,k<=2*i-1。

(3)任务实施

通过以上案例的分析和讲解,由易到难,学生掌握了“双重循环”的基本设计思想。最后把如图1所示的任务提交给学生,要求在上机课程中完成。学生有了“双重循环”处理二维图形的经验。就会在教师的引导下主动分析图形,任务是输出菱形,而菱形的变化规律有递增,又有递减。这时需要把图形进行拆分,拆分为有单一递增或递减的规律两个部分。然后分别对这两个部分进行编程。任务实施的过程是学生复习巩固的过程,也是检验学生学习效果的过程。

(4)任务拓展

在学生完成了菱形图形输出的案例后,还可以拓展学生的知识。给出字母或者数字金字塔,让学生课余组成兴趣小组,共同协作思考完成。在掌握了“双重循环”的特点,理解了“双重循环”执行过程,学会了寻找图形规律的基础上,学生相互讨论,相互促进,对下一步的学习有极大的帮助。

三、总结

“任务驱动教学法”在笔者所在的高职院校《C语言程序设计》的课堂教学中得到了应用,取得了不错的效果。在高职教学中,激发学生学习兴趣,引导学生主动学习,领会程序设计的精髓,是每一个教师需要面对的问题。教师只有不断学习新思想,进行教学方式的新探索,才可能真正帮助学生学有所获,学有所得。

[1]廖剑华.任务驱动型案例教学在“C语言”课程教学中的实施[J].教育与职业,2011(5).

[2]赵颖.任务驱动法在高职计算机教学中的运用[J].黑龙江高教研究,2009(8).

[3]朱云霞.“任务驱动”教学法在计算机教学中的运用[J].中国电化教育,2002(5).

[4]黄雄波.高职C语言课程中循环结构的教学设计与实践[J].计算机时代,2012(5).

[5]谭浩强.C语言程序设计[M].北京:清华大学出版社,2002.

猜你喜欢
C语言程序设计C语言字符
基于Visual Studio Code的C语言程序设计实践教学探索
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
51单片机C语言入门方法
HBM电子称与西门子S7-200系列PLC自由口通讯
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
以“学生为中心”的《C语言程序设计》教学设计探究
基于翻转课堂的《C语言程序设计》课程教学系统的实现与研究