前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的程序设计实践主题范文,仅供参考,欢迎阅读并收藏。
Visual Basic程序设计作为一门程序设计语言,在教学过程中,应用和研发的特征比较明显,而初学者总是感觉程序设计比较枯燥无味、难于理解、入门困难,甚至对其产生畏难厌学情绪。教学中笔者利用现代教育技术手段,对传统的教学方法进行改革,实践探索出了一套行之有效的教学策略,取得了良好的教学效果。
一、着力培养学生学习兴趣,上好VB入门课
1.课前强调程序设计的重要性,充分调动学生的求知欲
在讲授该课程之前,结合学生实际所学专业,事先准备几个VB开发的应用程序或是信息管理系统,第一节课上课时通过多媒体演示,让学生明白程序设计的重要性和实用性,树立明确的学习目标:学习VB不只是达到计算机应用能力的考核要求,更是今后工作、生活中不可或缺的一项基本技能。学生了解了学习目标之后,就会迫切地想自己去尝试程序设计,这样学生学习程序设计的积极性就被调动起来了。
2.揭开程序设计的神秘面纱,开始学习之旅
初学者在学完计算机应用基础后,对计算机的运行原理还是似懂非懂,在这样的前提下,开设VB程序设计课,学生想到要自己编写程序代码来控制计算机完成一项任务更是一头雾水。通过长期的教学实践笔者得出的结论是,要解决这一问题,主要是要在学习者脑海中树立“万丈高楼平地起”的思想:即无论多复杂的程序都是由基本语句积累起来的,而基本语句是很容易掌握的。例如,借助Windows画图程序讲解一个简易调色板程序,改变文本框背景颜色只需要一行语句:Text1.backcolor=VBred即可实现。教师在给出VB颜色描述的关键字后,进一步要求学生实现其他颜色的编程。同时,在教学之初,教师还可以通过一些简单有趣的实例讲解来帮助学生正确认识VB程序设计的基本步骤和方法。
3.鼓励学生克服程序设计的畏难情绪,激发其学习兴趣
学生通过两周的学习,对VB程序设计会有初步的了解,如VB基础开发环境、对象、方法、事件等概念,但教学之初所形成的学习欲望会逐渐冷却,再加之VB的每一个对象都有许多个属性,而且全是英文,晦涩而抽象的概念和英文描述很容易使学生产生畏难情绪,甚至厌学。此时特别需要教师对学生进行鼓励、指导,引导学生明白虽然每个对象具有自己的属性,但各对象之间有大部分属性是相同的,并且这些属性中常用的只有一小部分,很容易就能掌握;另外程序代码的书写虽然看似神秘,但掌握了语法格式后很容易编写。
二、改革教学方法和教学手段,提高教学质量
1.从生活实际入手,将抽象的理论形象化
人类社会的理论知识都是日常生活中发现总结出来的,而VB程序设计作为一门课程也是前人在不断的实践中完善和发展起来的,必然和日常生活有着密切的联系。如果能将VB程序设计的教学过程同生活实际联系起来,原本枯燥抽象的理论就会变得形象生动、通俗易懂,易于学生接受。例如在讲解VB变量的命名时可以联系实际生活中起名的习惯来类比展开,“变量命名必须以字母打头”这一原则如同我们的名字必须以姓氏打头;变量起名时不能用关键字如if,for等,如同我们起名时不会用灯管、茶几等名词;变量在其有效范围内必须唯一,如同我们一个家庭的弟兄俩不应重名。只要将理论与生活有机地结合,找出理论在生活中的原型,教师讲课也感到轻松,学生听起来也容易理解,实践证明这可以取得事半功倍的效果。
2.利用现代教育手段,提高课堂教学质量
VB程序设计学习的特点是实践性强,所有的理论最终都要以写好的程序为结果。而传统的黑板+粉笔的教学手段使教师将程序代码写在黑板上讲解无异于画饼充饥,无法向学生展示程序运行的结果,特别是容易出错的地方不能验证,因此充分利用多媒体投影等现代教育技术手段是非常实用且必要的。一是利用多媒体授课,恰当的课件不仅可以提高学生的学习兴趣,还能把程序结果实时地展示给学生,增大了课堂教学的信息量,使讲授内容形象、直观,这样的教学过程学生听得清、看得切、记得牢、印象深,原本在课堂上听起来非常枯燥乏味的内容就会变得充满乐趣。二是采用实践型授课,在计算机实验室利用电子教室进行教学,即采用边讲边练的授课形式,学生对学习的程序进行现场操作,将理论讲授和上机实践融为一体,使讲解更直观、更清晰、更具吸引力,同时教师还可以随时发现学生实际操作中的问题,给予及时的指导,从而有效提高教学质量。
三、创新评价方式,巩固教学成果
课程的教学质量是平时教与学质量的总体体现,课程考核是对学习者知识、技能和能力的综合评价。VB程序设计由于其特有的实践性强而有别于其他课程,采用单纯笔试的评价方法不能全面、准确地衡量教学质量。通过实践发现,VB课程考核方法的改革思路是在现有的考核基础上,注重对学生过程性评价和实践操作能力的评价,即采用“理论(40%)+上机(40%)+过程性考核(20%)”的综合性考核模式。
四、结束语
总之,教学工作是一项艰巨的任务,还需要在长期的教学实践中不断改革旧的教学模式,并结合学生实际情况,去探索研究,寻找新的、行之有效的教学方法和手段,综合评价学生,努力培养学生自主学习的兴趣,只有这样才能提高学生实际应用的能力,VB课程的教学质量才能得到不断的提高。
参考文献:
关键词:VFP程序设计;数据库;教学实践
1《VFP程序设计》课程特点
VisualFoxPor(简称VFP)是一种关系数据库管理系统,具有强大的数据库管理功能,也是中、小规模管理信息系统的常用开发工具;VFP结构简单、使用方便,对于学生来说,比较容易接受和理解,所以《VFP程序设计》是很多高校非计算机专业的计算机基础课程。在高等院校加强文史类、经济管理类专业学生的计算机教育是培养能够满足信息化社会要求人才的重要举措。从教学目标以及《VFP程序设计》课程本身的特点可以看出,VFP是一门实践性很强的课程。
2传统的程序设计教学存在的问题
《VFP程序设计》课程的课时安排的少,但是教学内容比较多,一学期下来基本上是前边学后边忘,比如常量、变量、函数、表达式这部分知识,命令多、格式复杂,并且还必须留出一定的时间进行上机练习。所以说在有限的时间里理论课时多就不能保证实验课时充足,实验课时多理论课时就少。这种情况下教师教学的难度以及学生学习的难度较大。(1)只重视理论课,不重视实践教学。因为总的课时少,教材上大量的内容摆在老师面前,老师只能快讲多讲,以完成教学计划,这时可能就忽略了实验课,比如在讲数据库的操作命令时,命令格式里边提到过尖括号“<>”和方括号“[]”,老师强调其中的尖方括号中的内容是必须有的,也就是说不能省略,而方括号中的内容是可有可无的,即可以省略。而学生在面对选择题时,比如,下列哪个不是字符型数据:(A)’89’;(B)”01/10/17”;(C)50;(D)[78]。显然答案是D,方括号在这里是字符型数据的标记,而学生和“方括号中的内容可以省略”混在一块了。这就说明平时老师讲得比较多,没有时间复习,没有给学生时间上机亲自操作,也就是说学生没有消化老师讲的全部内容。一旦让学生上机练习时,学生也只是会简单模仿老师操作的实例,不去认真思考例题中包含的知识点,更缺乏分析问题的能力。(2)学生对《VFP程序设计》课程认识不够,不知道该课程有哪方面的功能,学生在学习过程中自己心中没有明确目标,再加上课时少、内容多,老师只顾快讲多讲没留上机操作时间,精力集中的学生还能跟上老师的思路,精力不集中的学生就跟不上了,如果老师再不注意观察学生的表现,只是一味地讲下去,就会有越来越多的学生失去学习兴趣。每天学的知识是管理系统的哪一部分,处在《VFP程序设计》课程的哪个位置,学生统统不知,这样就更谈不上调动学生的学习积极性。例如,函数ABS(<数值表达式>)与函数LEN(<字符表达式>),学生只是知道它们是取绝对值函数与求字符串长度函数,对这两个函数不陌生,计算起来也很熟练,但就是在编写程序过程中,不会巧妙地利用这两个函数,也就是说理论很熟练但不会应用于实践,这也造成了学生学习目的不明确。
3教学方法探讨
3.1激发学生的学习兴趣,明确学习目的
课堂上教师上课激发起学生的学习兴趣,才是促进学生勤奋学习的一个很重要的因素。对于许多非计算机专业的学生来说,在学习专业知识的同时学习这门课程,在教学课时安排上肯定是要么少讲多练,要么多讲少练。但是《VFP程序设计》课是理论和实践联系非常密切的课程,这就出现了矛盾。再加上非计算机专业的学生初次接触《VFP程序设计》课程,对这门课程不够了解,繁多、抽象、枯燥的常量、变量、函数和表达式,使得学生高涨的学习热情越来越弱,也使得学习目的变得不明确。分析上述问题产生的原因,主要和教师的教学方法和教学进度的安排有一定关系。因此,为了在有限的课时之内,成功上好这门课,学生成功掌握这门课,老师一定要充分利用好每堂课,首先在第一堂课上一定要备课充足、内容丰富,这个内容不是说的教材内容丰富。第一节课非常重要,上好第一节课非常关键,它是一门新课程成功的重要环节。首先,举例要密切联系日常生活,比如“学生期末考试成绩管理系统”“老同学通讯录”“学校琴房的学生使用钢琴管理”“实验室仪器设备管理系统”“某招考院招生系统”“超市商品结账系统”“某街道办事处社区居民的信息管理系统”等,老师拿其中一个例子口头讲解或用教师机演示,这样学生对《VFP程序设计》这门新课程有了初步的整体认识,有了直观的了解,从而激发起兴趣,课堂气氛活跃,学生大体了解了这门课程的功能以及学习这门课程将来能做哪方面的工作,即使学不会编程最起码了解了电脑的工作原理。再比如象棋大师和电脑一块下象棋,电脑怎么知道该走哪一步、不该走哪一步呢,这是因为电脑硬件里边装有解决具体问题的软件系统。电脑本身只是一个机器,不能进行任何计算,是软件程序代码在支配与控制电脑。也可以把某一个的应用管理系统展开讲解,共包括多少个小模块,各个模块的功能分别是什么。要鼓励学生只要认真学、有心学,有老师的指导,就能掌握知识。
3.2案例教学法
《VFP程序设计》课程是一门理论和实际联系紧密的课程,教师在讲解该课程的过程当中引入案例进行教学,能够激发学生的学习兴趣,提高学生解决实际问题的能力。案例教学法,就是把实际工作中的真实情景加以典型化处理,形成供学生思考分析的案例,通过独立研究和相互讨论的方式,来提高学生分析问题和解决问题的能力。是培养学生运用理论知识并形成技能技巧的一种教学方法。那么,如何使用案例教学法?例如在课程刚开始时引入一个实际生活当中有趣的案例,比如“某街道办事处社区居民信息管理系统”中姓名、年龄、性别、主要成员、家庭住址各个字段,查找与统计符合条件的人数或住户,说明完成该案例有两种方法,用传统的手工方法完成和用计算机管理系统完成。前种方法会费时费力、出错率高,后种方法高效和精确,并告诉学生该案例使用到了《VFP程序设计》课程当中的哪些知识点,然后举一反三运用这些知识点编写其他程序。在上机实验课给出几个简单实用的小程序,说明该程序功能可以完成什么样的工作,其中的程序代码中有三处或者多处的语法错误,让学生根据所学的知识找出这几处的错误并改正过来,使程序顺利运行。如果都练习地比较熟练,再进一步增加难度,老师提出程序要求,让学生自己完成整个程序代码的编写,提示学生用到双分支语句或者多分支语句,或者至少有一个循环语句,考虑整个循环成立的条件,什么情况下条件不成立,也就是说什么情况下循环结束,学生能编写出简单的程序代码也基本上达到这门课程的教学目标了,学生相应获得极大成就感。教学实践表明,在《VFP程序设计》课程教学中合理使用案例教学法,可以有效解决传统教学中遇到的问题,提高教师整体水平,在激发学生的学习兴趣、开发学习潜能、提高其分析和解决实际问题的能力等方面很有成效[2-3]。
3.3任务驱动教学法
任务驱动教学法可使学生的学习目标明确,了解相关的知识和操作方法。经验表明教师应改变过去那种照本宣科的教学方法,教师应发挥主导作用,先提出问题,带着问题去讲授,引导学生积极思考、认真讨论,让学生带着问题学习、思考,完成一个个任务。例如利用“学生期末考试成绩管理系统”,统计考试不及格学生的人数,提醒学生在交互式命令窗口中使用的是哪些命令,在程序代码中应怎样使用,使用哪些语句才能完成这个统计不及格人数的任务。再比如怎样彻底删除一条学生记录,因为在命令窗口当中有逻辑删除命令、物理删除命令,是先pack命令还是先delete命令,如果大量删除相邻的记录或者大量删除不相邻的符合某些条件的记录,应怎样编写语句,用什么方法能准确修改表中大批量的数据,带着这样的问题来完成这些任务,就会使学生掌握书中各条命令格式及其功能。整个教学过程始终以任务为驱动,学生是学习的主体,通过教师的提问、讲解,学生再通过上机操作,让理论和实践充分结合,这样才可达到预期的效果。
4结语
本文分析了非计算机专业《VFP程序设计》教学特点,研究了非计算机专业《VFP程序设计》课程的教学方法,提出了在教学中引入案例教学法。案例教学以其与实际联系紧密、操作性强的特点被应用于《VFP程序设计》课程教学中,架起了理论与实践的桥梁。
参考文献
[1]教育部高等学校文科计算机基础教学指导委员会.高等学校文科类专业大学计算机教学基本要求[M].北京高等教育出版社,2008.
[2]王新,陈同俊.案例教学法在VFP教学中的应用[J].福建电脑,2007(8):27-28.
关键词:计算思维;程序设计;教学实践;算法
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2017)07-0143-03
《程序设计基础》是大多数理工科学生及部分文科学生的选修课甚至必修课,而C++语言又是大多数学校教授这门课程的首选语言。开设这门课程的意义,很多学生甚至部分老师认为就只是为了掌握一门编程语言,为语言而学习语言,为编程而学习编程。事实上,大多数学生没有认识到的是,通过学习一门编程语言,进而学会编程,可以让他们拥有与听说读写同等重要的认知能力――计算思维。可以说计算思维是我们和计算机对话的接口,通过学习这门课程,让学生具备初步的计算思维能力也是开设《程序设计基础》这门课程的一个重要目的。
什么是计算思维,卡内基梅隆大学的周以真教授对其进行了系统阐述和推广。周以真教授认为,计算思维代表着一种普遍的认识和一类普适的技能,每一个人,都应热心于它的学习和运用。如果一个人具备计算思维能力,则能让他“像计算机科学家一样思考”。对于计算思维,她是这样定义的:“计算思维是运用计算机科学的基础概念去求解问题、设计系统和理解人类的行为。计算思维包括了涵盖计算机科学之广度的一系列思维活动”。那么,什么是像计算机科学家一样的思考呢?因为计算机科学家具备了丰富的计算机科学理论和知识,总是以自己扎实的学科知识从事计算机相关的研究工作,同时,在日常的生活中,也会自觉或者不自觉地运用计算机学科知识解释身边的现象、解决身边的问题。
计算思维描述的不仅是计算,能计算不等于有计算思维;计算思维是人的思维,不是程序,也不是计算机的思维,大学生学习《C++程序设计》这门课,应该从单纯的语言、编程的学习,转变到计算思维的培养学习上来,使计算思维如同实证思维、逻辑思维一样,成为每个学生应该具备的基本科学思维能力。
如何把计算思维引入到《C++程序设计》这门课程中来,本人在教学过程中开展了有益的实践和探索,得到了学生的认可。
1基于经典算法的计算思维教学实践
将《C++程序设计》课程的重点转到程序设计的思想和方法上来,而不是仅仅教授一门程序设计语言及其应用。课程以“发现问题――分析问题一寻求不同解决方法―对比选优―解决问题”的“问题求解驱动式”的讲授方法,通过实际的案例中的一些经典算法,尽可能地讲授清楚计算思维在解决实际问题中的作用。
比如在讲授完排序算法后,给出一个背包问题的案例;出去远足,允许你带一个规定大小的背包,装尽可能多能量(卡路里)的食品。这是经典的背包问题。你可以预先将所有食品的能量按大小排序,然后按顺序从高到低装包。但你的背包是限重的,能量高的食品可能很重,导致你装的食品很少,从而总能量并不高。一种方法是以卡路里/重量的比率排序,按比率母叩降偷乃承蚪食品装入背包,从而希望装入背包的食品总能量最高。这种以每次价值最大为依据解决问题的思想就是贪心策略。
贪心策略的基本思想是把求解问题的任务分解为若干个步骤,但算法在每一步骤的决定可能是短视的,即该步骤所采取的方法是局部最优而非全局最优解。尽管并不是所有问题的局部最优解就是全局最优解,但在实际问题求解过程中,仍然可以用贪心策略得到可以接受的问题解。
从计算思维的角度看,贪心策略为我们提供了解决问题的一个方法:以当前和局部最优化为出发点去求解问题简单易行,具有一定的适用性。
在讲授函数的递归调用这个知识点时,通过介绍归并排序这个实例提出分治策略的思想,即把一个较复杂的问题分解为若干个与原问题同结构但规模较小的子问题,然后以递归的方式求解这些子问题,并通过合并子问题的解得到原问题的解。
分治策略也体现了一种计算思维在里面,它是解决工作和生活中很多问题的一种常用方法。分治策略为我们提供了这样一种思路,当面对复杂问题时,可以把问题转化为相互之间具有一定联系的、规模较小的、解决方法类似的子问题,最后通过合并子问题的解得到原问题的解。
通过这样的案例,讲解若干典型算法在问题求解中的应用,揭示其所体现的计算思维,让学生在学习算法思想的过程中逐步培养他们的计算思维能力。同时感受具备一定的计算思维能力所带来的好处。
2强化计算思维能力培养的教学方法
《C++程序设计》作为非计算机专业的学生的计算机语言的入门课程,要学好它是有难度的,C++的语法规则繁琐、枯燥、抽象,对具体语法规则的学习和记忆会影响学生对语言本身内涵的理解和计算思维的体验。本人在教学过程中,从训练学生的计算思维为出发点,将计算思维的本质――抽象和自动化作为主线,贯穿于整个教学过程中。从问题出发,通过抽象、约简,转化成解决问题的算法描述,最后得到算法的C++语言实现。将《C++程序设计》课程从以往偏重讲授一个个孤立的语法知识点转变为以计算思维为出发点,把重点放在问题求解和算法的实现上,这样的教学方法,可以达到对学生的计算思维进行更好的训练的目的。
在教学过程中,多用生活中的例子解释计算机课程中的概念,是让学生尽早建立起计算思维的好方法。比如在讲解算法的概念时,从生活中的问题求解(比如做菜)出发,讲解其与计算机求解问题的异同点,进而引出算法的概念、特点和描述方法。在讲解递归这个在计算思维中非常重要的概念时,从生活中的现象出发,比如两块面对面放着的镜子中的影像,去引导学生理解递归的概念。通过讲解数学中的阶乘的递归定义,让学生理解递归算法中的两个重要条件:求解问题的自相似性和递归出口。
在教学过程中,多用一题多解来引导学生深入思考,也是培养学生计算思维能力的一个好方法。教学中,一些问题往往不止一种解决方案,通过一题多解让学生去发现、寻求更好的解决方法。比如找假币问题,9个铜币,其中有一枚假币比其余的真币轻,现在有一个天平,请设计一个算法,找出其中的假币。方法一,每两个铜币一组,分为4组,分别放到天平上称,前面4组任一组有假币都可以通过天平称出来,如果4组都一样,则假币是没有被分组的那个铜币,所以最多称4次可以找到假币;方法二,先将其中的8个平分为两组,如果相等,则剩下的是假币,否则,假币一定在较轻的一组里,把这一组的4个平分成两组,假币一定在较轻的一组里,再把较轻一组的两放到天平上称重找到假币。这种方法最多需要称3次可以找到假币。方法三,将9个铜币每三个分为一组,将其中的两组放到天平上称一次,可以确定假币在哪一组,再将有假币的一组分为3组,每组一个币,将其中的两组放到天平上称一次,即可确定假币。这种方法最多称两次即可找到假币。可以看到,三种方法虽然都能找到假币,但显然第三种方法效率最高。在教学中经常采用这样的一题多解的方式可以更好地提高学生分析问题、解决问题的能力。
在教学过程中,多安排学生上机实践,它也是培养学生计算思维能力的重要方法之一。在实践环节,教师应该尽量设计难度适中、趣味性比较强的实验题目,提高学生的学习兴趣。比如在讲授C++的循环结构时,要求学生上机完成打印输出一个由“*”构成的菱形图案,在完成题目的过程中理解循环嵌套的机制,分析内循环和外循环在输出图形中所起的作用,总结发现规律,最后得出打印输出一般二维图形的方法。
3基于计算思维教育的《c++程序设计》课程设计
计算思维不仅仅是编写程序,而是运用计算机的相关概念、技术去求解题、设计系统和理解人类与自然界的行为和现象。大学应该以培养学生的计算思维能力为核心,使它成为每个学生都具备的基本科学思维能力。
如何在程序设计课程中引入计算思维,是很多高校正在开展的实践和探索_8_。下面介绍针对全校非计算机专业学生开设“计算机程序设计基础(C++)”课程的具体实施方法。
“计算机程序设计基础(C++)”这门课程的目标是:学生学过这门功课后,能够系统掌握结构化程序设计和面向对象程序设计的理论、方法与技术,增强学生的动手能力,培养学生的计算思维能力和创新能力,提高学生学习计算机知识的兴趣。
表1是这门课的教学安排。除了课程内容的讲授,实验和实践环节也是非常重要的,我们精心准备了与课程内容同步的实验,并且在理论课程结束后还安排了16学时的实践环节,学生集中在一到两周内完成一个大的完整的课程设计作业,通过这种形式来帮助学生综合运用课程中所学的知识来解决实际问题,从而达到提高学生分析问题、提高计算思维能力的目的。
在这门课程的教学中,教师时刻注意以讲授程序设计的基本思想和方法为纲,在这个过程中潜移默化地将计算思维融入到学生的思维体系中。
关键词:编程思维;计算思维;教学方法;实践教学
中图分类号:G434 文献标识码:A 文章编号:16727800(2012)011018602
作者简介:王付山(1974-),男,硕士,德州学院计算机系副教授,研究方向为计算机基础教育及数据挖掘。
0 引言
《C语言程序设计》是高校理工科专业教学中一门重要的公共必修课,是学生利用信息技术为本专业服务的重要基础课程,在教学计划中占有非常重要的地位和作用。本课程是一门实践性的课程,本课程的核心任务是使学生掌握C语言的语法规则、程序设计的基本方法和编程能力,培养学生应用计算机语言解决和处理实际问题的思维方法和基本能力,为进一步学习和应用计算机及利用现代信息技术为专业知识服务打下坚实基础,对培养信息化时代大学生的实践能力和应用能力意义重大。
C语言程序设计课程为德州学院的校级精品课程(网站:http://211.64.32.29/kc/jsjx_jsjjsjcc/index.php)。本文根据笔者多年的C程序设计教学实践经验,从教学内容、教学方法和实践教学三个方面对C程序设计课程的教学改革进行了探讨与实践。
1 教学中存在的主要问题
根据笔者多年的教学经验,以及对学生的跟踪调查分析,C语言程序设计教学中主要存在以下几个问题:
(1)教学内容的知识点多而繁琐,教学重点不突出,导致学生学习兴趣偏低。C程序设计教学内容中涉及的语法规则多而枯燥,不易记忆,再加上学生本身对计算机的可计算特点、计算思维的认识不足,因而,学生面对这些多而繁琐的知识点,感觉无从下手,一时找不到学习的重点。这样学过的知识点没有掌握,又跟不上教学的步伐,偏离对学生计算思维和编程思维培养的重点,导致学生学习兴趣降低,失去了学习动力。
(2)教学方法与学生的认知过程存在偏差。项目:德州学院教育教学改革研究项目JGLX-B09032。
教师在教学中,往往关注于对学生知识的传授,虽然知识点也讲了,案例也给同学们分析了,也启发学生思考了,但是同学们对如何用,在什么情况下用,还是不清楚。说到底,这是教师的教学方法与学生的认知过程存在偏差,对学生认知过程、认知结构和学习状况不够了解,没有真正按照从实践到理论的认知过程进行组织教学。
(3)实践教学的层次低、应用性低。目前,多数高校对于教学的安排是课堂理论教学+上机实践,对于上机实践环节方面,多是验证例题,设计习题,教师再给予指导。这样的实践教学应用性低,导致学生学习C语言感觉没什么用处,缺乏对学生计算思维、创新思维的培养。
2 因材施教,进行教学内容改革,编写与教学改革理念相适应的教材 在教学内容方面,通过调查研究,了解社会对C语言基础知识的需求定位,强调教学内容的“合理性、规范性、急用先学性、实用性”原则,对教学内容适当取舍,侧重对学生编程思维和计算思维的培养。
本课题组在综合调研国内C语言程序设计大学计算机专业本科教材、专科教材、高职教材、中职教材、二级教程等教学内容的基础上,针对教学对象的实际情况与现实需要,编写并出版了《C语言程序设计基础教程》(国防工业出版社出版)。全书体系完整、重点突出、内容讲解深入浅出、图文并茂、讲解透彻、案例丰富新颖、注重理论、突出实践。该教材已在我院试用了两年,现已形成了一本较为成熟的、特色鲜明的适用于理工科各专业的公共课教材。该教材的突出特色是:内容精简、实例广泛、突出实践,设计了从简单到复杂的阶梯性例题,以实践问题引出解决方法,从解决方法引出知识点,然后从知识点再到实践案例,形成“实践——理论——实践”的系统化教学内容体系。
3 与学生认知过程相适应,实施以“问题驱动+案例”为主的多种教学方法,改善教学效果 C程序设计教学以注重培养学生编程思维、计算思维和实践创新能力为目标,采用了以问题驱动+案例为主的多种教学方法。
3.1 问题驱动+案例教学法
“问题驱动+案例”的教学方法可以激发学生学习兴趣,引导学生积极探索和主动思考,符合学生的认知过程,是提高课堂教学效率和学生学习效率的重要教学方法。在讲授新知识和新方法时,首先选择一个合适的案例或实际的问题场景,给学生首先展示设计的效果;其次引导学生分析问题,提高学生分析问题的能力;第三是引导学生用以前学过的知识和方法解决问题,培养学生逻辑思维和编程思维;第四是引出新的知识和方法,引导同学们找出解决问题好办法;最后,再将新知识和方法应用于新的案例,形成了与学生认知过程相适应的“实践——理论——实践”的系统化教学方法。另一方面,注重经典案例的积累,使教学案例、实验案例与学生专业尽可能相接合,以一个大案例贯穿课程始终,注重将一个问题分解成若干个简单的问题,实施模块化教学,每次课设计一个小任务,课程结束后完成一个比较大的案例,使学生将分散的知识点通过案例开发系统地贯穿起来,使学生在头脑中形成系统化的知识体系。
3.2 合理运用启发式教学法
启发式教学方法突出培养学生的分析问题、解决问题的综合素质,强化学生的动手操作能力,突出“以学生为中心”的原则,达到“在做中学”、“学中做”的目的,引导学生主动学习。启发式教学法就是通过教师的启发教学充分调动学生的积极性、主动性和创造性,引导学生主动学习。
3.3 倡导学生进行自主性、研究性学习
在教学中,配合“问题驱动+案例”的教学方法,注重培养学生带着问题学习,学会发现问题,引导学生学会阅读随机帮助文档和查阅网络资料,提升学生的计算机应用水平和信息素质,培养学生的自学能力和创新精神。
4 构建以培养学生编程思维和计算思维为核心的实践教学项目,全面提高学生的实践创新能力 实践教学是C语言程序设计课程中非常重要的环节,是学生进一步巩固基础理论知识,培养学生编程思维,提高学生分析问题、解决问题、实践创新能力的重要环节。
(1)构建以实用型设计性实验、阶梯性实验和课程设计为实战手段,设计重点培养学生的编程思想和计算思维的实践教学项目。根据这一理念,实践教学中遵循从简单到复杂,再将大的实验项目模块化、简单化,使实验题目与实践应用有机结合,培养学生的编程技巧、编程思维、计算思维和创新思维,提高了学生的编程能力和利用计算机语言解决问题的能力。
(2)加强考核,确保实践教学效果。在C程序设计考核上,采用了以实践创新能力为核心的“多维认证”考核方式,即由传统的笔试考试改革为课堂表现成绩、实验成绩、课程设计项目考核成绩、与C语言程序设计有关的科技竞赛、全国计算机二级C考试等社会实践成绩和笔试成绩相结合的多维考核模式,突出了对学生编程能力、实践创新能力的培养。
5 结语
本课程是一门应用实践性非常强的课程,对学生实践创新能力的培养具有十分重要的意义。C语言程序设计课程作为德州学院的校级精品课程,并通过在我校理工科专业的改革实施,教学实践证明,从教学内容侧重培养学生编程思维和计算思维、教学方法与学生认知过程相结合和实践教学注重培养学生编程技巧和编程能力等三个方面对C程序设计课程的教学改革,增强了学生的编程能力,提高了教学效果。
参考文献:
[1]谢中科.《C语言程序设计》的教学改革与实践[J].理工高教研究, 2004(3).
[2][美]H M DEITEL,P J DEITEL.C程序设计教程[M].薛万鹏,译.北京:机械工业出版社,2000.
[3]李学会.C程序设计教学改革与实践[J].实验室科学,2010(2).
关键词:《C语言程序设计》;教学改革;案例教学;师生互动;多媒体
中图分类号:G642文献标识码:A文章编号:1009-3044(2009)25-7182-02
Practicing on Teaching of "C Programming"
QIAO Zheng-hong
(Sci. & Tech., Institute of Science, PLA University, Nanjing 211101, China)
Abstract: C Programming is a basic course in public, it is also a practical course with highly experimental demand. Old measure of teaching in C do not adapt the student' s need, the measure of reforming teaching is introducted, such as Case Study, Teacher-student interaction, Rational use of multimedia, which gets rather good response.
Key words: C Programming; reform of teaching; case study; Teacher-student interaction; multimedia
1 引言
我校为非计算机专业的学生设置了两门计算机公共基础课程:一是“大学计算机基础”,二是“计算机程序设计基础”,要求所有学生必须选修。其中“计算机程序设计基础”课程选用目前流行的C语言作为教学语言。
C语言是我校学生学习程序设计的入门语言,学生分析问题、解决问题的能力和程序设计思想的形成都与C语言有着密切的联系。C语言既具有高级语言的优点,又具有低级语言的许多特点,既可以用来编写系统软件,又可以用来编写应用软件。C语言语法限制不严格,程序设计自由度大,在使用时会出现一些“副作用”,再加上现行在教学过程中存在的一些弊端,所以在学习中学生普遍反映“难学”、“不懂”、“没兴趣”,这也是在C语言教学中普遍遇到的问题。
2 现行教学过程中存在的问题
2.1 以书本为中心,忽视学生能力的培养
以书本为中心的教学模式,采用从概念到概念的注入式教学,偏重于C语言语法知识的详细讲解,而对程序设计思想、程序设计方法和程序设计风格的介绍很少,对编程能力的培养不足,导致学生学不深、学不透、学不精,不会编写和调试程序,不会测试程序的正确性,编写的程序可读性很差,遇到稍微复杂的程序就读不懂,更不用说运用学到的概念去解决实际问题了。
2.2 以教师为主体,忽视学生的能动作用
以教师为主体的教学方法中,由于片面强调和突出教师的主导作用,忽视和压抑了学生的能动作用;片面地强调知识的传授和灌输,忽视了学生创新能力的培养;注重“知识型”人才,忽略了“智能型”人才的培养。在教学的过程中,教师只注重讲解概念、语法和程序,不注意调动学生的学习热情,学生被动接受灌输的知识,学习热情低,即使掌握了这些内容,也不能灵活运用,达不到举一反三的目的。
2.3 多媒体教学过分强调表现形式,忽略了内容本身
在现代化的教学过程中,利用投影仪、计算机、网络等现代设备开展多媒体辅助教学,具有较好的教学效果。但是在课件制作上过分强调表现形式,忽略了内容本身,往往造成喧宾夺主,达不到预期的效果;另外在课堂上,教师过分依赖课件演示,忽视与学生沟通,影响学生参与教学活动的积极性。
针对以上存在的不足,我们在对C 语言教学过程中,开展了一系列的教学改革,在教学中采用案例教学法,强化师生互动,积极培养学生学习兴趣,并合理使用现代教育手段,取得了良好的教学效果。
3 教学改革方法
3.1 采用实例教学,突出能力培养
为了改变以书本为中的注入式教学方式,我们探索采用了实例教学法,以程序设计的需要带动语言知识的学习,在每个知识点上以引例开头,激发学生的好奇心和求知欲,从而促进学生成为教学主体,引导学生进行自主学习、合作学习、研究性学习,增强学生的综合应用能力,从而提高了教学质量,取得了良好的效果。
在实际教学实施过程中,我们采用了项目递进驱动教学法,改变满堂灌的做法,将学生的眼手脑全部调动起来。精心设计实例,给学生一个比较实际的切入点,通过教师的演示使学生感觉能够入手,然后再将此实例不断修改、扩充,引导学生参与到程序的编写过程中,并将学生设计的程序展示,让学生来评判优劣、吸收优点、修改错误,引导学生进行程序优化。比如在进行if语句的教学时,针对符号函数的求解,我们给出多种可能实现的程序段,让学生分析哪些程序段能够完成计算,哪些不能完成计算,对不能完成计算的程序段如何进行修正等。通过这些程序的分析,使他们加深了对if语句的理解,掌握了if与else的配对关系,并灵活运用去解决其他问题。
3.2 强化师生互动,激发学习学习热情,发挥学生主观能动性
在C语言教学中,我们大力强化师生互动,充分发挥学生的主观能动性,注重培养学生独立学习、独立思考、勇于创新的能力。师生互动教学我们采用了“问答式”、“讨论式”等多种形式。每一种方式都有其特点和特定的适用范围,在实际教学中我们根据具体情况加以灵活运用。
“问答式”就是教师事先设计好问题,启发学生思考,引导学生在问题解决中构造算法进而掌握相关的概念、语法、功能及应用。例如:要求学生编程实现输入三角形的三条边a,b,c,计算以这三个数为边长的三角形面积。我们可以适当进行提示提问:①输入的三条边能否构成三角形?②已知三边长,三角形面积该如何求呢?这就要结合中学时的数学知识,对于问题①用数学语言来描述为:两边之和大于第三边。那么用程序语言该如何描述呢,应该采用哪一种程序结构?顺序、选择还是循环?程序结构知道了,下一步就是根据数学公式计算面积。这样,逐步对学生进行提示和引导,可以使学生的思维一直处于活跃状态。
“讨论式”就是教师预先设定讨论题目和要求,由学生分组讨论的一种互动教学方式。它适用于课程中的重点难点问题。如在链表的教学中,我们就如何利用链表实现栈、队列,用链表实现与用数组实现各有什么优劣等问题时就采用“讨论式”教学方法。课前教师将问题提出来,让学生自己去思考。学生自由组合形成若干各小组,每个小组应有一位秘书,负责全程记录讨论过程,最后每个小组要出一份讨论报告,然后由每个小组推选一位学生上台讲解本组的实现方案,其他组的同学可自由提问,最后由教师对方案的可行性、是否有创新、须改进之处一一进行分析讲评。这种方式有利于培养学生的思维能力和协作能力,激发学生学习热情。
3.3 合理使用多媒体,提高教学效率
在教学中结合形象直观的事例或图形讲解概念,可以充分发挥学生的形象思维能力,不但易于理解和掌握,而且印象深刻,能有效地提高学习效率。因此在C语言教学中我们可利用多媒体代替传统的板书,将文本、图像、声音、动画结合起来,使抽象的内容变得形象生动,学生通过多种感官来获取知识,形成相关的概念。但是滥用多媒体教学,不但达不到预期的教学效果,反而会分散学生的注意力,削弱教师在教学过程中的主导作用,甚至影响学生的学习积极性。在C语言多媒体教学实践中,我们着重解决好以下问题。
3.3.1 课件内容与形式的关系
在制作C语言课件时,我们要根据课程的教学内容的性质和特点选择恰当的技术手段和表现形式,充分利用了各种媒体信息为教学内容服务。在课件制作上,不需要花时间、花精力对课件进行包装,刻意追求特技效应。在课堂教学中,过多的画面切换,容易造成学生在学习过程中应接不暇,对所学内容生吞活剥,能力的培养无从谈起。实践证明,附加信息和无关信息过多,虽然从心里上加深刺激了学生的感知能力,但却显得主次部分,容易分散学生的注意力。因此我们要求课件制作要务实,不必特别美观,也不必有很高的技术含量,涵盖的知识点也不必很多,只要能使抽象、难懂的内容变得直观、易懂,有利于学生更好地接受所学的知识就够了。
3.3.2 注意发挥教师的主导作用
虽然教学课件事先已经做好,但不是说在课堂上教师只充当“解说员”、“演示员”就可以了,这样可能会出现学生看了很多,听了很多,却不知道要学什么,什么是重点难点,而事与愿违。其实,多媒体辅助教学作为一种现代化的教学手段,是用来提高课堂教学效率、突破重难点、解决一些传统板书教学不容易理解的问题。作为教师应把握住自己在教学中的主导地位和作用,通过教学过程的设计和灵活多变的操作,使多媒体发挥最佳教学功能。
4 结束语
采用这些教学方法,有提出问题、解决问题、扩展问题、再解决问题、对解决问题方法的评价、优化等几个环节,实际上是一个螺旋式滚动向前的过程,在这个螺旋式不断向前的过程中,能够非常自然地调动学生参与的积极性,而且通过问题的扩展,通过一个问题的多种解决方法,使学生在课堂上真正地成为“主体”,教师扮演“主导”角色。当然,在改进和探索教学方法的同时,我们还要充分利用机房、网络和课外环境,启发和调动学生的学习积极性,培养和提高学生的自学能力。
参考文献:
[1] 中国高等院校计算机基础教育改革课题研究组.中国高等院校计算机基础教育课程体系2006[M]. 北京:清华大学出版社,2006.
关键词:程序设计;教学方法;案例教学
作者简介:陈军(1975-),男,福建福州人,福建江夏学院电子信息科学系,讲师。(福建?福州?350108)
基金项目:本文系福建江夏学院2012年度教育教学改革非资助项目“《计算机程序设计》与《程序设计课程设计》实验教学整合研究”的研究成果。
中图分类号:G642.0?????文献标识码:A?????文章编号:1007-0079(2012)25-0067-02
全面推进素质教育,培养学生的创新能力、协作精神和实践能力是当前我国教育改革和发展的方向,也是高等学校办学的根本宗旨。有别于研究型本科教育的精英教育思想,应用型本科教育更加注重学术性教育与职业性教育之间的平衡,要求从未来的人才市场需求出发,培养学生良好的知识、能力和素质,满足就业市场需要。
“计算机程序设计”是目前国内大多数高等院校为本科生开设的计算机基础课程,是理论与实验同步开展教学的课程,具有较强的理论性和实践性。学生不仅要学习一定的语法知识,而且还要通过一系列的编程实践练习,才能熟练掌握程序设计的技巧。这是一个培养学生思维能力、分析能力、实践能力和创新能力的过程。
笔者从教学实践出发,对“计算机程序设计”课程的教学进行分析和探讨。
一、“计算机程序设计”教学实践
1.教学背景
福建江夏学院(以下简称“我校”)是一所新晋本科院校,“计算机程序设计”课程是我校在本科教学中第一次采用“16+2”的教学模式进行授课的课程。“计算机程序设计”安排在教学的第1到第16周;程序设计课程设计是计算机程序设计的补充和延伸,安排在教学的第17到第18周,集中进行设计实践。电子信息科学系组织教师,成立备课小组,准备各种教学素材;学校督导组全程监督和指导。这次实践可以为后续采用“16+2”的教学模式的课程及时提供实践材料和经验总结。
2.教学过程
“计算机程序设计”课程安排64学时,理论和实验课比例为3:1。理论课安排在多媒体教室,通过PPT授课,讲解语法知识,并结合课堂实例,分析程序运行结果;实验课安排在机房,安排章节的上机测试,给出具体题目,要求学生通过阅读教材及相关资料,编写程序并通过调试运行。每个章节都有相应的作业和课后辅助测试习题;重点章节还要提交上机实验报告。教师通过修改作业和实验报告,及时掌握学生的学习情况。
另外,教师通过互联网环境(学校的VPN网络、FTP、QQ等),各种学习资源,比如:课件、预习实验任务、作业和实验结果等,并且在线和离线为学生辅导答疑。
3.教学结果
在成绩考核中,期中考试成绩和平常成绩占30%,期末闭卷笔试成绩占70%。经过一个学期的学习,绝大多数学生通过课程考核。但是,学生实际编程能力和水平较低,并没有为后续课程的学习打下一个良好的基础。
二、“计算机程序设计”教学存在的问题分析
传统的教学模式是以教师为中心,常采用“填鸭式”教学方法,学生被动接受,很少主动思维,难以形成自己的知识体系。教师循规蹈矩,认真教学,履行职责,付出大量精力;学生用心听课,努力做练习,花费大量时间。但是,虽然教学过程不乏实例,却难以吸引学生;虽然教师在课后认真批改作业,却难以避免学生抄袭应付。结果是一代又一代的大学生,毕业之后还是不会编程。目前“计算机程序设计”课程教学的主要问题表现在五个方面。
第一,教学面面俱到,在有限的课堂授课时间内难以实现突出重点难点,学生感觉听流水账一样,逐渐失去学习兴趣。
第二,理论课教学,以教为主,侧重语法。虽然有利于系统传授与掌握编程知识,但是束缚了学生学习的积极性和主动性。
第三,实验课教学,实验内容多为验证型和章节某个知识点的简单设计型。学生通过验证书本程序,编写简单代码,但只是巩固所学章节的语法,不利于发挥学生的创造性,不利于快速、有效地提高应用能力。
第四,考核方式不合理,笔试成绩所占比重过大。学生可能采用背书、背题的方法通过考核,拿高分,不能真正地培养和提高学生的编程能力和水平。
第五,课后辅导费时、效果差。学生通过网络通信工具联系教师答疑,时间上有一定的滞后性,效果上有一定的个别性,教辅过程缺少一个良好的平台。
三、“计算机程序设计”课程教学改革措施
为了适应应用型本科“计算机程序设计”课程的教学改革需求,应该融合教师的“主导性”和学生的“主体性”,进行“双主”的教学设计。教师有效组织学习活动,实施教学目标控制,设置学习情境,提出问题;学生不再被动接受,而是开展自主学习,团队协作,提交学生的学习积极性和创造性。下面结合笔者在“计算机程序设计”课程方面的教学体会,探讨优化教学的具体方法。
1.开编点题,明确目标
关键词:Visual Basic;程序设计;教学改革;实践
中图分类号:G64: 文献标识码:A文章编号:1007-9599 (2010) 05-0000-02
Reform and Practice of Visual Basic Programming Course
Ma Zongmei,Qi Hui,Zhu Yansong
(Zhongyuan University of Technology,Zhengzhou450007,China)
Abstract:In view of the existing problem of Visual Basic programming course for the non-computer major,reform and exploration has been done on content of courses,teaching method,computer practice and assessment method.Practice has proved that these methods exert positive effects on enhancing the teaching quality.
KeyWords:Visual basic;Programming;Teaching reform;Practice
一、引言
目前,计算机技术已经应用到各个行业,掌握计算机应用基本技能成为新世纪人才不可缺少的基本素质之一。《Visual Basic程序设计》作为一门高级语言程序设计课程,在培养学生严密的逻辑思维、培养非计算机专业学生利用计算机解决本专业问题的能力方面有着非常重要的作用。VB(Visual Basic的简称)继承了BASIC语言简单易学的优点,同时又支持面向对象的程序设计思想和提供可视化的编程环境。因此,《Visual Basic程序设计》是我校面对非计算机专业类学生开设的一门程序设计基础课,在大学一年级的第二学期开设。
本课程具有理论性、实践性强的特点。在此之前,多数学生对程序设计的思维方式还不适应,分析和解决问题的能力还处于一个较低的水平,因此很多学生反应程序设计是一门难学、难懂的课程。
多年来,我们《Visual Basic程序设计》课程组教师根据程序设计语言课程的特点,结合学生的基础,在教学内容、课堂教学方法、上机实践和考核方式等方面同时进行了研究,提出了VB课程教学方法的改革措施并进行实践,取得了较好的成效。
二、教学改革与实践
(一)培养学习兴趣,激发学习热情
我国古代教育家程颐先生曾经说过:“教人未见其趣,必不乐学。”很显然兴趣是最好的老师。只有学生对学习的内容感兴趣,才能激发其学习的动力和创造力。
怎样才能提高学生的学习兴趣呢?往往第一节课对学生认识本门课程起着很重要的作用,因此上好第一堂课对提高学生的学习兴趣至关重要。第一堂课首先介绍本课程的特点、教学目标、教学重点、教学安排和考核方式等,以便让学生对本课程有个初步的了解。教师还可以设计与生活密切相关的一些案例给学生演示,让学生知道VB到底能做什么,VB与自己的生活到底有多近,以此来激发学生学习本门课程的积极性。
其次,在教学过程中,要注意保持学生的学习兴趣,可根据章节内容设计相关的实例。如在讲授文本框和命令按钮控件时,可制作一个用户登录界面;讲授数组时,可制作成“计算器”;讲授文件系统控件时,可制作成“图像浏览器”等等。通过这些和日常生活相关的实例,学生从中可见VB的价值和实用性,使其产生自己动手编程的想法,自然就有了学习的自发主动性。
(二)课堂教学内容和教学方法改革
教学内容和教学方法的设计对教学效果的影响至关重要。教学内容的选取必须按照VB课程教学大纲的要求,适当安排学时。而适宜的方法能够自然地引导学生从感性认识升华到理性认识,掌握相应的知识点,并提高实际编程能力。
1.教学内容要轻重有分
VB课程为60学时,包括理论教学和上机实践。教师在授课的过程中,应该强化编程思想和算法设计,淡化语言,做到轻重有分。这样才能让学生在有限的学时内掌握VB程序设计的精髓。
例如,要着重强调面对对象的程序设计思想,VB中引入了类、对象、属性、方法、事件等许多新的概念,这些概念是理解和使用面向对象技术的基础和关键。讲解时可以先从现实世界中的对象引入,如桌子、汽车等,然后转到VB实例里的类和对象[1]。还有结构化程序设计思想也是比较重要内容,要多用一些时间和例子来讲解。而对于语言规则方面,比如相似运算符之间的区别等知识点可以弱化,知道就行,避免学生钻牛角尖的问题出现。
学生一旦掌握了VB的编程思想的精髓,对其它程序设计语言的学习会有借鉴作用,也就变得轻松起来。
2.案例教学法
VB提供了可视化的开发环境,控件的使用及其属性和事件过程的设计是本课程的重要组成部分,讲解中应注意突出控件的主要属性、事件、方法。这些理论会让学生觉得很枯燥,也不容易理解。如果能够结合相关知识,设计一些恰当例子,就能解决这些问题。因此,VB程序设计语言要以案例为中心来组织教学,才能真正达到激发兴趣、巩固知识、培养能力、提高全面索质的目的,从而使教学质量得到提升[2]。
例如,在实例中让学生来理解什么是事件驱动,在实例中让学生掌握如何设置控件的属性、如何设计控件的事件过程;通过典型的算法和案例使学生掌握结构化程序设计思想,提高编程能力。
案例教学可以使学生全面了解VB的基本风貌,从而尽快的掌握基本的程序设计技能;可以使学生从案例设计中得到有益的启示,为应用程序的开发积累更多的经验,可以说案例教学法的采用是提高VB教学效果的重要手段。
案例教学可以从以下几步进行。
(1)问题的提出
根据要讲授的内容,事先设计好问题,启发学生思考。引出要讲解的内容。
(2)程序的分析
和学生一起分析,如何应用所学理论知识来解决问题。分析中应多引导学生积极思考、一题多解,寻求最佳解题方案。
(3)程序的代码
将解决问题的方法转换成VB代码行。书写程序代码时必须按照编程规范来书写,以提高代码的可读性。如代码行采用缩进格式、变量名的命名规范和程序的注释等。
(4)程序的运行
编写好代码后,在VB中运行。在验证程序正确性的同时,及时处理程序中的错误,并学会如何选取测试数据等。
3.上机实践
VB是一门实践性很强的课程,上机实践课作为与课堂理论教学的配套,是一个重要的教学环节。它要求学生利用所学知识,实际上机编程,解决一些具体的问题。它既巩固学生所学的理论知识,又提高学生的动手能力。这一部分我们要求学生完成以下三个方面的作业,并对完成情况进行检查和统计。
(1)上机前作业。上机前根据章节内容精心设计相应的题目,包括选择、填空、编程等题型。为了避免学生上机毫无准备,浪费时间,并要求学生必须在上机前在作业本上完成。上机过程中教师都要进行检查,作为平时成绩考核的一部分。
(2)上机课内容。我们把每次上机的作业题做成题库的形式,学生在上机课上通过考试系统做练习。学生必须在考试系统规定的时间内容完成上机作业并通过考试系统提交。上机过程中,学生可以对自己事先编好的程序在VB的环境中进行调试,发现错误并进行修改,直到正确为止,并在作业本上进行更正。
(3)上机后反馈。上机结束后,学生通过考试系统提交自己的答卷。教师将在改卷系统中对学生的作业进行批阅,了解学生对知识的掌握情况,同时记录每个学生的作业情况,作为平时成绩考核的一部分。对于学生普通出现的问题,在课堂上集中讲解并强调。
4.改变现有的考核方式
期末每个学生VB课程的成绩由课堂考勤、作业情况、上机实验和期末考试四部分决定,其比例分别为:10%、10%、10%和70%。以往期末考试采取的是笔试的方式。为提高学生的兴趣和实际动手能力,从08-09-2学期开始,我们将期末考试方式改为机试,并在平时的上机课中使用考试系统进行练习,以避免学生由于对考试系统的不熟练造成的失误。经过一学期的实践,通过对比发现,这种方式既能够提高学生的积极性和实际动手能力,也使学生的成绩中有很大的提高。
三、总结
教学有法,教无定法。教师要根据VB课程的特点,找出学生的兴趣所在,按照他们的认知规律组织教学。这就要求教师,不仅掌握扎实的专业技术,还应注意教学方法的改进、充分利用现有教学资源,了解学生的特点,坚持不懈地激发学生自主学习热情,了解和帮助他们解决在编程中遇到的难题,努力提高他们分析问题和解决问题的能力。这样才能使他们轻松地学好VB程序设计语言课程,达到预期的教学效果。
参考文献:
[1]朱国华.Visual Basic程序设计.北京:中国铁道出版社,2009.4-5
关键词:C++语言;面向对象程序设计;实践教学
中图分类号:G642 文献标识码:B
文章编号:1672-5913 (2007) 24-0003-02
1引言
“C++程序设计”课程是高校计算机科学与技术专业的一门重要的专业基础课,也是“数据结构”、“数据库”、“软件工程”等专业必修课的先修课程,在整个专业的教学体系中占有非常重要的地位。但是由于本课程的学习对象一般是大学低年级的学生,他们对计算机语言、计算机编程还很陌生,加之C++语言、面向对象程序设计本身的抽象性和复杂性,使之成为一门比较难教和难学的课程。因此,如何提高本课程的教学效果一直是计算机专业教师比较关注的研究课题。
“C++程序设计”课程不仅有较强的理论性,更有较强的实践性,是一门实践性非常强的课程,其实践教学环节的效果将直接影响着理论教学的效果。因此,本文就教学过程中如何在较短的教学时间内,以简单易懂的方式,使学生能较快而扎实地掌握“C++程序设计”课程的内容,并具有面向对象程序设计的实践能力,结合校级教改课题――“计算机专业程序设计系列课的建设与改革”,主要针对实践教学的几个主要方面进行了探讨,以期能进一步提高本课程的教学效果,整体提升本课程的教学质量。
2实践环境
目前,在本课程的教学实践中大多选用的是比较流行且较为成熟的Visual C++ 6.0作为程序的集成开发环境。需要注意的是,C++语言本身的开发平台是DOS的,而不是Windows的。Windows平台提供了一个很好的程序框架,但是初学者的注意力很容易被吸引到程序框架上去,从而很难学好C++的基础知识,因此在C++语言的实践过程中,应该采用Visual C++ 6.0中的控制台方式,在学习MFC编程的时候,再使用Visual C++ 6.0中的Windows程序框架。
3实践内容的安排原则
在实践内容的安排上,要注意把握以下几个方面:
(1) 应少一些验证性的实践内容,多一些设计性、综合性的实践内容。
(2) 实践的内容不仅要有针对性,更要能紧密联系实际。实践决不仅仅是为了掌握语法而设计,更重要的是解决实际问题。
(3) 实践的内容尽可能要求学生能够独立设计、编程,教师在实践中仅起引导和辅导的作用。进一步增强学生独立分析问题、解决问题的能力。
(4) 通过实践,不但对于课堂学过的内容进一步巩固,而且还可以进行一定程度的创新,培养学生的创新能力。
4实践内容的三个层次
对于本课程的实验指导书,从以往的验证性实验居多的情况下,应逐步改进为将本课程实验分为三个层次,即验证性实验、设计性实验和综合性实验。
验证性实验是学生根据实验指导书的要求,在教师指导下,按照既定的实验步骤,完成全部实验过程,以验证课堂教学的理论,深化理论学习,培养学生基本实验能力,使学生获得实验基础训练。如,熟悉C++程序的运行环境、运行一个C++程序的方法、数据类型与表达式等。
设计性实验是由教师给定题目和要求,学生根据已掌握的基础知识、基本理论,选择相应的数据结构和算法,独立完成实验,写出实验报告,并进行综合分析,培养学生动手能力、分析解决问题和创新思维的能力。同时,在实验过程中,使学生初步了解编程的基本要求和一般程序,培养学生实事求是的科研态度和严谨的治学作风,为将来从事实际工作打下基础。整个实验过程中,学生都处于主动学习的状态,学习的目的非常明确,独立思考,特别是创造性思维比较活跃,学生主动学习的积极性可以得到充分调动。如,程序的控制结构、函数的使用等。
综合性实验是指学生在学习和掌握一定的基础性实验原理、编程过程和实验技能的基础上,运用本课程的综合知识或与本课程相关的课程知识,对所学知识进行优化组合、综合应用的实验。此过程不仅使学生能够更深刻的理解所学知识,而且在一定程度上也培养了学生运用已学知识解决各种实际问题的综合能力。这对于培养创新人才、培养学生运用不同的思维方式和不同的编程方法综合分析问题、解决问题的能力大有裨益。比如将类和对象、封装、继承和多态性的思想集成在一个综合的与实际紧密结合的实验中完成。
其中,验证性的实验尽量少一些,可以设在开始的1~2个实验中,每个实验中给出详细的操作步骤,让学生有章可循的进行实验;设计性的实验居多,只给出问题的描述和重要知识点的分析,由学生独立设计并完成相应的任务;综合性的实验可以设在最后的1~2个实验中,将本课程中重要的知识点进行综合,完成一个综合性实验。
另外,在每次实验结束时,对实验内容进行验收,并将实验的完成情况记入平时成绩中,这样做不仅会提高学生学习的效率,同时也会激发学生学习的积极性。
4课程设计
在本课程的实践环节中,除了设置20学时的实验外,还针对Windows应用程序安排了1周的课程设计。对于这1周的课程设计,我们采用的是研究型学习方法,由学生在老师的辅导下,针对老师给定的题目或自选题目,进行相关的调研工作,进而完成相应的系统分析、设计、实现以及测试的相关任务,强调学生参与程序开发的全过程,并实现对所学知识的系统的总结和真正的融会贯通。
在这个环节中一定要注意是不要在整个课程设计完成之后才让学生提交一份综合的报告书,这样一方面同学不注意积累阶段性的成果和文档,最终造成实习报告书的不完整;另一方面,有些同学会在整个设计的过程中没有计划性,前松后紧,以致最终敷衍了事,没有真正达到课程设计的目的。因此,在整个课程设计的过程中要严格按照软件工程的要求,分阶段布置任务,并让学生分阶段地提交相应的文档和实习成果,督促学生保质保量地按时完成课程设计的任务,真正实现课程设计的目的。
5改革的效果
对于本次“C++程序设计”课程的实践教学的改革,在北京林业大学计算机科学与技术专业05级1、2、3、4班中进行了实践,实践后达到了以下的效果:
(1) 通过本课程的学习,学生不仅仅是掌握了语法,更重要的是掌握了常见的程序设计的算法,并能通过算法来进一步理解语法。
(2) 进一步激发了学生学习程序设计的兴趣,增强了学生学习的主动参与性,减少了学生对编程的恐惧心理和畏难情绪。
6结束语
本次“C++程序设计”课程实践环节的教学改革只是一个初步的成果,在今后的教学过程中还需要不断地实践、不断地积累。在本课程的教学过程中,一定要注意激发学生学习的兴趣和主观能动性;加强学生的实践能力,尤其是主动参与实践的意识的培养;使学生不仅掌握理论知识的学习,还具有较强的独立的程序设计的能力。
参考文献
[1] 陈志泊,王春玲. 面向对象的程序设计语言―C++[M]. 北京:人民邮电出版社,2002.
[2] 周立章. C++面向对象程序设计课程教学探索与实践[J]. 西华大学学报(哲学社会科学版), 2005, 增刊: 257-258.
作者简介
【关键词】程序设计;教学改革;项目教学;
非计算机专业目前,绝大多数高等院校已经把计算机程序设计课程作为非计算机专业的一门公共基础课,这是与培养学生应用计算机解决实际问题能力的人才培养基本要求相适应的,也是社会人才需求的选择。但是,从多年计算机程序设计教学经验发现,学生对程序设计课程的学习积极性、主动性不强,甚至很多学生对这门课程开设存在质疑。如何高质量的完成非计算机专业的程序设计课程教学,是笔者一直关注的问题。
1程序设计教学在非计算机专业中存在的问题
1.1学习目的模糊。学习目的不明确是非计算机专业学生学习程序设计课程的主要障碍。很多非计算机专业特别是文科、管理类等专业学生认为学好本专业知识就够了,程序设计课程应该是选修课,对编程有兴趣的就选修,没兴趣的就可以不选。这种认识的不足直接导致其在学习过程中缺乏主动性和积极性,对计算机程序产生畏惧甚至厌恶心理。
1.2知识跨度大,学习困难。尽管有计算机文化基础作为入门,但两门课程在逻辑思维上有着很大差别。计算机文件基础属于应用层面,程序设计课程是以某种程序设计语言为工具,通过分析、设计、编码、测试等不同阶段给出这种语言下的程序以达到解决特定问题的目的。程序设计需要建立程序设计思想,逐步深入到软件本身的学习内容,进而达到熟练运用这种语言解决实际问题。程序设计课程在学习和理解上难度显然比计算机文化基础要大得多。
1.3教学方法陈旧。很多院校的这门课程仍以课堂讲授为主,教师在讲授过程中过于注重知识的传授,如语法、语句、结构等概念性内容,算法设计、程序编写、逻辑思维和抽象思维等能力方面的培养在教学内容中没有充分体现,课堂教学没能体现计算机在专业领域中的应用。
1.4缺乏综合能力的培养。计算机程序设计是一门综合性、实践性很强的课程,由于课时的限制,学生的实践课程更多的是验证课堂上学过的知识和程序,而对包括逻辑思维能力、独立思考能力、动手能力等学生综合能力培养关注不够,学生编程思想不能很好的建立起来,程序无从编起,出现“听得懂,编不出”现象。
2程序设计课程在非计算机专业改革中的前期准备
2.1适应专业需求,选择适合的程序设计语言。
选择适合的程序设计语言对于非计算机专业学生而言至关重要。程序设计课程有面向对象程序设计和结构化程序设计。目前,绝大多数高校都会选取一门结构化语言作为程序设计课程,而且基本上是C语言。结构化程序设计语言具有自顶向下、逐步细化、模块化设计、结构化编码等特点,是一门实用又好用的程序设计语言。面向对象程序设计语言在概念的理解和编程思想上有很大的不同,相对学习起来也困难些。笔者认为选择程序设计语言不能跟风,图一时的省事,不同的学校有不同的特点,同一个学校还有不同专业,所以选择使用哪种语言作为程序设计课程使用第一要务是适合专业需要,同时兼顾社会需求。尝试像Java这样的面向对象程序设计语言也不失为一个很好的选择,对于偏文科、管理类的专业可以选择Visual Basic程序设计语言。
2.2做好教学设计,编制教学一体化设计方案。
依据对学习者学习需要的分析,采用项目引领教学,使教学效果达到最优化,教学设计提出解决问题的最佳方案。在开课之前做好教学设计方案至关重要。
课程教学一体化设计方案编制体现优化组合原则、因材施教的原则,按照项目引领教学,通过多种媒体教学资源和多种教学手段、方法的优化组合,体现“以学生为主体”的教学思想。课程教学一体化设计方案的基本内容包括:课程性质、地位及课程教学目的等;课程的基本内容、各部分内容之间的关系、课程的主线、各主要知识点在教学上的要求等;课程媒体的数量、内容及在教学中的作用、媒体在自学和教学辅导中的分工、如何使用等;教学过程的组织、监督与管理;教学安排建议包括面授辅导的次数、内容、形式及时间,讨论、作业的安排等。
3程序设计课程在非计算机专业的改革思路
3.1以学生为中心,上好第一堂课。
为消除学习程序设计的为难情绪,激发学习热情,提高学习兴趣,我们认为第一节不仅需要给学生一个课程内容的概要介绍,更需要贯穿“以学生为中心”的教学理念,培养学生自主学习能力。
在课程内容安排上,我们会简单讲解程序设计是什么,它能完成什么任务,让学生有一个基本而清晰的认识。重点结合实例讲解对程序设计专业学习的促进作用,哪些方面要求大家具有使用计算机及编程语言解决问题的能力,还有国家二级计算机等级证书在多数用人单位招聘时会获优先录用等实用信息内容。由于这些内容和大学学习以及就业紧密关联,学生听起来非常专注。在了解本专业对计算机能力的需求以及社会对专业人才计算机能力的要求后,学生往往会产生强烈的学习热情,最起码不质疑不排斥了。
3.2以项目为驱动,加强实践教学。
程序设计是一门实践性特别强的课程,学生只有在实际编程中不断总结经验,不断理解编程思想,经过长时间的积累才能自由运用语言达到编程程序解决实际问题的能力。在教学过程中增加更多的实践环节,根据各阶段教学的教学目标,设计合理可行的实践项目,并对项目开展中出现的问题进行分析,解答主要问题,引导学生按照专业的开发流程开展项目。
3.2.1学生分组,确定项目负责人。改变传统的课堂教学实验只是为了验证课本上或教师准备的实例的做法,注重项目的系统性和知识的综合性。培养学生团队合作意识,调动学生的主观能动性出发,采用项目组长负责制的分组方式。每组成员一般在3到5人,组长一人,负责项目设计的总体运行和任务分配。
3.2.2搭建开发平台,选择适合的开发工具。在搭建开发平台时考虑将开发工具、数据库、Web服务器等集成在一起的可视化开发环境,框架结构部分已由开发工具自动生成,减少不必要的编码,又有“所见即所得”的效果。学生有了一定的程序设计基础后,再使用非可视化的开发环境,锻炼学生的程序设计能力。
3.2.3设计用户界面,引入评价机制。为了学生容易上手可以先安排界面设计,这种先易后难、循序渐进的方法使学生产生满足感、成就感,激发进一步学习的热情。用户界面设计出来后,首先各小组选派一人阐述设计思想,然后各小组互评,最后选出优胜者,可以设计一些评价机制和鼓励办法,使学生不仅学会还要优化。
3.2.4编写程序代码,建立程序设计思想。根据学生的实际接受能力,教师按照事先划分好的任务,用实例对每一个知识点进行讲解。教学过程中应避免面面俱到,贪多求全,像玩游戏一下尽可能让枯燥的编码充满乐趣。对于学生,充分发挥项目组的作用,从软件工程的角度出发,适当使用一些其他的辅助工具,提高综合运行能力,建立程序设计思想。
3.3 以人才培养为导向,改革考核方式。
以往的考核方式基本采用笔试+机考的方式进行。笔试和机考的内容、题型相对固定,特别是受考试时间的限制,基本没有综合项目设计方面的考核,考试成绩不能反映学生的综合能力,这样就偏离了程序设计课程考核的本质,因此,提出以人才培养为导向的考核方式改革思路。
跟踪学生的整个学习过程,通过教学过程中项目的完成情况考核学生的学习态度、知识的掌握程度和解决实际问题的能力。授课教师可以采用形成性考核方式+终结性考核两种方式,形成性考核主要依据项目的完成情况,每完成一个项目考核一次作为平时成绩;终结性考核安排在期末,要求学生选一个综合类的项目进行演示,并回答由相关学科的教师组成评审组的问题,教师对项目评分形成期末成绩,平时成绩和期末成绩的汇总就是这门课程的总成绩。这种考核方式避免了学生平时不学习,期末突击复习的弊端,达到了人才培养的目的。
参考文献
[1]罗湛,邓朝霞.非计算机专业C 语言教学改革探讨[J].装备制造技术.2013年第12 期:202-204.
[2]陆金钰,秦庆东.面向土木专业人才培养的《计算机程序设计》课程改革实践与探索.教育教学论坛.2014年第四期:213-215.