APP下载

模块化案例教学在C语言教学中的应用

2015-05-29高挺挺

电脑知识与技术 2015年10期
关键词:案例教学

高挺挺

摘要:该文针对已入门的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",&choice);

switch(choice)

{case 1: input();break;

case 2: display(); break;

case 3: add();break;

case 4: delete();break;

case 5: change();break;

case 6: info(); break;

case 7: query(); break;

case 8: quit();break;

default: w=1; }

if(w==1)

{ printf("输入有误,按任意键重新选怿.\n");

getch();

login(); } }

最后,依次完成各个模块函数的开发任务即可。

3 教学效果

理论课堂部分,通过教师对简单案例的分析引导,学生能够积极参与思考讨论,巩固了已有知识点,学会了新的知识点,并且达到了“知其然,知其所以然”的目标,为实验课编程实践

打下了坚实的基础,实验课上安排的实验题目,学生基本上都能按时独立完成,较往年的完成情况有了很大改观。

课程设计部分,学生也能依照综合案例的分析方法,通过自上而下划分模块,各个击破的方式,完成自己的任务,基本上杜绝了往年抄袭现象泛滥的情况。

4 结语

虽然这是笔者采用模块化案例教学法的第一年,还处于摸索学习阶段,但是初次尝试,教学效果得到了较大的提升,也肯定了笔者的努力方向,笔者将尽快建设完善C语言模块化教学案例库,从而更加系统的指导教学工作,以期取得更大的教学效果。

参考文献:

[1] 王晓勇, 肖四友,张文祥. 基于能力培养的C语言项目化训练教学模式初探[J]. 计算机教育,2009(10):60-62.

[2] 黄伟,周鸣争. 程序设计模块化实验教学研究与实践[J]. 电脑知识与技术,2009(15):3964-3966.

[3] 常梅,李迎秋,李永. “案例驱动”在“C语言程序设计”教学中的探索实践[J]. 计算机教育,2009(22):82-84.

[4] 张波,雷东升. 模块化案例教学在“C语言程序设计”课程中的应用[J]. 计算机教育,2009(21):62-65.

[5] 白淼. C语言阶段模块化教学模式初探[J]. 时代教育(教育教学),2011(02):56-57.

[6] 蔡茜. 浅谈模块化案例教学法在《C/C++语言程序设计》实践课程中的应用[J]. 科技信息,2010(13):216+159.

[7] 罗银科,雷云. 对案例教学法实施的再认识[J]. 教育导刊,2013(12):70-72.

猜你喜欢

案例教学
案例教学在机械创新设计课程中的应用
马克思主义基本原理概论课案例教学的几点思考