二级c语言程序设计范文
时间:2023-04-07 03:16:35
导语:如何才能写好一篇二级c语言程序设计,这就需要搜集整理更多的资料和文献,欢迎阅读由公务员之家整理的十篇范文,供你借鉴。
篇1
关键词:教学改革;C程序设计语言;教学探讨
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2014)03-0589-02
1 概述
目前,C语言程序设计课程几乎涉及了高等院校的所有专业,是各类专业学生必修的一门计算机基础课程。重庆邮电大学的C语言程序设计课程从1994年起就作为管文类专业学生的公共必修课程。对于管文类专业的学生来说,通过该课程学习,可以提高学生的计算机思维方式,为学生用计算机语言编程解决实际问题提供了思路和方法,为后续计算机相关理论和实践教学课程打下基础。同时,它也是计算机二级等级考试所要求的考试内容之一。
2 存在问题
2.1 专业复杂、多样化
管文类专业C语言程序设计课程涉及的学生专业复杂、多样化,包括信息管理与信息系统专业、电子商务专业、经济学专业、工商管理专业、会计专业、工程管理专业、外语专业、法律专业、体育专业等多种专业。不同专业的学生计算机水平参差不齐。信息管理与信息系统专业和电子商务专业的学生计算机水平稍微好一些,学习起来容易一些。外语专业、法律专业和体育专业的学生计算机水平相对薄弱些,而且不需要必须过计算机二级等级考试,因此这些专业的同学学习积极性相对差一点,学习起来稍微困难一些。
2.2 教学计划不合理
管文类专业C语言程序设计课程教学计划设置不合理。不管是什么专业的学生,C语言程序设计课程学时都是48学时(理论32学时+上机16学时),而且统一命题、考试,没有考虑学生专业的复杂、多样化。
2.3 学生学习积极性不高
就管文类专业学生来讲,绝大多数学生学习C语言程序设计的目的在于考证(计算机二级等级考试),只停留在学习语言本身,考过了就仍到一边,再也没有用了,根本没有设计的能力,由于管文类专业学生缺乏计算机知识,教师在授课时也只能讲些浅显的知识,很难培养程序设计能力。因而,导致学生学习积极性不高。
2.4 课堂教学与实验教学脱节
C语言程序设计课堂教学由一位老师担任,而实验教学由实验室老师承担。从而,理论老师不知道学生实验环节的情况,而实验老师也不考虑理论教学的进度,导致课堂教学与实验教学脱节。
3 对策及建议
3.1 合理安排教学计划
针对不同专业群设置不同的教学计划。对于偏计算机技术方面的信息管理与信息系统专业和电子商务专业,单独设置64学时(理论48学时+上机16学时),独立命题考试。其他专业48学时(理论32学时+上机16学时)。其中,对于计算机水平相对薄弱的外语专业、法律专业和体育专业的学生,由于不需要过计算机二级等级考试,因而也单独命题考试。
3.2 激发和增强学生的学习积极性
兴趣是最好的老师,学习兴趣是学生积极主动学习的直接动力。在第一节课就让学生明确C语言学习的目的,明白C语言的重要性和实用性。可以适当调整教学内容,增加有趣的游戏实例教学,例如“猜数字游戏”、“石头、剪刀、布游戏”。从而激发和增强学生的学习积极性。
3.3 课堂教学与实验教学相结合
改变原有的课堂教学与实验教学方式,课堂和实验教学都由一位任课老师担任,避免课堂教学与实验教学脱机。另外,组成实验小组,相互讨论,学习成绩好的、动手能力强的同学帮助带动相对弱一些的同学。
4 结论
管文类专业C语言程序设计课程由于涉及的学生专业多,各专业学生计算机水平参差不齐,因而教学相对困难,遇到的问题颇多。为了提高该课程的教学效果、学生的学习积极性,提高学生利用计算机解决实际问题的能力,专门对管文类专业C语言程序设计课程进行改革,取得了一定效果。同时,对其他课程的教学改革有一定的指导意义。
参考文献:
[1] 牛熠,董阿妮,吴燕玲.C语言教学中学生兴趣的培养[J].东莞理工学院学报,2006(1):110-113.
篇2
关键词:高职;c语言程序设计;教学改革
0 引言
c语言程序设计课程是高职计算机类专业的核心基础课,也是电类相关专业的专业基础课,对后续课程的学习起着举足轻重的作用。学好c语言程序设计课程也会增强学生的学习自信,但是该课程传统的教学效果不尽如人意,学生第一次上课时会满怀信心,可随着c语言各种数据类型、语法规则的不断呈现,以及c语言本身的灵活、语法限制不严等特点,使多数学生逐渐失去学习的信心,最终的结果是大家一致反映c语言难学,学不会,只有一个办法:放弃。对于高职院校来说,c语言程序设计的教学已到了非改不可的地步。因此,如何改便值得我们研究与探讨。笔者从教与学两方面分析问题,探讨解决问题的办法,并进行相关实践,取得了一定的改革成效。
1 问题分析
我们从教与学两方面进行分析,主要有以下几个问题:
(1)教学内容不能满足学生后继课程学习的需要。长久以来,该课程的教学多数选择谭浩强教授主编的《c语言程序设计》作为教材。该教材理论体系完备,但是遵循该教材体系所开展的教学,不太符合高职学生的认知特征,并且教材的重点是对c语言本身的语法规则进行讲解,而对于程序设计方法、程序设计思想没有特别重视。另外,c语言的教学考核标准也是参考全国二级C语言考试大纲。全国二级C语言考试同样是较多地强调了c语言本身的语法规则。即便二级考试中有机考,但由于受阅卷等限制,并不能全面考核学生的编程能力、程序调试能力。因此,这样的教学内容不能满足高职学生后续课程学习的需要,不能起到专业基础课程的实际作用。
(2)教师缺乏改革思路。目前高职院校的教师可分为三类:一类是老教师,从内心不太乐意进行教学改革,对改革有畏难情绪,认为延续传统的教学比较轻松方便,而对于课程的教学效果不好,更多从学生身上找原因;第二类是从学校毕业直接走上讲台的新教师,没有太多的教学经验,主要把自己在大学里学到的知识、教师的教学方法沿用到自己的教学中,还没有来得及思考改革的问题;第三类教师是学校教学的中坚力量,意识到需要改革,甚至也做过尝试,但是,缺乏清晰的改革思路,对存在的问题及教学目标分析不透彻,改革不易收到理想的效果。
(3)不能针对学生的学习特点开展教学。我国延续了30多年的高考选拔方式仍然以笔试为主。根据多元智力理论,我们可以知道,这样的选拔方式使进入高职院校的学生的动觉智力、空间智力、人际交往智力较强,数理智力、语言智力相对较弱,再加上高职学生普遍自尊心、进取心较强,往往是不甘落后,但是学习较情绪化,对感兴趣的东西、实践性环节的学习积极性较高,而对枯燥的理论知识学习兴趣不浓,甚至是有些抵触。而c语言语法规则需要强化记忆与理解,教学过程中,多数采用理论讲解加上机实践的教学方式,较少地从激发学生优势智力的方面开展教学。这样随着教学的难度增加,往往会令学生逐步失去学习的信心。
2 解决办法
1)准确定位教学目标。
高职院校的总体教学目标是让学生在获取专业文凭的同时掌握一项或多项专业技能,为更好地实现就业做好准备,因此每门课程的教学既有理论目标也有技能目标。c语言程序设计课程的教学目标应该定位为:通过本课程的学习,学生要建立起结构化程序设计的思想,养成良好的程序设计风格和严肃认真的工作作风,掌握c语言基本语法规则和结构化程序设计方法,逐步积累常用算法和程序设计的技巧,并能初步运用c语言编程解决常见的简单应用问题,为后续的数据结构、Java编程、嵌入式应用编程等课程打下良好的基础。c语言程序设计是一门核心基础课,其教学主要是为后续的课程服务,因此我们的教学重点应该是教会学生如何运用C语言编写应用程序,而不应该放在相对枯燥的C语言语法规则的学习上,注意把握“为用而学”的原则,使学生学了就会用,并且能做到越用越熟越精,而不是使学生越学越没有兴趣,越学越没有信心。因此准确定位课程的教学目标,将决定后续教学方法选择和所达到的教学效果。
2)强化教师教学改革意识。
意识决定行动,教师有了教学改革的意识,才会努力想办法改革教学,发现问题并进行分析,寻找解决的途径。教师教学改革意识的强化,可通过参加校内外的培训、参观、讲座、各类有关改革的会议等,多渠道多途径让教师接触了解一些教学改革的思路、方法,在思想上对教学改革有所认识,并能结合自己所授课程目前的教学状况进行分析,逐步认识到c语言程序设计课程必须进行教学改革。同时改革是一个系统工程,教师还必须从教学目标、教学内容、教学方法等多方面进行改革。学校作为改革的倡导者,也需要出台一些教改政策,鼓励教师进行教学改革,以提高教学效果。
3)改革教学方法,全面提高教学效果。
在解决了教学目标、教师改革的主动性问题之后,现在要解决的就是具体教学方法问题。教学方法得当,将会收到事半功倍的效果。前面已经分析,高职学生对于逻辑性强的知识学习较为困难,更擅长动手操作和形象思维知识的学习,另外他们好胜心强,但缺少毅力,因此只有选择了正确的教学方法和教学模式才能收到理想的效果。任务教学法、项目教学法是改革的主要教学方法,这些方法强调学生学习的主体性,教师教学的主导性,结合理论实践一体化的教学模式,充分发挥学生学习的优势,能有效地调动学生学习的主动性和积极性。在采用较为有效的教学方法的同时,配合教学考核方法的改革,将过程性考核融入任务与项目教学中,对学生在学习过程中表现的能力和知识水平的提高,及时给予肯定与鼓励。教学中还要注意,改变学生的学习意识,引导学生建立主动学习的意识,变中学时期的被动学习为主动学习,变被动地学习知识为主动地对学习知识的方法的学习和技能的训练,教师要灵活运用多种教学方法,真正做到授人以渔。只有这样,才能真正发挥教与学的双主作用,真正提高教学效果,使该课程真正受到学生的欢迎。
3 实践效果
关于C语言程序设计课程,在2006年我们曾经有院级立项教改课题,确定的教学改革目标是提高全国二级c考试通过率。经过第一轮的教改实践后,虽然全国二级c考试通过率有所提高,但是对于后续课程学习的支撑效果并不理想。学生通过了全国二级C考试,可仍然不会应用c语言编写相关的应用程序,程序编写能力不能满足后续课程的教学需要。经过再思考,并对高职教学改革的理论进行再研究与分析,我们提出了解决c语言程序设计教学改革办法,并开展了教学改革的系列工作,收到了较好的效果。
1)精选教学内容,编写教学讲义,出版教材。
根据确定的教学目标,重点培养学生规范的程序编写能力,对于c语言相对复杂的语法规则及技巧性表达方式,则进行简化,以满足编程需要为原则。在这样的原则上,精心选择教学内容,将教学方法的改革融入教学内容中,形成了由9个任务和3个项目组成的教学内容(如表1所示),并最终出版了教材。整个教学内容的编排思路是:先引导学生认识c语言及集成调试环境,然后是强调编程的规范性,第3个任务是教会学生学习c语言程序设计的方法,从第4个任务开始,由易到难逐步展开教学内容,最后通过3个完整的项目,同样由简单到复杂、循序渐进地讲解如何使用c语言编写应用系统。教材内容的呈现方式上,坚持以程序设计思想、方法以及运用c语言编程解决问题为主线,把讲授语言的概念转变到讲授语言的运用上,把抽象的概念用实例进行展示并通过实践进行体验。为了保证知识的完整性、系统性,设置了拓展阅读栏目,对c语言复杂的语法规则、程序测试的概念、快速排序算法、自我学习与团队学习等知识进行讲解。
2)充分考虑学生的特点,灵活运用各种教学方法与手段。
本课程的教学内容中已经融入了任务驱动教学法和项目教学法,充分考虑高职学生学习的特点,我们给学生提供了自主学习的机会,而不是被动地接受知识。当然,由于学生的层次差异,以及自我管理能力的不同,同时也为了进一步强化知识和技能,每次任务和项目进行过程考核外,还会灵活地采用传统的教学及考核方法。例如,开始入门的时候要求学生抄写一些典型程序,以理解程序编写的思路;中间的时候,对于常用的算法,要求学生理解的基础上加强记忆,因此默写如冒泡排序等典型算法也是一种考核方法,这些方法的综合运用,收到了较好的教学效果。
教学中,还要考虑各种教学手段的运用,例如,常用的多媒体课件能够将难于理解的抽象概念及过程,解释得更加形象生动。其实,在我们身边还有更好的可以用来解释抽象过程的资源,那就是学生。例如,冒泡排序算法,这是教学的一个难点,除了用多媒体课件进行演示外,可以请学生把这个过程进行更加生动有趣的演示,增强算法讲解的趣味性,使学生在活动的过程中,掌握冒泡排序算法,加深理解与记忆。
3)集体备课,发挥教师的创新精神。
头脑风暴法越来越得到人们的认可。通过教师课前集体头脑风暴,共同讨论教法、教学难点,鼓励年轻教师多听有经验教师的课,并且课后及时总结,进行优势互补,发挥教师的创新精神,把c语言程序设计课程的教学改革真正落到实处。例如,通过头脑风暴,我们提出了程序设计的三部曲,即输入数据、输出结果、中间处理过程。过去我们的学生拿到编程题,往往无从下手,通过三部曲,结合高中数学的解题过程,将三部曲的输入数据对应到数学题的已知条件,输出结果对应到数学题的结论,中间处理过程对应到数学题的证明或解题过程。经过这样的关系对应后,学生明白了程序设计其实就是将数学的解题过程,用计算机的语言表达出来,最后让计算机来进行计算。学生一下子觉得程序设计并不神秘,只不过是把数学家已经解决的问题用计算机语言描述而已,这样使学生有种亲切感,再通过由易到难循序渐进的教学过程,逐步建立起学生学习的信心。
4)建立立体教学环境,拓展学生的学习时空。
随着信息技术和现代教育技术的发展,网络、手机、电脑的便捷使用,我们建立了课程网站,将课堂讲义、课件、习题解答指南、应用项目开发案例、自我测试题等上传到网上,并且实现网络答疑,网上提交作业,开展网络讨论,拓展了学生学习的时空,使学生任何时刻只要有网络,即可进行学习交流。另外学校还定期开放机房,安排专人进行现场辅导答疑,给学生提供了一个立体的教学环境。同时还鼓励学生参加蓝桥杯、IATA程序设计大赛,以赛促教、促学,形成良好的学习氛围。
篇3
关键词:C语言 教学改革 教学方法
中图分类号:G642.0 文献标识码:C DOI:10.3969/j.issn.1672-8181.2013.17.119
1 C语言教学中存在的问题
C语言程序设计作为普通高等院校理工科各专业的一门程序设计入门课程,有着其特殊、重要的地位。对于绝大多数同学来说,学习C语言是他们第一次接触计算机语言。作为一种计算机语言,C语言对于初学者来说比较抽象,很多知识点在教学中很难让学生理解透彻。在我们实际的教学实践中发现,学生们普遍认为这门课难度大、不易学,即使同学们学了但不会灵活使用的现象也十分严重。与此同时,任课教师们也认为该门课程教学课时少,教学效果不理想。那么,在C语言教学过程中主要存在什么问题呢?究其原因主要有以下几点。
第一,学生的学习目的不明确。很多学生认为学习C语言没有用,跟本专业结合不紧密,学习缺乏积极性跟主动性。还有很多同学认为学习C语言就是为了通过全国计算机二级考试,通过了计算机二级考试,毕业后就有了求职的敲门砖。面对这种形势,教师们为了提高学生的考试通过率,往往在讲课时过分注意语句和语法细节,与程序设计的实际要求偏离甚远。因此,同学们学到的只是枯燥语法跟一些无用的解题方法,却没有真正学会程序设计的基本思想和方法,也就更不可能真正学会用C语言这门工具来解决实际问题。
第二,教师的教学方法过于传统陈旧。在我们目前的教学环节中,绝大多数教师还是以讲授为主,这种传统的填鸭式教学,让学生感觉学习枯燥乏味,不能充分发挥学生的学习主动性,学生没有学习的兴趣,久而久之导致学生不爱学也学不好。因此,改变传统的教学方式迫在眉睫。
第三,教学实践环节重视不够。程序设计是一门实践性很强的课程,课堂上的理论学习对于学生学习C语言远远不够,课后大量的上机实践是非常必要的。但是在我们日常教学中,同学们在机房上机练习时,由于教师人手、精力不够,导致学生们往往在遇到大量语法错误或逻辑错误时对调试丧失信心,失去学习动力,更有部分同学把宝贵的上机时间用于娱乐游戏,最后的结果就是,课程上完了,很多同学却连基本的操作也不会。
第四,考核方式落后。我们现在许多学校的考核方式十分单一,往往都是教师出卷子,学生用笔作答。这种考试方式,往往造成学生只要背几道例题就可以考试得高分,没有真正考核学生的实际的编程能力。因此,期末考试的方式改革也势在必行。
2 解决方案的探讨
分析以上原因,我们发现要解决C语言教学中的种种问题,首先要从培养学生的学习兴趣入手。只有学生对对所学的课程产生浓厚的兴趣,才可能去积极主动地学习。同时要积极改变教师教学过程中一些传统陈旧的做法,使用一些新颖的考核办法来提高学生的学习主动性。为此我们提出以下几点改革措施:
第一,让学生明确学习目的,培养学生对C语言学习的学习兴趣。学生一开始学习可能不一定对此门课程感兴趣,我们可以着重给学生讲授C语言的发展历史,C语言在计算机语言中的重要地位,C语言在生产实践中的具体实例。最重要的是拿一些C语言程序设计的小实例,通过这些实例所表现出的动画、界面来让学生对课程产生浓厚的兴趣,让学生认识到,C语言程序设计不仅仅是枯燥乏味的语法和代码。
第二,教学时采用那些能够培养和吸引学生的学习兴趣,能够启发学生编程思维的教学方式,比如在课堂上可以适当减少老师讲授的时间,老师只讲授基本的概念、语法和一些解决问题的基本思路,主要发挥学生的主观能动性,由过去的以老师为主,填鸭式的教学方式,变为讨论式、对话式和辩论式等以学生为中心的教学方式。让学生从问题入手,主动去寻找解决问题的方法,老师只在一旁进行必要的点拨,让学习过程变得有趣,让知识变得有吸引力,让学习由“要我学”变成“我要学”,让学生在学习过程中得到极大的满足感,从而提高教学效果。
第三,加强实践教学环节的教学。首先,老师在上机实验时多选择一些趣味性强的题目,激发学生去主动学习。可以先通过一个或几个实例,从问题的提出、分析到方案的具体设计,让学生了解解决问题的全过程,来指导学生在遇到问题时该如何解决。然后提出一些与演示问题相似的案例,让学生利用自己所学到的知识去解决问题。在学生自己上机实验时,可以充分利用计算机网络,使老师与学生之间以及学生与学生之间形成良好的互动,提高学生的自学能力和团队协作能力。
第四,充分利用网络教学。比如我校就设计开发了“C语言程序设计”课程网络教学平台,模块包括教学大纲、实验大纲、电子教案、精选习题、教学录像、网上答疑、在线编程及BBS等。学生可利用这些网络资源进行自主学习、互相交流,提高学习效率。C语言程序设计网络教学平台内容丰富、特色鲜明,满足现代教育技术中的交互性、协作性、个性化、及时反馈等原则,能有效激发学生的学习兴趣,符合网络教学先进性、科学性、多样性的基本要求,为广大师生创建了一种全新的教学环境,使学生的学习突破传统的时空限制,变得轻松、灵活。
第五,改革传统的考核方式。传统的考核方式形式单一,不能够真正衡量学生的实际编程能力。C语言程序设计课程的教学目的,就是培养学生熟练运用计算机语言编制和调试程序,解决实际问题的能力。只有通过上机考核才能真正考查衡量学生的实际上机编制和调试程序的能力,督促学生在平时的学习中就时刻注重调试程序。为此我们将考试分解开来,期末考核方式以机考成绩为主,在这种考核形式的促进下,学生程序编写及程序调试能力将会有普遍、较大提高,不局限于以往的死记硬背课本,有效地提高了学生的学习兴趣及程序设计能力。
3 结束语
总之,在C语言程序设计的进教学过程中,我们要根据实际情况,把多种教学方法结合起来,因材施教,着重发挥学生的主体作用,培养学生自主分析问题、解决问题的能力,才能让教师教得好,学生学得好,为学生后续课程的学习打下一个良好的基础。
参考文献:
[1]皮连生.学与教的心理学[M].上海:华东师范大学出版社,2001.
[2]牛熠.C语言教学中学生兴趣的培养[J].广东:东莞理工学院学报,2006.
篇4
关键词:教学资源建设;c语言程序设计;网络资源建设
中图分类号:TP3-4
1 引言
1.1 课程介绍
《c语言程序设计》课程是我院警察技术系司法信息安全专业、计算机应用专业和计算机网络专业等专业一般学习领域课程,是学生进入大学所接触的第一门专业课,同时,这门课程也是《数据结构》和《软件工程》课程的前导课程。教学实践证明,该课程对学生是否可以形成编程思想,能否建立利用计算机求解问题的逻辑思维能力是至关重要的,也将直接影响后续课程的教学效果。因此,改进教学方法、提高教学质量是高职高专教学课程改革的一项艰巨任务。
传统的c语言教学模式侧重于c语言语法知识的讲授,学生的关注点集中于语法知识的记忆和理解中,无法形成真正的编程思想[1]。这使得学生很难自己写出程序,一味地“照猫画虎”,甚至有学生出现死记硬背程序才能记住的情况。这样就导致了学生的学习兴趣不浓,学习停留在表面,学生学起来枯燥,教师也教起来费劲。
1.2 传统教学资源的不足
传统的《c语言程序设计》的教学模式是以课本为主,辅以PowerPoint课件,由老师向学生讲授相关程序设计知识,教师占据主导地位,学生普遍反映“老师讲的都懂,例题也能看懂,就是不会编程”的困惑。我们必须开发多层次的教学资源,让学生成为主体。
2 多层次的教学资源建设
伴随着现代教育技术的发展,高等学校教学资源建设正在从传统的纸质教学资源向数字化、电子化方式转变,从单一载体向多媒体产品和多样化教学资源服务方式转变,从而形成了以纸质教学资源和数字化教学资源相结合的立体化教学资源。这不仅给高校教学工作提供了强大的技术支持和资源保障,也在迅速改变着学生的学习内容和学习方式[2]。
我系多层次的《c语言程序设计》课程的教学资源除了常规的教材外还包括教学参考书、电子教案、多媒体课件、试题库、网络资源建设以及在线练习系统等。
2.1 教材与教学参考书
我系为司法信息安全专业、计算机应用专业及计算机网络专业的学生选择的教材是北京邮电大学出版社出版的《c语言程序设计案例教程》,该书采用案例导入的形式展开知识点,重难点突出,讲解清楚细致。
另外,我系学生要求在毕业时必须获得全国计算机等级二级证书,教学参考书的内容就是紧跟当年的二级考试大纲所出台的考点解析与训练,从计算机二级(c语言)所重点考查的阅读程序能力、改错能力和编程能力一一解读,总结出相应知识点,并对历年真题进行详细分析,最后自测题可供学生自行检查自己对知识点的掌握情况,查漏补缺。
2.2 电子教案建设
依据教材内容和学生实际,我系教师编写了与纸质教材配套的电子教案。电子教案按照所分配的学时数进行模块的分类,反映了教师的教学思路、对知识点的把握及所采取的教学方法,体现了教材内容的精华,也是学生复习的重要指南。
2.3 多媒体课件
多媒体课件作为教师上课的重要方式,在我院得到了足够的重视。我院每年都进行一次多媒体课件大赛,教师们互相沟通、互相学习,极大的提高了自身创作课件的能力。
配以光投影设备和苏亚星教学系统,通过屏幕广播功能向学生播放已制作好的多媒体课件,不仅能节省教学时间,增强理论教学的直观性,而且能让学生看到老师对于操作步骤的演示,重、难点也能生动地加以表现。
2.4 试题库
我系司法信息安全专业、计算机应用专业和计算机网络专业的学生要求双证毕业,即毕业证和全国计算机等级二级证。笔者收集了历年的二级笔试和机试真题,紧跟二级考试题型的变化,按照知识模块,根据我系学生的实际,针对相同知识点归纳设计了一套试题库,利于学生练习及查漏补缺。
同时考虑到一些有能力的同学“吃不饱”的情况,笔者收集了我系学生曾参加过的由工业与信息化部主办的第二、三、四届“蓝桥杯”软件人才与设计大赛中的较为合适的填空题和程序设计题,以扩宽学生视野,并有助于选拔竞赛学生。
2.5 网络资源建设
在我院创建示范性高职院校的契机下,我院与清华大学教育技术研究所合作,共同开发了一个教师、学生可以共同参与的网络教学综合平台。网络教学综合平台按功能分为了精品课程、研究型教学和教学资源中心。在这个系统里,教师可以申领课程,并把自己有关课程的所有相关资料上传,比如课程介绍、教学大纲、教学日历、教学材料、答疑讨论、课程问卷、教学笔记、课程作业、在线测试和试题试卷库等内容。教师通过上传教学资料,梳理了本门课程的所有已有资料,为今后的精品课建设提供了资料保障;答疑讨论区给教师和学生提供了一个不受时间和空间限制的平台,学生们可以在上面对疑难问题进行讨论,老师对集中出现的问题进行答疑,不必局限于课堂。教师也可以在网上总结出学生反映比较突出的重、难点,在课堂上集中答疑,使学生的问题得到及时解决,以达到较好的学习效果;课程作业也不必拘泥于课堂和书面的形式,学生在网络教学综合平台上在复习过老师讲授的内容后对作业予以解答,便于学生掌握相关知识。
2.6 在线练习系统
为贯彻落实《国家中长期教育改革和发展规划纲要(2010-2020年)》和《国务院关于印发进一步鼓励软件产业和集成电路产业发展若干政策的通知》有关精神,加快高等院校IT类专业教学创新与改革,提高学生自主创新意识和工程实践能力,促进高校IT类专业就业指导工作,工业和信息化部人才交流中心自09年起举办了“蓝桥杯”全国软件和信息技术专业人才大赛。经过了5年的发展,2013年“蓝桥杯”在其官网上开辟了一个新模块――“蓝桥杯”全国软件和信息技术专业人才大赛练习系统。本系统主要面向参加“蓝桥杯”的老师和同学,帮助参赛的同学熟悉比赛试题的形式和解题方式。通过使用这个系统,同学可以学习到一些重要的编程方法,提高编程水平。系统中的试题集中分为入门训练、基础练习、算法训练、算法提高和历届试题共5个部分。
在实际授课过程中,笔者在网络教学的基础上,借鉴了这套在线练习系统,取得了较好的效果。具体来说,笔者给学生安排入门训练和基础练习的试题,由于练习系统的测评功能对程序的格式、注释等要求较高,这样就对学生形成的编程风格有一个很好的监控,有助于培养学生良好的编程习惯。在线练习系统把相同难度和特点的试题形成一组,同组的试题具有相关性,帮助同学学习与提高程序设计、算法和数据结构的知识。采用这样的在线练习系统,能建立起《c语言程序设计》与后续《数据结构》和《软件工程》课程的衔接,有助于学生综合素质的提高。
3 结束语
2006年开始,教育部与财政部全面实施“国家示范性高等职业院校建设计划”,启动了高等职业教育专业教学资源库建设。这项工程为全国高职院校提供一个经验交流和资源共享的平台,更重要的是通过建设专业教学资源库,带动全国高职院校专业教学模式和教学方法改革。我系在这样的大环境下,对专业领域的教学资源进行开发,取得了一定的成绩,但是跟示范性院校还有差距,今后还有很长的路要走。
参考文献:
[1]胡枫.《c语言程序设计》的案例式教学的设计[J].青海师范大学学报(自然科学版),2010(4).
篇5
[关键词]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).
篇6
关键词:程序设计;项目教学法;任务驱动
中图分类号:TP312.1-4 文献标识码:A 文章编号:1007-9599 (2012) 13-0000-02
《C语言程序设计》是各类院校各类专业学习计算机语言的一门启蒙课,也是国家计算机等级考试可选编程语言之一。掌握好C语言的编程技术,将为学生学习后续各专业课奠定坚实基础。C语言算法比较复杂,规则繁多,使用灵活但容易出错,学生掌握具有一定的难度。通常该课程被作为一门公共基础课,参加整个院校的统一考试,授课方式为每周一次理论课和一次上机课。学生普遍反映理论较抽象,课堂教学课时不够,很难达到精通的程度,导致学习后续诸如《数据结构》、《高级程序设计》等课程时较为吃力。
针对上述情况,我院采取了各种措施,比如邀请在计算机语言教育领域有独到见解的专家和优秀教师一起讨论、专家随堂听课等方式,最后以我院电信专业为改革试点,针对专业和独立学院学生的特点,对学生有针对性的讲授,同时从以下几个方面进行改革:
一、增加理论课课时量
以前的课程安排为56学时,课堂讲授和学生上机练习的课时数分别为32和24学时,对函数和模块设计这一部分讲解较浅,且对于指针、结构体和联合体及文件这三部分只进行概念介绍,但实际上这些内容非常重要,不仅计算机等级考试C语言考核这些内容,后续软硬件实践课程也均以此作为基础。由于这部分内容的缺失导致学生对许多实际问题不知如何编成实现。因此从2011级学生开始理论课课时增至40学时,上机课课时维持24学时不变。
二、改革授课方式
以前该课程的教学方式,主要是教师课堂讲授、学生课下练习。学生的积极性和主动性都不高,而且感觉到该课程枯燥乏味,老师的教和学生的学都有很大的难度。采用项目驱动教学法之后,主要是教师提出问题,给定开发目标,学生在教师的引导下,和教师一起共同完成项目的开发。在项目具体实现的过程中,需要用到的知识点,比如要处理的数据及其数据的类型,在此处给学生详细讲解,这样学生对C语言中数据的类型就有了深刻的认识。学生通过亲自参与、体会和实践,提高学习积极性和主动性,并更好的接受和掌握了新知识。这样“以学生为主体、以教师为主导”的教学模式,能使学生最大限度地贴近实际问题,从而达到该课程的教学目标。
(一)项目导向、任务驱动教学法
所谓项目导向、任务驱动教学法,是在整个教学过程中选择一个可行的、学生感兴趣的实例,提取典型工作任务,将工作任务合理有序化后,对每一项工作任务分析所涉及的相关知识,设计相应的学习情境;针对每一种学习情境以项目为导向,以任务为驱动,逐步细化,构成一个由浅入深的知识学习与技能训练有机结合的学习体系。
根据本门课程的特点和学生的实际情况,在整个课程教学中,以开发学生熟悉的和感兴趣的“教务系统”为项目实例进行讲解,将枯燥的理论教学转变为直观的实践操作,培养学生学习计算机语言的兴趣。
(二)案例教学法
在每次课堂教学中,以项目的一个实例来推进来课堂教学的开展。通过采用案例教学,讲解与任务相似的案例,使学生掌握完成任务所需的知识和技能,从而实现知识点的有效过渡和深化。由于C语言是大学中接触的第一个编成语言,因此案例的选择一定要接近实际,让学生对问题的定义有明确地了解,这样在讲具体的程序设计时学生才容易理解。比如在讲程序的分支结构时,以超市的结账系统为例来进行,超市推出的一系列优惠策略,比如达到68元给5%的优惠,达到98元给10%的优惠等,这些优惠条件就构成了分支结构的条件,通过这些实际问题的讲解,使学生实现对各个知识点的理解及深化。
三、改革教学手段
以前的教学手段主要采用多媒体教学,但由于程序设计课程的特殊性,仅用多媒体或传统的板书很难达到该课程的要求,因此在该课程的教学中,要求将传统的板书与多媒体相结合,在讲解算法思路时采用板书,而讲解具体实现代码和执行过程时采用多媒体,将执行过程采用动画的方式实现,这样不仅能让学生快速掌握课堂知识,而且会节约课堂教学时间。
语言学习仅靠课堂教学很难让学生达到精通的程度,而《C语言程序设计》学习的目的之一就是要让学生能独立编写程序解决具体问题,因此我们充分运用网络资源,将上课的课件和作业的参考答案等放在服务器或局域网上,让学生复习时有资料参考,同时通过QQ建立讨论组,教师与学生可实时交互,及时解决学生编成中遇到的实际问题。
四、改革考核方式
以前的考核方式为平时成绩占30%,期末考试成绩占70%,但忽略了对上机实践环节的考核。然而,电信系各专业的上机实践非常重要,通过实践才能提升学生的实践能力。大部分学生在大二下学期会报考全国计算机等级考试二级C语言,而且电信系在《C语言程序设计》课程后开设了《数据结构》、《单片机原理》、《嵌入式系统》等以C语言作为基础的课程。因此,培养学生熟练掌握C语言,并强化动手能力对学生的继续深造和就业起到非常重要的作用。鉴于此,考核方式改为平时成绩占15%,上机实验占25%,笔试成绩占60%,并增设期中考试。期中考试采用随堂考核形式,成绩以5%的比例记入平时成绩中。
在本年度《C语言程序设计》课程教学中,针对电信11级学生实施了该改革措施,将项目导向、任务驱动和案例教学法应用到教学设计中,并结合课程的特点,对该教学方法进行了不断的改进和具体化,实践证明,教学效果显著。
参考文献:
[1]熊芳敏,许烁娜.C语言课程教学探讨[J].计算机教育,2010(13):105—106
[2]邵玉祥,陈青.“案例教学+项目教学法"在计算机语言教学中的互补应用[J].高教论坛,2012,2
篇7
关键词:指针变量 数组 字符串 函数 常见问题
中图分类号:TP312 文献标识码:A 文章编号:1673-9795(2013)08(b)-0163-01
指针是C语言中广泛使用的一种数据类型。运用指针编程是C语言最主要的特点之一。利用指针变量可以表示各种数据结构,也能很方便地使用数组和字符串,更加能像汇编语言一样处理内存地址,[1]从而编写出精练而高效的程序。
1 指针变量的使用优势及常规用法
(1)使用指针指向数组首地址,简化了数组相关的程序内容的书写,避免了整体使用数组,在程序执行中减少了先找数组元素的地址再取数组元素内容的过程,直接在数组所在的地址范围内操作数组元素,提高了程序的执行效率。(2)使用指针指向字符串(即字符数组),把一个字符串整体当作一个数组元素,多个字符串的指针变量就构成了指针数组,不仅节省了内存空间,还大大地提高了程序的执行效率。(3)指向单变量的指针变量作为函数参数,可以在程序执行过程中及时转向调用函数的入口。节省内存空间的同时,把指针变量替代单变量作为直接变量在调用函数执行过程中执行相应程序操作,免去了返回值的执行时间与过程。(4)指向结构体复合变量的指针变量作为函数参数,可以通过变化结构体变量灵活使用指针变量在调用函数中执行函数的程序操作,不仅节省内存空间与执行时间,而且方便程序变量的修改,提高了程序的可移植性。(5)指向函数的指针变量作为函数的参数,可以在一个主函数中实现多个自定义函数功能间的调用,大大地提高了程序的灵活性与可移植性及程序执行的效率。(6)使用指针指向文件类型结构体,可以找到与之相关的文件,实现文件的访问,在主函数执行过程中灵活转向其它文件的执行。
2 指针变量使用常见问题及解决方法的探求
2.1 指针变量的初始化
同其他变量的初始化相似,在指针变量的定义之后就应该给指针变量赋一个初始的地址值。如果没有给定义的指针变量赋初值的话,指针变量的值不定,可能会导致一些隐藏在某些地址号的内存中的难以跟踪的漏洞(bug)运行。如:
int *p; *p=100;
p定义为一个指向整型变量的指针变量,但是却没有给p赋予一个初始的地址值,只是把一个存储100的常量的存储单元的首地址赋给了p,而这个存储单元的首地址可能在程序其它位置另作它用,就会产生隐形的难以追踪的bug的运行。因此,为了避免可能性的发生,就要和其他变量的使用一样,在定义指针变量的时候就要同时给予指针变量一个初值,以确定指针变量的初始的地址,即指针变量的初始化。将上述例子修改为:
int a=100; int *p=&a;
还要注意把“int *p=&a;”和“*p=&a;”混淆,前者是指针变量的初始化语句,即定义的同时给指针变量赋初值,而后者是一个旨意错误的赋值语句,把整型变量a的首地址赋给了p所指向的整型变量。
2.2 指针变量的赋值
给指针变量赋予的初值一定是地址。同样,在程序中给指针变量重新赋予的值也只能是地址或使指针变量指向同类型的变量值的首地址。如:
int a,*p; p=a;
要使p指向a,就要有地址运算符&对a取首地址后赋给p,或者把变量取内容赋给p,而不是直接把a赋给p。C语言编译器会提示指出这是个语法错误,给指针变量赋予的内容和指针变量不匹配。正确的赋值一般形式为:
int a,*p; p=&a;
或 int a,*p; *p=a;
还要说明的是指针的指向要有具体类型说明。不能给指针赋予与其基类型不符的地址,否则也会出现语法上错误。如:
int a=100; double *p; p=&a;
在给指针赋值时,不只要求是地址,还要是一个与该指针类型相符的变量或常量的首地址。而上述例子中,a是整型的变量,p是基类型为双精度型的变量。二者不相匹配,这种赋值在编译时就会发生语法错误。因此,给指针变量的赋值要注意指针变量的基类型,即指针变量能够指向的变量类型。
2.3 指针在函数之间值的传递
#include “stdio.h”
void swap(int *a, int *b)
{int t; t=*a; *a=*b; *b=t;}
void main( )
{int x,y; printf(“请输入两个整数:”);
scanf(&x,&y); printf(“x=%d, y=%d\n”,x,y);
swap(&x,&y); printf(“x=%d, y=%d\n”,x,y);}
函数间的值传递也可以通过实参的地址单向传递给形参的指针变量,直接调用函数,完成函数间数据传递的目的。主函数main( )在调用函数swap( )的同时,把变量x和y的地址分别单向传递给了指针变量a和b。也就是主函数中对整型变量x和y的操作,通过地址的传递,虽然在调用函数过程中形式上是对指向整型变量x和y的指针变量a和b的内容(即x和y)的操作,实质上仍然是继续对整型变量x和y调用函数的操作。也就没有必要给主函数返回x和y的值了。省去了返回的时间和操作过程,提高了程序的执行效率与正确率。
2.4 指向指针变量的指针变量
*p,**p,***p分别叫做一级指针、二级指针和三级指针。如果这样定义:
int a, *p, **q, ***r;
则第一个*p中的p可以用来存放普通整型变量的地址,例如赋值:p=&a。第二个**q中的q可以用来存放整型变量地址的地址,例如指针变量p的地址,p是指针变量,变量的值是整型变量a的地址,那么p这个指针变量的地址就需要一个比p高一层的指针来存放。因此可以这样赋值:q=&p。第三个***r,道理相同,可以这样赋值 r=&q。指针的嵌套使用,使程序在执行时更灵活,更有效率。
3 指针的使用是C语言程序设计中最重要的一环
能否正确理解和使用指针是我们是否真正掌握C语言的一个标志。C语言中指针的使用比较灵活,很多人在实际编程中很容易出错,而且这种错误恰恰又难以发现,所以建议初学者大量地上机调试程序,以弄清一些细节,并积累经验,为后续编程内容的学习打好坚实的基础。同时,指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程并上机调试。只要做到这些,指针也是不难掌握的。
参考文献
篇8
关键词:C语言;教学模式;教学改革
0 引言
C语言程序设计不仅是计算机专业的必修课,而且是很多非计算机专业的公共基础课。它通常是高校学生所接触到的第一门程序设计语言,其重要性可见一斑。由于是“第一门”,学生的学习热情高涨,但当碰到数据类型繁多、语法结构复杂的计算机语言时,学生的学习兴趣很快就消退了。如何结合现有的教学模式,改进C语言的教学效果,提高学生的学习兴趣,让学生能较快地掌握程序设计基本方法,一直以来都是值得探索的问题。
1 C语言的多维立体教学系统
树立一个正确的教学目的和学习目的分别是教师教好和学生学好一门课的根本所在。教师和学生都应向这一目标努力。传统的教学模式存在交互性弱、理论与实践缺乏联系等缺点。笔者结合多年C语言程序设计课程的教学经验,在传统教学模式的基础之上,提出多维立体教学系统,如图1所示。该系统由多元学习系统、实例分析系统、成功激励系统3个子系统构成多维度、立体化的学习模式。多维立体教学系统为C语言学习者定制完全个性化的学习模式,能全面提升学习者的C语言运用水平,真正实现学知所用、学有所用、学会所用。
1.1多元学习系统
高校制订教学计划时,通常将该课程安排在大学一年级开设,而这一时期,学生刚刚由高中进入大学,对专业方向以及后续要学习哪些专业课程还不了解。学生们会疑惑:这门课对后续课程学习到底有什么用?这时,他们根本不可能认识到将这门课作为专业基础课的真正用意,而从辅导员及学长那里得到的信息是计算机二级证书对于就业大有裨益。于是,学生在学习这门课伊始,心里便有了目标:通过计算机二级考试。对此,教师首先要做的是明确教学目的并调整教学目标,及时引导学生,让学生明确学习C语言的终极目标是“学以致用”。
多元学习系统是以多媒体教学为基础,并采用正常学习课、主题沙龙课、学习辅导课相结合的教学环节,帮助学生学习C语言。正常学习课就是教师采用传统的教学方法,以正常的多媒体及板书形式授课,使学生在短时间内获取大量信息的教学方法。这种方法虽然存在大家所都熟知的诸多缺点,但要使几十甚至上百名学生能较快地掌握课程内容,传统的教学方法不可或缺。教师应在讲授这门课程伊始就清楚地告诉学生:学习这门课的主要目的,是通过学习C语言,了解基本的算法,掌握正确的编程思想和编程方法,提高计算机的应用水平,为后续课程打下良好、坚实的基础。教师在讲授这门课的同时,也要注意适时引导,不要过分强调计算机二级考试和期末考试的重要性,应本着实用的目的,让学生活学活用。至于计算机二级考试,其实与我们上面指明的学习目的并不矛盾,如果学生的学习目标真正明确了,顺利通过二级考试也是自然而然的事情。
主题沙龙课和学习辅导课是正常学习课的重要补充。教师在正常学习课环节的基础上开展主题沙龙课,将正常学习课的重要知识点进行提炼,提出一定主题下的拓展命题,可以训练学生对知识点的认知能力,使其进一步加深在知识点应用层面上的体会,并促进学生对知识进行消化和吸收。学习辅导课是针对学生上课(包括正常学习课及主题沙龙课)、作业及答疑过程中存在的不足,为学生扩展和补充C语言语法特点和应用案例等方面的知识,帮助学生快速积累知识。由正常学习课、主题沙龙课、学习辅导课构成的多元学习系统如图2所示,三者相互促进且互为补充,是C语言多元学习中必不可少的环节。
1.2实例分析系统
美国著名的教育家乔伊斯在《教学模式》一书中,将教学模式分成4类。信息处理模式注重帮助学习者获取信息,并发展学习者获取信息、加工信息、观察问题和解决问题的能力;归纳模式侧重信息的获得和加工;概念获得模式主要是帮助学习者有效地学习概念;探究模式主要在于培养学习者探究的技能。
结合乔伊斯的教学模式理论,笔者提出实例分析系统。该系统以几个完整的案例为总线,从工程实践的角度出发,首先提出问题:我要编写一个什么样的程序,该程序要实现什么样的功能;其次再进行功能模块划分,引出模块化的思路;最后以案例为向导实现每个功能模块,而每个模块所涉及的知识点也被顺理成章地引出来。传统的C语言程序设计教学以填鸭式教学为主,强调教师“如何教”,忽视学生“如何学”这个问题。教学基本上都是在讲解基本语法,配套教材中的案例也只是为了说明语法而已,缺乏趣味性。然而兴趣和爱好却是最好的老师,瓦特发明蒸汽机、牛顿发现万有引力定律都是兴趣的指引。
实例分析系统首先用生动的实例告诉学生这门课的学习目的是什么,避免了是什么、怎么用的介绍方式,而采用提出问题、分析问题、解决问题的方式;其次,掌握枯燥难懂的语法是实现案例功能的重要途径,采用实例分析系统可以让学生以轻松和主动的态度学习与掌握知识点;最后,将工程应用能力和创新能力的培养渗透于日常的实践教学中,这也符合“卓越工程师教育培养计划”(简称卓越计划)的提出。实例分析系统在具体实施过程中还要注意把握以下几个方面。
1.2.1多媒体教学结合案例教学
目前,C语言教学大多采用多媒体形式,因此教师应充分发挥多媒体的视听优势,注重选用集实用性、趣味性、一致性于一体的案例,通过多媒体演示程序执行流程、数据类型存储过程、函数参数传递过程等。除了贯穿全局的大案例选择,小案例的选择也很重要。所选案例既要与教学目的相吻合,又要是学生易于接受和感兴趣的案例。
教学选择“智力大通关游戏”作为贯穿始终的大案例。该游戏由用户选择1、2、3、4、5、6(用户可通过掷骰子选择点数),然后进入相应的游戏环节,有算术游戏、智力问答、五子棋等游戏。教师通过程序展示环节,让学生对C语言编写的应用程序有一个初步了解,然后随着学习内容的深入,学生从最简单的模块开始,不断完善程序功能。
例如,学生在学习输入输出函数时,利用输出函数输出一个算术题或智力题,加深对打印输出函数printf()的理解;利用输入函数输入数值,加深对输入函数scarlf()的理解;学习选择结构时,利用if-else结构判断输入的答案是否正确,若答案正确,输出“恭喜你,答对了”,答案错误则输出“下次再努力吧!”;利用switch()结构可以选择游戏类型,练习多分支结构的使用;学习循环结构时,可用“当型循环”或“直到型循环”循环地出算术题或智力问答题,直到用户选择退出游戏;在学习函数知识时,可以用函数调用的方式练习出题过程。
至此,“智力大通关游戏”的基本程序框架已搭好。学生对于数组、结构体、共用体及指针内容的学习,可以以教师选择的信息管理系统为案例进行学习。学生可利用数组的知识,练习编写计算每门课平均成绩及每名学生平均成绩的程序;用结构体和共用体及指针的概念来存储和管理每名学生的基本信息,在此基础上,逐渐增加该程序的难度,并利用前面所学的函数知识,实现成绩查询、学生基本信息查询等功能;学习文件时,可编写如何将学生信息保存到文本文件或如何从文本文件中读人信息的程序,使学生掌握有关文件处理函数的使用。相关内容学习结束后,一个简单的信息管理系统程序设计也就完成了。
1.2.2课堂讨论与实践教学相结合
人的能力是在实践中形成的,实践是实现由知识到能力转化的重要过程。要实现具有一定理论基础、创新能力和扎实的动手能力的应用型人才培养目标,加强实践教学尤为重要。教师在讲课时也可以把一些富有启发性的问题编成思考题,要求学生查找资料、独立思考,然后再组织学生就这些思考题进行讨论,在讨论中巩固所学内容。
学生有了学习兴趣,自然就能积极自主地学习,教师也转变为学习的辅助工具,从而逐步完成从“做中学”到“学中思”的过渡。在实现“智力大通关游戏”程序后,教师可以给同学留下一些讨论题,如增加菜单的功能、增加用户密码的功能等,要求同学分组讨论(即主题沙龙课环节),利用所学知识完善程序。教师在学生学会设计学生信息管理系统程序后,要求学生实现图书信息管理系统或飞机订票系统的程序设计,以激发学生的创造性。课堂讨论不仅能拓宽学生的思路,使学生高质量地完成学习任务,而且还可以提高学生的综合素质。
1.2.3多媒体教学与传统板书教学相结合
教育心理学研究表明:人获取的外界信息中,83%来自视觉,11%来自听觉,3.5%来自嗅党,1.5%来自触觉,1%来自味觉。显然,增加视觉和听觉信息量是多获取信息的可取方法。多媒体恰好在视听方面具有显著优势,因此,从教育心理学角度看,运用多媒体辅助教学对提高教学效果必然大有好处。但多媒体教学不只是教师用电子教案取代纸板教案、用电子板书代替粉笔板书,而是在充分理解媒体语言、掌握其传播特性的基础上进行设计。
在众多的教学媒体中,文本擅长表述高度概括、极为抽象或结论性的内容,我们通常将文本用于概念的表达,如语句的基本语法介绍等;图形、图像形象直观,能够直观并生动地传播信息,因此结合文本进行合理的页面布局可以起到画龙点睛的作用;动画是以视听的方式进行表达,恰当的动画成分可起到强调主题、增加情趣的作用,如采用动画方式对指针的应用进行讲解,使学生了解每一条语句在执行过程中的作用,增强学生的直观感受。
教师在利用多媒体技术辅助教学时需要注意以下方面。
1)在教学过程中,不建议一味追求视觉效果,而忽视教学本身,对多媒体类型的选择要慎重。
2)多媒体技术是教学的辅助手段,因此不能本末倒置。幻灯片相比传统板书方式包含的信息量大,教师容易忽视学生对知识的消化能力。因此,多媒体教学要有重点地与板书进行结合,有的放矢地利用传统教学手段强调关键内容。
3)制作课件时,避免将课本内容原样拷贝到课件上,这会使学生难以领会重点。多媒体教学只有与传统板书教学有机结合,才能使课堂教学环节集知识、专业、趣味于一体。
1.3成功激励系统
西方教育“以人为本”,从课程学习与实践上升到人的全方位成功。成功激励系统帮助学生实现自我认识、自我定位、自我成功等。编程是一种技能,学习C语言的关键是将C语言运用到实际应用当中。首先了解你自己,在此基础上,设定C语言学习目标,以案例为驱动力,尝试新的挑战,不断地从错误中总结并提高自己,追求卓越,这是一个不断循环的过程。成功激励系统如图3所示,它可以是C语言学习的成功激励系统,同时也与“卓越计划”的初衷一致。
2.1重视买践环节
通过课堂的理论学习,学生掌握了C语言的语法知识,但是编写的程序是否正确并符合要求、能否运行,就需要通过上机调试环节来验证。上机调试可以使学习中的疑点或问题得到明确解答,使学生更好地理解和巩固课堂内容,并且能培养学生编程和调试程序的能力,因此必须重视上机实践环节。作为教师,结合学生在课堂上所学的知识,对上机实验内容进行精心设计,以便学生更好地消化和理解知识;还要尽量结合学生的专业,注重内容的实用性。
C语言是一门实践性很强的课程,学生仅通过几学时的上机环节还是不了解到底怎样编写一个能够应用的完整程序。基于此,教师增设了课程设计环节,首先合理选题,题目既要起到训练的目的,又不能难度太大。从以往的课程设计情况来看,信息管理类的题目比较适合做C语言程序设计题目。另外,考核方式也应灵活,教师不应以成败论英雄,应摒弃以往以程序是否调通为依据,并将其作为最终成绩的做法。实践证明,“成败论”有损学生对C语言学习的积极性。考核应以学生的考勤和钻研精神、所做程序的完整性和运行情况、最终的简要答辩为依据,着重鼓励学生通过课程设计掌握编程知识和技能。
2.2教学、实践与创新的关系
教学环节是知识积累的基础,而实践环节是教学环节的必要补充,两者相辅相成、缺一不可。教学、实践与创新的关系如图4所示。实践环节是学习能力与创新精神的集中体现,是训练学习能力和创新能力的最佳途径。教学、实践、创新,进而促进教学及实践环节,这样不但可以促进学生巩固课堂知识,而且可以激发学生在课外学习自己感兴趣的知识,为以后学习专业知识打下坚实基础。
篇9
(武汉铁路职业技术学院 湖北 武汉 430205)
摘 要:对C语言的有关方面展开分析,介绍了C语言的基本程序形式、C语言中的语句分类、C语言与其他许多语言相比具体有什么特点,C语言的开发基本流程、C语言常见的错误简析及修改。最后对学习C语言给予总结和提示。
关键词 :C语言;语句分类;C语言流程;常见错误
中图分类号:TP312 文献标识码:A doi:10.3969/j.issn.1665-2272.2015.10.048
收稿日期:2015-03-16
1 初识C语言程序
从这个简单的C程序可以看出,C程序结构由头文件、主函数、系统的库函数组成,但程序功能不能,C程序的组成也有所不同,有时需要自定义函数来完成必要的功能。其中main主函数时每个C语言程序都必须包含的部分,而且main主函数的位置在程序中是任意的。
2 C语言的特点
与其他许多语言相比,C语言的特点有:①语言简洁灵活。C语言只有32个标准关键字,9种程序控制语句,程序书写形式自由;②数据类型和运算符十分丰富。既有系统定义的简单类型:整型、实型、字符型等。又有用户自定义的构造类型:数组类型、结构体类型、共用体类型等;③数据结构丰富。C语言提供了整型、实型、字符型等基本数据类型外,还提供了用基本数据类型构造出的各种复杂的数据结构,如数组、结构体、共用体等。另外,C语言还引入了与地址密切相关的指针类型,使得C语言的计算功能、逻辑判断功能非常强大;④允许直接访问物理地址。C语言中的位运算和指针运算符能够直接对内存地址进行访问操作,可以实现汇编语言的大部分功能。即直接对硬件进行操作;⑤它提供了大量的库函数供调用。简化了程序设计工作;⑥生成目标代码质量高。一般只比汇编生成的目标代码效率低10%~20%。C语言提供了一个相当大的运算符集合,而且其中大多数运算符与一般机器指令一致,可直接翻译成机器代码,因此,保证了C语言编写的程序生成的代码质量高,从而带来了编译和执行的高效率;⑦用C语言写的程序可移植性好。C语言提供的与硬件有关的操作,如数据的输入输出等,都是通过调用系统提供的库函数来实现的。库函数本身不是C语言的组成部分,因此用C语言编写的程序能够很容易的从一种计算机环境移植到另一种计算机环境中;⑧C语言学习难度较大。特别是指针、地址、函数调用等内容较难度大,需要认真学习才能掌握。
3 C语言程序的开发流程
从编写一个C语言源程序到得到最终的结果一般需要经过4个基本步骤:程序编辑、程序编译、程序链接、程序运行(见图1)。
4 C语言常见错误及分析
4.1.1 遗漏分号出现的错误
这个错误一般常出现在初学者所编程序中。
5 结论
C语言程序设计是一门强调实践练习的课程,没有捷径可走,只有不断地实践、练习、发现问题,不断解决问题,才能孰能生巧,举一反三才能将所学知识巩固发挥,最终掌握结构化程序的精髓,独自编写优秀高效的C语言程序。
参考文献
1 孙丽云.C语言程序设计教程[M].北京:化学工业出版社,2013
2 王立. 二级C语言程序教程[M].武汉:华中科技大学出版社,2014
篇10
关键词:精品课程建设;教学改革工程;C语言程序设计
中图分类号:TP434文献标识码:A文章编号:1672-7800(2013)006-0189-02
基金项目:黑龙江省高等教育教学改革项目(JG2201201256)
作者简介:高巍巍(1976-),女,硕士,黑龙江外国语学院信息科学系讲师,研究方向为软件工程、数据库、教学管理。
0引言
教育部于2010年颁布了我国精品课程建设的评审体系,该体系面向高职、高校本科和研究生等多个层次,涵盖了几乎所有的教学学科。精品课程建设评审体系要求各教育机构结合自身特点,规划符合自己学校办学理念和学生实际情况的精品课程教学改革方案[1]。《C语言程序设计》是计算机专业的一门重要课程,是学习计算机编程的基础课程,黑龙江外国语学院信息科学系通过多年的教学研究和教学实践,将其打造成为学院精品课程体系中的重要课程之一。
1精品课程建设思路
C语言程序设计作为计算机专业学生的专业基础课,为学生学好程序设计和编程思想的形成起着重要的作用。笔者所在院系为了响应教育部建设精品课程规划和倡导质量工程的新教学理念,组织教师总结多年的教学经验,并根据目前最新的人才需求,对《C语言程序设计》进行教学改革实践,完成精品课程的建设。
以往的C语言课程教学普遍存在如下几个问题:①教学内容复杂、难以理解,无法兼顾基础各不相同的学生;②知识体系庞大,授课学时不足;③教材建设和教师知识结构很难适应C语言的最新发展和社会对人才的要求。针对上述问题,笔者所在系(以下简称我系)根据应用型人才培养目标的定位和通过校企合作企业了解到的用人需求为依据,经过反复研究和探索,总结出一套涵盖教师队伍建设、课程内容、教材建设、教学方法和手段等方面的精品课程建设体系,该体系与学校的应用型人才培养策略和优秀教师团队建设的总体要求相对应。
根据精品课程评审体系的要求,我系首先对C语言程序设计的教学体系进行改革,不再采用照本宣科、直上直下的传统教学路线,提出了三步走的教学方式:
第一步是基础知识普及,把C语言中的所有概念按照编程思想涉及范围集中进行讲授。这部分内容大概占总学时的六分之一,目的是在进行进一步的学习之前,消除因为教育背景和知识面不同而造成的学生基础的参差不齐。教师要根据最新的技术发展和用人需求,详细介绍日后程序设计和编程开发中遇到的重点难点问题。这样做的目的是为了让学生了解C语言、喜欢C语言。所以课后习题和上机实验环节的内容要丰富而有趣,教师也要积极调动学生的学习主动性。
第二步是进阶学习阶段,这里采用项目式教学手段,用一个或多个贯穿C语言程序设计和开发整个流程的项目为主线,讲授编程思想相关的教学内容。这里要强调的是思想的形成,比如面向对象、软件工程和网络编程思想等,这些对于学生养成良好编程习惯和计算机思维都有很大的促进作用。这部分的学习是对学生编程技能的提高过程,所以教师在完成教学内容的同时,还要讲授包括软件健壮性、系统测试以及程序优化等相关软件设计和开发的重要内容。这部分的教学活动占总学时的二分之一。这个步骤中学生应成为课堂教学和实验教学的主体,让他们自己通过实践把所有教学内容都融会贯通,教师要做好答疑解惑的工作。
第三步是课程设计阶段,将学生按照知识掌握情况组合成若干小组,每个小组设计和实现一个小型软件系统。课程设计的内容要包括前两部分的知识点和重要编程技术,并要能体现系统的软件开发生命周期。这部分的教学活动占总课时的三分之一,目的在于为以后的程序设计相关课程打好理论和实践基础。这部分的教学活动应全部由学生完成,他们以小组为单位共同讨论协商包括需求、设计、开发、测试、版本控制等软件设计的各个环节。最后提交的除了具有可运行程序之外,还需要有完整的软件开发文档,这些程序和文档要在最后的课程设计评审中供所有教师和学生评价,最后打出分数,计入最终的课程评分中。《C语言程序设计》精品课程建设课程体系“三步走”示意图如图1所示。
2精品课程建设实例
教育部对精品课程的定义是具有一流教师队伍、一流教学内容、一流教学方法、一流教材、一流教学管理等特点的示范性课程。借助现代计算机网络技术,精品课程的相关资料和方法将在网上公开和共享,实现教学资源的共享和共建。精品课程资源作为优质的教学资源,是提高教学效果和办学质量的重要基础内容。
我们认为,精品课程建设首先要有明确的定位,要符合所在学校的办学理念,适应社会的发展和科学技术的变革,并在教学实践中不断发展进步。要逐步形成一套科学完整的课程体系,包括教学内容、教学方法、教学手段和考核方式的改革。不但要有知识的教育,更要体现对学生认知能力的培养,培养他们自主创新的能力。同时通过精品课程的建设,形成一支优秀的教师队伍。还要研究如何建设和利用网络支撑环境,促进课程建设,利于通过网络共享教学资源。
2010年颁布的精品课程评审体系分为5大体系指标,若干分支指标,其中教师队伍建设和课程内容设计是最重要的指标[2]。精品课程评审体系示意图如图2所示。
2.1教师队伍建设
精品课程的核心内容就是建设一流的教师队伍、一流的教学内容和教学方法、一流的管理模式等,可见教师队伍建设是精品课程建设的重点。目前我系《C语言程序设计》教学组有教师5名,包括3名讲师、2名副教授。教学组5人均为硕士以上学位,年龄结构也是以中青年教师为主,具备知识结构快速更新的特点。任课的教师都具有国内知名学校相关专业的研究背景,并都有兼顾学术研究和技术应用的人才素质。在总结以往经验和不断探索中,我系采取了一系列有利于教师队伍建设的措施。
(1)集体备课。主要采取群策群力、以老带新的形式,组织教师进行学术调研和讨论的活动。教师之间可以畅所欲言,在介绍自己教学经验的同时把自己解决不了的问题提出来供大家讨论解决。这种传帮带的形式可以很好地帮助年轻教师适应岗位。
(2)教学研究。鼓励教学研究,年轻教师可以根据最新的教学理念自己探索和总结研究方向,把研究成果作为补充教学内容的主体。并组织年轻教师进行定期培训,不断提高他们的理论水平和授课能力。
(3)良性竞争。组织教师参加教学大赛,通过比赛发现自己的不足和他人的优点,取长补短。
(4)督导观摩。为了让年轻教师尽快地适应岗位,学院安排了由老教师组成督导观摩小组,以听课和公开课的形式指出他们的不足,帮助他们尽快成长。
(5)考察进修。安排教师参加国内外各类相关学术会议,进行卓有成效的学术和教学交流活动。通过教学交流,我系在学习国内外知名院校的教学经验之后,引入了任务驱动式教学等先进教学方式,取得了良好的教学效果。
(6)教材编写。为了让教材的内容符合我系的精品课程建设体系,组织教师编写相关的授课教材和实验指导书。
2.2课程教学内容
《C语言程序设计》课程的教学内容,是在充分考虑了学生基础、学校人才培养目标定位、社会人才需求等多个因素之后制定的。教学内容强调实践教学的重要性,让学生边学边练,以战代练,在知识学习的基础上,养成良好的程序设计习惯和思想,具体的做法如下:
(1)任务驱动教学。教学的目标明确,根据学时要求将课程分为48讲,每个阶段的学习都有一个教学目标,所有的教学内容和课堂活动都围绕这个目标展开。
(2)应用性教学。为了贯彻学院应用型人才培养的教学理念,教学内容要做到少概念和公式,多思想和技巧,把培养学生的思维能力和实践创新能力作为教学的主要目标。
(3)情境教学。教学内容要丰富有趣,可以通过创设任务情境的方式展开教学内容,激发学生的学习主动性。例如:在讲解二维数组的定义和引用时,在问题深化部分,为了讲解二维数组的应用,我们创设情景,举例如下:做一回黄蓉,帮靖哥哥填九宫图。为逃避裘千仞的追杀,靖哥哥背着黄蓉逃进瑛姑的住所,瑛姑出了一道难题,要求靖哥哥将1~9这9个数字填入九宫图中,使得横向、纵向、斜向的数字之和均为15。通过这样的问题描述,学生的兴趣马上就被调动起来,课堂活跃有序,教学效果自然会好。
(4)边学边练。教学组编写了同步训练指南,根据每个教学章节安排练习内容,分为基础训练和能力提高两种,学生可以根据自己的学习情况自主选择。同步训练的内容都是根据实际的程序设计内容和部分计算机二级题目制定,让学生在学习之后可以有一个好的复习和能力提高过程。
(5)实践教学。作为精品课程建设的重点之一,实践教学必须得到足够的重视,实践教学环节占总学时的三分之一。实践教学包括上机实验和课程设计两部分,上机实验根据我系教师参于编写的《C语言程序设计题解及实验教程》进行,共分为12个实验,每个实验分为:实验目的、重点内容提要、实验示例和实验内容4个环节。实验前,要求学生预习实验,填写分析结果;实验后,填写运行结果。避免学生上机盲目性;课程设计则是安排学生组成若干个小组,每个小组都有各种能力水平不同的学生,让他们互相学习和讨论,让落后的学生尽快赶上来。这样不仅培养了编程能力,对于团队精神和软件开发思维的形成也有很大帮助。
3结语
C语言程序设计精品课程建设中关键问题探究是建设好精品课的灵魂,有了思路,在实践中就有了一个方向,在精品课程建设中才能取得一个好的效果。随着我国新教育改革的展开,会有更多更好的精品建设思想出现,需要我们广大教育工作者好好学习和总结,真正把教学改革工作落到实处。
参考文献:
[1]张丽萍,刘东升.程序设计精品课程建设的研究与实践[J].内蒙古师范大学学报:教育科学版,2007(1).