C语言程序设计课程的改革与实践

来源 :知识力量·教育理论与教学研究 | 被引量 : 0次 | 上传用户:din6688
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  [摘要]针对C语言程序设计课程教学效果差的原因,结合“研究式学习”、“CDIO教学模式”、“计算思维”和教师的教学经验,制定了C语言程序设计课程教学模式改革方案。实践证明,此教学模式符合学生专业特点,能够满足理工科专业学生对计算机技术的基本需求;教学效果有明显提高;教学实践方法与措施切实可行,对学生分析问题、解决问题、实践及团队合作等能力的培养能起到积极作用。
  [关键词]C语言程序设计 改革 实践
  引言
  C语言程序设计课程足以C语言为平台,使学生全面了解程序设计的总体思路、程序没计的基本算法、C语言的语法规则以及使用C语言进行构化程序没计的方法,并具有一定的程序设计和程序调试的能力,为今后使用C语言解决实际问题打下良好的基础 由于C语言涉及的概念比较复杂,规则繁多,使用灵活,容易出错,同时该课程又是学生首先接触的第一门程序没计课程,所以很多学生学习起来都感到困难和吃力.并不同程度产生畏惧心理。
  在C语言程序设计的教学工作中,我们发现,学生的学习热情不高,更谈不上综合应用能力的培养与提高。我们C语言课程教学组通过对我校C语言程序设计课程教学现状的调查分析,总结出了教学效果较差的主要原因,并从教材内容、教学方法、教学手段和、上机实践和考核评价体系五个方面进行了大胆的改革与实践,并取得了较好的教学效果。
  一、C语言程序设计课程教学现状分析
  为了实时掌握学生的真实学习情况,任课教师对学生进行了问卷调查。根据问卷结果及各位教师的教学经验,总结出我校C语言程序设计课程教学效果较差的主要原因有以下几点。
  (1)内容抽象、枯燥,学生学习兴趣度低。相比第一学期已经或多或少有所接触并有一定基础的大学计算机课程而言,第二学期开设的程序设计课程是一种截然不同的全新的课程,出现了大量的新概念、新名词和新方法。上机时好不容易敲上了一个程序,一运行就会出现一堆错误。62.4%的学生看不懂错误提示,84.76%的同学不会使用单步跟踪、Watch窗口等基本调试工具,22.3%的同学竟然根本不知道这些调试工具。于是学生对该课程的学习举步维艰,学习的热情急速降温。
  (2)实用性不强。近80%的同学认为C语言的语法知识学了一大堆,但不知道学这些语法有什么用,和自己的专业知识有什么联系。因此,多年积累下来,对C语言程序设计课程的普遍看法是:这是一门无用的公共课,混混过去就算了。于是,很多同学上课不听讲、下课不预习、不复习,周而复始,形成恶性循环。
  (3)进度过于缓慢。C语言程序设计每周4学时,其中,2学时多媒体教室的课堂教学,2学时计算中心机房的上机实践。计算中心机房为多个班级公用,且无屏幕转播设施,因此教师的教学仅限于2学时的课堂教学。课时太少,加上学生兴趣度低,往往一学期下来指针刚讲了基本概念就结束了。有些为参加全国计算机等级二级c语言考试而努力学习的同学也因为指针内容学习太少而难以过关。
  针对上述C语言程序设计教学效果差的原因,我中心C语言课程组的各位教师认真研读了“研究式学习”、“CDIO教学模式”、“计算思维”等理论及各种教学方法和实践方式,借鉴了哈工大全国精品课程“C语言程序设计”课程的先进教学经验,并结合各位教师多年的教学经验,制定了C语言程序设汁课程教学体系的改革方案。该教学体系改革方案从教材内容、教学方法、教学手段、上机实践和考核评价体系五个方面展开。
  二、编写优质配套教材,实施教材改革
  我们按照研究性学习的内涵编写了《研究式学习——C语言程序设计》教材,目前正在进行面向“计算思维”的新版教材的编写。该系列教材具备以下特点:
  (1) 编写理念科学性强
  整套教材的编写以“研究式学习”理念为指导,研究性学习是一种建构性的、追求协商的、尊重个性的、以人为本的“体验式学习”。在2006年的《国家精品课程评估指标》中新增了一条指标:“重视研究性学习、探究性学习、协作学习等现代教育理念在教学中的应用;能够根据课程内容和学生特征,对教学方法和教学评价进行设计。”所以研究性学习是以人为本的高等教育价值观的体现,是社会变革和教育发展的要求,也是精品课程的要求。研究性学习的关键是要在学习的各个阶段提出适当的研究问题,以便在学习过程中为学生创造能亲临体验地进行研究学习的平台,问题的提出贯穿在课堂教学、实验教学、课后作业、综合性作业以及评价的整个教学过程中。我们自2004年开始就致力于打造C语言程序设计精品课程,所有的教学和改革都围绕该指导思想进行。2007年以C语言程序设计为主体的“程序设计与计算机语言”被评为省级精品课程,2010年由教材主编主持申报到了省级质量工程教改项目“Inquiry Learning体系在程序设计课程中的运用”研究。这一系列的改革和研究都是以学生为主体,以培养和提高学生的计算机素养为最终目的而制定的。在教学过程中我们经常与学生座谈和交流,了解学生的需求,完善我们的教学,使我们的教材和教学模式能与时俱进,保持很好的前瞻性和科学性。
  (2) 内容组织创新性强
  本教材用“提出问题—分析问题—给出相关知识—举一反三”的研究式学习方式来组织“C语言程序设计”这门课程,在注重语言知识培养的同时,更注重逻辑思维能力、程序设计能力及创新能力的培养。内容组织方式新颖,符合认识规律,富有启发性,便于学习,有利于激发学生学习兴趣及各种能力的培养。本教材每章都通过4个步骤来完成学习:
  第1步,通过提出问题、分析问题来激发学生的兴趣,引起学生的思考。
  第2步,通过问题的解决、相关知识点的跟进,使学生能逐步提升程序设计的能力,掌握C语言的知识,引导学生深入思考。
  第3步,用一定数量的编程实例使学生深入理解和掌握所学知识,用具有趣味性的综合应用编程实例培养学生的逻辑思维能力和编程能力,挖掘学生的创新能力。   第4步,对每部分的知识进行小结,以便学生进一步巩固应掌握的知识。
  每章后面都有“综合应用”部分,让学生对所学知识的具体运用有明确的认识,并能在此基础上进一步巩固和提升。
  三、采取多样性方法,实施教学方法的改革
  (1)任务驱动教学方法
  大多数学生反映C语言概念众多,许多知识点抽象且难以理解,学生不能将理论和实际应用结合起米, 任务驱动教学法是一种建立在建构主义学习理论基础上的教学法,它将以往以传授知识为主的传统教学理念,转变为以解决问题、完成任务为主的多维巨动式的教学理念;将再现式教学转变为探究式学习,使学生处于积极的学习状态,每一位学生都能根据自己对当前问题的理解,运用共有的知识和自己特有的经验提出方案、解决问题。在c语言程宁没计课中.体现“任务驱动”就是让学生在一个个典型的程序“任务”驱动下,教师引导帮助学生完成一系列程序“任务”,把知识的学习和知识的应用有机地融合在一起,让学生达到融会贯通、一点带面的效果。例如,在讲授C语言循环语句的教学时,按任务驱动教学模式不是孤立地介绍格式、作用和使用方法,而是将这一知识点设计为“计算1+2+3+……+1 00=?”这一具体的任务。首先,教师通过提出“任务”让学生把握教学内容,同学们会想象怎么完成这个任务,头脑里对前而的所学内容进行回顾,但前面学过的知识没法完成这种任务。接下来教师再讲解如何使用循环语句等具体操作方法,这样教学,学生学得快、学得牢。通过实践发现“任务驱动”法有利于激发学生的学习兴趣,培养学生的分析问题、解决问题的能力,提高学生自主学习及与他人协作的能力,缩短了学习周期。
  (2) 项目教学法
  很多学生在学完C语言程序没汁课程后,其结果是听得懂、却编不出程序来。针对这一情况,我们在教学过程中采用项目教学法。项目教学法是通过实施一个完整的项目而进行的教学活动,其目的是在课堂教学中把理论与实践有机地结合起来,充分发掘学生的创造潜能,提高学生解决实际问题的综合能力。在课程初期.主要是进行单项的编程练习,重在掌握C语言的基本数据类型、语句与程序结构等。在进入函数、数组、指针、结构体和文件内容教学时,开始综合实训项日的编程设计,每一个实训项日都呵以用前一个实训项目为基础。通过一个项目的层层递进,引入课程内容,使得学生的学习循序渐进,螺旋式地上升,效果很好,开阔学生的思维,使得学生在课堂上真正地成为“主体”,教师则扮演“主导”角色。该教学方法使学生积极参与到教学过程中,变被动为主动,有效地调动了学生学习的积极性,深受学生好评。
  (3)比较教学法
  C语言中的概念比较复杂,规则繁多.而且内容前后联系紧密,教学过程中教师通过对比的方式对相关的概念或类似的程序代码进行比较,进而明确差异,然后进行归纳总结,方便学生理解,将会收到事半功倍的效果 例如,C语言中的指针是教学中的一个难点.这一部分涉及的概念较多,如指向变量的指针、指向数组的指针、指向字符串的指针、指向函数的指针等。这些概念很容易混淆,但是将这些概念对比起来讲解,学生就很容易理解了。这些概念的共性都是指针,那么它们不同的地方在哪呢?关键在于指针变量的指向不同,指针所指向变量的数据类型决定了指针变量的用法。通过这样的讲解,概念的定义就很容易理解,概念的用法也就可以统一了。再如,数据的排序问题有多种算法,典型的有冒泡排序、选择排序、插入排序等,求解方程的根的算法也有多种,有迭代法、牛顿迭代法、二分法和弦截法等。这些算法之间既有联系又有区别,讲清楚了算法的联系和区别,也就解决了整个问题。
  (4)启发式教学法
  启发式教学法就是通过教师的启发教学充分调动学生的积极性、主动性和创造性,引导学生主动学习。例如,在学习printf()和scanf()函数时,通过比较式启发方法讲解两函数的功能、格式、使用特性等方面的异同,通过比较使学生更好地把握两函数的特征。在学习选择排序算法时,使用模拟式启发方法,让l0个学生随机坐在相邻的l0个位子上,然后现场模拟排序过程;在学习数据交换算法时,使用比喻式和问题式启发方法,将两个变量比喻成两个瓶子,将里面存放的数据比喻成醋和酱油,然后提问:如果将两个瓶子中的醋和酱油交换一下,应如何操作。
  (5)“鱼渔兼授式”教学方法。C语言只是一种表述工具,如果只有扎实的语法知识,没有程序设计思想,根本就不可能写出程序;而如果有程序设计思想,但语法知识不扎实,势必在程序的编写、运行过程中遇到一系列的问题,从而影响学生的学习热情。而“鱼渔兼授式”教学方法可以在基础语法知识和程序设计方法之问找到一个平衡点,使之相辅相成。例如,在讲解数据类型时着重讲解为什么数据要分不同的数据类型,需要从哪几个角度学习不同数据类型的特性;讲解具体算法时着重讲解遇到类似问题时应从哪些角度分析问题,用什么方法进行程序设计从而解决问题;在课前精心设计一些错误,尤其是逻辑错误,然后讲解遇到错误可以采用什么手段去剖析、定位错误。
  四、建立立体化教学体系,实施教学手段的改革
  我们从2006年就开始了立体化教学体系的建设,我们建立了精品课程网站,实现了“在线教育”,现在我们课程的课件、课堂教学录像、软件、二级等考及相关阅读等教学资源都放在了网络上,作业也通过网络来实现布置、提交和批阅。师生之间可以通过教学邮箱和课程论坛进行交流,任课教师可以自己定制调查问卷,随时了解学生的动态和需求,还可以随时进行在线测试,课程考试已经完全实现了网络无纸化模式。学生可根据自身的情况进行课后自主学习、自测学习、互相学习或下载资料、上交作业,有助于学生的个性化发展和创新能力的培养。设计出包含验证型、引导型、扩充型和设计型等多种类型的实验,在实践中充分体现学生的自主性,有目的、分层次地培养学生的实践能力,使学生学会从实验过程中获取知识,积累经验。通过综合设计,为学生自己构建、发展并完善自己的知识体系创造机会,使学生具备获取知识和应用知识的能力,激发学生的创新精神,培养学生的团队精神和协作能力,全面提高学生的实践能力。   教学实践证明:学生在课程网站上作业及报告的提交率达到98%以上,问卷调查的访问量达到了85%以上,优秀设计作业的访问率达到90%以上,其他资料的访问率也高于60%。由此可见,立体化教学体系很好的实现了不受时间、地点限制的开放式教学。
  五、上机环节的改革与实践
  上机环节是教学活动的重要环节,是对学生进行基本技能训练、增强学生实践能力的关键环节,是培养学生创新精神的重要手段。本科实践教学的目的是优化学生的素质结构、能力结构和知识结构,让其具备获取知识、应用知识的能力和创新能力。对于《程序设计与计算机语言》课程,以往的实践教学内容和题目以验证型和设计型为主。验证型的题目只要求学生按照书本上的指示,输入程序,填写结果即可,学生处于被动接受的地位,学生觉得无趣,毫无创意;设计型的题目对于非计算机专业学生来说,难度太大,学生无从下手。为了全面提高学生的实践能力和应用能力,使实践教学能满足不同层次学生自主学习的需求,我们制定并实施了以下改革措施:
  (1)改革上机实践的教学模式:将以理论教学为主的教学模式改为由理论教学和实践教学相互联系、相互交叉、彼此渗透、有机结合、同步发展的教学模式,确立了实践教学在《程序设计基础》课程中的重要地位。
  (2)设计多种类型的实验题目:针对学生存在基础不同、接受能力不同、个性有差异等问题,设计出包含验证型、引导型、扩充型和设计型共四种类型的实验,题目尽可能做到覆盖知识点,切合实际、生动有趣。通过完成不同类型的实验,有目的、分层次地培养学生的实践能力,使学生学会从实验过程中获取知识,积累经验。
  (3)在实践中充分体现学生的自主性:实验课的实验任务由规定实验内容和自主实验内容两部分组成。学生在完成规定的实验任务后,可根据自己的兴趣和爱好,自主设计一些实验任务,在教师的指导和帮助下加以完成和实现。通过自主学习和自主设计,能有效地培养学生应用知识的能力和探索精神,极大地激发学生的学习主动性。
  (4) 启发引导学生的创造性,培养学生的团队协作精神:本课程要求学生以小组(3~5人)为单位进行综合性程序设计,设计题目主要由学生自己按综合设计要求来确定,每个小组推选出一名小组长,负责协调程序的开发、与教师和组员的联系、提交总的设计报告和完整的源程序等工作。在综合设计过程中,学生处于主导地位,是核心。学习小组的组建,综合设计题目的选择或确定,各组员任务的分配与协调,任务完成后的总结与成绩的自评等,主要是按学生的意愿来进行。教师只负责宏观指导和一些条件支持。当学生的选题不符合要求或系统功能设计不合理时,教师会立即指出,并帮助他们修改和完善;当学生调不通程序或程序中有错误时,教师会向他们介绍调试方法和查错方法,教会他们调试程序。对学习好、能力强的优秀学生,教师会注重开扩他们的思路,启发他们的思维,引导他们去获取新知识、去探索新问题,激发他们的创新欲望,使他们能完成高水平的综合设计。通过综合设计,可充分体现以学生为中心的教学方法,为学生自己构建、发展并完善自己的知识体系创造机会,使学生具备获取知识和应用知识的能力,激发学生的创新精神,培养学生的团队精神和协作能力,全面提高学生的实践能力,从而有效地提高《程序设计与计算机语言》课程的教学质量。
  六、考核评价体系的改革
  我校C语言程序设计课程的成绩分为理论和实践两个分数,各2个学分,两项成绩都合格即可获得该课程的4个学分。其中:
  理论课综合成绩(百分制)=平时(百分制)*(50%)+末考(百分制)*50%;
  上机实践综合成绩(百分制)=平时(百分制)*(60%)+综合设计(百分制)*40%;
  理论成绩由平时成绩和末考成绩组成。其中:平时成绩由上课考勤、作业提交、阶段性实验报告组成,占总成绩的50%;末考指的是期末闭卷无纸化考试,末考侧重于基础知识测试,考核学生对基本概念的掌握。题型包括:判断题、选择题、填空题和编程题,判断题题型重点考察学生对基本知识点的掌握程度,选择题和填空题重点考察学生对程序的阅读、理解和分析能力,编程题则重点考察学生编写程序的能力。
  无纸化考试采用的是我们中心自己研发的考试系统,但该系统存在一点缺陷,就是编程题需要人工阅卷。因此,我们于2012年开设了一个试点班,本着提高学生编程能力的目的出发,从平时的教学和最后的考试都试用了哈工大研发的《C语言编程题自动评分系统》。该系统允许学生借助于 C编译系统调试程序,学生将自己编写并调试过的程序由客户端提交给服务器端后,服务器端立即根据学生程序的结构和语义进行评分,并将评分返回给客户端,使学生在提交程序之后立即看到自己的分数。
  上机实践成绩则由平时成绩和综合设计成绩构成。其中:平时成绩由上机考勤、在线单元测试组成,占总成绩的60%;课程最后提交的综合设计则占到了40%。
  该考核评价体系涉及到教学实施过程中的每一个环节,有利于对学生进行科学、客观的评价,从而避免了一张考卷定乾坤带来的弊病。
  该体系在实施过程中显现出了其科学性,但是目前存在的问题就是教师的负担太重。一个学生一学期一般要提交12份报告,每位教师一般带两个班,每个班约88位同学,这样每位教师一个学期只报告一项就要批阅约2000份,工作量太大。现在正在努力寻求更加合理的解决方法。
  七、结束语
  教学实践证明,以上改革措施能够有效解决我校C语言程序设计教学过程中存在的问题。此教学模式下,教学内容符合学生专业特点,能够满足理工科专业学生对计算机技术的需求;教学方法行之有效,教学效果有明显提高;教学实践方法与措施切实可行,能够有效促进学生分析问题解决问题能力、实践能力及团队合作能力等能力的培养与提高。当然,该模式仍然存在一些不尽如人意的地方,这就需要我们坚持不懈,继续努力去改进和完善。
  项目来源:云南省高校质量工程教改项目“Inquiry learning体系在程序设计中的运用”(云教高[2010]96号)。
  [参考文献]
  [1]王刚.CDIO工程教育模式的解读与思考[J].中国高教研究,2009(5).
  [2]谢延红.C语言程序设计公共课教学模式改革与实践[J].计算机时代,2010(12).
  [3]马新.《C语言程序设计》课程教学方法与手段的改革与实践[J].科技信息,2010(33).
  [4]张丽萍,刘东升,王春晖.程序设计类课程考核评价方法的改革与实践[J].2010(2).
  (作者单位:昆明理工大学计算中心 云南昆明)
