第一篇:程序设计教学方法改革
1现行教学方法存在的问题
1.1教学与实践脱节VFP是一门操作性很强的课程,我院以往的理论课在教室上,实验课在机房上,这种理论和实践相脱离的教学模式,不能收到很好的教学效果。任何一种计算机应用软件的重点都在于操作的实现过程,而仅采用PPT讲解,学生只能对软件有感性认识,容易出现教师虽已讲完,但学生仍然不知道如何操作软件的情况。另外,实验课和理论课往往有一定的时间间隔,理论课刚讲完就应该进行及时操作演练这样学生才能更好地掌握。学生只有通过上机实践才能消化理解并掌握所学内容,但目前教学中过多地强调理论教学,忽视了实验教学。1.2教学过程缺乏互动环节由于我院VFP理论课在教室开展,只有一台教室机可用,加上受教学进度和课时所限,不可能让每名学生都有机会操作,所以教学互动性较差。另外,我院虽然有充足的计算机教室供计算机基础、程序设计等课程教学使用。但是,教师多数情况下还是在一台计算机上操作课程学习内容,再通过投影仪呈现在屏幕上,尽管这比单纯采用PPT讲解有了很大改善,但由于视觉效果等原因,大部分学生在课堂上只能学会少部分知识。有的学生在教师讲解过程中试着边听边操作,但又往往跟不上教师的节奏,因此,教学过程中师生难以形成有效互动,教学效果受到影响。
2改革方案
2.1解决计算机程序设计入门难、理解难的问题教师在VFP教学过程中帮助学生建立起一个完整的学习目标框架,让学生带着明确的学习目标来完成每节课的学习。教师在上第一课时不再像以往那样主要讲授一些VFP的概念、发展历史、语言结构等,而主要演示准备好的一个完整的数据库管理实例(可以选择和医学、实际生活相关的实例),如药品管理系统、学生档案管理系统等。在演示过程中介绍该系统的主要功能及每个界面的使用方法,并让学生亲自上机操作,体验管理系统的使用,让学生了解VFP并不是单纯的程序设计,而是一个完整的数据库管理系统。通过实际操作,学生会对VFP有一个感性认识,同时也对VFP课程产生学习兴趣。此时要求学生改变以往的分散式记忆方式,将所有学习内容统一成一个整体,在头脑中建立一个完整的学习框架。另外,教师在教学过程中,要始终坚持以案例式教学为主,适当结合其他教学方法来完成每一节课的教学。如把实例药品管理系统分解成若干部分,应用到每节课的教学之中,最终完成整个系统的讲解。2.2解决VFP教学和实践相脱离的问题将理论课和实验课都安排在计算机房来完成,并引入管鲍多媒体电子教室软件和电子白板辅助教学,以提高教学效果。教学方法以案例式教学法为主,其他教学法为辅(如演示法、讲授法)。(1)将理论课从普通教室转移到计算机房,利用机房的多媒体设备实现同步教学演示,教师在上面讲解,学生及时模仿操作,使学生动手能力得到一定程度的提高。此时电子教室软件将会发挥重要的作用。电子教室是在教室中,以计算机技术为基础,以多媒体技术为核心,通过网络技术实现众多计算机分布式控制的电子教学平台。由于在计算机房上课,每名学生都有一台计算机,因此在讲授知识的同时穿插上机操作很方便,每名学生都有练习的机会。教师可以利用管鲍多媒体电子教室软件的“屏幕广播”功能让每名学生电脑都显示当前讲授的PPT内容和VFP操作界面。(2)实验课采用任务驱动式教学法。为了更好地提高学生的操作能力,教师可以在每节实验课开始之前,安排好实验任务,并且采取积分制。由于VFP的考核方法是上机+笔试,该积分直接与学生的期末成绩挂钩。这种以成绩为驱动的锻炼模式,激发了学生的实验积极性,提高了实验教学效率,增强了学生的动手能力。在实验课上也可以充分利用电子教室软件,监管每名学生的上机情况,且在课程结束学生提交作业时,方便教师及时检查学生的实验效果。2.3解决课堂缺少互动的问题以能力培养为中心组织教学,使每堂课都变成“我想学什么”和“我要如何学”,充分调动学生的能动性。教师的作用不是向学生灌输知识,而是帮助和引导学生去建构自己的知识。为了激发学生的学习兴趣,在课堂上演示用VFP编写的实用程序,让学生了解VFP的用途,从而调动学生的学习积极性。另外,让学生动手操作、及时表达自己的想法,不仅能够活跃课堂气氛,而且也提高了学生的学习主动性,达到互动式教学的目的。教师还可以利用电子教室的“监控转播”功能,随时随地了解学生的操作过程,一旦发现学生操作中出现问题,马上进行远程控制或广播教学。
3改革的意义
VFP教学方法的改革使非计算机专业的学生很容易理解程序设计思想,更好地掌握信息管理技术;同时也调动了学生的学习积极性和主动性,为其他计算机数据库管理软件的学习奠定基础。
作者:李丹 刘春华 单位:首都医科大学燕京医学院
第二篇:程序设计课程教学改革
一、高职院校程序设计课程教学的现状与存在的问题
JAVA语言因为其具有简单、可移植性好、安全性高、并发性等优势而成为广泛使用的程序设计语言,从小程序如桌面级应用开发和手机终端应用,大程序如企业级应用,JAVA无处不在。JAVA程序设计课程作为计算机或相关专业的必修课,不但有较强的理论性,更有很强的实践性,很多高职院校都开设了JAVA程序设计课程,也在教学方法上进行了很多教学改革。然而学生在学习完JAVA课程以后,虽然学生编程能力有所提高,但总觉得没有获得专业方向上的强化,编程能力和市场需求还存在很大的差距。几年来,为了提高学生的实践动手能力,我们课题组教师采取了基于工作过程的项目教学法,进行考核方式的改革,取得了一定的成效,但还是存在一些问题:(1)程序设计课程的教学内容主要以讲授语法概念为主,内容比较抽象枯燥,难以激发学生学习兴趣。再加上当前高职学生学习能力较差,基础不好,对程序设计类课程有一种天生的畏难情绪,学习热情不高。(2)教师在教学中采用的案例只是针对某个知识点,案例的选取与实际应用脱节,案例与案例之间缺乏一种有机的联系,实例不实,讲解内容纠结于语法之中,学生学习完后只见树木,不见森林,不能有效培养学生的整体系统开发能力。譬如在JAVA中花费大量时间讲述的AWT和Swing技术,目前很少有软件企业使用进行界面开发。这就造成学生学习的知识和市场需求脱节,学无以用。(3)教师在教学工作中教学形式比较单一呆板,忽视对错误程序的分析与讲解,直接讲结论,不讲发现结论的过程,没有引导学生去发现创新。在具体的教学环节上,老师讲授的多,学生思考的少,没有有意识地去锻炼学生独立自主开发应用的能力,忽视了团队合作能力。(4)考核方式主要还是以传统的笔试方式为主,以语法规则为主要考核内容,即使是上机考试也只是编程类题目,不能对学生的实践能力、整体系统开发能力、团队合作能力进行客观有效地评价。
二、基于CDIO的程序设计课程教学改革措施
实施JAVA课程的CDIO教学模式,首先要根据用人企业对人才的具体需求,本着“必需、够用”的原则,针对高职学生的特点,分析出高职学生应该具有的专业核心能力,提出合理的、可操作的教学目标。其次根据目标,构建可操作的教学体系,培养学生的专业能力,专业能力通过一系列的目标途径进行有针对性的培养和训练。(一)重新定位Java程序设计课程教学目标传统的Java程序设计课程对教学目标的确认,主要从Java语法、规则的掌握和编程来衡量[4]。但用人企业对软件人才的需求,除了编程能力以外,还需要具备良好的团队协作能力、沟通能力、职业素养等。因此,我们重新定位了Java程序设计课程教学目标。如表1所示。(二)基于工作过程的案例教学法的教学组织当前高职学生的素质不断下降,学习能力普遍较低,对程序设计课程有畏难情绪,因此我们在Java程序设计课程教学过程中,必须循序渐进,降低学生入门的门槛,让他们在学习过程中觉得目标并非遥不可及,慢慢感受到学习的兴趣,否则有可能一开始就挫伤学生学习的积极性。我们课题组在教学过程中,从经典的小程序入手,首先向学生展示Java程序经典案例,告诉学生Java程序能做什么,激发学生学习兴趣,然后将整个教学过程分为几个经典案例,案例涵盖了Java课程的大部分的教学内容。如表2所示。这样做克服了单纯的说教式和填鸭式教学方式的不足,让教学内容变得直观。对于很多不常用的功能,如很多教程重点介绍的AWT和Swing进行界面设计等部分,直接在NetBeans平台中进行,不再进行复杂枯燥的程序代码理论讲解,不仅节约了时间,还避免了学生学无以用的尴尬。(三)考核方式灵活,力求客观公正评价学生能力Java程序设计课程是一门实践性很强的课程,对学生的考核我们力求减少对记忆内容的考核,增加对应用能力的考核,以项目考核为主。项目考核内容包括平时考勤、软件开发工具使用熟练程度、程序结构和语义、程序设计过程是否规范、项目答辩、沟通表达能力、团队协作能力等。这种考核方式对教师和学生都提出了更高的要求。对教师来说,要求教师在日常教学过程中定期检查学生完成情况;对学生来说,要阶段性地接受教师检查,完成每个阶段的任务,从而杜绝学生考前临时抱佛脚的念头。
三、结束语
课题组在实施了基于CDIO理念的Java程序设计课程实验教学改革后,学生学习兴趣和自信心大大增强,学习氛围越来越好,学习主动性不断增强,学生对程序设计课程的态度由要我学变成了我要学,80%以上的应届毕业生实现了计算机相关专业的一次性就业。现在学生充分利用课余时间,在教师指导下,积极参加各项学科竞赛和教师科研课题,不断提高自身素质。自2011年以来,课题组教师立项省级以上教研教改课题5项,学生在省级以上学科竞赛获得奖项十余个。可见,面对生源素质不断下降的情况,我们必须不断探索新的教学方法,掌握新的教育理念,不断进行课程改革,才能充分调动学生的学习积极性,不断提高人才培养水平。
作者:邓飞 单位:怀化职业技术学院
第三篇:程序设计教学改革
1计算思维对人才培养的影响
计算思维之所以成为大学计算机教育界热点在于这种思维方式不仅对于计算机学科、软件工程学科有不言而喻的影响,而且对于其他学科人才也有着重要的影响力[4]。例如,1998年诺贝尔化学奖的获得者波普(JohnPople)成功地把计算机应用于化学研究,开发了Gaussian软件包,该软件包已成为化学领域研究中的重要工具。目前,大学计算机基础课程的教学中普遍存在“狭义工具论”现象,即主要教授学生如何使用计算机。大学教育仅仅关注当前具体操作层面的教学是难以满足各学科专业学生未来计算能力的需求,难以跨越由通用计算手段学习到未来专业计算手段应用与研究之间的鸿沟。计算思维的培育是克服狭义工具论的有效途径。思维具有普适性,可跨越时间性,能够潜移默化地融入到未来的创新工作中。因此,“把计算思维能力的培养作为计算机基础教学的核心任务”已经成为许多高校的普遍共识[5]。然而,如何将培养计算思维落实到具体的课程内容和教学过程中,即计算思维能力培养的落地问题,依然需要当前众多学者与一线教师不断思考、实践和总结[6-7]。
2基于计算思维的C++面向对象程序设计教学改革
C++面向对象程序设计是北京理工大学信息与电子学院信息类专业学生的一门公共基础课,该课程以C语言程序设计为先修课程,以数据结构与算法设计为后续课程。笔者根据这门课程的自身特点及其在教学计划中的位置,以加强计算思维能力培养为目标,提出相应的教学改革理念和举措。2.1改革模式将计算思维能力培养融入课程的方法大体有3种模式:全面更新式、内容重组式和方法推动式。3种方法的革新度由强到弱。全面更新式属于大幅度改进,需要开设类似于“计算思维概论”的通识课程,目前开设该课程的有哈尔滨工业大学(战德臣教授主讲)、南京大学(陈道蓄教授主讲)、上海交通大学(元昌安教授主讲)等。这种方式对教师有相当高的要求,需要对整个计算学科都有所了解,并能根据长期的实践经验展现出思维的光芒。此外,该课的内容跨度较大,内容深度不容易把握。过于浅显则发挥的作用类似科普讲座,难以实现培养思维方式的教学目的;如果知识点既有宽度又具有相当的深度,对学生的接纳水平则有较高的要求,基础较差的学生很可能一头雾水。因此,这种方式更适合高水平的教师和学生,如具有丰富教学经验的资深教授主讲的本科实验班课程或者研究生课程。内容重组式和方法推动式保持了现有的课程体系,仅对知识结构和教学方法进行调整。这2种方式可以充分利用现有的教师资源,在每门课程中有意识地、渐进式地将计算思维能力培养融入其中,在传授基本知识的同时培养思维和应用能力。通常,大学一年级的学生没有计算机基础,而一定的计算机基础有助于计算思维的理解。本专业在大学一年级开设计算机基础与C语言程序设计课程,学生经过了大一课程的训练,已经具有一定的计算机基础,在大学二年级上学期开设的C++面向对象程序设计特别适合于接纳思维训练。2.2教学内容对于大多数非计算机专业的学生而言,学习程序设计的目的是学习计算机分析和解决问题的基本方法和思路,而不是成为程序员。显然,程序设计课程的内容最能体现语言级的问题求解方法,是计算思维能力培养的重要内容。C++面向对象程序设计的语言载体是C++。C++既是设计工具,又是实现工具,具有层次分明的抽象编程能力。学生在充分理解和实践了过程和函数之后,就可以抽象到类,直至面向对象的编程描述,即高度抽象地描述事物,而抽象正是计算思维的本质之一。因此,C++面向对象程序设计课程是对学生进行思维训练的一个有吸引力、直接的和可操作的平台。C++语言内容非常庞大,在面向对象程序设计课程中所选择的主要内容如图1所示。课程不仅要满足教学大纲的基本要求,还要强化层次结构以体现思维感,即以问题为驱动,逐步完善解决问题的方法。课程内容分为7章。第1章和第2章是基本类型和复杂类型的数据。第3章是函数。为了提高函数处理数据的安全性,第4章建立了类,实现了数据和函数的捆绑。第5章是3个相对松散耦合的概念,与第4章有密切关系:引用为函数提供了一种安全而高效地处理数据的途径;友元是类的过于谨慎的安全机制的一种补充,主要应用场合是重载;重载服务于函数高效处理数据。如果不考虑各个类之间的共性和特性,代码的冗余将很大,因此在第6章将共性属性设在基类,将特性属性设在派生类中,尽量发挥代码的作用,有了继承就有了类的层次关系,有了类家族。类家族的对象们希望能够共处,于是第7章提供了以虚函数为基础的多态能力,即类家族对象能够使用同一接口函数处理,并且保证各个类别对象的区分能力。教学中不再纠结于语法细节,向学生说明程序设计学习不仅仅是语法学习,而是理解程序设计的理论和方法,以改善整个程序设计的过程,使之更加科学化、规范化。向学生解释面向过程的基本思路:把一个复杂问题的求解过程分阶段进行,每个阶段要处理的子问题都控制在人们容易理解和处理的范围内;面向对象程序设计的出现并不是要抛弃面向过程的程序设计方法,而是在更高、更抽象的层次上去解决问题。每个章节的出发点相同,重要的语句和规则需要讲解,但是不宜过多。著名的计算机科学家N·沃斯(NiklausWirth)教授有这样的观点:因为要进行程序设计而学习语言,本质是进行程序设计,程序设计的工具是语言,而不要本末倒置。程序设计语言的教学过程中不仅要说明它有什么规则,而且应该向学生解释为什么提供这项规则。解释语言不仅有助于提高学习兴趣,还有助于掌握该语法规则的应用场合,以便解决实际问题。这个过程体现出了计算思维的特征,如对问题选择合适的描述方式,考虑问题的相关方面使其易于处理。2.3教学方法根据多年的程序设计课程教学经验以及对计算思维的理解,笔者提出基于计算思维的C++面向对象程序设计课程的教学方法的基本原则:(1)以加强计算思维培养为总纲,跳出语法细节,强调多角度思考问题,从概念提出者和设计者的角度理清知识的脉络框架,从使用者的角度关注设计的可维护性。(2)以计算思维所关联的方法论观点作为每章授课的导引,从程序设计的角度讲述内容引入的背景、要解决的问题、解决的方法以及定制了哪些语法机制。(3)鼓励以探索为本的学习,课堂上鼓励学生开阔思路,各抒己见;习题上设置一些没有固定解法的选做题,让学生自由探索。(4)强化实践环节。上机编程是把思维方法和语言知识综合体现的一种方式,能力的提高必须经过训练,对实践环节需要精心准备和合理规划使之保证思维训练的效果。(5)适当采用研究型教学方式,恰当地将多媒体和网络等现代教育技术融入到教学方法中。将计算思维能力的评估纳入成绩考核,探索多层次的评价规则以及有效的反馈过程。
3结语
计算思维是培养大学生创新能力的重要方面,笔者就北京理工大学信息与电子学院的C++面向对象程序设计课程支撑下的计算思维培养问题进行探讨,对该课教学改革所涉及的操作模式、教学内容、教学方法等方面总结了一些思路。当然,计算思维的形成不是一蹴而就的事情,也不是仅仅依靠某一门课就能完成的,它是一个系统工程,是一个长期过程,需要我们不断探索,努力实践。
作者:白霞 高飞 赵娟 单位:北京理工大学 信息与电子学院
第四篇:程序设计课程改革与探索
1构建高级程序设计课程体系的指导思想
随着软件技术的发展、产业结构的不断调整以及优化升级,软件人才的结构和人才需求也产生了新的变化。软件产业不仅需要编程、测试人员,更需要设计、方案架构人员,还需要具有领域知识的复合型技术、销售和管理人才。因此,我们的高级程序设计类课程必须依据就业和产业结构调整的发展趋势进行调整和布局[2]。CDIO贯穿产品的整个生命周期,其标准体系的教育目标与软件开发类人才培养目标是一致的。因此,在构建此类课程体系时,应以CDIO理念为指导,以培养工程应用型软件开发人才为目标,突出体现复合型、多层次的特点,着重培养学生解决工程问题的综合能力[3-6]。课程体系的建立要反映开发技术的掌握、团队合作能力的培养与系统集成等多个层次,建立并优化课程体系。要形成层次化、系列化、模块化的课程体系,课程之间需要有机结合,要偏重学生的工程实践能力、创新能力、团队协作精神的培养。课程体系应该按照工程教育认证的规范来进行组织,实现专业规范与企业需求的高度统一。每门课程需要合理选择知识点和知识单元,基础理论和软件开发的基本思想保持相对稳定,以此为指导,加大新技术、新方法的应用,以适应学科的发展。可以突出某个软件产业或行业的领域需求以更好地适应企业要求,加强校外工程实践基地,培养学生综合运用专业知识解决工程问题的能力和工业化素质。
2基于CDIO的程序设计类课程构建
按照CDIO大纲,我们对高级程序设计类课程进行了一定的改革和探索。总的思想是以项目设计为主线,完整、有机地贯穿于整个课程教学阶段,使学生系统地得到构思、设计、实现、运作的整体训练。所有需要学习和掌握的内容都围绕项目设计这个核心,并与这个核心融合在一起,形成一个整体。重点是如何培养学生初步具备一个工程师的基本功能——能够在现代的团队环境中去构思—设计—实现—运作复杂的且具有附加值的软件产品和系统,并且在课程进行的过程中,特别关注学生独立思考能力的训练。依据软件工程的思想,最经典的开发流程就是瀑布模式。尽管该模式有很多缺点,但对于训练学生的工程实践能力并深刻理解软件工程的诸多理论却是非常实用的。因此,课程按照瀑布模型的形式进行安排。瀑布模型如图1所示。图1瀑布模型2.1学科知识内容的安排对于具体的程序设计技术,依据软件行业和企业需求,以基于J2EE和基于.net两条主线展开。由于J2EE和.NET在设计模式、开发思想等方面的相似性,拟做对比性教学。目的是要让学生深刻理解对于一个软件项目的开发,选择何种语言并不是最关键的部分,各种语言以及衍生出的各种技术,其软件设计思想是完全相通的,各种技术之间也有极大的相似性,只是实现方法、实现手段等不同而已。对于软件需求分析、软件建模、软件测试与质量保证、软件项目管理等内容在项目实践中进行训练。2.2项目设计每3—4个人分成一个团队,每个团队有一个项目,从需求分析、系统设计到软件编程、代码测试以及系统维护。在项目训练中,注重培养学生的设计、创新、协调、沟通和领导能力,要求组内成员必须轮流担任组长,在担任组长工作期间,负责项目的组织、沟通与协调等,定期提供给指导教师项目进度、组内同学平时表现和参考成绩,领导和增强组内同学的自信心。要求学生以创新思维的理念,团队合作的方式,在导师组的指导下体验CDIO改革与实践中的各个环节,并且通过不断地查阅资料,完善项目的构思与设计,从而培养学生的创新意识、协作精神和理论联系实际的学风。2.3网络教学平台设计建设相关的网络教学平台。充分发挥现代信息技术在软件教学中的重要作用,建设网络教学平台,包括电子教案、教学大纲、学习疑难解释、习题和学习指导、多媒体课件等栏目的校园网络教学资源。通过探讨在线多维教学方式,有效拓展教学的空间,丰富学生的课外学习,实现教学资源优化与共享,推动教学研究、专业建设成果的推广与交流。2.4考核与评价体系的建设首先,要对课程改革的培养目标与社会需要、科技发展和学生个体需要之间的一致性进行评价,其次,要对学生达成目标的程度进行评价。同时在课程进行过程中如何进行有效的监控也是很重要的。随着工程教育理念的在教学中的不断渗透,大量的实践型、拓展型教学内容需要我们对考核方式进行改变。对于工程实践能力的考核应注重过程考核,课程的评价须以表现式、任务式的评价方式分别对待。对基础的程序设计课程,可通过对设计流程、设计结果、功能的实现程度等方面进行考察,再辅以理论考试的形式对学生进行考核。更高级的程序设计课程可以通过项目组的分工与协作、分析问题与搜索资料的能力、项目演示、汇报与答辩等各阶段完成情况,分别记录,作为考核依据,理论考试所占最终考核的比重要降低,应侧重于过程的考核。
作者:侯振杰 王晖 林逸峰 单位:常州大学 信息科学与工程学院
第五篇:程序设计课堂教学改革
1电子商务专业的教学现状和学情分析
目前电子商务专业以Java为基础的程序设计系列课程主要形式是“理论+实验”。基本沿用了计算机和信息专业的程序设计课程的教学模式和方法,存在许多问题:1)现有的教学方法不适应电子商务专业的学情特点,导致学生学习兴趣低。由于课程知识点多,授课时间有限,为了完成教学任务,教师多采用“以教师为主导,学生被动接受知识”的讲授方式[2],缺乏教与学的友好交互,学生的主动性差。此外由于PPT课件本身会加快老师的课堂节奏,这样会导致教师对知识点的讲解不透彻,学生没有足够的思考时间,从而使学生思维难以与之同步,由于电子商务专业的多数学生本身就对编码的接受度低,因此直接导致学生对这门课一知半解,畏难情绪逐渐增高,最后兴趣索然。2)现有的教学模式单一,不能引导学生主动参与、无法培养学生独立思考、自主学习、探究创新的兴趣和能力。现有的教学注重语法和理论知识的讲授和掌握,导致学生无法对所学知识形成完整、系统的认识,不能灵活应用这些知识解决实际问题[2]。另外,学生习惯于教师主导的被动学习模式,没有主动学习的意识,缺乏创新能力,不能独立编写程序,更不能利用所学知识开发系统来解决专业或生活中的问题。许多学生对教材或教师没有讲到的问题感到束手无策,不能借助网络和帮助文档等其他途径来解决问题。3)老师在教学内容上缺乏针对性,从而使培养的学生不能与行业市场需求完全对接,缺乏竞争力。现有的教学在内容组织上基本按照教材的内容展开,没有对教学内容进行优化,也没有与专业相关的行业知识和行业应用对接,孤立地当成一门程序设计课程来讲授,导致内容脱离了问题的应用背景,使学生难以体会到“学以致用”的感受。此外,有限的课堂时间,学生所能掌握的知识有限,少有教师利用新技术和新应用等教学辅助手段将课堂衍生到课外。4)学生的实验和实践体系流于形式,导致理论知识与实践能力未能同步发展,学生的综合水平与市场要求相差较远。教师在实验教学的内容和要求中,注重学生对知识点的掌握,设计许多验证型实验,这样虽然有助于学生熟悉和巩固单个知识点,却不能培养综合应用知识和解决实际问题的能力,学生不能熟练地用Java语言来编写程序,缺乏足够的设计型和综合型的题目来培养学生的独立解决问题的能力和创新能力,因此教学效果不理想。5)现有的评价方式缺乏对学生平时学习过程的考核,对于学生的实践能力、团队协作能力,没有有效的合理的评估方法和准则。现有的Java程序设计课程通常采用笔试或者上机考试来评判学生学习的效果,学生需要在记忆和理解的基础上才能获得较好的考试成绩[3]。这种评价方式虽然操作简单,但却不能真正体现学生掌握和运用Java语言的真实能力。取得好的考试成绩不一定代表学生具备了较强的Java应用开发能力。
2课堂教学改革方案
Java程序设计课程的主要目标,是让学生更好地利用计算机技术去解决电子商务领域中的问题,让学生体验和领悟利用计算机解决问题的思路和方法,并通过应用进一步培养学生的创新和创意能力。为了有效适应这种人才培养目标,该文根据电子商务专业的学情,结合自己学院的办学实际,从课堂教学环节设计,包括内容和方法,实践环节设计,包括实验内容和手段等,考核评价方法等方面,提出建议和措施。2.1激发兴趣,教学相长教学过程涉及到教师和学生两个主体,需要同时激发他们的兴趣,发挥其积极主动性。对学生来说“兴趣是最好的老师”。应该通过举办或参加各类程序设计和电子商务竞赛,调动学生的积极性和主动性,强化学生对本课程的认同,促进程序设计课程课堂教学的开展。同时教师主体也应该提升自己的教学水平和业务能力。学校需要大力加强师资建设,为教师提供培训,再学习以及到企业挂职锻炼的机会,使教师能及时了解相关学科和行业的新趋势和新技术,以适应电子商务专业的多源学科性以及发展更新快等特点。此外,对于高校教师而言,现有的评价和激励机制,促使很多老师对教学的投入不够。学校应该开发教学内容和教师科研方向之间的联系,调动教师的积极性,教研相长。2.2科学组织和优化教学内容——强调知识点的关联性和循序渐进性在教学内容上,如何组织和优化教学内容,实现教学内容与社会需求对接,从而达到提高学生适应相关产业发展的知识结构和能力,适应电子商务发展的业务素质是关键问题。目前国内的许多Java系列教材,有一个隐含的前提:即读者已经掌握了一门诸如C或C++语言这样的编程语言。因此多数教材,会简写Java语言的基础部分、控制流语句和数组等。如果直接按照教材的内容和进度,会导致那些编程基础为零的初学者不能很好掌握基本的编程知识、方法与技能,从而无法适应后面的内容,导致对这门课失去耐心和兴趣。因此在进行Java程序设计语言课程设计时,应该根据Java程序设计语言课程教学目标及应用能力培养要求,将语言分为两大部分:基础部分和进阶部分。基础部分的主要教学内容分为:基本语法元素、控制流语句、数组、面向对象程序设计及其新特性,主要是让学生了解和掌握基本的结构化编程和面向对象编程方法,以及Java语言的特点。进阶部分:主要包括常用实用类、泛型与集合框架、JDBC技术和Java网络编程等。语法讲授以够用为度,注重编程思想和编程能力的培养,将编程科学的编程思想和理念贯穿始终。2.3综合多种教学方法和手段在教学组织上,如何根据电子商务专业的学情和以及教师自身的专业背景和性格特征,开展教学活动,探索新的课堂教学方法和教学模式是个复杂而艰难的问题。教师在课程设计中如何调动不同知识背景的学生的积极性是首要问题。1)课堂教学——以兴趣为导向,发挥案例教学的关键作用,培养学生编程思维现有的“以教师为主导,重语法”的教学模式,使学生很容易在相对枯燥的语法教学中丧失了对编程的兴趣和爱好。Java程序设计课程不能脱离实际应用。在Java的课堂教学可实施的教学方法中,案例教学是一种启发式、互动式的教学方法,以案例为中心,把学生带入到特定的教学情境中,围绕着案例展开讨论和分析,最终找到解决问题的方案,从而达到学习知识、培养能力的目的[4]。案例教学方法需要根据每单元的教学目标、内容和要求来确定合适的案例。在案例的选择上应该遵循典型性,具有实际意义、难度适中等标准。一个完整的案例应该包括已经学过的内容,以及尚未学过的新内容。整门课程的所有案例设计也应该从易到难,循序渐近,逐步体现全部知识点。此外在案例教学法的实施过程中,需要注意把握理论知识的讲解,处理好讲授与练习的关系,并注意后继知识的引入。2)实验和实践教学——以项目为导向,任务驱动式的教学模式和结构式分组模式结合,培养学生的独立思考、独立解决问题的能力以及创新创意能力实验和实践教学是巩固知识点、锻炼和提高学生利用所学知识解决行业问题的能力,培养学生创新能力和团结协作精神的重要途径。以“项目驱动,任务导向”的实验和实践模式是掌握Java技术最迅速,最有效的方法之一。由于学生个体的差异,实验和实践环节的设置和要求也需要因人而异,因材施教,因此结构式分组教学模式也是必要的一种模式。所以Java的实验和实践教学将结构式分组教学模式和任务驱动教学法相结合,对学生进行合理分组,使之相互学习和激励,培养学生探索创新能力和团结协作的精神。为此可以根据教学内容把实验和实践教学分为三个层次展开:(1)基础部分:在实验和实践教学中,主要以验证型和设计型实验的内容为主,注重题目内容与知识点的相关性以及题目本身的趣味性。题目的难度设置应该具有梯度性,提供不同难度的题目供学生选择[3]。具体做法是:难度较低的题目与课堂教学内容的题型有较大的相似性,学生只要根据课堂内容,修改少量的代码即可完成,相对较难的题目则需要综合运用所学的知识方可完成,主要让学生熟练掌握各知识点及其应用,初步培养学生的独立思考和解决问题能力。(2)进阶部分:主要以设计性和综合性的题目类型为主。根据Java课程体系中不同方面的知识设计项目,让一个项目贯穿课程,每个项目再分解为多个任务,采用提出任务、分析任务、完成任务和总结规律的教学方法来讲授每个任务知识点[5]。比如在JavaWeb技术课程中,可设计开发一个“网上商店”的项目,再把项目细分为“注册”、“购物车”等多个任务.每个任务完成一个知识点的讲授.项目驱动的教学方法改变了“教师讲,学生听”的传统做法,充分体现了“以学生为中心”的教学策略,可以调动学生学习的积极性,也会逐步培养学生的自主学习能力[5]。(3)增强部分:加强手机App软件的设计与开发,电子商务专业需要学生具备创新创意创业能力,因此在实践部分可以利用课程设计的形式,让学生以团队的形式自主选题、设计和开发程序,并撰写相应的实验报告。鼓励优秀的同学参加相应的电子商务竞赛。此外还需要升华校企合作,为学生提供到企业锻炼和职业技能培训的机会,使学生亲身体会企业的软件开发流程与氛围,尽早建立起工程化的概念,为学生以后真正融入职场打下良好的基础。3)利用信息新技术和应用的成果作为辅助教学手段——把课堂延伸到课外随着社会化和移动互联等的迅速发展,各种移动终端设备的普及,人们获取知识更加便利。充分发挥网络课堂、慕课和社会媒体工具等新兴技术改善传统教学手段受时间和空间限制的不足,倡导社会化的随时随地的在线学习。2.4考核评价方式的改革——使学生从被动接受评价转变成为评价的主体和积极参与者,从而达到教书育人的功能在教学评价方面,如何基于对学生学习全过程的持续观察、记录、反思而做出的发展性评价,以达到激励学生学习,帮助学生有效调控自己的学习过程,使学生获得成就感、增强自信心、培养合作精神的目的,建立合理的教学生态环境和良性发展,是教学改革的终极目标。在考核内容上,要反映学生在整个学习中的学习效果,包括课堂教学和实践的表现,既要考核学生对知识点的掌握和运用,又要考查学生综合运用知识解决实际问题和创新思维的能力,还要考核学生在整个学习过程中的变化。在考核方式上,“小考”和“大考”兼有。即教师定期对学生做一些考评,并把结果反馈给学生,教师所记录的考评历史记录,作为期末综评成绩的一部分。作为一门实践性很强的程序设计课程,学生会“考”不如会“用”,在评价学生成绩和学习效果时,应该把会“用”放在会“考”之前[3]。对于较好地完成了难度较大的实践题目的同学,可以对其综评成绩适当倾斜。此外为那些优秀的爱好编程的学生提供更多的空间,最大限度地激发有编程爱好的学生的实践动手意愿,而不会影响其期末的评价,真正地做到因材施教。
3结论
通过在本学院的电子商务专业的实践证明,采用了新的教学模式以后,学生的课堂学习兴趣和学习积极性有了较明显地提高,敢于主动回答老师的问题;学生实验的完成度和正确率也显著提高。课程教学改革是一个综合性的工作,需要基于学生情况,持续进行教学改革与实践,同时认真总结、反思改革的经验与教训。
作者:严素蓉 单位:浙江财经大学东方学院 信息分院
第六篇:程序设计课程教学改革
1、改革实践
1.1对于教学模式进行一定变革我们计划使用一种加强上机实践环节,和课程设计的教学方式。具体方式是:在前十五周的教学过程中,课堂理论教学占据一半的学时、课程上机实验占据一半的学时、最后三周进行课程设计。对课程内容除了传统的课堂讲授外,也安排一定的课时让学生自主学习,针对一些小的项目让学生进行算法、设计思路的讨论;对于教学的理论内容和最后怎样实现其应用,一定要重点考虑;一定要加强上机实验环节,通过上机实验环节的作业检查,发现学生在理论掌握和综合应用的相结合方面到底存在哪些问题。1.2通过布置任务引导学生来完成教学Java程序毕竟是一门语言设计类课程,在实验课环节中,并不是单一完成一些小的编程题目,而是以一个项目为单位实例化教学,将学生应实验掌握的内容以项目的形式布置出来,利用项目进行任务驱动教学。任课教师根据理论课中所讲授的知识点,设计出相关的实际运用的项目,促使学生可以利用对项目的完成过程,进一步巩固所学的知识点,加深对于理论课知识点的认识。而更进一步的要求是:以布置的项目为基础,让学生根据自己的理解对其功能进行一定程度的扩充,促使学生能够更深程度的理解知识点,在实际的项目中能够融入知识点。任务驱动方式的使用,应该用在每次实验课的每一个项目中。教师可以先设计一个和项目相关的现实生活中的例子,这样可以使得学生更容易理解编程算法的设计,教师可以与学生一起探讨,设计出怎样实现整个编写程序过程的步骤。在这个环节中,教师首先一定要注意将项目中所包含的重点引导学生进行理解,其次,以此为基础具体、详细的讲解所涵盖的算法、编程方式以及语法,对于相关的基本知识点和基础概念也要做全面的讲解,这样可以从一定程度上将这些本身非常抽象、难懂、晦涩的理论知识变得相对通俗易懂,便于学生的理解、吸收和掌握。最后,还可以根据学生的完成情况给出一些相关的实践活动,在这一环节中学生能够“照猫画虎”来利用前面的例子,并且结合已经理解了的理论概念来进一步编写程序。如果我们将任务驱动教学进行了很好的应用,那么才可以真真意义上的使得学生能够在“学中做”、“做中学”,具有一定的实践应用能力。1.3在教学活动中激发学生的兴趣在教学过程中可以利用Java的一些功能,来激发学生对于该课程的学习热情。作为教师我们都很清楚,第一堂课的内容在整个这门课的教学过程中占有不可替代的地位,因此为了提高学生的热情,激发学生的兴趣,任课教师可以将本门课程的一些兴趣点放在第一堂课进行讲授,这对于学生对于该课程完整的学习过程有着重要的影响。在平常的教学过程中,一上课教师一般会立刻进入正题,对于课程的内容进行讲解。其实Java语言具有着强大的功能,具有很强的实际应用价值。我们可以先以一些网站的登录界面为例,设计一个类似的登录小程序,一般来说学生都会将注意力集中起来,对于所学的内容会具有一定的积极性。通过这样一个简单有效的环节,可以改变学生对于这门课固有的看法,让他们认识到这是一门很有趣,很有用,也容易学习的课程。1.4培养学生自学、团队合作的能力在课后学习这个环节中,学生是主体,教师只能适时的引导和监督。课后学习可以以小组为单位,展开自主学习。用小组学习这种形式制定学习计划和学习内容,相互监督、相互讨论,充分调动学生学习的主动性、积极性,培养学生团结协调能力,使学生在自主学习中充分发挥主观能动性,培养创新意识。1.5完成课程设计除了常规的上机实验外,在教学周的最后三周要求学生完成课程设计,也就是以一个小组为单位设计一个具有一定功能的项目。课程设计不同于课堂教学中的上机任务,可以说是程序设计综合能力的一种体现。在课程设计最初的选题环节,可以让学生以2-3人为一组进行组合,然后在教师所给定的备选题目中,按照自己的能力和兴趣选择相应的题目进行设计,最后完成课程设计报告。教师对课程设计的过程进行限制,主要分成以下几个阶段:(1)先在前期进行资料查阅,学生与教师进行充分的沟通,交流对于程序设计思路的想法,对所选的题目进行功能分析。(2)编写程序并测试,学生在指导老师的指导下,自主完成整个程序的设计与最后的测试工作,在整个过程中,指导老师对于学生实际编写程序的能力,与程序最终的测试效果,应实时进行考查。(3)总结报告。(4)最终提交完整的设计文档、源代码和可执行文件。学生根据规定的课程设计报告格式撰写设计报告与总结。(5)答辩与考核阶段。(6)指导教师对每位学生进行当面提问,学生以语言表达和实际操作的方式进行答辩。1.6考核环节和成绩评定传统的考核方式可以说是“一卷定优劣”,而我们采用的方式是将考核的指标和形式多样化,包括上机考试、实验、课程设计多项考核内容。其中上机考试采用上机考试系统;实验成绩包括:实验报告、实验作业完成情况;课程设计包括:作品展示,课程设计报告,课程设计答辩。在这种考核方式下,学生如果希望能够顺利地通过考核,在平时的学习过程中一定要自己多动手,多实践。可以看到,这种方式可以提升学生自主学习与上机实践的主观能动行和创新性。
2、结束语
本文从教师的教学角度,也从学生的学习角度出发,探讨了Java程序设计课程教学改革的一些思路和想法。探索了怎样更好、更有效地培养出具有实际应用能力的学生,为学院应用型人才的培养提供了有效保障。
作者:杨光 单位:兰州商学院陇桥学院讲师
第七篇:程序设计课程及实践环节改革
1学生求解实际问题的探索
1)从易到难递进式抛出要求解的问题。根据文献[3]的指导,我们将实验与实习两个环节的任务组成系列。实验主要针对简单问题求解,侧重语言知识点的理解和熟练运用,如规定用if语句或switch语言进行各个时间长度的定期银行存款利息计算。实习则力图一系列从易到难的实际问题求解,帮助学生建立计算思维。如判定闰年;已知某年某月某日计算这天之前/后有多少天;制作万年历。再如对一个字符,大写改小写,小写改大写;对一个字符串,全改成大/小写;对一篇英文文章,每句首字符大写,其余小写;对一篇计算机学科文章,每句首字符大写外其余小写,专业缩略词必须大写等。2)拆大任务为小任务,降低问题难度。兴趣是学习的动力,但程序设计课一旦加入兴趣就意味着难点多。如学生都不喜欢自己开发的字符界面程序,对Windows图形界面充满兴趣,可是GUI界面开发平台的复杂性、交互方式与底层实现代码的关系很快就让他们迷失方向。我们不得不探索拆大为小、降低难度的方法,以达到兼顾兴趣又贴合实际的要求。如对俄罗斯方块游戏,字符界面用数字0/1/2组图,字符W/A/D/S控制图形移动操作;图形界面则只要求鼠标左击图形左旋转,右击图形右旋转,双击快速下降,直至出屏幕。3)搭高解题起点化解接口定义难点。文献[1]中指出求解大型复杂问题或者是设计大型复杂系统要用好抽象与分解方法,反应到程序上则是模块化设计,但是当问题上规模且模块增多时,合理的接口设计以及集成中参数传递难点就必然出现。学生采用的处理方法是定义一堆全局变量,这使得程序的可变性极差。如今市场上的职业培训很火,它的高认可度源于培训公司建立了一套实际项目平台,学生只需在这个平台上接续工作,开发单个模块,专注于有限知识点和技术的使用,就可以快速掌握实际项目的开发。在这样的高平台上训练,学生可以更快进入一个实际项目,并在开发过程中积累经验,逐步成熟与成长起来。受培训公司的启发,我们预定义好函数名及其形参,同时提供一些难点代码,学生在实现函数时只要理解和体会了参数和代码的作用,在处理算法时就不会感到难于实现。例如,用文件管理信息,给出菜单主程序、子程序函数名和形参,甚至给出了从文件读取信息的模块代码,学生可以直接进行排序、查找、求最大值/最小值/平均值计算、信息增删改和存盘处理。
2实践探索中的困惑
文献[4]提到跨学科计算思维教学的经验表明,一门课程只有当它让学生从中学到将来用得着的方法和工具或是得到启迪,产生对生活、对科学的憧憬,才会受到欢迎。目前普通高校计算机专业大多数学生在程序设计实践环节学到的技术今后几乎没用。学生在理论课上学到的对问题的抽象、数据的抽出、算法的设计、系统的建构本应该是很有用的方法,但是因为没有相应的实践环节,也就忘得差不多了。想要给学生留出学好思想方法的空间,在实践环节上应注意以下几个方面。1)环境选择。虚拟实验环境意在使学生更专注数据结构理论知识的学习,但是我们试用之后感觉它不尽如人意。学生要熟悉虚拟的实验环境,熟悉其中的调试技术,但回到现实的开发环境中这些技术又用不上,给学生无形中增加了认知负荷[5],所以学生抵触这个实验环境。VC环境功能强大,但是操作却很复杂,学生总是分不清楚工程项目和自己编写的小代码有什么关系,以至于开发的代码只要换一台机器就几乎运行不了。文献[6]提出学生学习编程入门课时应该将精力集中在掌握逻辑抽象和设计上,第一阶段学好基本方法概念和技术,第二阶段学好有效设计、实现、测试和调试技巧与策略。然而我们今天沿用的传统编程入门教学方法还存在很多弊端:(1)设计和实现问题模糊不清;(2)过早地让学生面对程序的实现任务;(3)课堂上过于强调特定语言环境的结构和技术的实现。那么实现、调试、测试该何时展开?该在什么环境下开展?2)评价实施。当我们在探索降低问题复杂度的同时,遇到最棘手的问题是对学生成绩的考核。现在实践环节增多,需要学生求解的任务就多,问题本身被拆小了,其核心思想的复杂度下降了,程序代码自然短了,但老师却很难判断学生的代码是不是用改变量名、移动模块位置的方法进行抄袭。这类学生往往能很流利地解释代码本身,却并不能模仿写出新算法或者是将算法用于求解其他问题。另外,老师将问题做了拆分,很难培养学生的大问题拆分能力,很难判断学生是否掌握了模块化求解问题的方法。3)编程入门所达程度。20世纪80、90年代大学是精英教育,计算机专业的学生学编程问题不大,2006年高等教育进入大众化时代,学生学会程序设计的越来越少,是大众教育的生源问题吗?文献[6]中提出的观点很值得思考,60年代计算机就意味着编程,编程语言本身很简单,要学的知识莫过于赋值、数据操作、原子数据类型、数组、分支循环语句、带参数的函数、文件操作和文本的输入/输出格式等。到了80、90年代,指针、链表、递归、结构设计等难点出现了,但当时程序设计理论课时较多,老师几乎能详细教到每一个知识点;加之过去的应用软件非常少,人们喜欢计算机就必须喜欢编程。随着这些年技术的快速发展,现在编程课上原有的内容一点没减少,新的内容还在不断增加,如交互式调试、交互式程序、人机接口、屏幕图形、大程序、复杂算法、多种语言、面向对象方法、便携式程序等。学生要学的内容太多了,而理论课时却一再压缩。学生没有扎实的理论,在实践中更谈不上抽象、设计、实现和代码质量评判。实践表明,教的越少,学的就越有效,但是面对如此多的知识点,编程入门课究竟该教哪些内容?实践中的趣味性又从何而来?4)编程求解实际问题的能力。随着软件产业的发展,行业分工越来越细,软件开发团队由系统分析师、软件分析师、系统架构师、程序员等一系列成员构成。一个毕业生加入软件开发,一般要有5~8年的程序员经验,才可能走上其他岗位,而程序员的工作是理解他人做好的软件分析,实现编码与调试。通过不断理解和编写代码,程序员对实际问题可顺利进行抽象、分解和求解,再集成为方案。一个毕业生如果从事非编程工作,与编程的关系莫过于成为项目甲方代表。软件的甲方代表身份很少被谈到,软件工程中的业务领域专家应该理解为甲方代表,他们的责任是把待开发系统的业务流程用计算思维梳理清楚,并在合作中判断开发方的设计方案是否能满足业务信息处理需求。从这两方面看,令人困惑的问题出现了:“普通高校的计算机专业学生程序设计要学会什么?”文献[7]给出了科学、数学、工程、社会等方面蕴含的计算思维,说明了进行计算思维教育的方法,文献[2]中提到人们在英语、历史、拉丁语、图形艺术等课程中探索计算思维的传授。文献[3]给出程序设计基础课程定位是“通过介绍一种具体的过程型程序设计语言及其程序设计技术,使学生理解程序设计语言的基础结构,理解计算机学科求解实际问题的基本过程,掌握程序设计的基本思想、方法和技巧,养成良好的程序设计习惯,培养利用计算机求解实际问题的基本能力,具备初步的高级语言程序设计能力”,那么普通高校毕业生就业时更多的是使用软件,或者是协助开发软件,我们的编程课在传达计算思维时,该让学生学习什么?就如文献[8]标题所示“计算思维的意思是什么?就此我们该做什么?”
3结语
计算机成为了当今社会最基本和最强有力的工具之一,各类专业人员都依赖计算机,它支持人们交流、分析、创作、决策和管理。计算机的超强能力使得复杂事务处理中的算法不再是限制事务被处理的约束条件,它要求人们自身有能力驾驭算法逻辑,这个时代人类成就的大小不是受条件制约,而是受人类自身想法的制约,所以这个时代大力呼唤创新。计算机技术正在左右人们想问题的方法,但人们该学的是像计算机人士那样思考和解决问题,而不一定要懂得编程[6]。计算思维把19世纪奠定的科学研究方法——“抽象现实问题,构造理想模型,用模型组合系统,以达对现实的研究”推到每个人面前,但是程序设计课程要如何实践计算思维的传达?我们在探索程序设计教学时,把训练目标划分为掌握需求分析、根据分析进行求解设计、依据设计编写代码,以实现对不同能力的学生提供不同的训练。学会写程序、调试程序的人确实比以前多了,但这些努力并没有更多地刺激出学生学习编程的积极性,究其原因是今后工作中他们更多地使用计算机而不是写代码,那么真的要像文献[6]中说到的那样,用虚拟语言将编程入门课上成一门纯理论课吗?又如何开展有效的设计、实现、测试和调试技巧与策略的内容教学呢?针对上述诸多疑问,笔者抛出问题“普通高校程序设计课程与实践环节改革的落脚点在哪?”以求同行参与讨论与解答。
作者:章小莉 谢婷婷 单位:北京电子科技学院 计算机科学与技术系
第八篇:程序设计课程教学改革
1C语言程序设计实验课程存在的问题
(1)考核方面存在一定的弊端.我们都太注重卷面成绩,而学生也一味地追求高分,从而在动手方面非常欠缺.(2)在C语言教学中,实验课程课时相对较少,实验课的课时占课程的三分之一,明显感觉学生无法按时完成任务.实验时间的缺乏使得学生无法按时完成课上内容,只能把未完成的内容带到课后去做.这样导致的问题比较明显:一部分学生可能为了应付教师,未完成的内容课后根本就不去学习,一部分学生想去完成,可有时遇到问题没有人及时给予辅导,极大地打击他们的学习积极性,甚至放弃而不去完成.[2](3)实验教材有待改进.现在所使用的大部分教材都是与理论课本相结合,实验的答案在课本上或者互联网上都能够查找得到,学生只是机械地按照课本上把代码敲上去,然后编译、连接、运行.这种做法对于才上课的学生可以理解,但是如果学了大半学期还是这种做法,那么,学生对于给定的编程问题根本就没法解决.
2实验教学方法的改革与实践
鉴于以上实验教学存在的问题,我们对其进行了教学改革,具体体现在以下几方面:2.1加大实践教学力度提升实验课时,将理论课与实验课按1∶1的比例进行教学,这样学生在学习实验课时时间比较充分,不仅可以消化理论课上学到的知识,也可以安排一些实用的小程序进行编程,提高学生的学习兴趣.2.2案例教学法填鸭式的灌溉法在C程序设计语言教学中是最为反感的,因为很多学生是刚刚接触计算机语言,如果课堂缺乏生气,那么学生的学习兴趣就会大大减少.采用案例教学法,循序渐进地引导学生,让学生带着问题来听课,可以激发他们的学习兴趣.例如我们可以采用生活中常用的超市作为例子来讲解函数的调用等知识.2.3项目驱动式实践教学高等学府的教师或多或少有一定的项目,不管项目的大小,可让学生参与其中,或者把已经做过的项目,拿来给学生做,让他们分模块、分组完成.实践教学是激发学生兴趣最好的工具,因为一般所解决的问题都是日常生活中所用到的,学生往往对于这部分的热情比课本上陈旧的一些例题感兴趣得多[3].这种分组、分模块的学习方式对于培养学生的团队意识也是很关键的,而对于以后从事计算机人来讲,这部分也是至关重要的.2.4加强过程性评价我们鼓励学生积极利用网络教学平台上提供的各种学习资源,包括巩固基础知识的教学课件、在线练习题、常见问题解答,也包括教学重点难点解析的动画和视频,开阔学生视野的经典编程案例以及其他优秀的课程网站等等.鼓励学生积极参与到教师的科研项目当中来,共同探讨学习,分组讨论,积极在讨论板中发言,提出问题并解决问题,由于有教师的带领,学生更能发挥学习的主动性.并且充分利用每学年开设的短学期,学生进行课程设计,每天记录学生学习的情况,且把其作为平时成绩的一部分,提高学生对本课程学习的兴趣以及自主学习的意识.2.5搭建网络自主学习平台自主学习模式培养的关键还在于对学生的课外学习建立一个良好的评价平台.利用网络平台,教师可以一改以往对学生课外学习无法监控的困惑,充分参与、管理学生的学习过程.网络平台还可以为学生的自学、复习提供丰富的资源,包括课程的教学大纲、教学日历、网络课件、教学录像、课程设计、参考资料,以及提供个性化辅助.我们在C程序设计教学中利用网络在线教学平台拓宽课程教学空间.[4]网络在线教学平台包括:课程论坛、课程通知、教学文件、教学资源、课程作业、在线评测、抄袭检测、代码范例等模块.
3改变考核方式,增加上机考试,多次考核
在传统的笔试考核方式上,我们增加了上机考试.上机考核很好地考查了学生的编程能力,每个学生的题目都是从题库中抽取出来,每个人都不一样,而难以程度相当.为了增强平时上实验课学生的主动性,我们上机考核分阶段进行,即由期末和平时的上机实验课组成.期末考核方式以机考成绩为主,占大约50%(其中课程设计占20%),笔试成绩占20%,平时成绩占30%.平时上机成绩分等次进行,且公布给学生,让学生在透明的状态下,明白自己所学的程度以及与其他人的区别.这种制度,对于学生了解自己阶段性的学习成果也起到帮助作用.
4结束语
实践教学是提高学生实践能力和创新能力的重要环节,对实践教学的方法、内容、考核方式等进行研究非常必要.笔者通过C语言程序设计实验课的改革与实践,激发了学生学习的积极性,调动了学生学习的主动性,全面提高了他们的综合实践能力.通过几届学生观察发现,学生更容易掌握该课程的基本内容、教学中的重点、难点,取得了良好的教学效果.
作者:张小梅 廖娟 单位:凯里学院信息工程学院