项目驱动教学法在《C语言程序设计》教学中的应用

2012-08-15 00:44李红叶山东圣翰财贸职业学院250316
中国科技信息 2012年6期
关键词:C语言程序设计C语言程序设计

李红叶 山东圣翰财贸职业学院 250316

项目驱动教学法在《C语言程序设计》教学中的应用

李红叶 山东圣翰财贸职业学院 250316

《C语言程序设计》是高职院校计算机专业的必修课,针对高职教育强调理实践训练、工学结合,“教,学,做”一体化等特点,本文对项目驱动教学法进行了探索和分析,并针对此课程的教学内容设计了项目化教学的具体实施方案。该方案在实际的课程教学中极大地提高了学生的学习积极性,并取得了良好的教学效果。

C语言程序设计;实践训练;项目驱动教学法

引言

项目驱动教学法要求在教学过程中,以完成一个个具体的项目为线索,把教学内容巧妙地融入到每个项目的各个环节中去。在项目的实现过程中,会无形的对某些的知识进行深化或扩充,这样就拓宽了知识的广度和深度,直至完整的项目都被实现。在完成项目的同时,培养了学生的创新意识、创新能力以及自主学习的能力。

《C语言程序设计》是一门技术性和实用性都很强的课程,C语言的具有功能丰富、表达力强、目标程序运行效率高等特点。但C语言涉及的概念比较复杂,规则繁多,使用灵活,不少初学者难以掌握、易出错。由于受到传统教学模式的影响,之前的教学效果不是很理想。多年来,我们学院按照高等职业技术教育的培养目标,基于建构主义学习理论,采用项目驱动教学法,对《C语言程序设计》课程的教学进行积极改革与探索,取得了良好的教学效果。

对于学生来说,学习一门课程,不仅仅是掌握一些关于这门课程的知识,更重要的是知识的应用和学习方法的掌握,并能在今后的学习过程中触类旁通。对于高职院校的学生来说,对实践能力的要求更为突出。在长期教学实践的基础上,我们决定采用基于项目驱动的教学方法,以一个完整的软件开发项目贯穿整个课程教学过程的始终;以项目的建构过程为线索安排教学过程;整个教学过程是由项目的任务驱动[1]。学生在学习过程中理解并参与一个完整项目的分析、设计、模块化实现的全过程,这样就在课堂教学中把理论和实践教学有机地结合起来,实现了“教、学、做”一体化,充分发挥了学生的主体作用。在项目的实现过程中,严格按照软件工程的步骤进行开发,使学生深刻理解软件项目完成的全过程,把充分调动了学生对课程学习的积极性,学生分析问题和解决问题能力地得到提高。

1 项目的选择

项目的选取要符合高职学生的学情,既能突出工学结合的特色,又要保证项目的实现能够涵盖C语言程序设计的所有基本内容,并且具有一定的代表性和实用性,为后期的综合实训和毕业设计打下良好的基础。本课程选择“学生成绩管理系统”项目作为整个教学的案例项目,将该项目进行模块化分解,根据学生的知识基础和接受能力,并结合该课程的教学目标逐步展开教学,将《C语言程序设计》这门课程的知识点融合到该项目的各个模块中,在完成项目的过程中,必须掌握以下知识:文件的建立、打开、读、写等操作;系统的组织包含数据输入、修改、查询、统计、输出等功能,函数的调用;数据内容的组织涉及数组、结构体、指针及对它们的操作等。该项目贴近学生生活,学生容易理解、且规模适中,又具有一定的实用性,能够较好的引起学生的兴趣。学生开始编写单一的简单程序实现添加记录、查询、排序、统计等功能,到学习到后期的函数、结构和指针等知识时,便可以对早期开发的各功能模块进行补充和完善,逐步完成学生成绩管理系统。

2 项目的设计方案

笔者以用C语言开发的一个小型的“学生成绩管理系统”程序为案例,将C语言程序设计的全部知识点串联起来。通过该项目驱动,将程序设计中所涉及的数据类型与各种运算、程序控制结构、函数、数组、指针、结构体、文件等的内容分配到各个章节中详细介绍,并逐步实现全部系统功能。使读者对C语言程序设计的过程与所涉及知识有一个清晰的理解,力求理论与实践相结合。这里先介绍“学生成绩管理系统”所要实现的基本功能以及相应的功能模块划分。

