彭馨
(桂林师范高等专科学校数学与计算机技术系,桂林 541001)
“项目驱动”在高职高专《数据结构》课程教学中的实践
彭馨
(桂林师范高等专科学校数学与计算机技术系,桂林 541001)
《数据结构》一门理论抽象,应用性很强的高职高专计算机技术专业的必修课程。结合多年教学经验与当前《数据结构》教学现状,说明项目驱动教学模式在高职高专《数据结构》教学中的实践。
项目驱动;高职高专;教学实践
《数据结构》是高职高专计算机专业的一门核心专业课程,是程序设计与开发,大型数据库应用的基础,同时也是其他理工科相关专业的必修课程。其特点是理论知识繁杂抽象,又具有很强的应用与实践性。如何在高职高专计算机专业的数据结构教学过程中既要讲授课程理论,又要很好地培养学生的应用实践能力一直是本门课程的教改的主要目标。这些年来,高职高专院校为此做了大量的尝试,也取得了一些不错的效果。笔者结合多年来在高职高专院校担任《数据结构》课程主讲的经历,给出如何在《数据结构》教学实践中采用项目驱动教学模式,培养学生的创新能力。进一步提高本门课程教学效率。
项目驱动教学法是在建构主义理论的指导下,师生通过共同实施一个完整的项目而进行教学活动的教学方法[1]。项目驱动教学模式的基本规则:培养学生的职业技术能力和遵循职业能力为重点,根据企业的发展和行业工作的需求,实现学生的自我构建职业能力、提高职业素养。
在项目驱动教学过程中,教师以项目作为出发点,以学生为主体,让学生在实施项目的过程中学习到新的教学内容,在实践中学习新知识新内容,有效地避免了理论与实践脱节的局面。教师在课堂教学之前将需要解决的项目分解为若干个具体的小任务,分别为每一个小的任务设计出相应的教学方案,把课堂教学的新内容渗入到每个项目的小任务中,把新的课堂教学内容贯穿到项目实施的各个环节。学生在项目推进过程中学习到新的内容与知识。将理论知识灵活运用到项目实施中去,其目的在于激发学生学习兴趣提高了学习的主动性。
以“线性表”的教学为例,说明在《数据结构》课程教学中采用项目驱动教学模式的具体实施过程。
2.1 系统分析教学内容,精心设计项目
(1)分析教学内容
课前,任课教师认真分析教学内容中所包含的相关理论知识,明确学习目标—同时还要充分了解学生具体认知情况,从学生入手去设计合适的项目。
数据结构中“线性表”这一部分的主要理论知识有:线性表的定义,线性表的存储结构与及线性表的运算与算法分析。高职计算机专业学生对算法分析的掌握能力有限,对于算法分析只需学生了解。着重点在于让学生掌握线性表的相关概念与运算,同时能将这些运算应用到实际的项目设计中,提高学生的应用与创新能力。
(2)选取合适的教学项目
教师选择教学项目的基本原则:项目要包含大部分的课堂教学新的知识点,其目的是培养学生的应用知识能力与分析解决问题能力。教师可根据教学目标与课程内容的实际需求,学生的具体认知情况选取适合的项目进行教学。根据“线性表”这一章节的教学目标和要求,同时考虑到高职高专院校计算机专业学生初次接触数据结构,先导课的内容掌握不牢的,程序设计基础差的客观事实。我们选择“学生成绩查询”作为本章节的教学项目。
2.2 分析项目实施细节,在项目实施过程中溶入理论知识
在课堂教学中,以教师为组织者,以学生为主体,详细分析“学生成绩查询”实施的全过程。
(1)描述项目的具体要求:设有某班的某个学期的“学生成绩表”,存储这个班本学期的三门课程:数据结构、高等数学、外语成绩。现要求给定学生的学号,能从“学生成绩表”中查询该生的成绩情况。(这一部分主要由教师讲解)。
(2)分析项目实施过程所需要的知识与内容,把新知识引入其中进行讲解。实施项目需要做以下的工作:建立一个学生成绩表,学生成绩表所涉及到的信息有:学号,姓名,班级,数据结构、高等数学、外语。
如下表1所示:
表1
由以上的学生成绩表的结构可以得到:成绩表的每一行就是一位学生的成绩情况,即数据元素,一个成绩表就是一个线性表。每一列就是一个数据项。(教师讲解线性表的相关概念)成绩表的元素之间的关系是一对一的关系,所以线性表的元素之间是线性关系(教师讲解线性表的逻辑结构)
2.3 实施项目,理论联系实际
项目实施分为两个步骤:逻辑设计与详细设计。逻辑设计的目的就是定义与项目相关的数据类型(教师在课堂上和学生共同讨论,让学生有完整的逻辑设计的体验)。详细设计就是定义线性表的存储结构与具体的运算算法。在课堂上由教师讲述线性表的两种存储结构:顺序存储结构与链式存储结构的具体实现与它们之间的区别。基于上述的分析在本项目实施中假设采用顺序存储结构,按班级建立学生成绩表。具体设计的过程如下:
(1)定义班级学生成绩表的结构类型:在课堂上引导学生思考成绩表包含不同的数据类型应当采用C语言中的结构体来实现。
#define NUM 50/*设定的班级人数不超过50人*/Typedef strut{
Char num[10];
Char name[20];
Char class[30];
float datastru;
float math;
float english;}grade;
typedef struct{
grade gra[NUM];
int len;
}SpList;
(2)运算算法设计:教师在课堂上引导学生思考要实现项目的要求需要实施的运算有:创建班级成绩表与按学号进行查询的查询算法。
算法1:创建学生成绩表
Void createList(sqList*L){/*创建学生成绩表*/
int i;
Printf(“输入班级学生人数:”);
Scanf(“%d”,&L->len);
Printf(“按顺序输入每个学生的成绩表信息:学号,姓名,班级,数据结构,高等数学,外语 ”);
For(i=1;i<=L->len;i++){
Printf(“ 第%d个学生的成绩信息:”,i);
Scanf(“%s”,L->grade[i].mun);getchar();
Scanf(“%s”,L->grade[i].name);getchar();
Scanf(“%s”,L->grade[i].class);getchar();
Scanf(“%f”,L->grade[i].datastru);
Scanf(“%f”,L->grade[i].math);
Scanf(“%f”,L->grade[i].english);
}
}
算法2:按学号查询相应学生的成绩。找到返回学生所在成绩表的位置,找不到返回-1。int seek(SqList*L;string s){
Int i;
For(i=L->len;i>1;i--)
if(strcmp(L->grade[i].mun,s)==0)break;
if i>1 return(i)
else return(-1);}
(3)实施项目的主程序Main(){
Int i;
SqList*L,*q=&L;
Char class[30];
createList(q);
printf(“输入学生的学号 ”);
gets(mun);
i=seek(q,mun[]);
if i!=0{
puts(L->grade[i].mun);puts(L->grade[i].name);
puts(L->grade[i].class);
printf(“%f”,L->grade[i].datestru);
printf(“%f”,L->grade[i].math);
printf(“%f”,L->grade[i].english);
}
Return(0);
}
2.4 总结提高
项目实施完成后,教师根据学生对项目的掌握程度进行分析总结,对学生共同存在的问题进行统一的解答,对个别学生存在的问题进行指导与帮助,针对高职高专学生对高级语言掌握不够好的缺点,充分利用本校的微课与慕课资源,引导学生进行课外的学习,参与各种相关项目的讨论,帮助学生解决问题巩固提高。
在高职高专《数据结构》课程教学中采用项目驱动教学模式,避免了理论知识与实践脱节的现状,教师把项目实施的全过程划分成若干个小的任务,在实施小任务的过程中溶入新的课程内容。在课堂上以任务为驱动,教师为主导,学生为主体,组织学生主动地对要解决的项目进行讨论分析,在分析解决项目中又能学习到新的理论知识,克服了在传统教学中教师一言堂的,教学内容枯澡,学生学习兴趣不高的问题。笔者将项目驱动应用于两个年级的计算机应用技术专业的《数据结构》课程教学当中,实践证明:能很好地培养了学生的实践应用能力,提高了学生的学习兴趣,教学效果有明显的提升。
[1]李环.计算机网络实验的项目驱动式教学应用[J].计算机教育,2010,113(5):89-91.
[2]严蔚敏,吴伟民.数据结构(C语言版)[M].北京:清华大学出版社,2007.
Abstract:Data Structure is an abstract theory,applied strong vocational college computer technology professional required course.Combined with my teaching experience for many years and the current status of data structure teaching,suggests that project driven teaching mode in higher vocational college Data Structure in the teaching practice.
Keywords:Project Driven;Higher Vocational College;Teaching Practice
Teaching Practice of Data Structure Course Based on Project-Driven in Higher Vocational College
PENG Xin
(Department of Mathematics and Computer Technology,Guilin Normal College,Guilin 541001)
1007-1423(2017)25-0032-04
10.3969/j.issn.1007-1423.2017.25.009
桂林师专教学改革工程立项项目(No.GLSZ20104)
彭馨(1981-),女,广西桂林人,本科,讲师,研究方向为计算机多媒体技术
2017-05-16
2017-08-30