APP下载

非计算机专业C语言程序设计中渐进式框架教学法的研究

2017-06-30陈鸿殷凤梅张江

科技创新导报 2017年12期
关键词:C语言教学方法

陈鸿+殷凤梅+张江

摘 要:C语言程序设计课程是非计算机专业理工院系开设的公共必修课,作为学生入校学习的第一门计算机技术课程,学生学习过程中感到内容抽象,困难重重,兴趣衰减。该文对渐进式框架教学法进行研究,首先提出以程序设计模块为主线学习的重要性,其次结合程序设计驱动模块提出渐进式框架教学方法的可行性。通过渐进式框架教学法的研究,旨在提高非计算机专业学生学习C语言程序设计的兴趣,运用C语言分析问题、解决问题的能力,提高编程效率。

关键词:C语言 程序设计模块 渐进式框架 教学方法

中图分类号:G642 文献标识码:A 文章编号:1674-098X(2017)04(c)-0221-02

C语言是一门通用性较强的计算机程序设计语言,它具有汇编语言和高级语言的双重特点,既能运用它编写操作系统软件,又能开发各领域的应用软件,实用性不言而喻[1]。语言是相通的,学好该语言,再学习其他计算机编程语言的时候就会触类旁通,学习速度提升许多。而非计算机专业学生学习该语言不仅可以深入理解计算机的运行过程,还在于培养自身严密的逻辑思维能力,利用计算机解决本专业问题的能力等。

为了更好地帮助非计算机专业学生学习C语言程序设计课程,激发学生学习兴趣,提高学生分析问题和解决问题的能力,提出渐进式框架教学方法。

1 渐进式框架教学方法

1.1 程序设计驱动模块

C语言课程分为两大模块,即语法模块和程序设计模块。教师在讲授过程中,往往会将重点放在枯燥的语法规则解释上,容易陷入重理论、轻实践的误区[2]。学生课上听讲频频点头,上机操作只会验证教师讲过的例题,其他题目无从入手。

在C语言课程的教学中,程序设计和语法学习同等重要,教学中不能单一讲解C语言中的语句、语法,应该积极推行案例分析,将复杂枯燥的语法恰当地嵌入有趣实用的程序实例中。通过程序实例重点介绍程序设计的思路和方法,在分析程序过程中逐步熟悉语法和应用语句,直接切入教学的主题和深入部分,把软件工程学的思想贯穿于算法分析和程序设计的过程中[3-4]。

1.2 渐进式框架

在程序设计驱动模块作用下,学生开始培养学习C语言程序设计的兴趣,但是随着学习案例、知识点的增多,学生编程容易出现瓶颈,对于编写综合性案例存在难度。因此提出渐进式框架学习方法,以程序设计模块为主线,将程序设计案例与知识点进行结合,提炼出若干渐进式编程框架,帮助学生逐步提升编程能力。

C语言程序设计课程中主要讲授了基本数据类型、复杂数据(数组、指针等)、表达式、顺序结构、选择结构、循环结构、函数、结构体和共同体、文件等。根据程序设计模块结合语法规则提出以下几种框架。从前往后的框架是渐进搭建的,符合学生学习知识难度的梯度要求,帮助学生快速写出案例的主线。

(1)基本输出框架。

任何一个C语言程序一定会有输出结果,因此搭建最基本的框架。具体框架如下。

#include

void main()

{

printf( );//打印输出

}

学生在编写含有输出结果的程序中,首先搭好这一基本框架,根据程序要求将“printf( );”语句填充完整。

(2)基本输入——输出框架。

在许多程序中,除了输出结果是必须包含的,输入项也是大多数程序中包含的。输入项主要分为两类:一类是直接赋值;另一类是键盘输入。在基本框架基础上进行框架进一步搭建,将其定义为基本输入——输出框架。具体框架如下。

#include

void main()

{

scanf( );//键盘输入或者直接赋值输入

printf( );//打印输出

}

学生编写程序时,如果题目有输入项要求,可以先将输入输出框架搭建起来,再进行语法填充。针对键盘输入,“scanf( );”语句的语法规则类似“printf( );”语句,可以将两者进行对比学习,归纳异同点,有效学习两种语句。

(3)输入——结构组——输出框架。

随着程序学习的深入,基本输入-输出框架无法满足编程需求,此时在该框架基础上继续搭建。在學习结构的时候,主要介绍顺序结构、选择结构和循环结构等3种常用结构。三种结构之间可以进行组合。总体上,将此框架定义为输入-结构组-输出框架。具体框架如下。

