前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇c语言程序设计实例范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
关键词:立体化;教学模式;案例教学;在线教学;多维度考核
中图分类号:G642 文献标识码:B
目前我国高等教育的计算机专业面临这样的问题,一方面是计算机科学的飞速发展及对人才能力的高要求,另一方面是高校计算机人才培养模式的滞后前进。因此,用计算机科学和计算机教育学相统一的观点去研究计算机课程立体化教学模式,是顺应我国计算机科学教育发展的需要,提高计算机教育投资与回报效益,培养具有创新意识、创新思维、创新能力和创新精神的计算机人才。
C语言程序设计是计算机及相关专业的一门专业基础课,在教学计划中占有重要地位和作用。在C语言程序设计的教学过程中,我们对C语言程序设计的立体化教学模式进行了探索和实践。在课堂教学中采用“案例式”的启发教学模式,加强实践教学环节,建立完善的实践教学体系;改革教学考核评价模式,建立科学合理的学习评价体系;建立在线教学网站,搭建一个学生自主学习和师生互动的平台,使其成为课堂教学和实践教学的有益补充。通过这些环节,建立一套完整的以课堂教学为基础,以实践教学为保障,以在线网络教学为补充的立体化教学模式。立体化教学模式涵盖了课堂理论教学,实验实践教学,课外辅导,自主学习,过程考核,评价与反馈整个学习过程,从多层次、多方位构建起了课程的教与学的体系。下面分别从以下几个部分来探讨我们的实践成果。
1启发式的课堂教学
课堂教学是“学知”能力培养的主要阵地,同时也是创新能力和自学能力培养的基地。由于计算机科学的理论深奥、涉及面广,加之学生自身的一些因素,往往容易造成学生思路跟不上,而对一些课程的学习没有兴趣甚至失去信心。所以C语言程序设计课堂的调动手段非常重要。调动手段包括利用多媒体课件,调动学生的视觉和听觉效果;采用启发、互动式教学调动学生的学习兴趣和注意力;
安排一些问题和科研方面的新动向、新成果介绍给学生,并展开讨论,激发学生的学习兴趣和激情。这是我们保障课堂教学效果的所做的努力。
首先积极改进教学方法和教学手段。推广案例教学法等启发式教学方法,引导学生进行创造性的思维活动,把学生从被动地“听”、“看”到积极思维的运动中去,调动学生学习的积极性;组织老师研究同一课程不同章节的教学方法和手段;充分利用多媒体资源,改变黑板加粉笔为主的教学方式,引进和制作与之相配套的电子教案,增加单位时间内的信息量,提高授课效率。
其次应根据实际情况选择合适的教材与教学内容。我们构建了C语言程序设计教材库,全面收集目前已有的国内外优秀C语言程序设相关书籍,提供教师在选取教材和备课过程中使用。这样能避免教师因个人的偏好或者使用惯性而使用单一教材,导致教学内容陈旧单一,缺乏新技术与新成果的引入。
建立适合课堂教学的“案例”库,为案例启发教学提供素材保障。目前我们的案例库已经接近50个,分为基本概念和算法案例、典型问题案例和工程问题案例,这些案例可以根据教学需要在理论教学、实践教学或综合实训教学中使用。在教学过程中通过使用“案例”教学模式,改变学生在学习过程中完全被动的灌输式学习,学生积极主动地参与到教学过程中,逐渐从被动接受转向主动学习,从而加强学生思考能力和创新能力的培养,实现了从重知识到重智能培养目标的转变。
2建立完善的实验实践教学体系
C语言程序设计课程本身就是一门理论与实践并重的课程,在教学实践中必须将理论教学与实践教学相结合,使其相互作用,相得益彰。一般情况下,学生在学习中产生的学习困难主要来自于他们对所学知识缺乏必要的感性认识,因此必须采用“体验式学习”方法,以学生为主,通过必要的实验让学生在做中学,学中做。这样使得所学理论知识在实验中得到验证和应用,学生获得了学习成就 感,增强了学习兴趣,提高了学习效果。经过几年的研究与实践,我们初步构建起了C语言的实验实践教学体系,其包括以下几个方面:
(1) 编写实验指导书。我们在遵循课程教学的规律和节奏的基础上,编写了适合我们教学对象和教学要求的实验指导书,综合可操作性、趣味性和适当的难度,既保证实验的可完成性,又增加学生的兴趣,使其在探索与解决问题的过程中获得学习成就感。
(2) 开设综合课程设计。课程设计环节是实践教学的关键环节,也是对所学知识的综合应用环节,我们在实验的设计上遵循符合社会真实要求、提供较大探索空间的原则,设计题目以典型的问题或实际的工程为主。
(3) 与各类竞赛结合,在实践教学中训练学生的参与意识、竞争意识和团队精神。我们在实践教学中引入ACM程序设计大赛、电子设计大赛等各种竞赛相关的程序设计题目,鼓励同学们在课下自己组队,按照比赛规程,模拟比赛。尤其是在课程设计环节,我们给出一部分综合设计题目,同学们还可以根据自己的兴趣与爱好选择竞赛题目,根据题目的难度确定难度系数,最终给出评分。学生能够提前了解各个比赛的规则和题目的难易程度,提高同学们对程序设计的兴趣和积极性。为以后组织学生参加比赛打下良好的基础,也保证了实践教学效果。
(4) 加强实践环节的考核。在我们的课程计划中,实践环节教学(课内上机和课程设计)和理论教学课时比例接近1:1,实践环节教学效果直接影响着课程的最终学习效果。实践环节教学主观性比较强,如果教师要求松,可能直接导致教学效果差,达不到预期教学要求。在长期实践教学中我们发现,制定严格的实践教学考核方案,与学生成绩直接挂钩,对于保证实践环节教学效果是非常重要的。我们是通过在学生成绩评价体系中加强实践环节的成绩所占比例来做的。
3建立科学合理的学习评价体系
评价是对学生学习过程与学习效果的评定与总结,一个好的评价系统体系,不仅能评定出学生真实的学习效果、理论知识扎实程度和实践动手能力的强弱,而且能跟踪学生整个学习过程,分析教学与学生学习过程中存在的问题,以便改进教学方法,促进教学相长。
在C语言程序设计学习评价体系中采用多维度考核评价方法,建立了适合C语言程序设计课程考核的多维度考核评价体系,它打破以往以期末考试成绩为主的成绩评定方法,经过几年的实践与完善,我们为课程确立了多方面的考核因素和成绩计算公式:
总评成绩=实验(40%)+ 作业(10%)+期末考试(50%)-考勤扣分
这种多维度、过程性的成绩评定方法,强调了学习的积累与构建过程,消除了学生平时不学习,考前突击学习的弊病。同时还从侧面规范了教学,要求教师同样注重教学的过程性,引导学生循序渐进,将知识的学习贯穿于整个学期。
构建题库管理与网络考试平台,为过程性测试提供物质基础和手段。针对传统考试工作量大、效率不高、反馈能力弱、选题灵活度小、阅卷量大等局限性,我们利用计算机与现代网络技术,搭建了一种新型的C语言智能化考试和评分系统。
C语言智能考试系统不同于已有的程序设计考试系统,不但可以对客观题型进行自动阅卷评分,还可以对学生设计的程序进行自动评分。采用的评分方法是基于程序比较的方法。该方法的基本思想是:由教师提供的一系列模板程序(相当于提供编程题的参考答案)作为输入,通过将学生程序与模板进行程序标准化转换,消除程序表达方式多样化后,进行程序匹配,计算它们的语义相似程度,给出学生程序的评分结果。语义相似度越高,学生程序得分就越高。
这种考试方式不但减轻了教师的工作负担,而且避免了传统考试“千人一卷”的缺点,试题选择灵活度大,考核知识点全面。借助计算机技术,我们还能对考试结果进行分类统计分析,增强了考试的反馈效应。
4建立在线教学平台
在线教学充分利用计算机多媒体技术和网络技术,促进了信息共享与交互,是课堂教学的延续和有效补充,能有效激发并维持学生的学习动机,同时培养学生自主学习的能力。建立在线教学网站,充分利用校园网资源,探讨新型的E-learning学习模式,为学生的学习增加新的互动的学习平台。
在线教学平台最重要的是内容,它决定着在线教学平台是否能起到其真正的作用和意义。我们经过多方面考查与摸索,制定了一个适合C语言程序设计课程的网络教学平台方案。该平台依据社会建构主义的教学思想,即教育者(老师)和学习者(学生)都是平等的主体,在教学活动中,他们相互协作,并根据自己已有的经验共同建构知识。主要内容如下所述。
(1) 课程管理:教师可以全面控制课程的所有设置,包括限制其他教师;可以选择课程的格式为星期、主题或社区讨论,灵活的课程活动配置――论坛、测验、资源、投票、问卷调查、作业、聊天、专题讨论。
(2) 作业管理:可以指定作业的截止日期和最高分。学生可以上传作业(文件格式不限)到服务器――上传时间也被记录。
(3) 在线测试:教师可以定义题库,在不同的测验里复用,题目可以分门别类地保存,易于使用,并且可以“公布”这些分类,供同一网站的其他课程使用。
(4) 资源管理:支持显示任何电子文档、Word、PowerPoint、Flash、视频和声音等可以上传文件并在服务器进行管理,或者使用web表单动态建立(文本或HTML)。
(5) 问卷调查:问卷调查作为分析在线课程的工具已经被证明有效,随时可以查看在线问卷的报告,包括很多图形。数据可以以Excel电子表格或CSV文本文件的格式下载。
(6) 互动评价:学生可以对教师给定的范例作品文档进行公平的评价,教师对学生的评价进行管理并打分。
5结束语
C语言程序设计立体化教学模式的实践,是探索适应当今计算机人才需求的新型培养模式的大胆尝试,是以计算机教育学的理念“授之以渔”为指导,以“学习、实践和创新一体化”为思路,从而高效、高水平、高质量地培养计算机方向人才的实际应用。实践表明,C语言程序设计立体化教学模式的实施,构建起了一个重实践、重创新和多方位的课程教学与学习体系,有效提高了课程的教学质量和学生的学习效果。
参考文献:
[1] 曹聪. 计算机软件课程立体化教学模式的探索[J]. 高等理科教育,2007,(3):64-67.
[2] 关忠仁. C语言教学质量的思考与实践[J]. 中国大学教学,2007,(3):56C58,64.
[3] 宋云娴,韩凡石. 立体化教学资源模型构建[J]. 电气电子教学学报,2005,(4):100-103.
[4] 王宇颖,侯爽,郭茂祖.题库系统试卷自动生成算法研究[J].哈尔滨工业大学学报,2003,(3).
[5] 范亚芳,渠芳等. “面向教学的数字化信息资源服务系统”的创建与实现[J]. 图书情报工作,2005,(9):80-83.
[6] 余胜泉,张泽. E-1earning 时代高校教材的立体化出版[J]. 中国大学教学,2006,(2):56-59.
[7] 王晓辉,赵中建等译. 为了21世纪的教育―问题与展望[M]. 北京:教育科学出版社,2001:299-301.
关键词:C语言程序设计;案例驱动;教学方法
中图分类号:G642 文献标识码:A
1引言
“C语言程序设计”是计算机专业的基础课,同时也是“数据结构”、“操作系统”、“嵌入式系统”等计算机专业课程的前导课程,它已经成为我院计算机专业的一门必修课,在整个课程体系中占有重要地位。“C语言程序设计”不仅是学生学习程序设计的开端,而且与学生形成程序设计过程理念、提高分析问题、解决问题的能力有着密切的关系。通过这门课程的学习,学生可获得程序设计语言知识,培养软件开发能力,还可以锻炼逻辑思维能力,对学生综合素质的提高具有一定的促进作用。
客观上,C语言教学过程中,教师的教法和学生的学法对教学效果会产生直接的影响。由于C语言牵涉到的概念比较复杂,规则繁多,使用灵活,容易出错,不少初学者感到学习困难。传统教学过程中,教师需要在课程规定学时内讲解C语言的语法、语义以及这门语言方方面面的规定,为了完成教学任务,教师往往在授课时先讲语法规则,再举例讲解教材上或事先准备好的简短程序代码,一味“填鸭式”的灌输,而对学生而言,他们不但要在较短时间内记住大量琐碎的知识点,还要能灵活运用知识点,融会贯通,完成教师课堂上演示的例子或课后布置的作业,但因缺少真正的编程调试及实践环节,学生逐渐感觉到学习内容的枯燥乏味,理论与实践不能有机地结合起来,解决实际问题的能力差,学习兴趣在学习过程中随时间而减退或消失,学习效果不好。本文结合笔者的实际教学经验,提出并探索了采用“案例驱动”教学方法来改善课堂教学,并将其应用于实践,与大家共勉。
2 “案例驱动”教学法的探索实践
2.1教学中存在的问题
“C语言程序设计”是一个逻辑性很强的课程,但多数学生在学起来时感到无从下手。主要原因可归结为以下两点:
一方面,目前学校使用的教材中,绝大多数结构都基本相同,即在每一章介绍完概念后,提供一些例题解释相关概念的使用方法,并在章节结束后针对本章中出现的内容提供一些练习题。考试普遍采用单选、判断及简答等方式测试学生对教材内容的掌握程度。从实际效果分析,这只测试了学生对各章节中的基本概念的记忆程度而非理解程度。
另一方面,在考试的压力下,特别是目前的应试考试中,学生更多注意的是教材中的典型例题与老师指定的重点内容,对程序的系统概念没有真正地理解,特别是没有整体程序设计的思想。通过对考试结果的分析,可以发现在考试中涉及的综合编程部分,学生的得分率很低。为了确保学生的课程通过率,教师在考试时尽可能将综合测试部分的比例压低或提供给学生统一的复习提纲,结果使学生在学习时一切围绕任课老师的讲授内容死记硬背,偏离了理论与实践相结合的轨道,无法将所学理论知识运用到实践中解决具体问题,更无法形成良好的编程思想。
2.2 “案例驱动”教学思想的提出
我院属于应用型本科院校,其教育目标着重于培养具有实际工作能力的技术型和应用型人才。“C语言程序设
计”在应用型教学中是必不可少的一门学科,而且往往在新生入学的第1学期开设,以便培养学生的编程思想,为后续课程做铺垫。因此,强调实践性成为“C语言程序设计”教学中尤为重要的问题。为了改变传统的“填鸭式”知识灌输,能够在规定的学时内加强学生的理解能力,同时其培养编程思想,以提高学生的编程能力,结合C语言的特点,反思传统教学方式的弊端,笔者提出“案例驱动”的教学思想。即将所要学习的新知识隐含在一个或几个案例之中,引导学生对案例进行剖析、讨论,明确它大体涉及哪些知识,并找出哪些是旧知识,哪些是新知识,老师指导、帮助学生找出解决问题的方法,最后通过案例的完成而实现学生对所学知识的理解、编程思想的建立和实践动手能力的提高。在选择案例的过程中,应当遵循以下的标准。
第一,所选案例往往具有真实性,一般在日常生活中能典型地反应教学内容。
第二,所选案例难易程度要适中。案例的选择要考虑学生的知识背景,过于复杂的案例,将导致学生学习兴趣下降。难易适中的案例才有利于学生学习的深入进行,提高其学习积极性和主动性。
第三,案例要能覆盖多个知识点,以便提高学生综合运用知识的能力,达到整合知识的目的。
2.3 “案例驱动”教学法的课堂组织实施
2.3.1学时调整及案例引入
为了体现精讲多练的原则并适时引入案例,我们首先对整个教学过程的学时作了重新编排:将原来的96学时调整为112学时,增加实践学时的比例,整个教学过程分两学期完成。
新生入学后第1学期的后8周完成前48学时内容的讲授,主要包括C语言基础语法知识(变量、常量)、简单的输入输出函数(scanf和printf)、三大结构、函数,并将这些知识点融汇于一个案例――计算器案例中。通过案例的分析及教师的指导,学生在实践的过程中能快速理解C语言的基本概念并初步建立编程思想。
第2学期共16周的时间完成后64学时内容的讲授,包括数组、指针、结构体、链表等,并将这些知识点整合于一个具体典型的案例――学生成绩管理系统中。这一阶段的学习实践,让学生分别用数组、结构体、链表三种数据结构去实现任务目标,学生对C语言有更深一步的认识,进一步提高了编程技能。
引入案例后,能够打破以往按照章节顺序授课的基本模式,教师可以按照不同的技能层次分学期讲授课程。这样使学生在不同的技能培养阶段,循序渐进地、稳步地提高实践能力,从而达到培养应用型人才的目的。
2.3.2案例分析
“案例分析”旨在通过教师课堂演示案例系统让学生分析案例,提出解决问题的途径和方法。对于同一个案例,不同的学生会提出不同的分析结果和实现方法。案例分析体现了一种以“应用为目的、从实例出发”的教学思路,能充分调动学生自主获取知识的学习愿望,它也体现了一种以学生为本的教学思想。
理论课部分我们主要采用了“案例分析”教学法,以教师为主体,通过教师对案例的演示讲解,说明课堂内容,使案例与课程的基本理论融为一体,构成一个完整的课程内容体系。以数组这一章为例,在讲解数组之前,给学生演示用数组实现的案例――学生成绩管理系统1.0,在正确输入用户口令后,首先,进入系统的主菜单界面,如图1所示。通过主菜单,可以分别实现学生成绩的输入、输出、查询、排序等主要功能。演示的过程中不断向学生提出问题,在学生思考的同时引出知识点。其次,借助于PPT详细讲解每一个新知识点的主要语法及功能,并用每一个小程序代码具体说明讲解,让学生在小程序例子中理解消化新知识。再次,根据学生的理解程度,将案例中的每一个功能模块单独选出来让学生分析,给出实现功能模块的主要思路。最后,回到PPT中,将整个案例中所用到的知识点分模块地进行汇总,例如,在进入系统时输入用户口令,需要用到字符数组及其相关函数。这样,每一个功能模块对应一个知识点,可使学生更好地理解其中的理论知识,也为后续的实践部分打下良好的基础。
2.3.3案例实现
“案例实现”是“案例驱动”教学中的最后一步,也是极为重要的一步。通过学生亲自编程来实现“案例分析”中提出的案例,真正地将知识点融入到实践中,实现理论与实践的有机结合。这一步的实现通常放在实践课上完成,我们在理论课的知识点讲解及“案例分析”结束后,紧接着安排实践课。根据案例涵盖知识点的多少及难易程度,合理安排实践课的学时,每一学时实践课实现一至两个功能模块。
在整个案例的实现过程中,对于比较简单的功能模块,教师根据学生对知识点的掌握情况,实时地找不同的学生到教师机上进行简短的编程,或利用他的思路,让其他学生一起编码或思考。这样,教师一边引导教师机前的学生完成编程任务,一边在教室中监督其他学生动手实践并灵活答疑。对于比较难的功能模块,教师先将函数实现的流程图给学生,然后具体讲解并按照实际编程步骤,举例带领学生一起做同步训练。这样,教师能够在把握重点的同时控制进度,让学生保持连贯而清晰的学习思路。为了达到更好的效果,我们往往在实践中将学生搭配分组,每组5~6名学生,民主选取一个编程能力比较强的同学为小组长,在老师讲解流程后,由小组长按照组员实际掌握的程度协调其成员完成整个案例,并向教师反映小组成员的完成情况,及时进行评分记录。实践课结束提交所有的案例代码及实验报告。教师根据小组长对组员的反映情况及每位同学代码的完成程度给予适当的分数,与最后的期末考试成绩按照一定的比例进行折算,最终得出既可以体现学生对理论知识的掌握情况,又可体现学生动手编程能力的期末综合成绩。
3“案例驱动”教学法实施效果分析
按照以上的实施步骤,“案例驱动”教学法取得了良好的教学效果,学生获取理论知识的能力得到了提高,实践技能也普遍增强。以采取“案例驱动”教学方式后的近两学期的期末考核情况为例,其成绩分布如图2所示。
4结束语
当今信息社会计算机的应用非常广泛,各行各业需要不同层次的计算机专业人才。在进行计算机教育中,应依据培养目标提出不同的教学要求。对于每一个学习计算机知识特别是“C语言程序设计”的学生,都有一个由浅入深、逐步提高的过程。教师在这个过程中必须激发学生的兴趣,更新教学理念,充分利用、整合各种教学资源,注重教学方法的探索,真正使“C语言”这门课程成为学生学习其他计算机知识的基石。本文针对当前应用型本科院校的教学特点,从教学实践出发,阐述了“案例驱动”教学法的应用,供大家探讨,实践证明,教学效果显著。同时,我们还会在今后的教学过程中不断改进,以求不断进步。
参考文献:
[1] 张仿,卢继勇.“启发式”教学方法与C语言教学[J]. 重庆邮电学院学报:社会科学版,2004(S1):50-60.
[2] 高秀娥. C语言教学方法探讨[J]. 中国教育学杂志:高等教育版,2006(12):146.
[3] 张建珍. C语言教学方法探究[J]. 计算机教育,2007(9):12-13.
[4] 郭芹. 对高职高专计算机专业程序设计教学的思考[J]. 中国科技信息,2008(1).
[5] 陈龙猛,王保桂,李吉忠,等. 大案例教学法在Visual Basic程序设计教学中的探究[J]. 计算机教育,2008(5):59-62.
Research and Practice on the “Case-Driven” in C Programming Language Course
Chang Mei1, Li Ying-qiu1, Li Yong2
(1.Neusoft Institute of Information, Dalian 116023, China; 2.Binzhou University,Binzhou 256600, China)
关键词: 一体化教学 课程模式 任务驱动 考核机制 以赛促学
一体化教学改革已经在广大职业教育院校广泛开展,所取得的成效已经逐步体现。一体化教学中,学生提高了学习兴趣,学习的积极性、主动性得到了充分调动,知识的掌握更牢固,运用能力更强。为了推进和全面开展一体化教学,计算机专业的一体化教学改革迫在眉睫。
数据结构很多是用C或类C语言描述的,所以在传统教育中,通常先开设C语言课程,随后的学期中学习数据结构,但在实际教学中发现存在以下问题:一是先学的C语言注重语法的学习,没有太多实际应用,掌握不够牢固,在下学期学数据结构时需要花很多时间复习C语言的知识;二是花时间复习C语言,自然就会占用学习数据结构的时间,导致数据结构讲授时时间仓促;三是过多的语法和细节的学习并没有让学生觉得掌握好了C语言,反而觉得太过琐碎,难以掌握。为了解决上述问题,我们把《C语言程序设计》和《数据结构》这两门课程整合,并进行一体化教学改革,具体从以下方面开展和实施。
一、针对学生特点,设计课程模式为“由果到因”
教学是教师的教和学生的学所组成的一种人类特有的人才培养活动。传统教育中,教师是教学主体,传道授业解惑,这种方式强调教师的主体地位,侧重考虑教师所教授的知识和方法,而忽略了学生学习的主观能动性,我们俗称“填鸭式”教学;现在的教育倡导以学生为主体,充分调动学生的主动性和积极性,让他们从原来的“要我学”转变为“我要学”,这样可以大幅提高学生的学习效率,取得更好的效果。另外,职业院校的学生普遍存在基础薄弱、自觉学习能力较差的现象。基于上述理念,课程模式设计为“实例―理论―设计实例”,即教师先给出实例让学生模仿操作,操作过程中或操作后(依据不同实例的具体情况确定)讲解实例相关理论知识,然后让学生自己设计实例。通过模仿―学习―应用的过程,达到学以致用。
如C程序的入门,传统的课本都是先讲授C程序的结构、数据类型、运算符、表达式,直到顺序结构程序设计讲完,学生才可以自己写简单的程序,这个过程大致需要8到10个学时的理论学习,如此漫长的时光中,很多学生已经失去了学习C语言的兴趣,等到让他写程序的时候,大部分学生很难写出来。改用新的方式后,简短地对C语言进行介绍后,就给出几个经典的程序,让学生上机操作,熟悉上机环境和C程序的调试方法。学生在操作过程中,切实感受到程序在计算机中的运行,并看到运行的结果,这些直观的冲击会让学生保持良好的学习状态和持续的求知欲望。然后讲解C程序的结构和实例中用到的数据类型、运算符等理论知识,为学生答疑解惑。有了基本的概念后再模仿已经操作过的实例,自己设计程序完成指定的任务,实现复习、巩固和灵活应用的既定目标。
二、使用任务驱动模式,依据课程内容,合理划分任务
为了配合第一点的实现,将现有的《C语言程序设计》和《数据结构》课程进行整合编排,设计如下几个任务:C程序入门、程序设计的三种结构、顺序表、链表、堆栈、队列、树、排序、搜索、图。各个任务进一步细分,划分成若干个子任务,方便具体实施,如顺序表又分为顺序表的创建、插入、查找、删除等。
任务的划分是一体化教学改革中的重点,任务的难易程度、规模的大小、实例的选择,都直接关系到课堂的组织、学生的学习效率、学习的积极性等,这些因素都直接影响教学效果。要做到任务划分合理、实例选择得当,需要注意以下两点:第一,任务划分要经过专业教师的讨论和分析,条件允许的话,最好请企业的专家进行指导,得出哪些内容是需要整合的,哪些内容是需要拆分的,拆分到哪些任务中是合理的,便于教学实施,有利于在以后的学习和工作中应用。第二,每个任务下的子任务拆分要合理,规模大小要尽量适合每次课(一般为2学时)的实施;实例的选择要遵循从简到难、循序渐进的原则,并能通过两到三个实例将相应的子任务的内容分解。同时应该考虑到学生的兴趣,尽量从学生感兴趣的实例入手,提高学生的主观能动性。
三、理论知识做到够用就好,最好随时补充
传统教学中,我们习惯于先把理论知识全盘讲给学生听,要求学生理解、掌握,然后会应用。实际教学过程中,枯燥的理论知识很快就会让学生感到厌烦,他们不等你把这些知识讲完,就已经将注意力投入到了其他跟课堂内容根本不相关的事物上。结果大部分学生只掌握了整堂课中小部分的内容,教学效果很不理想。采用任务教学后,学生首先拿着程序上机操作,在做的过程中会发现不懂的地方,随之产生这是什么,这个可以做什么的疑问,从而吸引学生的注意力,提高课堂教学效率。
以前教C语言,我发现到写顺序结构的程序时,学生写程序无从下手,帮助他回忆程序书写的整个过程,其实只需要三分钟的时间就够了,我疑惑:既然短短几分钟就能够让学生了解程序的基本组成,为什么先前要花那么多时间讲?最关键的是,讲的那些理论知识,根本就没有几个学生能掌握,效率极低。由此得到启发,不如先让学生操作,然后探究为什么这么做,这样顺理成章地将理论知识传授给学生。显然这时候的理论讲解要简明、扼要,切忌长篇大论。当然,这样也会产生一些问题,理论知识会被分割得支离破碎,没有系统性。目前我们采用的是一个任务结束后让学生讨论、总结,教师补充的方式将相应的理论知识串联,使之完整和系统化。课堂上当学生有疑问或用到已学过的知识时,也要随时补充和复习,通过多次强化,帮助学生牢固掌握相应的理论知识。
四、防止“重操作、轻理论”
在任务驱动模式实施过程中应避免出现“重操作、轻理论”的状况。也就是片面强调学生的动手操作而忽略了理论知识的传授。教学过程中,教师对于整个课堂的组织把控显得更重要。尽管我们强调课堂的主体是学生,要充分发挥学生的主观能动性,但并不是让学生放任自由。教师应在课堂中做好组织引导工作,合理划分时间段内任务,让整堂课有序、有效进行。如可以将一堂课划分为操作、同学讨论、教师小结、设计实例等环节。将理论知识渗透在每堂课中,学习了这些操作中遇到的理论知识后,能够运用这些知识设计实例,而不是简单机械地重复操作,达到理论指导实践的目的。
五、制定完备的考核体系,保证教学顺利进行
为了监督学生保质保量完成每个任务,并保持一定的积极性,需要对整个教学过程进行有效监督和管理。传统教学中结果考核显然已经不适用于任务制教学模式,而应该采用全新的过程考核机制。过程考核的细则在制定时要考虑到学生的操作能力、态度、学习效果等因素,使考核起到监督学习过程、端正学习态度、肯定学习效果、促进学生努力的作用。良好的考核机制可以有效保证教学的顺利进行,防止课堂监管失控。学生在被考核的过程中,会更好地约束自己,更好地实现自我管理。
六、适当开展竞赛,以赛促学
积极鼓励学生参与技能竞赛。技能竞赛既能起到交流经验、切磋技艺的作用,又能调动教师和学生钻研技术、提高技能的积极性。为了使竞赛取得良好成绩,应营造能促进学生学习的氛围。这样以竞赛为学习目标,以竞赛的成绩作为奖励,从而促进日常教学活动顺利开展。
七、配套合理的课程设计,提高综合应用能力
一、问题的提出与分析
目前,高职教育在教学内容、教学方法等方面,知识老化,方法陈旧落后,理论与实践相脱节。这迫切要求我们对教学方法方式进行改革。
一段时期以来,教学改革仿佛变成了关于媒体、工具如何在教学中使用的改革。从简单的教学用具,到音像材料,到计算机、多媒体技术、计算机网络等,信息传播通道的改进,使教学内容表达趋于直观,增大了课堂信息量,提高了教学效率,但不能代表整个教学改革的全部内容,这一点在我们的教学实践中得到了证明。所以如何设计目标为导向的教学活动,是我们教学改革研究的重点。
二、改革思路与方案
(一)消除学生对C语言的神秘感,培养学生的兴趣
教师应做好入门阶段的工作,向学生讲授C语言的发展历史、当前的状况,通过举例说明学生们所熟知的某些软件或作品其内在的创作工具是C语言或C语言也可以同样地制作完成,最好能够编写一个小型实用程序,以培养学生对C语言的兴趣,缩短学生所熟知的软件工具与课堂知识间的距离。
(二)精选内容,突出重点,讲清难点
教科书一般内容较多,教师应精选课程内容,确定讲授重点。精选课程内容是提高教学质量的一项重要工作,它是教学内容的核心部分。《C语言程序设计》的核心内容包括C语言基本语法、程序设计思想和程序调试方法。语法是任何一门语言的基础,C语言的语法包括数据、数据类型、运算符、流程控制语句、数组、函数及其调用、变量的作用域、指针、文件等。在介绍这些语法时应该重点讲清楚那些对后续章节影响较大、且在实际编程过程中频繁使用的语法,而不可过多地拘泥于讲解一些琐碎却并无多大用处的语法。C语言和程序设计的学习是相辅相成的,C语言基本语法的学习必须通过必要的程序设计实践才能真正掌握,同样,也只有掌握C的基础知识才能设计出好的程序。
(三)教学方法的改进
在教学实践中,对C语言程序设计的教学方法不断地研究和改革,探索与尝试,在不同的教学环节上,针对不同的教学内容,采用了多种多样的教学方法进行教学,例如启发式教学、讨论式教学和互动式教学以及理论与实践结合式教学,还有边学边用式教学等等。
在课程的宏观教学上通过逐步拓展的实训项目和设计,将每一阶段的学习进行小结性的贯穿与能力提高。将知识点都溶化到一个个实训项目的程序编写中。在课程初期,主要是进行单项的编程练习,重在掌握C语言的基本语句、数据类型与程序结构等。在进入数组、函数、结构、指针和文件内容教学时,开始实训项目的编程实践,逐步组建如“学生管理系统”这样的综合性程序系统,并且不断添加功能模块,不断优化设计,使整个系统按照内在关联逐步拓展而成。这样的实践性教学内容与方法设计给项目拓展教学法以实际落脚点,符合认知与学习规律。
在课堂的微观教学上采用实例递进驱动教学法,改变满堂灌的做法,将学生的眼手脑全部调动起来。精心设计实例,给学生一个比较实际的切入点,通过老师的演示使学生感觉能够入手,然后再通过将此实例不断修改、扩充,引导学生参与到程序的编制过程中,在这个过程中,展示学生所作的程序,让学生来评判优劣,吸收优点,修改错误,引导学生进行优化。这样通过一个程序实例的层层推进,引入课程内容,使得学生的每一步学习都有基础,是循序渐进,螺旋式上升的过程。
(四)课程设计环节的把握
C语言由于它的实践性很强,要真正掌握它,课程设计是必不可少的重要环节。要想使课程设计收到实效,一定要根据学生的实际情况,开展不同的教学活动。所以在进行课程设计准备选题时,应充分考虑学生的兴趣,多选择一些学生熟悉的、实用的趣味性强的题目,包括一些简单的游戏。另外,不同的学生根据掌握程序不同,或者根据不同的课时数,活动形式也应区别开来。对成绩好的,课时多的,只给出题目,指导他们去找资料,分组讨论,引导他们的思考方向,由他们自己独立编码调试。而对成绩中等的这部分同学,应给出思路,帮助他们进行整体设计,指导他们编码调试。这样一来,在整个课程设计的过程中,绝大多数的同学都动了起来,都能认真调试程序,他们自己在课程设计总结中都感到很有收获。
三、改革实践的效果
(一)突出了学生主体作用
学生不再是被动的、教师传授知识的对象,而成为了学习的主人。他们可以根据自己的对课程掌握的情况和认知情况,自主地选择学习方式和学习内容。这样使学有潜力的学生可以有更多的学习选择,得到应有的发挥。而学习上有困难的学生,也可得到教师有效的指导,既解决了学习起点不一的问题,又可以充分发挥学生学习的主动性和积极性,变被动学习为主动学习。
(二)体现了教师的指导作用
在这个教学过程中,教师的角色已经转换,他们不再是教学活动的中心,课堂教学也不是教学活动的唯一形式。教师传授更多的是如何获取学习信息,教会学生如何掌握学习的方法,学会学习。教师真正成为学生的启发者、指导者和帮助者。
(三)加强了学生协作性的培养
所有的学生都可以在课堂上、上机练习时或课程设计中,围绕一个主题和问题,大胆地展开自己的想象思维,发表见解,经集体讨论和交流,寻求问题的解决方式。这样可以使参加讨论的每一位学生对同一问题,获得多方面、较深入的认识,有助于思考能力、交往能力的养成,有助于团队精神、集体观念的培育,使学习者为某—相同目标而团结共事的合作精神得到提升。
教学要与科学技术以及社会经济发展相结合,尤其是计算机语言教学,更应与当前计算机应用技术的发展相适应。我们将面临许多新情况和新问题,我们要为计算机语言教育在已有的基础上再上一个新台阶去研究和探索。
参考文献:
[1]谭浩强.C语言程序设计[M](第一版).北京:清华大学出版社.2000.
[2]郭慧玲、胡海芝.《C程序设计》课程教学改革探究[J].电脑知识与技术,2006,(35):201-202.
[3]屈晓.浅谈C语言教学的体会[J].科教文汇(上旬刊),2009,(06):147-148.
作者简介:
(1.甘肃农业大学 信息科学技术学院,甘肃,兰州 730070;
2.兰州交通大学 电子与信息工程学院,甘肃 兰州 730070)
摘 要:高等农业院校程序设计类基础课程以培养实践人才为根本目标,将CBE教学模式和程序设计类课程教学结合起来,在教学内容、教材及教学资源建设、教学方式等关键环节进行了综合改革,形成了2+2+3的“理论教学及实验教学相统一的课程建设体系,理论教材及实验教材相统一的教学资源建设,CBE教学方式、项目驱动教学方式及双语教学方式三层次实践人才培养过程”实践人才培养模式,培养具有“宽基础、强特色、高素质、实用性”复合型实践程序设计人才,在实践人才体系培养方面取得了显著成效.
关键词 :高等农业院校;程序设计;CBE教学模式;实践人才培养模式
中图分类号:G645文献标识码:A文章编号:1673-260X(2015)07-0265-03
基金项目:中华农业科教基金会教材建设研究项目“基于CBE项目驱动式的C语言程序设计教学模式探索与研究(NKJ201203023);国家自然科学基金(61063028);甘肃省科技计划资助项目(No.145RJYA288);甘肃农业大学教学研究项目(GSAU120226,GSAU120229);甘肃农业大学盛彤笙科技创新基金资助项目(GSAU-STS-1322)
1 引言
当前,我国农业正处在由传统农业向现代农业转变的时期,用信息技术对农业生产的各种要素进行数字化设计、智能化控制、科学化管理,能够大幅度减少农业消耗,降低生产成本,提高产业效益.根据教育部“面向21世纪教育振兴行动计划”提出的以培养人的创新思维和创新能力的创新教育来适应日新月异的科技发展和社会需求的有关精神,结合高等农业院校的具体情况,以创新教育为导向、深化农业院校学生计算机程序设计能力培养的教学体系建设为目标,对高等农业院校程序设计类课程人才培养模式进行了探索和改革.
程序设计类课程是高校计算机教育的基础与重点,是一门对理论与实验开展同步教学的课程[1].在不远的将来,程序设计和数学建模与微积分、高等代数、大学物理一样,成为所有大学的核心基础课程[2].程序设计类课程具有知识点多、概念复杂、规则繁多、使用灵活、自由度大、抽象度深等特点[3-5].我校生源中农村学生居多,基础教育阶段接触计算机较少,大学低年级阶段急需大力普及计算机基础知识、培养计算机应用能力.作为农业院校,程序设计类基础课程培养人才的目标要更明确,方法和手段要更有效,因此培养具有“宽基础、强特色、高素质、实用性”复合型实践人才是非常有必要的.
在这个培养目标基础上,学校按照国家精品课程指标体系要求,突出创新意识和能力培养的先进教育思想,强化教学全过程管理,以把程序设计类基础课程建设成为能够反映本学科领域的最新研究成果、具有农业院校鲜明特色的示范性精品课程为目标,在教学内容、教材及教学资源建设、教学方式等关键环节进行了综合改革,形成了2+2+3的实践人才培养模式,在实践人才体系培养方面取得了显著成效.
2 基于CBE项目驱动式的程序设计类实践人才培养模式
CBE(Cometency Based Education)的涵义是“职业综合能力为基础的教学模式”,简称能力教育[6].CBE教学模式的特点是教学方法多样化,一切以学生为中心,强调在实践中学习,在学习中实践[6].CBE的特点恰好和我校实践人才培养目标相符合,学校以“十二五规划”建设为契机,融合CBE教学特点,建立程序设计类基础课程实践人才培养模式,结合高等农业院校的实际,以岗位必须的知识、技能、行为意识为从业能力的基础,以能力表现为教学目标,教学进程的基准,注重“学”并以学生的学习为中心,不受时间和环境限制组织课程与实施教学,形成了2+2+3的实践人才培养模式.
2.1 理论教学内容及实验教学内容相统一的建设体系
2.1.1 理论教学内容课程体系建设
随着我国经济持续快速增长和信息技术的飞速发展,我国走新型农业现代化道路对培养新一代具有信息素养和计算科学创新能力的农业科技创新人才提出了迫切需求.以这种社会需求为导向,对农业院校程序设计类课程体系建设进行探索和改革,构建“分层次、分专业”的课程体系,贯通三大层次全校五十三个农业本科专业培养方案,将程序设计类课程按专业分三类开设,农医类专业开设VB、文史类专业开设VFP、理工类专业开设C,实现了因材施教、以社会需求为导向的目的.教学内容强调课程内多知识点融合、跨课程知识体系融合、已学与拓展知识融合、实验与课外研究融合等四方面,做到了从点到面、从单元到系统、“引导入门-基础系列-专题研究-科学研究”的循序渐进的教学过程.
2.1.2 实验教学内容体系建设
通过实验进一步理解程序设计的基本知识,通过理论和实践教学,使学生较好地掌握程序设计语言各方面的知识,掌握基本的程序设计过程和技巧,具备初步的高级语言程序设计能力,并能熟练应用程序设计集成环境进行程序设计语言的编写、编译与调试,达到全国计算机等级无纸化考试的要求.为配合理论教学我们将实验分为以下三种类型.第一类是基础与验证型实验,主要涉及该课程的相关知识点;着重培养学生逻辑分析的能力,学会使用流程图、伪代码描述问题,学会使用计算机的处理方法思考问题,把计算机语言的教学内容从数学游戏的圈子转变到社会实践中的计算机应用,培养和训练学生分析、解决实际问题的能力.第二类是设计与开发型实验,有效培养了学生综合应用知识与技术的能力,培养学生带着问题自主学习、寻找答案的能力.实际中结合学生信息管理系统、数值数据处理、信息数据管理等开发案例展开实验.第三类是研究与创新型实验,针对部分兴趣高、编程能力强的学生设计该类实验,重在培养学生的研究能力与创新意识.采用软件工程的方法引导学生进行分析和设计,实现完整的小型应用系统,主要以“挑战杯”、“创新杯”竞赛、SRTP项目及毕业设计的形式进行开展.
2.2 理论教材及实验教材相统一的教学资源建设
2.2.1 理论教材建设
根据《普通高等教育农业部“十二五”规划教材》的要求,并按照2013年全国计算机等级考试调整方案要求,对教材每个知识点按照“提出问题—解决问题—归纳分析”三部曲进行建设.对每个实例按照“提出实例—程序设计分析—参考程序—程序运行结果—程序分析—注意事项”几个步骤进行编写.在各知识点中,增加了一些兼具趣味性和实用性于一体的程序实例,并补充了代码风格、函数封装、程序调试、常见错误分析等现代程序设计必备的知识.这些资源通过整合后上传至网络教学平台成为网络课程,由授课教师按课程进度授权给学生使用.
2.2.2 实验教材建设
为配合等级无纸化考试要求,实验教材运行环境建立在等级考试集成开发环境下,增加了无纸化上机测试题,包括选择题、程序改错题、程序填空题和程序设计题四大部分.教材建设过程中,收集整理了大量教学资源,注重立体教材建设工作,教材全部配套编写了多媒体课件、讲义和教案,习题提供标准答案.配套课件实现“文字分层显示、算法动态演示”的功能,增强图文并茂的特点.
2.3 CBE教学方式、项目驱动教学方式及双语教学方式三层次实践人才培养模式
强调实践对理论教学的指导作用,将企业作为实训基地,建立校企长期合作,采取校企互动的方式,针对性地培养既具有扎实的基础理论知识,又能解决实际工程问题的复合型、实用型人才.实践项目内容从知识方法应用、综合设计到研究探索循序渐进,深化实验项目的层次性和工程背景,实现以工程为背景、研究方法多样、综合应用所学知识、对实验进行研究探索的程序设计类实践教学体系,从而使程序设计类课程体系更加适应社会需求,更加灵活应变.实践教学体系如图1所示.
充分利用现代化教学手段,注重各种立体化教学资源的积累和充分利用,采用项目案例递进式实训过程LTM(Learning Training Mentoring)的循序渐进的模式提高实训质量,利用网络教学平台优化课程答疑和反馈的方式和途径,改革课程的考核方式使其更有利于检验学生的能力,广泛利用网络教学平台帮助学生课后学习和自主学习,培养学生的学习能力.具体教学方式如下,教学过程见图2所示.
2.3.1 CBE教学方式
第一层次是通过互动式和案例教学法,在教师的指导下根据教学目的和要求,运用多种形式启发学生独立思考,根据遇到的实际问题,进行综合分析研究,提出见解,做出判断和决策,从而提高学生分析问题和解决问题的能力;第二层次是基本操作技能训练和基本工作能力培养,培养学生具有严谨的科学态度与规范的操作方法,采用仿真与实际相结合的手段,既加强了学生对基础理论知识的理解,又学会了知识的综合运用,使学生能运用掌握的理论知识来解决实际问题;第三层次是实践和创新能力的培养,在实习基地实现基本技能转化现实的工作方法和工作能力,实现“校园人”向“社会人”角色转变.
2.3.2 项目驱动教学方式
从农业院校实际需求出发,项目力求既结合实际,又能涵盖课程教学的要求.教师提出学生自学和开发、研究的进度,设计教学进程,以程序编制牵引理论教学,以项目开发和程序的拓展驱动教学.通过项目和实例讲授程序设计的基本概念、基本方法,把重点放在解题思路上.从开始就使学生将注意力集中在所解决的问题领域,从具体实例理解程序设计类课程的开发特点和程序总体框架,通过实例本身既学会某一类问题的解决方法和算法设计,又掌握了程序设计类课程的基本语法、语句.即在程序设计类课程的环境下,针对农业类实际问题进行分析、构建数学模型、设计算法、最后编程实现.
在学习的不同阶段设计不同针对性的实例,主要包括以下三个阶段.第一,开始阶段设计的实例是将学生的注意力吸引在程序设计类课程的总体功能和程序的总体框架上;第二,在学习中间阶段设计针对某些数据类型或应用特点的实例、针对模块分解和组合的实例、针对算法分析与设计的实例等;第三,在学习的后期进行综合课程设计,将所学知识融会贯通.在设计实例的同时还需要调整课程的教学模块,有些章节知识需提前引入,如函数、文件等,先不深入学习,仅作为宏观分析问题解决问题的工具,可在后续实例学习过程中逐步加深理解和应用.
2.3.3 双语教学方式
双语教学是贯穿于以上各教学方式中的.作为程序设计语言,其语法表达采用的就是简单而含义明确的英文单词,且上机环境也为英文界面,二者关系密不可分.程序设计课程教学中加入适当的计算机及程序设计方面的英文专业词汇,部分或全部教案采用英文形式,有助于学生专业英语水平的提高和尽快熟悉、适应以英文信息为基础的软件开发环境.
3 教学成效
程序设计类基础课程实践人才培养模式在全校推广的几年内,教学成效显著,具有显著的教学示范效果.(1)课程教学质量评价高,教学效果好.由教务处组织的学生评教结果显示,课程组的所有教师近3年的评价平均成绩均在90分以上.(2)凝练并更新教学内容,融入农业院校的特色先后编写出版了8部教材,其中《C语言程序设计》两部教材先后被列入《普通高等教育农业部“十二五”规划教材》,“VB程序设计”和“C语言程序设计”课程先后被评为甘肃农业大学校级精品课程.按照省级精品课程建设要求,搭建了程序设计类课程学习网站,并开发了程序设计类课程学习论坛.(3)学生学习效果整体得到提升.我校学生参加全国计算机等级考试(二级)的过关率逐年稳步上升,并在全省高校中名列前茅;参加全国计算机等级考试(三级、四级)的学生人数逐年增加,过关率也有所提高.培养模式应用推广期间,课程组教师负责指导学生参加学校SRTP项目50余项;指导学生参加第一、二、三、四届甘肃省“创新杯”计算机应用技能大赛,共获奖项30余项,参与学生90余人;指导学生参加全国大学生数学建模竞赛,共获奖项8项,参与学生24人;指导学生参加全国大学生电子设计竞赛、共获奖项3项,参与学生9人;指导学生参加甘肃省“挑战杯”课外科技学术作品竞赛,共获奖项3项,参与学生10余人;近三年内课程组成员指导学生累积获得省级以上奖励120余人次.我校生源中农村学生居多,基础教育阶段接触计算机较少,但在全国计算机等级考试中通过率已连续多年高于全省高校平均水平.
4 结束语
高等农业院校程序设计类基础课程以培养实践人才为根本目标,将CBE教学模式和程序设计类课程教学结合起来,形成了特色鲜明的2+2+3的实践人才培养模式,全校推广后教学成效显著,具有显著的教学示范效果,为高等农业院校培养具有“宽基础、强特色、高素质、实用性”复合型实践程序设计人才奠定了基础.
参考文献:
(1)付沙,薛娟,陈智俐.计算机程序设计类课程实验教学改革与研究[J].计算机时代,2010(4):56-58.
(2)习慧丹,胡洋.高校计算机专业程序设计课程教学改革探讨[J].信息技术与信息化,2012(3):37-39.
(3)乔淑云,黄刚.程序设计类课程教学改革与计算思维之培养[J].计算机教育,2012(10):17-23.
(4)王方.C语言教学模式:“简单任务+归纳法”[J].安庆师范学院学报(自然科学版),2011,17(3):112-116.