前言:想要写出一篇令人眼前一亮的文章吗?我们特意为您整理了5篇c语言课程设计范文,相信会为您的写作带来帮助,发现更多的写作思路和灵感。
C语言是最基本的计算机编程,是计算机、电子信息类等相关专业学生的专业入门课,在其学习过程中,要求必须掌握编程的技能。但是C语言的学习有其特点,规则比较多、知识点多,涉及到的编程程序等也比较难懂,在运行上代码的要求较高,程序执行效率高,因此更讲究教学和学习的方式方法,但是在我们的教学中,目前教学方法比较单一,随着信息化的发展,传统的教学模式已经无法适应,亟需改革。
1、传统型
这种教学模式,也是最常用的,课堂上以老师为主,学生只能被动的接受知识的传授。通过最直接“填鸭”式照本宣科,不管学生接受与否,最后的考核也是以知识点的记住与否,造成学生死记硬背,不能真正掌握知识。其基本模式为:学习——回答——纠错——总结。这种模式下,使得教师在教材以外的发挥余地极小,基本是“照本宣科”,强行灌输C语言的概念、特点、编程程序、基本的方法等,整个教学过程缺乏灵活机动、具有启发性的内容,学生被动的接受知识、被动的记忆、被检查、被考试、被批评等,日复一日的教条式训练,不能有效地激发学生的主观能动性与创造热情。
2、任务型
C语言教学区别于其他学科,在理论知识的传授之外,还需要培养学生的实际动手能力,因此,很多学校也采用“任务型”教学模式,基本模式为:根据具体要求提出任务—鼓励学生设计方案—实际操作—解决任务。在日常的教学中,学校大多会利用电脑等锻炼学生的实际动手能力,利用实际操作,锻炼编程、逻辑等能力,从而掌握C语言的基本知识。例如翻转课堂模式,教师将知识传授环节制作成教学微课,课前提供给学生预习,通过预习使课堂的实践性练习目的性更明确,教师随堂对学生遇到问题进行指导分析,从而培养学生独立思考能力和实际操作能力。这种模式的采用,相对于传统模式,有其进步性,这也是C语言等专业性、操作性学科区别于其他学科的特点决定的,在这种模式下更取决于教师自身的素质、知识、能力等,是整个课程的掌控者、引导者,他们的能力直接关系着教学成果。
二、信息化背景下面临的挑战
随着科技的发展,信息化在教学领域的应用越来越普遍,信息技术的日新月异,也使得其在课堂上,已经不仅仅是局限于简单地计算机和多媒体运用,移动技术、智能化与虚拟技术等为我们的教学提供了新的思路和方法,如何能使我们的教学与高速发展的信息化相结合,是教育领域不断探索的课题。C语言程序设计等课程具有很强的专业性要求,主要是建立在计算机信息技术的基础上,对于信息化的反应更为灵敏,传统的课堂上,以教师为中心的“面对面”的教育模式面临着挑战和冲击,用技术手段的灵活性与便利性来增强课程学习的兴趣和接受能力。随着新技术的广泛应用,会促使传统的教学模式发生变革,以教师为中心的教学模式逐渐转化为互动式教学模式,达到更好的教育效果。在C语言课程设计教学领域,进行信息化教学改革的尝试,充分利用信息技术,变革教学手段和模式,是信息化发展的必然要求。只有实现C语言课程的信息化教学改革,使得教育信息化能够普遍运用,才能展现出信息技术在推动C语言教学中的强大威力和广阔前景。
三、教学模式改革的基本对策
教学模式直接反映出一定的教学理念,也直接决定着教学成果。随着信息化的发展,教育信息化逐渐打破传统的教学模式,在这样的背景下,C语言教学模式的改革任务艰巨,如何构建新型的信息化教学模式也是我们在实践中不断摸索的问题。
1、充分利用信息化的科技手段
信息化的科技手段,给我们的教育领域带来变革,尤其是计算机领域的学习,其主要是建立在信息化发展的基础上,因此在教学中,更要与时俱进,与信息化的发展程度相互依存,相互辅助,C语言课程设计教学中,可以充分利用信息化的科技手段,如计算机技术、云计算技术、多媒体技术、网络技术、虚拟现实技术、通信技术、移动学习技术、人工智能、传感器技术等,这些技术的发展,带来C语言教育领域的变革。为提高C语言教学质量,激发学生学习C语言的积极性,我们可以在课程建设过程中充分利用现代技术带来的便利与多样性,以及趣味性。如在教学课件设计上,利用多媒体技术,图、文、动画并茂,减少其枯燥的理论传授,增加趣味性;利用网络技术,实现在线教育,建立“C语言程序设计”网站,分组进行网站维护,运用编程能力进行更新;应用现代的通信技术,建立微信学习群,让学生分享自己的学习经验,共享学习资源。
2、案例引导式教学模式
改革C语言教学模式,另一探索的模式为案例引导式教学模式,C语言的教学,是为了培养学生读程序、调试程序、写(仿照)程序的能力以及规范性编程的能力,学习最主要的目的是为了应用,对于编程的应用,只有具体的应用场景,即案例,才能更容易被接受,更易懂。案例引导式教学模式,在别的专业课教授中,常被使用,主要特点就是用案例去引导知识点的掌握,对案例进行分析,通过分析启发学生的思路,将学生带入到具体的案例中,让学生有一种“身临其境”的代入感,从而掌握具体的知识,学会在这种场景下解决问题的方法,这种模式的教学更有针对性、系统性。案例引导式教学模式在C语言课程设计教学中的运用是指针对C语言课程的每一个核心知识点,建立配套的案例,通过这些案例的学习和掌握,使得学生在例子的佐证下,更加了解C语言的应用,这种案例的设计,和我们的书本知识相结合,把理论知识融入到具体的案例中,进行综合性的阐述,如具体的计算机程序的编写,设计游戏环节,运用所学的C语言知识设计网站,并使之运行,可以在班吉内分组进行维护等,并加以各种领域成功案例或者失败经验的案例,让学生能够更进一步了解其应用范围、能力、领域等。
3、实践教学模式
C语言课程设计的学习,所需的能力不再是死记硬背,而是更注重实践和应用,因此我们在教学过程中,不能只传授书本知识,还要锻炼学生的动手能力和编程能力,实践教学模式应运而生,依靠大量的实践,将所学的知识转化为实际操作,得到进一步的应用。信息化技术为这种教学模式提供支撑服务,我们可以在课堂上设计各种实践环节,也可以在课堂后与各种软件公司、游戏公司、网络公司等合作,增加实践机会,让学生在具体的实践环节中,真正了解C语言的知识,并主动内化这些知识,变为实际操作能力。在这种教学模式改革中,如何能够更好的提高实践能力需要通过各个环节的相互配合,如课程设计上,增强实验、实训环节,让学生在熟练掌握C语言语法、程序结构的基本理论的同时,通过大量的实践操作,进一步掌握C语言的知识,学会编码;同是,积极与各软件、互联网、网络公司签订实践基地,让学生可以在实际应用中,边做边学,提高学生逻辑思维、实际操作能力,真正实现教学目的,熟练掌握计算机编程能力。
作者:王桂华 单位:营口职业技术学院
参考文献:
[1]徐新海,林宇斐.注重计算思维的启发式C语言语法教学[J].计算机教育,2014(17).
关键词 项目教学 C语言 教学实施 教学成果
中图分类号:G424 文献标识码:A
1 开设的目的和意义
较之于高等教育而言,高等职业教育无论在目标性还是教学的侧重点上,均存在着较大的差异性,后者通过对学生进行培养,毕业后可直接参加具体的工作,因其已经熟练的掌握了操作技能和技巧,所以能够独立完成工作任务。根据高职院校学生就业指导意见,当前高等职业教育教学应面向生产、管理以及建设和服务等一线行业,为这些部门和工作岗位输送人才,以下得去、用得上和留得住为基本原则,培养实践能力较强具有较好的职业道德的高技能人才。因此,要加强实践性课程教学,对保证人才培养质量显得尤为重要。
我院为了贯彻这种精神,立足区域经济发展现实情况,对专业课程进行了灵活的调整,其中以就业为主要导向,不断加快应用课程设计与创新。就当前我院工作实际情况来看,以由浅入深和逐渐深化为主要教学规律,并在此基础上构建了教学三层次、四环节之实践课程系统。实践教学的三个层次是:基本技能,专业拓展,综合创新;四个环节是:实验培训,实验实训,设计和课外实践。
比如,C语言课程,作为信息类专业的基础课程,程序设计都是在课程教学完成后进行,共有四十个学时,历时两周。为学生提供一个动手、动脑、独立实践的机会。
2 项目教学法简介
项目教学法是基于构建主义教学理论的一种教与学的模式。瑞士著名的心理学家皮亚杰认为:知识不是通过教师传授得到的,而是学生在一定的情境下,借助他人的帮助,利用必要的学习资料,通过意义构建的方式获得的。美国项目管理专家约翰·宾认为:项目是要在一定时间里,在预算规定的范围之内需要达到预定质量水平的一项一次性任务。
项目教学法是通过实施一个完整的项目进行教学活动,将学生融入到任务的过程中,让学生进行主动地学习,自主性地进行知识构建,在课堂教学中把理论与实践教学有机的结合起来,能充分地发挥学生的创造潜能,提高学生解决实际问题的能力。因此,在实际教学过程中,教师要将需要解决的问题或需要完成的任务以项目的形式交给学生,让学生在老师的指导下,用工作小组的方式,由学生自己按照实际的工作程序,共同制定计划,共同或者分工完成整个项目。在项目教学过程中,学习过程称为人人都参与的实践过程,注重的不是结果,而是整个项目完成的过程。
对于高等职业院校的技术教育教学而言,项目主要是指生产或者制造有应用价值的具体产品之任务。从技术领域来看,多数小产品、复杂产品等模型制作均可作为具体的项目,比如信息类专业开展网站建设、计算机组装以及建设局域网项目,电子类专业可开展报警器制作、加点组装等项目。
3 其基本特征
项目教学法与传统教学法相比具有较大的差别。主要表现在改变了传统教学中的三个中心:以教师为中心转变为以学生为中心;以课本为中心转变为以项目为中心;以课堂为中心转变为以实际经验为中心。项目教学法具有以下的特点:
实践性:项目源于企业,项目的主题与真实世界是紧密联系的,由浅入深,选择的项目具有典型性和使用性;自主性:提供学生根据个人兴趣进行选择的内容和展示的机会,让学生进行自主的学习,从而有效地促进了其创造力的发展;发展性:长期的项目结合,构成了实现教学目标的认知过程;评价的特殊性:项目性教学更注重的是学生在项目活动中能力的发展过程,评测的内容包括学生参加各项活动的表现,避免了传统的成绩定好坏的弊端。评测可以采用自评、小组评、教师综合评等方法、教师只有明确并抓住其教学的特点,才能更好地完成教学目标。
4 其在C语言课程设计中的实施
为更好进行课程设计教育教学,在多次实践基础上,总结出具体项目实施中主要注意的两个方面:
其一,教学内容主要事项。前导课因教学课时的影响,所以教师为赶教学进度,对结构体、基本操作以及共用体等知识的介绍不充分,也不够完善,更谈不上辅助实例进行讲解。对此,要根据学生对这些知识点的掌握程度,利用5个学时,实施区别式、辅导式的教学。
其二,由于学生对于项目管理的知识较少,针对此种情况,可以采用两个阶段实施补课行动。第一个阶段,安排曾经做得比较好的学生进行讲解相关经验;第二阶段,为项目实施阶段,教师应该针对学生发生的问题,及时给与指导,直到学生弄懂为止。
总之,通过此种教学方法,教师在观察学生、帮助学生的过程中,既开阔了视野,也提高了专业水平。项目教学法是师生共同完成项目、共同取得进步的好方法。
参考文献
关键词: C语言程序设计; 教学改革; 教学方法; 教学设计
中图分类号:TP311.11 文献标志码:A 文章编号:1006-8228(2014)07-65-03
Abstract: C language programming is a common core curriculum in software technical majors of vocational colleges and the software development knowledge essence. In order to enhance the teaching quality, the problems in teaching the C language programming in several years are studied. Based on the training objectives, a teaching reform plan is presented regarding to course contents, teaching material building, teaching methods and teaching results. Corresponding solutions are provided in this article. Teaching reform has obtained good effects and the teaching quality is progressed significantly.
Key words: C language programming; teaching reform; teaching methods; teaching design
0 引言
C语言课程通常在大学新生入校的第一学期开设,是学生接触程序设计的第一门课程,学习难度大,要取得好的成绩相对比较困难。如何在较短的时间内使学生掌握C语言的基础知识,获得编程能力,达到教学目标,是进行教学改革的重点。本文对实际存在的问题进行分析,结合作者近十年的C语言课程教学经验,在教学设计、课程内容组织、教学形式、教学方法和考核方式上大胆尝试改革,积累了一些实践经验,取得了不错的教学效果。
1 C语言程序设计课程教学现状及问题分析
长期以来,在“C语言程序设计”课程的教学过程中,存在着诸多影响学生学习积极性,影响教学质量的不利因素。从主观上来说,如教学方法陈旧、教学手段单调、学生学习积极性不高等;从客观上而言,C语言本身也有知识点多,概念抽象,编程算法使用灵活等特点。以下综合分析现存的几个具体问题。
1.1 教学方法没有创新
教学方面仍沿用老一套的理论加实验模式,实践训练与课堂教学未能很好地连贯,理论教学与实际应用脱节。教师的讲授照本宣科,忽视培养学生的实践能力和创新能力,较少考虑学生的实际学习状况,提供给学生主动思考的机会不多,重点和难点把握不好,引导学生积极思维方面欠缺。
1.2 教学手段相对单一
在教学安排上,理论课和实验课分离,在多媒体教室上理论课,然后过几天再在实验室安排实验课,这样对学习基础和自觉性稍差的高职学生来说很不合适。C语言程序设计这门课程需要实践教学,引入真实案例,培养学生分析问题和解决问题的能力,通过“教、学、做”达到对知识的深入理解和熟练应用。
1.3 学生基础知识薄弱
用C语言进行程序设计需要较为灵活的思维,而高职学生数学基础和逻辑思维能力较弱,习惯于死记概念、硬背知识点。教学中应训练他们思考问题、分析问题和解决问题的独立性。进而,培养其主动性。
1.4 概念抽象,知识点多
C语言中有大量的难以记忆和理解的概念,名词术语多、使用灵活、逻辑性强,在使用时容易出错。部分学生对抽象的内容始终难以掌握,甚至思维混乱,如++i,i--等。学生在学习中对一些复杂、灵活、综合性的算法,感到太难接受,独立编程时不知从何入手,渐渐失去学习的兴趣。
1.5 对学习重视程度不够
教师和学生均对本课程重视不够。有很多学生认为,这只是一门基础课,在以后的学习和实际工作中作用不大,在程序设计工作岗位中很少会使用到C语言,更愿意花较多的时间去学习C++、VB、JAVA等语言,从心理上抗拒这门课程的学习。而有的学校也对本课程重视不够,少有安排具有丰富教学经验的教师承担本门课程的教学。
2 教学设计及课程内容组织的改革与实践
为了探究适合高职软件技术专业人才培养的C语言课程教学特点,笔者经过多年的一线教学实践研究与探索,重新进行教学设计,对课程的设计思路是:以学生为主体,以教师为主导,基于实际工作任务精心构建课程内容,通过项目驱动、任务引领的模式培养学生的程序设计能力。
2.1 教学设计
从分析学生的基本特点入手,融入现代教育理念,重新进行课程的教学设计。本着“以学生为主体,以教师为主导,以实际案例为主线”的教学基本原则,积极鼓励学生通过“认知、理解、应用、综合”四个阶段的学习,达到使用C语言熟练编写程序的学习目标。
2.1.1 以学生为主体
教学以学生为主体,变常规的“教学”为创新的“导学”。充分利用现代化的教学设备提供学习资源,发挥学生的主体作用,提出问题,引导学生分析问题和解决问题。
对于第一次接触程序设计的学生,其编程训练应从小程序和一些简单问题起步,通过一些常用的经典算法和相应的案例学习,逐步掌握编程方法,待有了一定的知识储备后,再逐渐加大练习的难度,实现从算法到程序代码的转化,使学生能够将一个实际问题描述为一个计算机算法,然后再编写相应的程序代码。
2.1.2 以教师为主导
教师课前要了解学生的基本学习情况,了解其已有的知识结构和技能,根据学生的实际情况设计教学环节,根据知识点设置可扩散思维的问题,有重点地讲解,引导学生积极思维和主动学习。对于少数学习特别优秀且自学能力强的学生,可适当加快教学引导,增加学习难度和深度,这样可以在学生中树立榜样,带动其他学生自觉利用所学知识解决相关问题,提高学习质量[1]。
从第一次课开始,教师就要引导学生主动学习。选取的素材可以是当前最热门的IT话题,也可以从不同的专业角度和实际应用为学生介绍学习本课程的意义和作用,同时介绍一些历届学生参加省级和国家级的程序设计竞赛所取得的成绩,列举一些学生被选拔到知名企业实习的例子,如微软实习生等,引导学生对学习本门课程产生较大的兴趣。
2.1.3 以实际案例为主线
教学中引入实际案例,根据解决案例中的问题需要的知识结构选取教学内容,以实际编写解决问题的程序代码作为学习的主线。选用的案例如:“计算机三角形的周长和面积”、“计算机模拟抽奖”、“竞赛现场评分统计”等,选择案例的难度要形成一个梯度,随着学习的深入,学生的编程能力增强,逐渐形成系统化的程序设计思维。
常规的程序设计课程通常都注重语句、语法,以程序设计语言自身的体系展开,学生学习时难免会感觉枯燥难学,学过后又少有用来解决实际问题。而以实际案例贯穿整个教学过程,训练学生像程序员一样思考问题,使之逻辑思维更加严密,有利于学生整体素质的提高,更有利于程序设计课程整体教学水平的提高[1]。
2.2 课程内容组织
2.2.1 课程内容选取的基本原则
教学改革首要任务是教学内容的选择,如何选取教学内容是改革的第一步。“C语言”的语法结构复杂,对初学者学习难度大。高职学生虽然学习基础比本科生略差,却乐于动手、可塑性较强。基于此,课程内容选取的原则是:根据学生情况、课程特点以及后续课程对知识结构的要求,从实际工作需要出发,按所学知识够用好用的标准,确定本课程的必修内容。
2.2.2 课程内容的选取
本课程选择具有实际应用的典型案例作为具体的教学内容。将多个小项目按照编写程序的难易程度渐次推出,使学生把所学内容紧密结合实际应用,在基于工作过程的学习中获得职业能力。本课程具体内容的选取如表1[2]。
3 教学形式及教学方法的改革与实践
3.1 教学形式
⑴ 根据C语言知识结构的内在联系,依次安排教学内容。以各个小项目的开发工作主导教学过程,将课堂学习和工作过程学习融为一个整体。
⑵ 运用项目导向、任务驱动的方式,设计课程引入、启发、讲解、讨论、实训等过程,采用教学做一体化的形式带动学生自主学习,通过工作任务进行能力训练。
⑶ 在每个学习单元中均将应掌握的知识融入项目开发任务中,进而转化为学习任务,激发学生的学习兴趣,让学生在主动学习中完成各个任务。学习过程中注重教、学、做相结合,从讲解、演示、练习、讨论,递进到学生自主学习、独立完成任务。
⑷ 教学过程中注重学生能力的培养。如自主学习能力及独立思考、分析问题、解决问题的能力等。
3.2 教学方法
为确保课程教学目标的实现,让学生通过学习高级编程语言的知识,能够使用C语言编写应用程序,同时培养学生程序设计的思维能力以及探索创新的能力,我们在教学中引入了多种方法进行改革,取得了不错的教学效果。
3.2.1 分析案例,启发引导, 增强学习兴趣
每一次上课都引入一个实际案例。教师对案例进行分析,讲解案例中涉及的知识点,然后提出相关问题,给出初步解决方案。比如递归算法一直是C语言教学中的难点,通过分析如“扫雷游戏”这样学生比较有兴趣的问题来讲解算法的构造, 学生较容易理解递归算法的工作框架及流程。讲解二维数组也是通过“学生成绩计算与统计”这个项目来完成的。通过具体的案例分析, 既能把抽象问题具体化,又可以调动学生的学习兴趣,较快接受新知识[3]。
3.2.2 知识讲解与应用并重,训练程序设计思维模式
讲解C语言的知识点时,不能只侧重于简单的语法知识介绍,还应注重知识的连贯,同时辅以相应的应用技能训练,以免学生死记语法而忽略了程序设计方法。强化“自顶向下、逐步细化分解”的程序设计思维训练,培养学生在编写复杂代码之前能将复杂的问题分解为若干个逻辑结构合理的简单算法的能力,探索解决问题的方法。
3.2.3 “教、学、做”一体化
“教、学、做”一体化的教学方法,符合学生的认知规律,适合运用于项目导向式的案例教学。课堂上教师注重把握好“应用为主线,减少抽象理论描述”的原则,将“精讲多练,以教师为主导,以学生为主体”的教学设计理念贯穿于整个教学过程。注重调动学生的学习积极性,启发学生勤思考、多动手,充分利用好学生的“听、思、做、练”各个阶段,及时检查思和练的效果,培养学生求真务实的科学精神[4]。
3.2.4 分组讨论,培养团队协作能力
对于难度不大的学习内容,可安排学生自学,而对于综合性较强的学习内容,则可以安排学生分组进行讨论。自学和讨论的结果由学生在课堂上向同学讲述,让每个学生都有积极参与的兴趣,这样既能活跃课堂气氛,又能培养学生的自学能力和团队协作精神[5]。
3.2.5 课内外训练相结合,培养学生综合应用能力
课内教师进行引导教学,通过典型案例讲解程序设计的基本方法、程序测试方法、程序调试和排错纠错方法,并为每次课设计相应的实训项目。课内时间有限,鼓励学生课外进行自主学习,将课堂上学习过的内容融会贯通,充分地消化和吸收。安排有一定挑战性的实训项目,鼓励学生课外多训练,倡导学生课后以寝室为单位,组成学习小组,进行讨论、分析和解决问题。鼓励学生积极参加各类程序设计比赛,以赛促学。如参加广东省举办的“高校杯”程序设计比赛,进一步提高学生程序设计的兴趣,提升综合应用能力。
4 考核方式的改革与实践
考核采用闭卷上机编程和实训项目答辩相结合的形式。
4.1 闭卷上机考试
上机测试占总成绩的70%,考核基本知识的掌握情况。主要考核基本语法、常用算法、编写小型程序、测试小型程序和解决一般问题的能力。
教师根据考核要求给出7个编程题,让学生任选5个。题目涵盖基础知识的80%以上,对每个编程题提出具体要求,如使用冒泡法排序、使用选择法排序、使用函数、使用指针等非常具体的要求,以较为全面的考核学生对知识的掌握情况。
4.2 实训项目答辩
实训项目答辩占总成绩的30%,考核学生运用知识的能力、综合程序设计的能力、分析问题和解决问题的能力,以及团队合作能力。以下给出具体实施方法。
⑴ 教师给出8-10个实训项目,供学生任意选择一项。
⑵ 学生5-6人为一组,在给定的项目中选择一项,也可以自行拟定其他的项目。
⑶ 成立答辩小组。答辩小组由任课教师、课代表和各小组指派的一名同学组成。
⑷ 答辩时,先由各小组指派一名同学对他们的项目设计进行讲解,然后小组其他成员接受答辩小组的提问。
⑸ 成绩由答辩小组各成员现场打分,分数统计后去掉最高分和最低分,取平均值记入小组每个成员的成绩表。
这样的考核方式,有利于学生灵活运用所学知识,有利于创新思维的培养。
5 结束语
通过改进课程教学方法、重新序化教学内容、不断完善教学手段、改进考核方式等教学改革,有效提高了学生主动学习的积极性。以往不及格率最高的C语言课程,近三年的及格率均在90%以上,30%以上的学生获得了优秀,对于课程设计绝大多数学生都完成得很好。我校大一学生在2013年的“蓝桥杯”全国软件专业人才设计与创业大赛中取得了一、二等奖的好成绩,这从一个侧面验证了教学改革是卓有成效的。
虽然高职院校对基础核心课程不断提高重视程度,但C语言程序设计课程的教学方法、教学内容、考核方式的研究和改革是一个长期的课题,必须与时俱进,在教学实践中不断探索新思路。
参考文献:
[1] 鲁红英,肖思和,孙淑霞.“C/C++语言程序设计”课程教学改革与实践[J].计算机教育,2013.7:95-98
[2] 康玉忠,甘宏,段传林.C语言程序设计项目教程(第1版)[M].中国商业出版社,2010.
[3] 李杰,刘延岭,苏建华.C程序设计课程教学方法的实践与探索[J].计算机与网络,2014.1:127
关键字:计算思维;C语言;课程建设;能力培养
中图分类号:G642.0 文献标识码:A 文章编号:1009-3044(2015)22-0080-01
1 目前《C语言》课程教学中存在的问题
目前,我校非计算机专业学生开设的《C语言》课程,开始时由于学生对程序设计怀着神秘、好奇的心情,能够认真听课,但随着大量的难以记忆的新概念、新术语以及新规则出现以后,学生的学习兴趣和学习状态逐步下降。究其原因,一是实际教学中基本上采用“理论讲授+ 实例剖析+ 编程实践”的传统教学方法,对学生的学习兴趣、专业特点很少进行关注与分析; 二是教材中的所涉及到的实际教学案例脱离实际应用,不能与学生自身专业特点相结合,不利于提高学生的学习兴趣和积极性,不利于学生以后运用所学到的知识解决其专业问题,不能满足当前社会对人才培养的需求。
2 计算思维与《C语言》课程
计算思维[1]( Computational Thinking) 是运用计算机科学的基础概念( 即思想和方法) 进行问题求解、系统设计,以及人类行为理解的涵盖计算机科学之广度的一系列思维活动,它不仅属于计算机科学家,它应当是每一个人的基本技能。计算思维的本质就是抽象和自动化[2],即如何按照计算机求解问题的基本方法去考虑问题的求解,以便构建出相应的算法和基本程序。而《C语言》课程设置的目的是让学生学习计算机分析和解决问题的基本思路和过程,为其以后在所学专业中使用计算机技术来解决其专业问题奠定基础,从而实现培养计算机技术与其专业技术交叉融合的复合型应用人才。
显然,《C语言》课程的内容最能够体现语言级的问题求解的方法,这也正是计算思维能力培养的重要内容。因此,在《C语言》课程教学中非常适合融入具有计算思维能力的培养。
3 基于计算思维能力培养的《C语言》课程建设的基本方法
3.1 构建具有行业背景与专业特色的基于计算思维能力培养的《C语言》课程教学体系
结合我校非计算机专业计算机应用的实际需求,在《C语言》课程中更新教学理念,改进教学方法和教学手段,合理安排课程导入,全面梳理和优化教学内容、实验内容以及课程设计,突出具有行业背景与专业特色的计算机应用技术,强化基于计算机科学基本概念、方法和思想的计算思维能力、学习能力和实践能力的培养,强调计算思维的重要性,有意识地将计算思维能力培养融入到《C语言》课程基础知识和基本技能的训练中,形成基于计算思维能力培养的《C语言》课程教学体系。
在实际教学过程中,讲授知识的同时,要注重计算思维能力的培养。通过采用任务驱动、项目导向等方式使学生明确各阶段的学习目标,加强引导学生经历“问题抽象为算法”的过程,提倡算法的多样化,注重典型算法的讲授和理解;同时要加强训练和固化学生的计算思维,教师通过提出各种各样的测试题,让学生运用计算思维进行分析、比较、综合、抽象和概况,提炼出有用信息,实现驾驭和运用所学知识去解决新问题,从而训练学生的思维技巧,体验和固化其计算思维;针对不同专业的学生,在完成每个章节的授课任务后,增设基于专业应用的实际案例的讨论环节,教师要根据其专业特色提出实际问题,引导学生主动思考、主动学习,激发学生发现问题、提出问题,然后解决问题。在此过程中学生对所学知识进行重构的过程就是计算思维能力培养的过程;在课程设计阶段,设计计算机技术与专业技术相融合的课程设计题目,让学生能够运用计算机分析和解决问题的基本思路和过程来解决其专业问题和专业难题,为学生日后利用计算机技术解决专业问题打下良好的基础。
3.2 构建基于计算思维能力培养的网络教学平台
构建完整地网络教学平台,解决学习时间和地点限制的问题,给学生提供一个开放学习的环境,使学生能够随时随地利用网络平台进行学习,这是对课堂教学的必要补充。平台上不仅要提供了计算机科学最基本、最核心的概念、算法及思路,还要提供计算思维在其专业技术领域中的应用与实践,拓展学生以专业特色为依托的计算思维能力,为计算机科学有效地融入其专业学习提供一个有效的衔接平台。这样的学习平台既能够满足学生学习的基本要求,又能满足学生学习的更高要求,进而提高学生学习成就感,激发学生探索学习的兴趣。
4 总结
计算思维能力的培养成为国际和国内计算机教育需要重点研究的重要课题,国家教育部已经明确计算思维在人才培养中的重要作用。对于我校这样具有行业背景与专业特色的应用型本科院校,有必要根据自身的特点量身打造出适合在《C语言》课程中培养计算思维能力的教学体系,实现提高教学质量的目的,提高学生具有运用计算思维解决其专业中的技术问题和技术难题的能力,达到培养计算机技术与其他学科交叉融合的复合型应用型人才的目标。
参考文献:
关键词:C语言 程序设计课程 理论教学 实践教学
C语言课程设计是计算机教学中的重要课程之一,具有综合实践性和广泛的应用性,为了进一步提升C语言程序设计课程的教学质量,增强教学效果,发挥其强大的作用效果。如何解决C语言程序设计课程教学中普遍存在的问题,让学生对程序设计有一个完整的认识,进而培养和提高学生的综合素质,是值得每一位从事程序设计语言教学的教师去认真研究的课题。本文从实践应用的角度出发,结合个人教学经验,对C语言程序设计的教学方法进行了探索和研究,希望对高校C语言程序设计教学改革产生积极的作用。
1、 C语言教学中存在的问题与现状
在多年教学实践中发现学生普遍认为课程难度较大,特别是到第二学期学到函数、指针、文件,有些学生感觉越来越困难,从预习作业不能完成到实验课三道题只能完成一题,越来越失去学习的信心。还有些学生对学习C语言很茫然,不知学了有什么用。现在的学生对上网、淘宝、微信、手游、网游等感兴趣,对学习C语言觉得和现实脱节,课本的例子和完成的作业实验基本是一些简单的数值计算,所以认为C语言学了没用,也缺乏了学习动力。再加上采取的教学方法比较陈旧、单一,往往采用传统的教师讲授的填鸭式教学,学生学习缺乏主动性。
1.1学习目的不明确。一些学生不清楚程序课程的学习目的和意义,认为就是学习语法规则,学习内容抽象并且晦涩难懂,没有实用价值,学习只是为了考试及格,认为大一开设的课程是基础课,和专业课联系不大,对自己的就业没有影响。一些非计算机专业学生学习该课程目的甚至只是为能通过计算机等级考试拿到证书。
1.2学习内容不合理。许多老师在讲授课程内容时往往都是先给出一般的语法格式,然后介绍语句的语法规则,最后讲解语法要点和例题,没有易于理解和能够提高学习的案例,由于书本内容死板枯燥且和实际问题脱节,无法满足学生的认识水平,也不能调动学生学习的兴趣。在进行上机实验时,试验内容往往是书本上的或是老师上课时所讲的案例,由于内容的选择不恰当,上机实践很大一部分情况下都变成了打字练习,或者只会验证性地做一些修改对错、得出程序运行结果的实验,一旦要求功能改进,不能进行算法和语法结构的调整,最后学生总会觉得出C语言难学的结论。
1.3教学方式不完善。部分老师的教学仍然采用理论讲授在先、上机实验验证、最后布置作业巩固的传统教学模式,在教学过程中过多强调学习语法格式等理论知识,重点分析程序和算法的运行过程,而不是讲解根据问题如何分析和设计算法和程序,从而致使学生的程序设计能力不强。这种教学模式培养出的学生虽然理论知识学得很好,考试的时候也可以拿到高分,但在真正要求解决实际问题的时候,往往没有编写程序的思路,不知如何下手。由于经常解决不了问题,不能体会到计算机编程在解决实际问题时带来的便捷以及没有编程的成就感,久而久之,学生也就失去了学习计算机编程的动力。
2、要注重激发学生的学习兴趣
从教育心理学的角度来说,兴趣是一个人倾向于认识研究获得某种知识的心理特征,是推动人们求知的一种内在力量。人的注意力、观察力、思维能力、记忆力乃至想象力都和兴趣紧密相连,兴趣能使人的认识理解记忆处于最佳状态,思维能力最为主动和活跃。有了学习兴趣,学生才有可能有意识地去思考和解决问题,因此在C语言教学的过程中要注重激发学生的学习兴趣。
2.1 以小游戏激发学生的学习兴趣。以前课堂举例都以数值计算为主,如求5!,输出100~200之间所有的素数,学生觉得较为枯燥,没什么意义和乐趣,所以可以投其所好,举一些小游戏的例子让学生编写并尝试。如可以用猜数、简易贪吃蛇等让学生觉得C语言学习和实践很有乐趣和挑战,这样就激发了学生学习的兴趣。
2.2 以项目驱动法培养学生的软件开发的能力。项目驱动教学法鼓励学生通过项目中涉及到的课程内容主动地提出问题,然后再去探索、寻找答案,改变仅由教师上课的填鸭式教学模式。在实施项目的过程中,将学生分成项目小组,有项目组长组织小组活动,这样既培养了学生发现问题、解决问题的能力,同时锻炼了团队合作精神。用项目驱动法来进行教学,以一个具体的项目,贯通需要的知识点,并且按照软件工程的思想,经历从需求分析到设计再到编程和测试运行的几个阶段,逐步培养学生软件开发的思想和能力。
2.3 以动画演示帮助学生理解课程难点。一些算法、概念和步骤仅由教师口头讲授,太抽象,缺乏想象力的学生很难理解,所以用FLASH制作动画将步骤演示给学生看,提高课堂生动性及学生的学习兴趣。如通过动画演示冒泡排序、选择排序、插入、二分法、递归过程、汉诺塔问题、指针、数组、结构体和链表的创建、遍历、插入、删除等操作。
2.4 以网络教学增加师生互动。可以把教学内容做成课程网站。课前上课资料,方便学生预习。学生课后可以随时查看每次讲课的内容,遇到问题可以进入网站查看资料,也可以在公告栏或讨论板问题,寻求教师和同学的帮助。还可以在网站上布置作业和收取作业,参考资料和前沿动态。
2.5 以分层教学适应学生差异。学生刚入校时的编程水平有差异,有的是没接触过编程,有的却学过VB编程,或者有的参加过中小学信息技术培训和比赛,那么如果按照统一标准教学,则有的困难很大,有的却觉得太简单没意思。针对这种情况采取班内分层教学,根据是否有编程基础和能力将学生分成A、B、C三等,在教学、实验题和作业上有一定区别,为A等学生增加难度题,为C等学生减少题目数量要求质量。
3、 要设计合理的评价体系
C语言程序设计课程包括理论学习和上机实践两部分,必须把理论和实践结合起来,对传统课程的考核方式进行改革,才能促使教学效果向最好的方向发展,课程教学的各个环节要坚持把学生创造性思维和应用能力培养作为重要内容。在具体的操作过程中,运用方式包括以下部分:对于理论部分考核要占到总成绩的50%,主要对学生掌握基本知识与理论知识进行考核;对于上机实验要点到成绩的20%,70多分的时间要包含一条改错题和二条程序设计题,其中,改错题主要考核学生语法知识和思维分析能力;程序设计题重点对学生的算法与解决实际问题的能力进行考核;课程设计部分要占到总成绩的20%,平时作业要占到总成绩的10%,重点考核学生平时作业完成的具体情况和对待作业的态度。用这种考评方法,一方面可以避免对学生考核时的片面性认识同时又兼顾了学习过程中的各个环节,更重要的是刺激了学生的学习的积极性和创造性,对培养高水平、高能力的学生创造了良好的条件。
总之,C语言是计算机专业和相关专业的一门重要基础课程,但是具有相当的难度和枯燥性,大多数学生难以掌握,所以在教学中要不断探索总结经验,充分利用现代教学手段,激发学生的学习兴趣,灵活应用各种教学方法,这才能达到较好的教学效果。
参考文献:
[1]刘建花.C语言程序设计的教学改革与实践探讨[J].淮海工学院学报, 2011,9(15):87-88.
[2]林清野.如何提高高校学生对《C语言程序设计》课的兴趣[J].内江科技,2011,3(9):59.
[3]李博.高职C语言课程教学探讨[J].价值工程,2011,26(21):242-243.