论文部分内容阅读
摘 要:通过对中医药院校C语言程序设计课程开设的现状分析,针对学生程序编写的困难、兴趣不浓,学习积极性不高这一学情,根据自身教学经验的归纳与总结,受“模式”这一概念的启发,创新地提出了将“模式化”教学方法应用于C语言程序设计课程的教学实践中,使抽象的程序设计变得有章可循。结果表明:将“模式化”方法运用于C语言程序设计课程教学中不仅激发了学生的学习兴趣,使学生更轻松、快捷的掌握了程序设计的思想与方法,还提升了教学效果,是行之有效的教学创新实践。
关键词:模式化 C语言程序设计 中医药院校 教学方法
中图分类号:G4 文献标识码:A 文章编号:1674-098X(2015)05(b)-0100-02
2009年医药类计算机基础教学指导委员会颁布了“医药类院校的计算机基础教学的课程设置和基本要求”的指导性纲要文件,提出2+X的课程设置体系,其中“2”代表大学计算机基础(医药类) 和程序设计基础两门必修课[1]。目前,大多数高校程序设计基础课开设为《C语言程序设计》。
C语言是一门功能强大、应用广泛的高级程序设计语言。但由于C语言中涉及的概念比较抽象、语法规则繁多,因此不少初学者感到学习困难、兴趣不浓,积极性不高。如何激发学生兴趣,提高教学质量,使学生能轻松快速的入门,培养学生的逻辑思维以及抽象思维能力,是教学中需要思考、值得探讨的问题。
1 我校开设《C语言程序设计》的目的与现状
随着计算机技术在中医药领域的广泛、深入应用,例如医院信息管理、远程医疗、智能仪器设备、计算机医疗仿真等,都离不开程序设计技术的支持。可见,程序设计技术的基础性和重要性。我校在非计算机专业学生本科阶段开设《C语言程序设计》课程,旨在通过对课程的学习,使学生掌握程序设计的基本方法和技巧,培养学生的逻辑思维能力,训练学生严谨的治学态度,为其更深入、灵活的利用计算机技术解决行业中的实际问题奠定基础。
对于中医药院校的学生而言,本课程内容相对比较抽象、枯燥,理解、掌握起来比较困难,无法快速从“形象思维”到“逻辑思维”的转变;加之中医药院校大部分专业属于文、理生兼招的专业,考生生源的数学功底以及逻辑思维能力相对理工科院校而言较差,而C语程序设计是一门逻辑性很强的课程,这为教师的授课带来很大的阻力;此外,部分医药类专业的学生采用“背书式”的方式来学习程序设计,将概念、例题等背诵记忆下来,而并非真正理解,从而导致“上课能听懂,练习不会做”的现象比比皆是;还有部分学生片面的认为编程是程序员的事情,跟他们所学的专业以及将来的工作就业没什么直接或必然联系,因此重视程度不高,也缺乏兴趣。
针对上述问题,笔者通过几年的教学实践、总结与反思,在教学方法上进行如下研究与实践尝试,以促进中医药院校信息化人才的培养与教学效果的改善。
2 “模式化”理论教学方法研究与实践
《C语言程序设计》课程内容较多,主要包括:程序的简单算法,语句基础,选择结构、循环结构程序设计,数组,函数,指针,构造数据类型,文件等。我校开设该课程的课时数为48学时,其中理论课时24学时,实验课时24学时。由于课时极其有限,为了更有利于非计算机专业的本科生理解程序设计的思想,且能进行简单的程序编写,而不是一味地灌输所有知识点不考虑学生是否能够接受,故我校选取了最为基础、易于掌握的部分内容进行课堂讲授,包括:程序的简单算法,语句基础,选择结构、循环结构程序设计,数组,函数。如何将各章节零散的知识点关联在一起,来进行C语言程序设计,以实现某一功能需求,是本课程理论教学的核心,而教会学生分析和解决问题的思路和方法是关键。模式其实就是解决某一类问题的方法论,即把解决某类问题的方法总结归纳到理论高度。受到“模式”这一概念的启发,笔者经过教学观察和研究发现:将“模式化”方法运用于程序设计的教学中,能为学生提供更清晰、便捷的分析问题解决问题的思路与方法,而尽量减少学生对于程序编写感觉无从下手的状态出现。
2.1 宏观上分析问题,设计程序
面对一个编程需求(即题目要求),首先要学会分析问题:即看懂题目意思。仔细研读并分析编程需求中的每一句话,从宏观上明确需要解决哪几个问题,各个问题采用何种程序设计结构,解决各个问题的关键点或关键步骤是什么。宏观分析阶段,可以用自然语言、流程图、N-S图等方法将解决问题的关键步骤进行描述,即算法描述。宏观分析“模式化”为表1宏观分析“模式化”表。
说明:表1中的第三列关于“程序设计结构”的确定,需要根据待解决的问题选择合适的C语言句型。若为有条件执行,则采用选择结构,其中单分支结构选用if句型,双分支选用if…else…句型,多分支选择if…else if…else if…else…句型或switch句型;若为反复执行,则采用循环结构,其中明确循环次数多选择for句型,明确条件限制多选择while或do…while句型;若编程需求中涉及到多个待解决的问题或功能较复杂,在分析时可以功能模块的细化,将其划分为一个个独立的子功能模块,则采用函数解决。
2.2 微观上解决问题,编写程序
在对问题进行分析并作简要描述后(即填写好表1的内容),接着进行微观上的程序编写。笔者根据“一个简单C语言程序的结构,分为预处理命令和主函数两部分”这一特点,将微观程序设计模板设计如表2微观程序设计模板。
说明:表2中的预处理部分通常包含三类语句的书写,若用到C语言系统所提供的库函数通常要书写包含头文件语句(例如,要使用标准的输入/输出函数需包含头文件#include,要使用数学函数需包含头文件#include,要使用字符串处理函数需包含头文件#include);若程序中不涉及到宏定义则宏定义语句可以省略不写;若程序中不涉及到子函数的定义则函数声明语句可以省略不写,同时子函数实现部分也可以省略不写。
按照微观程序设计模板设计好后,学生最终只需按照C语言语法格式的要求将模板中每一部分或步骤“翻译”(即转化)成C语言的语句,即可完成程序的编写。在Visual C++6.0的开发环境下将编写好的文件保存为后缀名为.C的源文件,经过编译、链接、运行,验证程序设计的结果。
2.3 C语言程序设计案例分析
编程需求:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。
建立水仙花数宏观分析模块化表。(见表3)
建立水仙花数微观程序设计模板。(见表4)
将水仙花数微观程序设计模板转化为C语言的源程序,代码如下所示:
#include
main()
{
int n,gw,sw,bw;
for(n=100;n<=999;n++)
{
gw=n%10; //分离出数n的个位
sw=n/10%10; //分离出数n的十位
bw=n/100; //分离出数n的百位
if(n==gw*gw*gw+sw*sw*sw+bw*bw*bw) //满足水仙花数的条件判断
printf("%-5d",n);
}
}
3 结语
笔者通过对学生的学习观察以及自身的教学经验总结,将“模式化”教学方法应用于C语言程序设计课程的教学实践中,取得了良好的教学效果。使学生再不会感觉程序编写无从下手或是深不可测,激发了学生的学习兴趣;培养了学生独立分析问题、解决问题的能力;使学生更轻松、快捷的掌握了程序设计的思想与方法。
参考文献
[1] 教育部高等学校计算机基础课程教学指导委员会.高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求[M].北京:高等教育出版社,2009:72.
[2] 罗铁清,杨连初.C语言程序设计[M].上海:上海交通大学出版社,2009.
[3] 曲蕴慧.医学院校《C语言程序设计》教学探讨[J].科技信息,2013(19):214.
[4] 刘鹏.医学院校《C语言程序设计》课程教学方法研究[J].才智,2012(5):118.
关键词:模式化 C语言程序设计 中医药院校 教学方法
中图分类号:G4 文献标识码:A 文章编号:1674-098X(2015)05(b)-0100-02
2009年医药类计算机基础教学指导委员会颁布了“医药类院校的计算机基础教学的课程设置和基本要求”的指导性纲要文件,提出2+X的课程设置体系,其中“2”代表大学计算机基础(医药类) 和程序设计基础两门必修课[1]。目前,大多数高校程序设计基础课开设为《C语言程序设计》。
C语言是一门功能强大、应用广泛的高级程序设计语言。但由于C语言中涉及的概念比较抽象、语法规则繁多,因此不少初学者感到学习困难、兴趣不浓,积极性不高。如何激发学生兴趣,提高教学质量,使学生能轻松快速的入门,培养学生的逻辑思维以及抽象思维能力,是教学中需要思考、值得探讨的问题。
1 我校开设《C语言程序设计》的目的与现状
随着计算机技术在中医药领域的广泛、深入应用,例如医院信息管理、远程医疗、智能仪器设备、计算机医疗仿真等,都离不开程序设计技术的支持。可见,程序设计技术的基础性和重要性。我校在非计算机专业学生本科阶段开设《C语言程序设计》课程,旨在通过对课程的学习,使学生掌握程序设计的基本方法和技巧,培养学生的逻辑思维能力,训练学生严谨的治学态度,为其更深入、灵活的利用计算机技术解决行业中的实际问题奠定基础。
对于中医药院校的学生而言,本课程内容相对比较抽象、枯燥,理解、掌握起来比较困难,无法快速从“形象思维”到“逻辑思维”的转变;加之中医药院校大部分专业属于文、理生兼招的专业,考生生源的数学功底以及逻辑思维能力相对理工科院校而言较差,而C语程序设计是一门逻辑性很强的课程,这为教师的授课带来很大的阻力;此外,部分医药类专业的学生采用“背书式”的方式来学习程序设计,将概念、例题等背诵记忆下来,而并非真正理解,从而导致“上课能听懂,练习不会做”的现象比比皆是;还有部分学生片面的认为编程是程序员的事情,跟他们所学的专业以及将来的工作就业没什么直接或必然联系,因此重视程度不高,也缺乏兴趣。
针对上述问题,笔者通过几年的教学实践、总结与反思,在教学方法上进行如下研究与实践尝试,以促进中医药院校信息化人才的培养与教学效果的改善。
2 “模式化”理论教学方法研究与实践
《C语言程序设计》课程内容较多,主要包括:程序的简单算法,语句基础,选择结构、循环结构程序设计,数组,函数,指针,构造数据类型,文件等。我校开设该课程的课时数为48学时,其中理论课时24学时,实验课时24学时。由于课时极其有限,为了更有利于非计算机专业的本科生理解程序设计的思想,且能进行简单的程序编写,而不是一味地灌输所有知识点不考虑学生是否能够接受,故我校选取了最为基础、易于掌握的部分内容进行课堂讲授,包括:程序的简单算法,语句基础,选择结构、循环结构程序设计,数组,函数。如何将各章节零散的知识点关联在一起,来进行C语言程序设计,以实现某一功能需求,是本课程理论教学的核心,而教会学生分析和解决问题的思路和方法是关键。模式其实就是解决某一类问题的方法论,即把解决某类问题的方法总结归纳到理论高度。受到“模式”这一概念的启发,笔者经过教学观察和研究发现:将“模式化”方法运用于程序设计的教学中,能为学生提供更清晰、便捷的分析问题解决问题的思路与方法,而尽量减少学生对于程序编写感觉无从下手的状态出现。
2.1 宏观上分析问题,设计程序
面对一个编程需求(即题目要求),首先要学会分析问题:即看懂题目意思。仔细研读并分析编程需求中的每一句话,从宏观上明确需要解决哪几个问题,各个问题采用何种程序设计结构,解决各个问题的关键点或关键步骤是什么。宏观分析阶段,可以用自然语言、流程图、N-S图等方法将解决问题的关键步骤进行描述,即算法描述。宏观分析“模式化”为表1宏观分析“模式化”表。
说明:表1中的第三列关于“程序设计结构”的确定,需要根据待解决的问题选择合适的C语言句型。若为有条件执行,则采用选择结构,其中单分支结构选用if句型,双分支选用if…else…句型,多分支选择if…else if…else if…else…句型或switch句型;若为反复执行,则采用循环结构,其中明确循环次数多选择for句型,明确条件限制多选择while或do…while句型;若编程需求中涉及到多个待解决的问题或功能较复杂,在分析时可以功能模块的细化,将其划分为一个个独立的子功能模块,则采用函数解决。
2.2 微观上解决问题,编写程序
在对问题进行分析并作简要描述后(即填写好表1的内容),接着进行微观上的程序编写。笔者根据“一个简单C语言程序的结构,分为预处理命令和主函数两部分”这一特点,将微观程序设计模板设计如表2微观程序设计模板。
说明:表2中的预处理部分通常包含三类语句的书写,若用到C语言系统所提供的库函数通常要书写包含头文件语句(例如,要使用标准的输入/输出函数需包含头文件#include
2.3 C语言程序设计案例分析
编程需求:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。
建立水仙花数宏观分析模块化表。(见表3)
建立水仙花数微观程序设计模板。(见表4)
将水仙花数微观程序设计模板转化为C语言的源程序,代码如下所示:
#include
main()
{
int n,gw,sw,bw;
for(n=100;n<=999;n++)
{
gw=n%10; //分离出数n的个位
sw=n/10%10; //分离出数n的十位
bw=n/100; //分离出数n的百位
if(n==gw*gw*gw+sw*sw*sw+bw*bw*bw) //满足水仙花数的条件判断
printf("%-5d",n);
}
}
3 结语
笔者通过对学生的学习观察以及自身的教学经验总结,将“模式化”教学方法应用于C语言程序设计课程的教学实践中,取得了良好的教学效果。使学生再不会感觉程序编写无从下手或是深不可测,激发了学生的学习兴趣;培养了学生独立分析问题、解决问题的能力;使学生更轻松、快捷的掌握了程序设计的思想与方法。
参考文献
[1] 教育部高等学校计算机基础课程教学指导委员会.高等学校计算机基础教学发展战略研究报告暨计算机基础课程教学基本要求[M].北京:高等教育出版社,2009:72.
[2] 罗铁清,杨连初.C语言程序设计[M].上海:上海交通大学出版社,2009.
[3] 曲蕴慧.医学院校《C语言程序设计》教学探讨[J].科技信息,2013(19):214.
[4] 刘鹏.医学院校《C语言程序设计》课程教学方法研究[J].才智,2012(5):118.