本系统需要实现的功能包括:学生信息的输入与输出以及学生信息的查询、修改、插入和删除,学生成绩总分和平均值的计算以及学生成绩的排序等。

项目采用模块化程序设计方法,所谓的模块化程序设计方法是指把程序设计成多个模块,每个模块只实现比较单一的功能即为一个子系统。子系统又可细分为几个下一级子系统,逐层分解,最末层为实现具体功能的模块[2]。这些功能模块便组成了整个的“学生成绩管理系统”,顶层模块由信息输入模块、信息输出模块、信息查询模块、信息修改模块、插入修改模块、删除记录模块、计算成绩模块和排序模块组成。其中信息查询模块又分为三个子模块,分别为按姓名查询、按学号查询和按院系查询。计算成绩模块也分为三个子模块,分别为计算学生总成绩、计算学生平均成绩和计算课程平均成绩。排序模块分为按学号排序和按成绩排序两个子模块。模块化的设计方法使程序结构更清晰,方便程序的组织,符合“自顶向下,逐步细化”的程序设计思路。每个模块都可以独立设计,方便实现大程序,也有利于多人合作进行程序开发。

3 项目实施过程中所涉及的课程内容

本课程的第二章讲解的是数据类型、运算符与表达式的有关知识。在本项目中,就需要使用本章知识对学生的姓名、学号、年龄、性别、班级、各科成绩等各种类型的数据进行存储和处理。

第三章介绍的程序控制结构。在项目的设计中,运用结构化程序设计“自顶向下,逐步求精”思想方法,对系统中的每个子模块都可由基本程序结构模块组成的结构化程序框图。

第四章介绍函数与预处理。在项目的设计中,可对项目中的子模块分别进行函数设计,按要求进行详细设计,具体实现各自的功能

第五章介绍数组的概念及应用。在项目的设计中,是对一批学生的信息进行管理,存储和处理这些相关信息可以考虑用数组。

第六章介绍指针的相关知识,为第七章中的链表打好基础。

第七章介绍结构体、共用体的概念及应用。项目的设计中,由于每个学生的信息如学生姓名、学号、年龄、性别、所在班级、各科成绩等,是相互关联的有着其内在联系数据项。因此可定义一个结构体将这些信息合为一个整体,并各数据项作为该结构体的成员。

第八章介绍文件的常用操作。在项目的设计中有七个功能模块函数在处理信息时都涉及对文件的打开、文件的读或写及关闭等操作。

4 结语

学生在项目驱动的教学过程中,理解和掌握本课程要求的知识和技能,真切体验到了实际项目开发过程的艰辛与乐趣,培养了学生分析问题和解决问题的能力。改变了传统的以教师为中心的教学方法,转变为以学生和实践能力为中心。选取一个可以贯穿本课程主要内容的项目,使之在教学过程中逐渐完善。使学生在学习本课程时,有一个完整的、适中的、具体的项目作为知识应用的载体,避免学习只停留在抽象枯燥的理论层面[3]。项目化教学能极大地激发学生学习兴趣,提高学生的专业素质和综合能力,能够取得良好的教学效果。

[1]顾明.项目教学法在软件工程教学中的尝试.计算机时代[M],2007.11

[2]蒋庆斌,徐国庆著.基于工作任务的职业教育项目课程研究[J].职业技术教育,2005(22)

[3]黄林国,凌代红,张丽君.高职计算机应用基础的教学改革与实验创新[J].计算机教育,2007(18):111~112

10.3969/j.issn.1001-8972.2012.06.096

李红叶(1983- )女,籍贯(山东省济南市)、山东圣翰财贸职业学院、研究生、硕士、研究方向:H.264视频编解码技术。

猜你喜欢
C语言程序设计C语言程序设计
医学专业“Python程序设计”课程教学改革总结与思考
基于Visual Studio Code的C语言程序设计实践教学探索
51单片机C语言入门方法
从细节入手,谈PLC程序设计技巧
基于C语言的计算机软件编程
高职高专院校C语言程序设计教学改革探索
以“学生为中心”的《C语言程序设计》教学设计探究
基于翻转课堂的《C语言程序设计》课程教学系统的实现与研究
浅谈《C语言程序设计》课程的教学改革
《C语言程序设计》课程的教学改革与实践