案例式任务驱动的C程序设计教学方法
2011-12-31阿里甫•库尔班米尔古丽•买买提依明
计算机教育 2011年22期
摘 要:针对理工类非计算机专业计算机基础教育课程体系中的C程序设计课程的案例式任务驱动教学方法。本文结合C语言编写的实际案例,分析案例教学的优势所在,同时阐明了任务驱动教学法的实施经过设计任务、布置任务、实践任务和成果展示、评价学习任务等阶段。以此激发学生的学习兴趣,调动学生学习的积极性和主动性,从而提高该课程的教学效果。
关键词:基础教育;案例;任务驱动
1 背景
目前,鉴于理工类非计算机专业的计算机基础课程涉及内容多、学科背景不同、培养层次不同等原因,我们立足于本学科的培养目标,制定了相关的课程体系和培养模式。在理工类非计算机专业的计算机基础教育课程体系程序设计基础课程中,主要开设的高级语言是C,C++,VC,VB。程序设计基础课程的目标是培养学生的程序设计思想、方法和利用计算机解决本专业问题的能力。
为了缩短与内地院校在计算机教学理念和教学方法上存在的差距,应进行教学大纲、教学方法和教学手段的改革,不断总结经验,寻求一条合理有效、切实可行的途径。理工类非计算机专业计算机基础教育程序设计基础课程体系的C程序设计是一门计算机公共基础课,其涉及概念多,规则复杂,数据类型和运算符丰富,使许多初学者望而生畏。作者长期从事高校计算机基础教育工作,在C程序设计课程教学中运用了案例式任务驱动教学法,现和大家共同探讨。
2 案例式任务驱动教学
为兼顾理工类不同专业提出的不同要求,需要采取不同的教学方法,从而激发学生学习该课程的积极性,我们运用了案例式任务驱动教学方法。此方法实际上是案例与任务驱动相结合的一种教学方法。
2.1 案例教学
在C程序设计的教学过程中采用“精选案例”来说明程序设计的基本语法、基本算法、基本理论知识、应用技能和具体实现过程。并将其融为一体,通过具体案例的实现来讲解每个知识点,从而激发学生从系统掌握理论知识到实现各个环节的综合应用能力的兴趣,更好地培养学生自主学习和终身学习的能力[1]。
2.1.1 案例教学激发学生学习兴趣
案例教学中,教师所选的案例要尽量贴近实际,选题同时具有典型性、综合性和示范性,并突出其难点与实用价值。通过讲解使学生体会到难点不难,解决难点问题的关键所在等。我们曾选择“学籍管理系统”,“小游戏”等作为案例。
首先,给学生做精选案例系统的演示,让学生体会用C程序设计方法编程应用的实际效果。通过展示友好的界面、演示完善的功能、对比学生的实际生活,极大激发了学生的学习兴趣。
2.1.2 案例教学培养学生的跟随创新、集成创新和自主创新能力
1) 通过教师的精选案例培养学生的程序阅读能力。阅读程序对学生编程能力的提高具有很好的促进作用。学生通过模仿、借鉴已有程序的设计方法和技
基金项目:新疆大学21世纪教改工程二期项目(XJU2008JGT13)。
作者简介:阿里甫•库尔班,男,维吾尔族,副教授,研究领域为计算机基础教育、多文种信息处理、数据库应用。
巧,逐渐形成自己的编程思路。随后要求学生在精选案例程序的基础上或者在它的外围,自行增加新的功能。这种创新本身也具有重要的意义,程序的核心模块虽然借鉴他人,但是极大缩短了学生的学习周期,提高了学生的超前学习能力,逐步形成高效的程序设计思想和动态调试方法,培养了学生的跟随创新能力。
2) 通过精选的案例培养学生的程序集成能力。学生掌握了某些实用的案例程序之后,经过有效、合理的组合进一步完成难度更大、综合性强、具有新增功能的其他应用程序[2]。
3) 进行一定的跟随创新和集成创新训练之后,学生积累了一定的编程技巧和经验,最终目的是培养学生独立分析问题,解决问题的能力,使学生掌握更加广泛和深入的内容,并围绕重点和难点等方面进行不断探索,最终达到学生自主开发应用程序的目标。
2.1.3 学籍管理系统的案例教学
学籍管理系统对学生来讲非常熟悉。在C程序设计的第一节课,首先抛开课本,演示用C语言编写的“学籍管理系统”小程序。通过演示程序,从使用者的角度讨论设计需求,激发学生学习C程序设计课程的兴趣。其次对程序结构进行讲解,最后对程序功能进行详细的解释。通过此方法,学生对C程序设计课程的数据类型、运算符、表达式、语句及程序设计方法、选择结构、循环结构、自定义函数、数组、指针、结构体与共用体、文件等每个知识点内容产生了初步的认识。
进一步结合传统的教学中讲述C语言的数据类型、标识符,变量等概念的方法,按照教材的理论知识脉络强调其详细的使用规则。将传统教学方法和案例教学方法有机结合起来取得了较满意的教学效果。
“学籍管理系统”的数据结构定义与C语言的数据类型、标识符,变量等内容并行讲解。
1) 学生基本信息描述的数据结构。
typedef struct {
int sno;//整性变量名,分类,定义讲解
char sname[18];//数组基类型,定义,元素
int sex;//借整型、字符型、来描述逻辑数据
int room;// 整性变量名,分类,定义讲解
int fon;// 整性变量名,分类,定义讲解
} StudentInfo;
2) 学生成绩信息描述的数据结构。
typedef struct {
int sno; //整性变量名,分类,定义讲解
char courseNo[6];
char couseName[30];
int grade1; //课程学分
int float 2; //平时成绩,浮点型数据、分类、定义讲解
int float 3; //实验成绩
int float 4; //卷面成绩
float z; //综合成绩
float sx; //实际学分
} GradeInfo
3) 结合案例讲解循环,如While (1),子函数定义,多分支选择语句switch语句。
While (1)
{
MainMenu(); //调用菜单子函数
scanf ("%