论文部分内容阅读
摘要:该文针对已入门的C语言学习者如何提高编程兴趣和能力的问题进行了探索,通过教学实践发现,模块化案例教学在C语言教学的提高阶段能够取得较好的效果,通过案例分析的引导,学习者不仅能更加牢固的掌握知识点,编程技能和思路也得到了很大的提升与拓展,达到了教学目的。
关键词:C语言提高;模块化思想;案例教学
中图分类号:G424 文献标识码:A 文章编号:1009-3044(2015)10-0113-02
C语言是计算机相关专业在程序设计方面的重要基础课程之一,肩负着引领学生进入软件开发领域的重任。C语言的教学应随着学生的掌握程度,在不同阶段采取不同的教学思路与方法。传统的教学方式是“理论讲授——代码示例讲解——学生上机实验”,这种方式在入门阶段还算可行,可以作为学生了解C语言语法规则,仿照示例编程的“模板”。但是,当学生入门后,再采取这种教学方式,会让学生迷失在琐碎的知识点海洋中,失去学习编程的最终目标,从而不能深入掌握C语言。
在C语言的提高阶段,要把模块化的思想应用到教学中。通过案例分析,自然而然的引出问题的症结,提出能够解决问题的知识点与编程技巧。通过引导启发,让学生自上而下、逐步求精的去分析案例,掌握解决实际问题的能力,对学生深入掌握C语言大有裨益。
1 模块化案例教学
采用模块化编程,意味着开发C程序不是从逐条编写C语言代码开始,而是从宏观的角度用主程序和子程序等模块先把程序的主要结构和流程描述出来,并定义好输入和输出环节,逐步分解得到一系列以功能模块为单位的求解算法和流程。最终,通过实现各功能模块完成程序设计的目的。
案例教学源于美国哈佛商学院,这是一种注重师生互动的研究性教学方法。教师预先准备有针对性的案例,启发学生进行思考,积极参与讨论,通过案例引出知识点,进而层层深入得出解决方案,使学生全面掌握C语言编程的知识与方法。
案例教学的目的是调动学生的积极性,主动参与到案例分析中来,在讨论案例的过程中,巩固已有知识,理解新的知识点,掌握新的编程思路和方法,从而提高分析和解决实际问题的能力。
案例应分为简单案例和综合案例。简单案例针对单一的知识点,难度较小,学生参与的积极性高,有利于从一个小问题引发学生的思考,从而为综合案例奠定基础。综合案例应覆盖多个知识点,通过案例讨论,为课程设计的开展打下基础。所以,案例的选取需要有针对性,要来自学生熟悉的领域,难易程度要适中。
2 案例分析
理论课部分以简单案例分析为主,目的是让学生掌握新的知识点。通过教师引导,分析案例,启发学生寻找新知识点来解决问题。课程设计部分以综合案例分析为主,目的是让学生掌握分析解决实际问题的编程方法和技巧。
2.1简单案例分析
题目:求1 2 3 … 100之和
针对知识点:理解并掌握循环结构,能使用循环结构进行熟练编程。
已学知识点:C语言基础语法、顺序结构、选择结构。
初步分析:可以定义2个整型变量:s和n。变量s存储累加和,其初值为0,变量n作为累加项,其值由1变化到100,将n的每一个值累加到s变量,即可求出结果。引导学生利用已有知识写出如下代码:
#include
main( )
{
int s=0,n=0;
n=n 1;
s=s n;
n=n 1;
s=s n;
…
printf("%d\n",s);}
进一步分析:代码中“n=n 1;s=s n;”两条语句会在程序中反复出现了100次,如果我们在程序中把这两条语句写100遍,确实也可以计算出结果,但是计算机编程的优势体现在哪呢?如果题目变为求出1加到1亿呢?启发学生思考如何解决这个问题,引出循环结构存在的必要性和重要性,讲解for循环并引导学生修改代码如下:
#include
main( )
{int s=0,n;
for(n=1;n<=100;n )
s=s n;
printf("%d\n",s);}
最后,通过举一反三类比的方法,引导学生利用while循环和do~while循环改写代码,并体会循环结构的特点和作用,掌握利用循环结构编程的方法与思路。
2.2综合案例分析
题目:设计并实现学生信息管理系统
学习目标:通过该系统的开发实践,掌握C语言的关键知识点,掌握利用模块化的思想开发实际项目的方法与流程。
初步分析:通过自上而下、逐步求精的思路,可以得出该系统功能模块结构如图1所示。
进一步分析:采用模块化编程的方法,针对每个模块设计一个函数,然后在主程序main函数中调用各个模块函数来实现该系统,模块函数如表1所示,程序流程图如图2所示。
继续分析:通过分析各模块之间数据的关联,还有必要设置2个全局变量来标明学生记录数和课程记录数,之后就可以采用各个击破的方式编写各个模块函数完成该系统的开发任务。其中登录系统模块代码实现如下:
void login() /*登录函数*/
{ intchoice,w;
system("cls");
printf("\t\t\t学生信息管理系统\n\n"); //主菜单
printf("\t\t1. 录入.\t2. 显示.\t3. 增项.\t4. 删项.\n\t\t5. 修改.\t6. 统计.\t7. 查找.\t8.退出.\n"); printf("\n 输入序号执行相应功能:");
scanf("%d",
关键词:C语言提高;模块化思想;案例教学
中图分类号:G424 文献标识码:A 文章编号:1009-3044(2015)10-0113-02
C语言是计算机相关专业在程序设计方面的重要基础课程之一,肩负着引领学生进入软件开发领域的重任。C语言的教学应随着学生的掌握程度,在不同阶段采取不同的教学思路与方法。传统的教学方式是“理论讲授——代码示例讲解——学生上机实验”,这种方式在入门阶段还算可行,可以作为学生了解C语言语法规则,仿照示例编程的“模板”。但是,当学生入门后,再采取这种教学方式,会让学生迷失在琐碎的知识点海洋中,失去学习编程的最终目标,从而不能深入掌握C语言。
在C语言的提高阶段,要把模块化的思想应用到教学中。通过案例分析,自然而然的引出问题的症结,提出能够解决问题的知识点与编程技巧。通过引导启发,让学生自上而下、逐步求精的去分析案例,掌握解决实际问题的能力,对学生深入掌握C语言大有裨益。
1 模块化案例教学
采用模块化编程,意味着开发C程序不是从逐条编写C语言代码开始,而是从宏观的角度用主程序和子程序等模块先把程序的主要结构和流程描述出来,并定义好输入和输出环节,逐步分解得到一系列以功能模块为单位的求解算法和流程。最终,通过实现各功能模块完成程序设计的目的。
案例教学源于美国哈佛商学院,这是一种注重师生互动的研究性教学方法。教师预先准备有针对性的案例,启发学生进行思考,积极参与讨论,通过案例引出知识点,进而层层深入得出解决方案,使学生全面掌握C语言编程的知识与方法。
案例教学的目的是调动学生的积极性,主动参与到案例分析中来,在讨论案例的过程中,巩固已有知识,理解新的知识点,掌握新的编程思路和方法,从而提高分析和解决实际问题的能力。
案例应分为简单案例和综合案例。简单案例针对单一的知识点,难度较小,学生参与的积极性高,有利于从一个小问题引发学生的思考,从而为综合案例奠定基础。综合案例应覆盖多个知识点,通过案例讨论,为课程设计的开展打下基础。所以,案例的选取需要有针对性,要来自学生熟悉的领域,难易程度要适中。
2 案例分析
理论课部分以简单案例分析为主,目的是让学生掌握新的知识点。通过教师引导,分析案例,启发学生寻找新知识点来解决问题。课程设计部分以综合案例分析为主,目的是让学生掌握分析解决实际问题的编程方法和技巧。
2.1简单案例分析
题目:求1 2 3 … 100之和
针对知识点:理解并掌握循环结构,能使用循环结构进行熟练编程。
已学知识点:C语言基础语法、顺序结构、选择结构。
初步分析:可以定义2个整型变量:s和n。变量s存储累加和,其初值为0,变量n作为累加项,其值由1变化到100,将n的每一个值累加到s变量,即可求出结果。引导学生利用已有知识写出如下代码:
#include
main( )
{
int s=0,n=0;
n=n 1;
s=s n;
n=n 1;
s=s n;
…
printf("%d\n",s);}
进一步分析:代码中“n=n 1;s=s n;”两条语句会在程序中反复出现了100次,如果我们在程序中把这两条语句写100遍,确实也可以计算出结果,但是计算机编程的优势体现在哪呢?如果题目变为求出1加到1亿呢?启发学生思考如何解决这个问题,引出循环结构存在的必要性和重要性,讲解for循环并引导学生修改代码如下:
#include
main( )
{int s=0,n;
for(n=1;n<=100;n )
s=s n;
printf("%d\n",s);}
最后,通过举一反三类比的方法,引导学生利用while循环和do~while循环改写代码,并体会循环结构的特点和作用,掌握利用循环结构编程的方法与思路。
2.2综合案例分析
题目:设计并实现学生信息管理系统
学习目标:通过该系统的开发实践,掌握C语言的关键知识点,掌握利用模块化的思想开发实际项目的方法与流程。
初步分析:通过自上而下、逐步求精的思路,可以得出该系统功能模块结构如图1所示。
进一步分析:采用模块化编程的方法,针对每个模块设计一个函数,然后在主程序main函数中调用各个模块函数来实现该系统,模块函数如表1所示,程序流程图如图2所示。
继续分析:通过分析各模块之间数据的关联,还有必要设置2个全局变量来标明学生记录数和课程记录数,之后就可以采用各个击破的方式编写各个模块函数完成该系统的开发任务。其中登录系统模块代码实现如下:
void login() /*登录函数*/
{ intchoice,w;
system("cls");
printf("\t\t\t学生信息管理系统\n\n"); //主菜单
printf("\t\t1. 录入.\t2. 显示.\t3. 增项.\t4. 删项.\n\t\t5. 修改.\t6. 统计.\t7. 查找.\t8.退出.\n"); printf("\n 输入序号执行相应功能:");
scanf("%d",