其他文献
[摘要]本文以山西省晋中市某村为例,通过分析该地农村教育服务新农村建设的现状发现该地教育服务新农村建设中在宣传、人才培养、文化等方面存在问题,并结合当地实际情况探求农村教育服务新农村建设的内容,提出服务方式及具体实施方案。  [关键词]农村教育 新农村建设 现状分析 实施方案  新农村建设的总要求是“生产发展、生活宽裕、乡风文明、村容整洁、管理民主”二十字方针。农村教育在新农村建设能否服务新农村建
期刊
[摘要]对当前高校图书馆纸质文献资料馆藏和利用情况进行统计分析,揭示了目前高校图书馆纸质图书资料利用状况,分析了影响高校图书馆纸质文献利用率的因素,有针对性地提出了提高纸质图书资料利用率的对策。  [关键词]纸质图书资料 利用率 对策  [中图分类号] G251.4  文献资源数字化电子化的普及,特别是网络的广泛应用,各级各类图书馆具有了文献载体种类多样化、网络化的特点,成为了重要的文献信息枢纽。
期刊
[摘要]精心设计的导语能在教学过程中激发学生的兴趣、改善教学的效果,并培养学生的主动思维能力。《环境工程微生物学》的教学实践表明,注重时效性、地域性和实用性的导语,能够得到学生的肯定,并从一定程度上改善课堂教学的效果。  [关键词]导语设计 实例教学 环境工程微生物学  一、导语的作用  导语是导入一门新的课程或者课程中新的章节的引导性内容,是课堂教学的重要组成部分。内容新颖、形式活泼的导语能够激
期刊
[摘要]随着中日钓鱼岛局势的日益紧张,我国民众的爱国热忱不断被激发。对于保持民众清醒的爱国意识,高校国防教育的作用至关重要。  [关键词]中日钓鱼岛争端 高校国防教育 必要性  中日两国自古为邻,曾经在很长一段历史时期,日本臣服于中国大陆,成为中国大陆的附属国,日本文化也因此深受中国文化的影响,甚至日本文字至今还存有中国文字的烙印。但在19世纪中期以后,日本通过明治维新,使得自身国力不断增强,而海
期刊
[摘要]土木工程专业创新型人才的培养是“卓越工程师培养计划”的关键问题。通过对土木工程专业特色人才培养模式的改革,围绕人才培养模式改革的目标,改进和完善人才培养方案,突出专业办学特色,建立符合经济、社会科技发展要求和人才培养规律的高素质应用型土木工程人才培养模式的新体系。  [关键词]卓越工程师 土木工程专业 创新型人才  [中图分类号]G642.3 [文献标识码]B  一、以人为本的实践教学质量
期刊
[摘要]结合本专业的核心能力目标,围绕职教体系,研究专业教学构建实训场景、实训项目、教材建设、体系与进程等的规范,并系统探索了实施案例。  [关键词]核心能力 规范 场景 实训项目 进程  国家《高技能人才队伍建设中长期规划(2010-2020年)》和行业《化工教育“十二五”改革与发展规划意见》都预测了化工行业职业教育人数翻番的未来需求,后者提出了“培养和造就数量足够、结构优化、布局合理、素质优良
期刊
[摘要]实行建设监理制度是我国建设领域的一项重大改革,是我国对外开放、国际交往日益扩大的结果。通过实行建设监理制度,我国建设工程的管理体制开始向社会化、专业化、规范化的先进管理模式转变。但是目前的我国水电行业的建设监理制还存在着一些不足之处,本文在此仅作简单的探讨。  [关键词]水利水电 建设监理制 贯彻落实 原则  几十年来,我国的工程建设活动,基本上由建设单位自己组织进行。它在以国家为投资主体
期刊
[摘要]汉泰语中都有丰富的人称代词,汉泰语人称代词存在着联系和区别。泰语人称代词分类众多,具有纷繁的称谓功能和语用功能。因此,人称代词教学成为了泰语教学中的一个难点。本文通过汉泰语人称代词称谓功能、语用功能等方面的对比分析,从而找出汉泰语人称代词的异同,并提出对泰语人称代词教学的对策。  [关键词]汉泰 人称代词 对比 教学  人称代词是代替人的名称,指称人的代词。在语言的交际中,人称代词具有重要
期刊
[摘 要]随着我国经济高速发展,电梯已经成为现代城市高层建筑垂直运输工具,随之而来的电梯设备管理问题也日益突出。按照特种设备安全技术规范TSGT5001-2009的相关要求,结合分析电梯维修保养和安全管理的现状,从规范电梯维修市场秩序、建立完善的电梯管理规章制度探讨加强安全管理和维修保养的有效措施。  [关键词]电梯 安全管理 维修与保养  进入21世纪,城市化进程加速,越来越多的高层和超高层的民
期刊
[摘要]风能是一种清洁能源,通过风能为动力进行提水,结合相应的地形建筑进行灌溉,解决了交通和电力不便地区的灌溉问题。本文介绍了风能提水的原理和类型,结合发展现状,指出其是一种很有前景的灌溉方式。  [关键词]山丘区 风力 灌溉 节能  一、风力提水系统  提水灌溉是农业灌溉的基本方式,在中国大多数地区由水利工程或电动扬水泵进行提水灌溉。但是中国一些边远山区和牧区由于电力缺乏,天气干旱,水资源短缺,
期刊