#include

void main()

{

scanf( );//键盘输入或者直接赋值输入

结构组;//单一结构或三种结构的组合

printf( );//打印输出

}

学生根据程序要求,首先确定输入项和输出项,然后分析由输入到输出的中间过程可以通过哪一种或哪几种结构完成。

(4)自定义函数——输入——结构组——输出框架。

在应用程序要求逐渐增多的时候,一个主函数无法完成所有需求,需要将需求进行分块,在主函数中直接调用各应用需求模块。此时开始搭建包含若干自定义函数的自定义函数——输入——结构组——输出框架。框架如下。

#include

自定义函数;//函数定义

void main()

{

scanf( );//键盘输入或者直接赋值输入

结构组;//单一结构或3种结构的组合,内部可能涉及函数调用

printf( );//打印输出,内部可能涉及函数调用

}

学生进行编程分析时,可以先将各个需求模块划分好,再使用该框架进行程序搭建,最后填充具体内容。

(5)复杂输入——结构组——复杂输出框架。

此时可能会提出疑问,教学中的重要内容数组、指针、结构体、文件等如何体现,根据应用要求提出复杂输入-结构组-复杂输出框架。输入、输出项中可以含有數组、指针、结构体等数据类型或文件等。

#include

void main()

{

复杂输入;/*与循环结构绑定的数组元素赋值、指针变量赋值、结构变量赋值或者打开文件赋值等*/

结构组;//单一结构或三种结构的组合

复杂输出;//数组元素输出、指针变量输出、结构变量输出或者值写入文件等

}

在一些综合应用中,程序的输入输出数据具有一定的特点。根据数组、指针、结构体和文件各自的适用范围,选择对应的类型进行程序输入输出的编写。

1.3 应用举例

分析案例的时候,可以先找到对应的框架进行搭建,再进行细节填充。具体应用如下。

(1)案例1——计算100以内的素数个数。

该案例经过分析,可以得出输入是1到100的整数,输出是素数的个数,中间运算过程是判断指定范围内的每个数字是否为素数。根据前面提出的几个框架,很快找到输入-结构组-输出框架,结构组中运用了循环结构和选择结构的组合。

(2)案例2——计算超市购物总花销。

输入是每个物品的单价和数量,输出是所有物品总价,中间运算过程是将每个物品总价进行累加。输入项目特点满足数组输入条件,因此找到复杂输入——结构组——输出框架。

(3)案例3——统计某班学生高等数学成绩平均分、及格率与学生成绩排名。

该案例较前面案例较为复杂,输入项包含每个学生的分数以及学生信息,输出有平均分、及格率、学生成绩排名等,中间运算过程要对应3个输出对象。显然,案例可以划分3个需求模块,考虑运用自定义函数——输入——结构组——输出框架进行求解比较快捷。

2 结语

高校非计算机专业C语言程序设计课程应用范围很广,对于学生逻辑思维和编程等能力的培养很有帮助。根据学生学习该课程的学习心理分析与学习情况的跟踪调研,寻找一种适合学生掌握所学知识的教学方法,在坚持以程序设计模块为主线的教学中,提出渐进式框架教学方法,提高学生的分析能力和编程能力,通过小范围试行验证了方法的可行性和实用性。但是,C语言程序设计课程的改革不是一劳永逸的,渐进式框架还有很大的改进空间,后续将继续进行相关研究。

参考文献

[1] 朱立才,汤克明.C语言程序设计研究型教学实践[J].计算机教育,2010(4):115-117.

[2] 周长英,董翠英,陈颖.非计算机专业“C语言程序设计”教学方法探析[J].教育与职业,2010(8):148-149.

[3] 方艳红,赵海龙.计算机高级语言程序设计类课程实践教学改革研究[J].中国科技信息,2008(19):12-14.

[4] 汪红兵,姚琳,武航星,等.C语言程序设计课程中的计算思维探析[J].中国大学教育,2014(9):59-62.

猜你喜欢

C语言教学方法
基于Visual Studio Code的C语言程序设计实践教学探索
教学方法与知识类型的适宜
基于C语言的计算机软件编程
C语言程序设计课程教学与学科专业相结合的探索
高职高专院校C语言程序设计教学改革探索
论子函数在C语言数据格式输出中的应用
实用型中医人才培养中慕课教学方法的探讨
文言文教学方法实践初探
非计算机专业C语言教学探讨
我的教学方法