编程实践(精选十篇)
编程实践 篇1
为了实现通过本课程的学习,能初步使用VBA编程实现日常工作的自动化,为学生进一步学习更高级的编程技术打下个理论和实践基础的教学目标,作为整个专业培养过程中的一个重要阶段,笔者在培养学生基本编程语句的组织和基本面向对象概念的应用的过程中,通过灵活运用多种教学方法和教学手段,相机培养学生对编程的兴趣,继而培养学生完成小型软件工程项目的设计能力及决策能力、创新能力。并在编程实践和考核等方面进行了相应的改革。
1 教学方法和教学手段
1.1 将创造性思维的方法、创造技法融入课程教学内容
在课程知识的表达结构、形式、方法等方面的教学过程中,结合创造性思维的方法、创造技法,在课程教学的全过程中实施素质教育,进行创新能力的培养。
例一、培养学生把握事物之间的关系和规律性的能力。对理论性较强的内容,用循序渐进的案例引导学生分析认识。例如,讲解对象时候,不是按教材上先讲解概念、接着再讲解代码。而是在讲解类和对象之前,我先问学生:“我们是什么类”。肯定有人笑着说:“要你废话,大家都知道我们是人类啊。”那教师接着问:“根据中国的神话传说,女娲造人之前有人类了吗?”这个问题怕是不一定有人能回答正确了。正确答案是:“已经有人类了。”因为类是个抽象的‘概念’,那时候在女娲脑袋里已经有了人类的概念了;比如说对于眼睛来说:有单眼皮、双眼皮、单眼皮里又有丹凤眼等等。当她用泥巴创造出具体的人时候,根据她脑袋里的‘人类’,造出各种类型的人来。人类和具体的一个人(比如说你)的关系,就是类和对象的关系。对象的共性抽象为类,类的实例化就是对象;对象是类的一个实例,类是所有共性的对象的抽象。综上所述类就象是模板,有各种供选择的配件;而对象是实物,从上面的例子中可以看出一个人不可能既是单眼皮又是双眼皮在同一个眼睛上。所以在实际编程中调用类时候要实例化一个对象,类是不能直接使用的。接着讲解对象三个重要的概念:属性、方法、事件。
属性是这个对象所具备的特征,使用格式:对象名.属性=<某个值>或<某个变量>=对象名.属性。注意有‘=’号。
方法是这个对象做什么事情,使用格式:对象名.属性参数1,参数2。注意没有‘=’号。
事件是对象外部的‘诱发力’。
讲完上面概念马上叫一个学生到讲台上,告诉学生一个场景。如我突然间被推了他下,之后发生了一系列的动作(方法),如:他后退两步骤,狠狠瞪了推他那人两眼。结合上面的三个概念,我们可以写出一个类似VBA的编程语句。下面对象是‘某人’、事件是‘被推’。
Sub某人_被推
某人.后退两步某人.瞪大眼某人.脸色=“红”某人.表情=“愤怒”
End Sub
最后通过具体的程序,再举例说明。通过上面的说明,让学生知道程序设计是现实生活的一个映射。编程方法和现实生活中做事情的步骤是一致的,只是表现的形式不一样。
例二、培养分析问题、洞察问题的能力。在介绍自定义函数时候,先通过一个实例《XX单位党员应交党费清单》,由于这里里面有些复杂的计算,如果是按常规的方式要逐条计算输出结果。那如何用VBA使之自动化呢?不急的讲解这个代码的实现过程,先从函数的使用功能讲起,慢慢的引导学生实现此要求的VBA程序。培养学生从具体的例子出发,透过一两个例子,看出处理相关问题的本质。最后得出结论分析问题应“透过现象看本质”,要做到举一反三。
例三、结合课程内容的叙述,相机介绍创造性技法。例如,以发明创造技法中的“组合法”的思路,介绍IF语句和单元格对象为契机。通过有趣的算法:如手机吉凶测试算法说明,让学生完成此小型的软件项目。这样,不但使枯燥的内容变得有趣,又让学生感到搞发明创造并不神秘。
1.2 采用启发式教学方法,调动学生的学习积极性
在这一方面,笔者通过把握每一章节的重点和难点,理清思路,按照由浅入深、由表及里、深入浅出等原则启发学生,采用“设疑”、“置疑”的“问题启发式”的教学方法。如讲授《教师教学质量评估核分模板》时,首先引出“单行数据是怎么处理的”,然后提出“如何处理整张表的数据”,引出多重循环语句在处理工作表时的应用规律。通过采用“启发式教学”和“问题式教学”,激发了学生的学习热情也巩固了学生学过的旧的知识。
1.3 注重交互式教学方式
交互式教学方式的关键在于互动,特别是综合运用当前高校中普遍运用的“任务驱动法”,其重要的作用在于充分调动学生的积极性,发挥学生的主观能动性。特别是在采用多媒体教学方式时显得尤其重要,在一定程度上它避免了教师只凭一张嘴、播放PPT讲完一堂课的死板教学方式。例如在讲解《用Excel实现竞赛核分与排名后》后,即向学生提问:如何用Excel工作表实现一个小型的“五子棋互动游戏”?接着从简单的需求开始逐步向学生提出一定的开发任务并进行分组讨论。这既引导学生思考并应用刚学的知识解决问题,又让学生体会到,工程应用问题不仅有是与非的单一判断,还有合理与否,好与不好的综合决策。
2 作业实训和考试等实践环节的改革措施
在实践教学环节上,教学设计以培养学生的独立思考能力与动手能力为主导原则,培养学生的独立思考能力和实践能力。具体做法是以案例教学为主线,即在实训中积极引入企业的真实案例,以案例为载体培养学生编程能力和团队的组织协调能力。将创新能力培养、工程素质教育,渗透在课程实践环节的教学中。具体措施为注重在传统上机作业任务之外,在每学期中间试点增加了要求学生结合课程相关内容编写创新小程序,试行软件项目作为平时成绩的一部分的考核约定;期末考试还是采用闭卷笔试的形式,但考核思维能力的题目比重加大。同时,本课程充分利用网络资源,开发网上教学平台.学生可在课余时间查阅网络教学资源和自建的试卷库以及丰富的案例库,每学期都在不断增加题库和案例库的数量。同时,笔者和课程组成员通过组织编程兴趣小组和软件作品观摩会提高广大学生编程的兴趣和创新能力。
3 结束语
结合高职学校学生的特点,从培养应用型软件开发人才的培养目标出发,探索综合运用多种教学方法和手段进行编程思想、编程能力的培养的新途径。通过课堂教学改革,活跃了课堂气氛,激发了学生学习“OFFICE VBA编程”的积极性,逐步培养了学生的创新意识。在软件编程的课程教学中,注重实际案例教学和编程任务的训练对于提高学生的编程能力至关重要。在今后的教学实践中还要继续针对高职学生素质特征,运用现代教学理论和网络技术,进一步加强课程内容的合理调整、强化实践环节,进一步提高课堂教学效率,培养学生的综合编程能力。
参考文献
[1]李政,梁海英,李昊,林广朋.VBA应用基础与实例教程[M].北京:国防工业出版社,2009.
[2]胡勇智,白国庆,雍华夫,等.对高职院校软件技术人才培养模式的研究[J].计算机教育,2009(24):36-39.
[3]张忠林.基于项目驱动模式下的“软件工程”教学改革[J].计算机教育,2009(2):53-55.
敏捷结对编程实践 篇2
你了解结对编程吗?你尝试过结对编程实践吗?也许你还未曾尝试甚至还不曾了解,那么我们一起来学习和了解敏捷结对编程实践,相信对敏捷感兴趣的你会有收获。
什么是结对编程
结对编程(Pair Programming)是一种敏捷软件开发实践,指两个程序员并排坐在一台电脑前,面对同一个显示器,使用同一个键盘和鼠标一起工作。一个人输入代码,而另一个人审查他输入的每一行代码。输入代码的人称作驾驶员,审查代码的人称作观察员(或导航员), 两个程序员定期互换角色。他们在一起完成需求分析、系统设计、编码、单元测试、整合测试(Integration Test)、写文档等工作。基本上所有的开发环节都一起肩并肩地、平等地、互补地进行工作(如图1所示)。
图1 共用一台电脑进行结对编程
上面是极限编程(eXtreme Programming,XP)对结对编程的描述,它有如下主要的优点:
有利于提升项目质量,减少Bug;
有利于知识传递,降低学习成本;
多人熟悉同一段代码,减少项目风险;
与别人一起工作会增加责任和纪律性等。
尽管结对编程有诸多诱人的优点,但实行结对编程实践的却为数不多,其主要原因可能有:
结对编程需要投入更多的资源;
结对双方需同时注意力集中,否则效率更低;
结对人员能力要求相适,否则起不到观察者的作用,甚至产生依赖;
不成功的配对,经常引发争吵,产生内耗,导致团队不和谐等。
结对编程是颇具争议的敏捷实践之一,除上述一些优缺点外,可能大家还有更多不同的看法,但分析利弊不是本文所要讨论的重点。
实践经验
就我所在的项目团队而言,6人左右的开发团队需要支持多个中小型独立产品的需求开发,在繁重的业务压力下,用户价值的快速交付是首要的,所以想尝试共用一台电脑进行结对开发的实践只能是一种奢望。让团队开发人员尽可能熟悉相互间的产品代码,提升项目开发效率以及保证良好的项目质量,是我们在项目开发过程中需要重点解决的问题。
我们试图通过集体Code Review和设计交流分享等活动,来提升代码质量以及相互间业务代码的熟悉度,但一直收效甚微。问题主要在于这种集中式活动时间较难安排,人多交流效果不佳,性价比不高。后来,得益于公司的导师机制,在一对新人和导师身上,找到了敏捷结对的原型。由于他们的紧密合作,遇到问题及时沟通,新人在项目进度和质量都有不错表现,很好地融入了团队,
在后续的项目过程中,我们不断地尝试和优化这种结对形式,逐渐形成相对固定的工作方法。
与XP结对编程相比,敏捷结对编程最为显著的差异是结对进行需求分析、系统设计和问题讨论,但分别编码实现,通过过程中频繁的Review来实现结对的效果。开发人员两两结对,共同认领开发任务,一起对所承担的开发任务负责。在需求理解、设计阶段双方一起设计和讨论,然后分工各自编码实现,并通过Code Review以确保实现与设计一致。对结对过程中发现的问题,随时沟通和讨论。由于产品业务逻辑相对不是特别复杂,所以通过这种小范围、高效的沟通,可以解决项目中的绝大部分问题,实现更高的开发效率并确保代码质量。目前,在开发流程中的主要结对活动如图2所示。
图2 敏捷结对的主要活动
结对活动(如图3所示)给我们带来了哪些好处?
提升项目质量。结对开发人员在需求理解、设计思路上进行了充分的沟通和讨论,能尽早地发现和解决问题,避免前期因需求理解偏差、设计缺陷问题造成返工。
知识传递。对于新员工或经验略逊的开发人员,通过经常性的沟通和讨论,能迅速地进入角色和积累经验,发挥了传帮带的作用。
backup,规避项目风险。结对人员之间互为backup,有利于团队成员之间熟悉业务代码,若有人员异动时有利于项目风险控制。
图3 结对人员充分讨论设计细节及问题
无论新老结对还是强弱结对,都要尽力避免一方对另一方产生依赖,要给新人足够的成长和锻炼空间,让其独立思考和解决问题,并允许在可控范围内尝试失败,以获取宝贵经验得到成长。否则,团队只会多一个执行者,结对难以达到预想的效果。同时,一定程度的独立活动,可以让大家保留自己的工作习惯,而且形式更为自由和灵活。当然,大家可能会有疑问,如何保证结对人选中资深工程师工作的正确性,因为新人和弱者很有可能无法提出想要的Review帮助。这个问题在我们的结对中不可避免,有选择地邀请其他资深专家Review,也许会是个不错的解决方案,特别是对于一些重要的复杂业务逻辑。
参加结对的工程师应具备独立思考和解决问题的能力,并且具备较好的团队协作意识。否则,不仅不能有好的结对效果,反而会带来一些新问题。此外,结对也不仅限在研发工程师之间,研发和测试工程师之间或同产品经理之间的结对(如图4所示),同样可以带来不错的效果。
图4 研发、前端工程师测试之间结对解决问题
引入敏捷实践,贵在充分理解、结合实际,能扬长避短,且是一个适应、发展的过程,而按部就班绝对不是个好主意。有选择地结对对我们来说也许是上策,在结对的人选、场合、结对的环节等方面进行选择性的实施。
编程实践 篇3
【关键词】可编程控制器 实践教学改革 创新人才培养
【基金项目】黑龙江省教育厅高等学校教改工程项目:JG2012010062,JG2013010129。
【中图分类号】G64【文献标识码】A 【文章编号】2095-3089(2015)08-0218-01
引言
可编程控制器作为工业生产自动化的三大支柱(可编程序控制器、机器人、计算机辅助设计与制造)的主导,已成为发展势头强劲的工业控制器,在各个领域的运用无处不在。伴随着可编程控制器技术的广泛应用,可编程控制器课程已成为各工科院校相关专业开设的主干课程之一。但从现状上看,普便存在验证性实验多,综合设计性实验少,理论与实践脱轨等弊端[1-3]。针对这一现状,近几年来,东北农业大学电气与信息学院依托电气工程实践平台,在教学模式、教学内容、教学方法等方面进行了有益的改革,既体现可编程控制器与生产实际和工程应用结合紧密的自身特色,又很好地培养学生的创新能力和科研能力,取得了较为显著的成效。
一、依托电气工程实践平台构建新教学体系
实践教学是可编程控制器课程重要的教学环节,传统的实践教学模式,大都以验证性实验为主,课程设计仅仅动动笔,写写报告。这种模式存在很多弊端,难以激发学生学习兴趣,达不到培养创新人才的要求。为解决这些问题,我院制定“双师型”人才培养目标,即大学生在具有扎实理论知识的基础上掌握技师熟练的动手操作能力和工程师所应具备的设计思想和创新意识。基于此,以我院电气工程实践基地为载体,以学生为主体,以教师为主导,集“理论学习”、工程设计能力培养及“技能训练”为一体[4-6],构建PLC课程新的教学模式。
课程体系的构建是考虑到可编程控制器这门课程实践性强的特点,在理论授课前后分别开展实践教学,将实践教学全部在实践基地完成,每个实践基地根据实践内容安排配备实践设施。为保证理论与实践统一性,授课与实践均选用日本松下电工FP1系列的可编程控制器,以理论指导实践,实践强化理论,在教学过程中,实施内、外环式教学方法。外环指各项实践教学环节按着理论—实践—理论的原则;而内环则是在每项工程实践课程中遵循教学讲解—实际操作—教学讲解的教学方法。把原有理论授课延伸为理论授课+工程实践的教学模式,使学生掌握专业知识的同时,锻炼了动手能力,培养自身的综合素质,形成“知识+能力+素质”三位一体的教学模式[6]。
二、重视实践教学 改革教学内容和教学方法
1.加强实践环节
过去由于受重理论、轻实践的观念影响,实践环节一直很薄弱。按照我院“双师型”人才培养模式,我们及时更新教育观念,对可编程控制器这门课程做出大胆的改革,采用分段式的实践教学,即在理论授课之前先通过基础实践平台学习,使学生对可编程控制器有个初步的感性认识,增强学习兴趣,可以带着问题进行理论课的学习,避免了学习的盲目性;学完专业理论课堂授课后,再进行更深一层次的工程实践学习,重在对理论知识的综合应用,通过综合性实践检验,使学生对可编程控制器的学习系统化、实践化。在实践学习过程中,以学生实践为主,教师讲授为辅。在实践授课过程中,结合学生的实际情况及各个工程实践基地的性质,教师适当进行理论内容的讲解,并在讲解过程中指导学生进行实践。
2.深化实验方式
为提高学生学习可编程控制器的兴趣,创造条件对学生实行“开放性”实验[7],引进电梯和立体车库等可编程控制器控制模型,让学有余力的学生自主构思实验内容,编写程序和控制要求,教师仅起侧面辅导和把关作用。实验中心在课外对学生开放,给有兴趣的学生以更多的学习和锻炼机会,这种开放性实验方式更利于培养学生的综合实践能力与创造思维能力。
3.丰富教学方法
(1)根据教学基本要求,结合学生专业需要和学生层次不同分别制定教学大纲,根据教学大纲制定的授课计划。如电气化专业课堂教学54学时,电子信息专业课堂教学36学时。
(2)在实践教学中分别采用了渐近式教学法和实践式教学法。渐近式教学法是一种在实践中教授学生采取从简单到复杂,从低级到高级,从入门到精通的学习过程,即学生的学习过程分为三个阶段,从可编程控制器基础工程实践到可编程控制器应用工程实践,逐渐把知识融合到学生的头脑中。实践式教学法则是在各个实践基地以学生实践操作为主,通过讲、做相结合的方式,使学生在理论与实践相结合过程中发现问题,解决问题,增强学习兴趣,并学会理论知识和应用技能[8,9]。
通过合理的理论授课与丰富的实践教学,极大地提高了学生学习兴趣,激发了学生学习热情,化枯燥为娱乐,使学生既学到了知识,又开阔了视野,同时也收获了成功的喜悦;既锻炼了动手能力,又加深了理论知识的理解,同时又提高了综合设计能力。
三、注重理论与实践相结合 编写配套教材
结合可编程控制器课程的知识面宽,实践性强的特点,在教材编写过程中,為了使学生能够拥有更加系统、科学的理论指导,在原有理论教学基础上,添加实验与工程实践教学,课程组先后编写并出版《可编程控制器实验与实践》、《工业控制工程实践技术》和《可编程控制器电气控制与组态设计》教材。教材中既注重理论知识的传授,以动手能力、工程实践能力为培养主线,重点放在用可编程控制器解决实际问题的能力上,培养学生分析和解决问题的能力;又遵循循序渐进的原则,由基础理论知识到综合实践技能,采取由浅入深、深入浅出的培养方法,将理论与实践充分结合。
四、结束语
通过这几年的探索,依托电气工程实践平台,将工程实践贯穿整个教学过程,把原有可编程控制器理论授课延伸为“理论授课+工程实践”的这种教学模式,显著的提高学生学习兴趣,增强学生自主创新意识,使学生在就业方面及电子设计大赛均取得了优异的成绩。
参考文献:
[1]吉顺平,孙承志,路明.“可编程控制器及应用”创新教学方法研究[J].电气电子教学学报,2008,30(02):122-124.
[2]周力,赵凯,李伟.《可编程序控制器》课程教学的研究与实践[J].高教论坛,2010,2(2):36-37.
[3]袁惠娟.PLC课程教学的探讨[J].中国科技信息,2009,(20):268-269.
[4]束长宝,李新兵,王永华.“电器控制及可编程控制器”教学改革初探[J].电气电子教学学报,2005,27(6):82-85.
[5]王智朋,文西芹,王其兵等.工程实践中的创新与教学方法改革研究[J].实验科学与技术,2007,5(60:77-79.
[6]郭明良,王朋.电气工程全面教学改革培养应用型人才[J].实验室研究与探索,2009,28(6):83-86.
[7]张军香.建立开放式自动控制实验中心的探讨[J].实验技术与管理,2007,(2):133-135.
[8]沈显庆.电气工程全面教学改革培养应用型人才[J].实验室研究与探索,2009,28(7):122-124.
[9]何成辉,苏群.应用型本科院校学生能力培养途径[J].中国高等教育,2002,(2):65-67.
作者简介:
极限编程的实践与特点 篇4
软件开发方法发展至今, 人们逐渐发现老式的开发方法在大型项目开发中遵循复杂的过程, 产生并且维护大量的文档。这些过程、文档存在的初衷是确保项目开发过程顺利进行及有利于软件的维护, 并且在大型的软件项目开发中对软件质量的保证起到了良好的作用。但是软件项目种类繁多, 按规模来分也有大致七种 (见表一) , 这类重载 (Heavy Weight) 的开发方法/流程是不是适合所有的软件项目呢?很明显, 对于中小型及更小型的项目来说, 过多的开发文档、过于复杂的项目管理所带来的额外的负担很可能大大超过开发工作本身, 致使软件项目的效率降低。重载方法的另一个缺陷是不能适应难以预期的需求变化, 大型项目由于其自身的特点, 往往经过长时间的前期准备工作才确定下来, 一般不轻易更改需求/合同。而中小型项目由于本身周期短, 项目调研及需求的确定不够完善, 开发任务经常需要被调整。即使需求分析做得很准确, 客户改变需求也是经常发生的。因此, 中型以下的项目需要一种能够适应变化的软件开发过程/方法。为了迎合中小型及更小型的项目开发的管理需要, 出现了许多轻载 (LightWeight) 的开发方法和过程, 极限编程XP就是其中之一。
和传统的开发方法相比, 轻量级流程不再象流水生产线, 而是更加灵活。极限编程 (Extreme Programming, XP) 就是这样一种灵巧的轻量级软件开发方法。为什么称为"Extreme"极限?极限是指对比传统的项目开发方式, XP强调把它列出的每个方法和思想做到极限、做到最好;其它XP所不提倡的, 则一概忽略 (如开发前期的整体设计等) 。一个严格实施XP的项目, 其开发过程应该是平稳的、高效的和快速的, 能够做到一周40小时工作制而不拖延项目进度。
极限编程 (Extreme Programming, XP) 是由Kent Beck在1996年提出的。Kent Beck在九十年代初期与Ward Cunningham共事时, 就一直共同探索着新的软件开发方法, 希望能使软件开发更加简单而有效。1996年3月, Kent终于在为Daimler Chrysler所做的一个项目中引入了新的软件开发观念-XP。
XP规定了一组核心价值和实践, 可以让软件开发人员发挥他们的专长:编写代码。XP消除了大多数重量级过程中不必要的东西, 它们减慢开发速度、耗费开发人员的精力 (例如甘特图、状态报告, 以及大量的需求文档等) , 从而偏离目标。Kent Beck在他的书Extreme Programming Explained:Embrace Change中概述了XP的核心价值:
交流:项目的问题往往可以追溯到某人在某一时刻没有和其他人一起商量某些重要问题上。使用XP, 不交流几乎不可能。
简单性:XP建议:在对于过程和编写代码起作用的方面, 总是做最简单的事情。按照Kent的说法, "XP就是打赌。它打赌今天最好做些简单的事, 而不是做些较复杂但可能永远也不会用到的事。"
反馈:及早和经常从客户、团队和实际最终用户获得具体反馈意见, 这提供了更多为您工作方向"掌舵"的机会。反馈可以让您把握住正确的方向, 少走弯路。
勇气:勇气存在于其它三个价值的环境中。它们相互支持。相信开发过程中的具体反馈比预先知道每件事更有价值, 需要一定的勇气。当需要与团队中的其他人交流, 而此时可能会暴露您的无知时, 需要有勇气。使系统保持简单, 把明天的决定留到明天做, 也需要勇气。而如果没有简单的系统、没有不断的交流来扩展知识以及没有掌握方向所依赖的反馈, 勇敢也就失去了依靠。
二、极限编程的有效实践
极限编程 (XP) 是敏捷方法中最箸名的一个, 它是由一系列简单却互相依赖的实践组成, 这些实践结合在一起形成了一个胜于部分结合的整体。
下面是极限编程的12个有效实践:
1、完整团队
XP项目的所有参与者 (开发人员、客户、测试人员等) 一起工作在一个开放的场所中, 他们是同一个团队的成员。这个场所的墙壁上随意悬挂着大幅的、显著的图表以及其他一些显示他们进度的东西。
2、计划项目
计划是持续的、循序渐进的。每2周, 开发人员就为下2周估算候选特性的成本, 而客户则根据成本和商务价值来选择要实现的特性。
3、客户测试
作为选择每个所期望的特性的一部分, 客户可以根据脚本语言来定义出自动验收测试来表明该特性可以工作。
4、简单设计
团队保持设计恰好和当前的系统功能相匹配。它通过了所有的测试, 不包含任何重复, 表达出了编写者想表达的所有东西, 并且包含尽可能少的代码。
5、结对编程
所有的产品软件都是由两个程序员、并排坐在一起在同一台机器上构建的。
6、测试驱动开发
编写单元测试是一个验证行为, 更是一个设计行为。同样, 它更是一种编写文档的行为。编写单元测试避免了相当数量的反馈循环, 尤其是功功能能验证方面的反馈循环。程序员以非常短的循环周期工作, 他们先增加一个失败的测试, 然后使之通过。
7、改进设计
随时利用重构方法改进已经腐化的代码, 保持代码尽可能的干净、具有表达力。
8 持续集成
团队总是使系统完整地被集成。一个人拆入 (Check in) 后, 其它所有人责任代码集成。
9、集体代码所有权
任何结对的程序员都可以在任何时候改进任何代码。没有程序员对任何一个特定的模块或技术单独负责, 每个人都可以参与任何其它方面的开发。
1 0、编码规范
XP团队遵循一个公共的编码标准, 因此系统中所有的代码看上去都像出自单独一个-非常有能力的-人之手。因为有了统一的编程规范, 每个程序员更加容易读懂其他人写的代码, 这是是实现集体代码所有权的重要前提之一。
1 1、隐喻
将整个系统联系在一起的全局视图;它是系统的未来影像, 是它使得所有单独模块的位置和外观变得明显直观。如果模块的外观与整个隐喻不符, 那么你就知道该模块是错误的。
1 2、可持续的速度
团队只有持久才有获胜的希望。他们以能够长期维持的速度努力工作, 他们保存精力, 他们把项目看作是马拉松长跑, 而不是全速短跑。
极限编程是一组简单、具体的实践, 这些实践结合在形成了一个敏捷开发过程。极限编程是一种优良的、通用的软件开发方法, 项目团队可以拿来直接采用, 也可以增加一些实践, 或者对其中的一些实践进行修改后再采用。
三、极限编程的特点
XP在很多方面都和我们传统意义上的软件工程不同, 同时, 它也和传统的管理和项目计划的方法不同。这些方法在软件工程和其他管理活动中都有借鉴意义。其特点如下:
1、不采用瀑布式的软件工程方法, 而采用原型法。
将一个软件开发项目分为多个迭代周期, 每个周期实现部分软件功能。在每个周期都进行提出需求、设计软件架构、编码、测试、发布的软件开发的全过程。每个周期都进行充分的测试和集成。这样的好处是可以不断的从客户方面得到反馈, 更逼近实际的软件需求。通过频繁的重新编码的过程, 可以非常适应功能更改的需求, 同时增加软件的易维护性。在不断的迭代中, 避免架构设计的重大失误造成的软件不能如期交工, 避免了软件设计的风险。
2、在软件设计中, 强调简单性, 就是坚决不作用不到的通用功能。
同时, 也不刻意避免重新编码, 只有不断得重新编码才能保证软件得合理性。不害怕对整个软件推倒重做。认为重新编码是很正常的现象。每次的重新编码都会大大减少软件中的熵值。
3、在专业分工中, 提出在开发团队中要有全职的客户人员的参与, 同时在软件团队中也要有自己的领域专家。
这样, 可以和客户充分交流, 彻底了解应用需求。这种软件需求的提出不是一次性的, 而是不断的交流。也有专门的软件架构的设计师, 首先进行软件整体架构的设计。这种设计一般使用UML语言。
4、在软件开发的顺序上, 和传统方法完全相反。
传统方法是按照整体设计、编写代码、进行测试、交付客户的方法。而XP是按照交付客户、测试、编码、设计的顺序来开发。首先将要交付客户的软件的界面作出来, 先让客户对软件有实际体验, 这样, 可以获得客户的更多的反馈, 使需求可以在开发前确定。在编码前就先把测试程序做好, 这样, 编码完成后就可以马上进行测试。通过不断的测试来保证软件的质量。在进行软件架构设计之前就进行编码, 可以使问题更早暴露, 可以使最后的软件设计更体现编码的特点, 更符合实际, 更容易实现, 也保证了设计的合理, 保证了软件设计的大量决定的正确性。
5、在项目计划的实现上, 每次的计划都是技术人员对客户提出时间表, 由最后的开发人员对项目经理提出编码的时间表。
这种计划都是从下而上的, 不是从上到下的, 更容易保证计划的按时完成。同时, 多个迭代周期也使工期的估计越来越精确。
6、在分工上, 强调角色轮换, 项目的集体负责, 分工的自愿性。
分工的自愿性就是每个人的工作内容不是由项目经理分派, 而是由每个人自愿领取, 这样保证了每个人可以发挥自己的特长, 适应自己的情况。当然, 在每个问题上都要有唯一的决策人, 同时, 也要经过充分的交流和沟通。角色轮换就是在项目中, 一个人在不同的周期中担任不同的角色, 可以保证每个人对项目的整体把握, 方便项目中的沟通和理解。项目的集体负责, 就是每个人不是完成自己的工作就可以了, 要对整个项目的完成负责, 任何人都可以对工作的任何部分提出自己的建议。任何人都可以从事任何工作。任何人都要对整个项目熟悉。这样做的优点是可以充分的锻炼人、可以发挥每个人的积极性、可以使项目不依赖于某个特定的人, 方便今后的软件的维护, 通过工作内容的变换可以提高人工作的兴趣。通过角色轮换还可以使每个人都劳逸结合, 方便相互理解, 避免由于不理解而造成的各种配合问题。
9、保证8小时工作制, 避免加班。
1 0、提出了成对编程的思路, 就是每个模块的编码都是两个人一起干, 共用一台电脑。
这样, 一个人编码时, 另一个人就可以检查代码, 或对编码的思路进行思考, 写文档等。不再有另外的测试人员, 两个人同时完成代码的测试, 并且首先写测试程序然后再编程。这样避免了编程人员和测试人员的矛盾。也解决了一个人自己检查的局限性。两个人共同检查可以避免大多数的错误。在共同编程中还可以进行经验的交流和传授。也避免了将一个工作一直干下去的无聊, 交流增加了情趣。并且两个人共同工作也增加了工作量的弹性, 使项目计划的瓶颈工作能尽快解决。根据成对编程的思路, 开发小组也可以分为两个小组, 一个小组进行开发, 另一个小组作改进和bug修正等工作。在人员的分工上要灵活, 要保证软件开发中的角色的齐全, 但每个角色可以由几个人共同担任, 也可以一个人担任几个角色, 并且在项目的不同时期, 不同角色的人员数量会不断变化。每天或隔天, 开一个站立会议 (保证开会时间尽量短) , 来解决工作时间不一致和相互打扰工作的情况。在每个迭代周期也有一个计划和分工等的全体大会。
XP的实施方法就要求能适应工作中出现的问题, 不断对XP进行改进, 而不能照搬套用。XP的目标就是发挥人的最大积极性, 保证充分的交流。XP强调团队合作, 经理、客户和开发人员都是开发团队中的一员, 团队通过相互之间的充分交流和合作, 使用XP这种简单但有效的方式, 努力开发出高质量的软件。XP得优势是能很好得适应需求的更改、设计框架的更改。
四、总结
XP是一个周密而严谨的软件开发流程。通过在一些对费用控制严格的公司中的使用, 它已经证明了它自己, 这些公司有Bayerische Landesbank, Credit Swiss Life, Daimler Chrysler, First Union National Bank, Ford Motor Company和UBS。XP对客户满意度的重视是它成功的一个因素。开发满足客户需要且确实是客户需要的软件, 这是XP的初衷。XP使得你的开发人员能够自信地面对客户需求的变化, 即使是在开发周期的后期。XP强调团队合作, 经理、客户和开发人员都是团队中的一员, 他们都应该为了开发出高质量的软件而努力。XP从四个基本的方面对软件项目进行改善:交流, 简易, 反馈和勇气。XP程序员同客户交流, 同他们的同事交流;他们的设计简单而干净;他们通过测试来得到反馈;他们根据变化修改代码, 并争取尽可能早地将软件交付给客户。在此基础上, XP程序员能够勇于面对需求和技术上的变化。XP有它自己的特点。它很象一个智力拼图, 一小块小块拼起来的。单独看每一小块都没有什么意义, 但拼装好后, 一幅美丽的图画就会呈现在你面前。这与传统的重载软件开发开发方法有很大的不同, 是对现有编程方式的改变。
五、结束语
极限编程XP使软件开发发生了某种程度的变革, 虽然许多人还并不真正了解它, 还并不十分相信对软件开发项目使用XP可以大大提高成功的机会, 但是我相信随着极限编程XP的越来越成熟, 成功案例的越来越多, 最终都会了解它、相信它、使用它。
摘要:软件开发经过多年的发展, 其方法层出不穷, 归结起来主要可分为重方法学和轻方法学。本文主要介绍轻方法学中的一个重要方法――极限编程, 着重讨论极限编程的实践和特点。
关键词:软件方法学,轻方法学,极限编程,xp,实践,特点
参考文献
[1].Kent Beck, Extreme Programming Explained:Embrace Change (中文版)
[2].软件工程思想, 林锐, 2003
[3].敏捷软件开发:原则、模式与实践 (C#版) Robert C.Martin, Micah Martin, 译者:邓辉, 孙鸣, 人民邮电出版社, 2007年11月
编程实践 篇5
关键词:数控加工工艺及编程 实践教学 评价模式
课 题:苏州市职业大学校级科研项目《数控加工及编程课程实践教学的评价研究》(SZDG4-11014)。
数控加工在机械生产中的作用越来越重要。为了使学校人才培养更好地符合长三角地区实际,以满足中小型制造企业的高技能人才需求,笔者对数控加工工艺及编程课程教学改革进行探索,取得了一系列成果。
一、数控加工工艺及编程教学面临的问题
1.实践教学内涵
由于高职数控技术专业毕业生会有相当一批走上机械加工的工作岗位,因此课程内容在新工艺、新技术、新材料、新产品方面必须与传统课程内容进行整合,过难、过深、过偏的课程内容需要删除,与此相关的实践教学内容也应予以调整。实践教学中的实验、实训、课程设计、毕业设计等也要有一定变化,凸现出强化技能的实训课程来。
2.实践教学模式
原来的教学采用以课堂为主的模式。实践教学不能满足掌握技能的要求。
3.评价方法
原有的评价体系主要采用平时考察和期末考试来综合评定的模式。在评价重心上,只注重了结果,而忽略了过程;在评价内容和标准上,强调统一要求,而忽略个体差异;在评价方法上,使用量化评价多,而忽略了多种评价方法的综合应用;在评价主体上,以教师评价为主体,忽略了学生的自评、互评和他评。
二、数控加工工艺课教学改革实践
本地区以中小企业为主,企业接收工学结合的学生数量有限。在培养过程中,我们实施了“教师+工程师”导学教学新形式、“双向互动工学结合”教学模式。该模式获江苏省高等教育教学成果奖二等奖。通过分小组形式组成学习团队,每个学习团队分阶段地分别在校内、企业完成课程学习。学习形式有两种:一种是学习团队到企业进行工学结合,由企业导学教师指导学习;另一种形式是学习团队在校企导学教师和校内教师共同指导下,在校内完成校企导学、校内教师共同确定的项目课程学习。这种形式既能接受企业导学和校内教师的共同指导,还能利用学校的实训设施。这种教学模式,充分利用学校的有限资源,解决企业接收工学结合的学生数量的问题,让所有学生都分阶段地到企业去完成课程学习,分阶段地在校内完成项目教学。实现了教学环境与企业生产环境的融合,使学校和企业并列成为人才培养的主体。经过不断的建设和实施,在人才培养模式、课程体系、职业能力和素质培养等方面形成了自身的特色。
三、数控技术专业实践教学评价模式
1.原有的评价模式
(1)过程评价模式。过程模式是一个开放系统。过程模式的学习不是被动的直线式反应过程,而是一个主动参与探究的过程,关注整个过程的基本规范,使之与宽泛的目的保持一致。这种模式让中学生不是被动地接受老师的教育,而是主动地参与,通过自己的行动促进学习和认知技能的发展。
(2)CIPP评价模式。CIPP模式包括背景、输入、过程和成果这4个环节的评价。为了描述和评价长期的、真正成功的改革方案,斯塔佛尔比姆把成果评价分解为影响(impact)、成效(effectiveness)、可持续性(sustainability)和可应用性(transportability)评价4个阶段,由此构成了7个环节的评价模式。该模式不局限在评定目标达到的程度,而是关注了为目标提供有用信息的过程上。背景评价强调,首先应根据评价对象的需要对目标本身做出判断,看是否两者一致;输入评价强调最佳手段问题;过程评价强调实施情况;成果评价要测量、解释和评判目标成绩。
(3)差距评价模式。M.Provus提出的差距评价模式认为,课程计划和课程实施不一定是一回事。虽然课程实施是在课程计划的指导下进行的,但实际是在学校教育中,在实际的课程推进过程中,课程计划并没有完全落到实处,并没有完全在课程的事实过程中体现出来,而且在课程发展的整个过程中都会出现一种差距。真正揭示课程计划所设计理想目标和实际表现之间的差距,对于课程评价来讲是十分重要的,差距评价的核心点即在于此。
2.新构建的评价模式
综合以上三种评价模式,建立灵活的考核形式,注重在过程中发挥学生的关键能力,并作为学生成绩的重要评价部分。构建的评价体系确立 “主体取向”“过程取向”“目标取向”相结合的多重价值取向。根据项目化课程体系,紧扣“学科能力”“方法能力”“社会能力”形成相应的评价要素,对各评价要素进一步细化为评价内容的要点。考核形式主要包含以下三部分:
(1)学生自我评价。学生对自己实践成果的评价。依据过程评价模式,以学生为主体,让学生通过这个环节,对自己的思维方式、实践方法、实践能力进行思考,不断改进,提高学生学习的主动性和学习效率。对于以小组方式来完成实践任务的,按学习团队开展自我评价。这种按学习团队来集体进行的思考,更能反映学生之间的团队协作能力,也更好地检验了学生的实践能力水平。
(2)教师评价。教师对学生在学习过程中表现出的社会能力和方法能力的评价。依据CIPP评价模式,教师评价主要包括:工作量、工作难度、在小组中的作用、工作态度、沟通协调能力等。这种教师的成绩评价方式有利于提高学生的学习兴趣,发展学生的综合能力。还能帮助学生进一步明确学习和发展的目标,培养对学习负责的态度和精神。依据过程评价模式,通过数控加工工艺分析、划分加工工序、刀具与夹具选择、量具的选择、编制与调试程序、操作数控机床、零件的测量等整个加工过程对学生进行评价。结合两种评价模式教师给出教师评价。
(3)成果认定。指导教师依据差距评价模式,对学生工作进行成果的认定。成果认定主要是对学生实践结果的评价。在达到合格率的前提下,采用正确的方法完成多少个零件作为主要评定标准,实训报告仅作为参考标准。学生的实践态度、经济意识等职业素养在实践中得到了很大提高。
新的考核方法,既考理论,又考实践,并注重实际动手能力、创新能力和实践能力的考核,使学生既要能动脑,又要能动手。经过实践锻炼,使学生能够迅速成长为现代数控行业所需要的具有必要的理论知识和较强实践能力的应用型、技术型高技能人才。
四、小结
数控加工实践教学与理论教学之间存在关联性。实践教学的评价结果应反映出理论教学的效果,而理论教学的目标不能脱离实践目的。随着教学条件的不断改善,理论教学与实践教学的统一性会加大,对实践教学评价方法的研究会日益凸现,这符合高职教育的特色。
参考文献:
[1]孙翰英.高职数控技术专业实践教学评价方法的探究[J].科教文汇,2007(7).
[2]王继梅,张德生.基于工作过程的数控技术专业课程开发探索[J]. 中国成人教育,2010(3).
编程实践 篇6
一、初中信息技术课堂引入游戏编程的意义
相对于其他学科来说,初中信息技术教学中普遍存在的问题教师专业水平有待提高,教师发展平台欠缺,师资配备不够完善,教学研究氛围不足的问题,造成初中信息技术发展还不够成熟。但初中学生开始懂得发现和探索自我,思维的独立性和批判性增强,初中学生的个性、智力、自我意识有一定程度的发展,对未知的事情有着强烈的好奇心,学生普遍喜欢游戏,游戏丰富的情节、角色扮演机制、简洁的操作、虚拟的人物形象和任务驱动机制深深吸引学生。所以选择一种合适的教学方法,使初中学生更好地学习知识,是初中信息技术教师必须探索和实践的课题。
二、初中信息技术课堂引入游戏编程的实践措施
(一)激发兴趣,增强求知欲
在教学过程中我发现,由于学生设计所需的程序设计语言、数学知识、函数没学,要理解一些晦涩的、难懂的、抽象的算法、概念比较困难,容易挫伤初中学生们学习程序设计的兴趣和积极性,就会将心思放在玩游戏和浏览网页上。但把学生大脑中对初中信息技术游戏编程的兴奋激活时,就会对所学的知识产生浓厚的兴趣,积极主动学习程序设计语言,在编程中验证问题,查寻资料,扩大知识面。在信息技术课程上教授时,教师可以事先让学生观看某个经常玩的游戏画面,利用游戏中的场景吸引学生的注意力,再适时地引出编程课题,与用VB设计一个游戏程序进行类比,提出授课的教学任务,从而激发了初中学生强烈的编程欲望和求知欲望。
例如某初中教师在开展第一节VB课时,就组织学生观看VB设计的小游戏,如:俄罗斯方块、贪吃蛇、中国象棋、简易赛车游戏、打字游戏等,然后用VB软件打开小游戏的源程序,让初中学生观看游戏代码、界面和运行效果,这样学生都兴趣十足、惊喜不已。激励学生主动地探索VB程序代码的奥秘,一步一步地去制作一个小游戏……
(二)比喻形象,贴近生活
初中信息技术教学中编程内容比较抽象,被学生理解和接受很不容易,特别是程序设计中的算法和概念。教师应化繁为简,讲得通俗易懂,在教学中巧用生活中的实例,形象比喻为学生所接受。例如某初中教师在信息技术讲课是碰到编程当中变量的概念时,教师给出问题:有两个瓶子,一瓶装了水,一瓶子装了油,如何互换两个瓶子里的液体呢?学生就能想到借用第三个瓶子的方法,类比程序设计,理解变量就变得容易了,学生接受也容易了,且不容易忘记。
(三)循序渐进
在教学的过程中,要逐渐使初中学生从重外观的学习过渡到代码的编写。可直接给出样例,要求模学生仿做,使学生熟悉VB控件的属性、事件。通过提出问题,给出样例,留给学生自由发挥、创造,在课堂中开展竞赛,查找得快,又修改得正确的学生有奖励,学生的积极性非常高,获得了成功感,增强了学习的信心,提高了学习兴趣。在程序设计中学中,让学生观看、模仿,通过演示实例,在具体操作中形成认识。例如:显示欢迎标语。
在界面中,包含1个文本控件、1个标签控件、3个命令控件。
在上面的代码中,包含了单选按钮的使用,也包含了以前所学的知识点,如文本框、标签和窗体等,这样循序渐进地进行,让学生很快了解新知识点并很好地应用,达到教学效果。
结语
教学效果是教学方法推行中是至关重要的,有了好的教学策略,实施过程的合理,师生情感的交流不可忽视的,初中信息技术教学的教师要在贯彻课程根本要求的基础上力求开拓创新、与时俱进,积极投入教育,满怀真诚,变“苦学”为“乐学”,变“要我学”为“我要学”。激发学生强烈的求知欲,有目的地对学生实施兴趣培养,获得令人满意的教学效果。
参考文献
[1]王冬芹.游戏化教学在初中信息技术课堂中的应用研究[J].《新课程导学》,2014(15):38
“网络编程”课程教学改革与实践 篇7
随着计算机技术和通信网络技术的迅速发展, 社会对网络人才的需求越来越强烈, 网络编程在程序设计开发领域变得越来越重要。“网络编程”课程已成为计算机专业人才培养过程中的关键课程之一。[1,2]
目前, 杭州电子科技大学计算机学院在计算机科学技术、网络工程和物联网工程三个专业开设了“网络编程”课程, 该课程是计算机类专业中重要的专业课程, 每学年选课学生有200多人。
● 现状分析
杭州电子科技大学计算机学院的“网络编程”课程, 主要讲述基于C和C++语言利用socket API实现网络客户端和网络服务器编程, 着重于底层socket接口的关键细节讲解和各种模型的服务器设计和实现。笔者所在学校的“网络编程”课程组的教师具有个人能力较强、理论基础扎实、知识面广、项目实践经验丰富和大型服务器程序开发经历的特点。在教学过程中, 任课教师对课程的内容和知识点讲授比较到位, 课堂内容设计也较符合社会实际需求, 学生在学习过程中可以更深入地理解网络理论, 熟悉各种网络编程技术, 提高实践动手能力。但是, 在教学实践过程中, 笔者也发现了许多问题。主要有以下几个方面。
1.学生兴趣不持久
网络编程的学习在初期很容易引起学生的兴趣, 但由于网络编程对学生的基础课程要求较高, 随着学习的深入, 学生所遇到的困难也越来越多。与其他课程相比, 网络编程的程序代码量较大, 普通的一个程序就可能在千行以上。而且很多大三学生仅仅具有程序设计的基础知识, 没有编写过大型程序, 解决实际问题的能力还很弱。程序过大, 就会出现各种编程问题, 这让很多学生产生了畏难情绪, 使得他们不愿意更加深入地去学习。
2.缺乏合适的教材
市面上各种编程类书籍内容参差不齐, 如何从中选择合适的教材是一件困难的事情, 这个现象在“网络编程”课程中特别严重。总的来说, 目前网络编程类书籍可分为以下几类。
(1) 高校教师为了评职称或其他原因而编写教材。此类教材价格相对比较便宜, 难度较为适合“网络编程”课程, 但也存在许多问题, 主要有: (1) 内容过全、过多, 重点不明确; (2) 编写者缺乏工程经验, 思维落伍, 教材中所用技术已经淘汰。
(2) 业界人员编写的网络编程书籍。此类书籍对编程者来说, 有较强的工程实际经验, 思维较先进, 所用技术符合当前技术发展潮流, 重点内容突出。但因为其面向对象不同, 也存在一些问题, 主要有: (1) 价格高; (2) 内容过全、过多; (3) 内容过难, 不适合初学者。
3.课时设置不合理
目前, “网络编程”课程虽然在网络工程专业中被列为专业核心课程, 但课时只有48学时, 因课程涉及简单TCP客户服务器模型、简单UDP客户服务器模型、多路复用客户服务器模型、多线程客户服务器模型、WSAAsync Select客户服务器模型、WSAEvent Select客户服务器模型、高级IO模型、协议设计、套接字选项设置等多项内容, 教学课时明显不够, 学生缺乏足够的课内学习时间。
● 网络编程教学改革实践
鉴于目前“网络编程”课程存在的上述问题, 笔者提出对其教学模式进行改革, 主要改进之处有以下几点。
1.结合各教材优势, 自编教材
教材的选用, 直接影响学生的兴趣和教学质量。因此, 要尽量选用注重实践、有较多实例的教材。笔者发现目前并没有很适合笔者所在学院学生的教材, 因此笔者通过借鉴《Windows Sockets网络编程》《UNIX网络编程》和《TCP/IP网络编程》等书籍, 综合各家之长, 结合学院学生的实际进行内容筛选, 目前已经完成了自编教材的初稿, 并在这学期进行了试用, 效果较好。
2.优化教学模式
教学中要注重培养学生的实践能力、创新能力, 因此必须要创新教学方法, 采用多种教学手段, 以达到良好的教学效果。在几年的网络编程教学中, 笔者主要采用了以下教学模式。
(1) 演示过程, 讲练结合。在“网络编程”课程中, 教师不仅要对知识内容进行讲授, 而且还要对IDE环境和UI开发进行讲解。对用于演示知识点的系统代码, 也在课堂上进行现场编写, 从而提高了学生的动手能力和思考能力。
(2) 案例引导, 任务分解。[3]教学过程中多采用实例, 利用step by step的方式来培养学生解决问题的能力。目前“网络编程”课程设计采用的主案例是C/S模式的聊天室开发。讲解简单的UDP客户服务器模型时, 利用UDP方式实现相关程序;讲解多线程客户服务器模型时, 则通过将UDP方式实现的聊天室程序修改为利用TCP和多线程方式;讲解多路复用客户服务器模型时, 则将多程序TCP实现方式修改为多路复用方式实现, 并加入多数据包重组功能;WSAAsync Select客户服务器模型阶段, 则将聊天室程序客户服务器端都改为WSAAsync Select模型方式实现;讲解WSAEvent Select客户服务器模型知识时, 则将服务器改为用WSAEvent Select实现。使用上述方式, 让学生能学会用多种技术模型来实现系统, 并了解它们之间的优缺点, 同时使得学生在学习每个知识点时工作量不太大, 能将精力集中在模型知识本身。
(3) 设疑自学, 设错分析。在教学过程中, 教师要求学生实现上述所有编程模型, 并通过上机验收。与此同时, 在程序实验中, 教师人为加入一些Bug, 要求学生进行改进并实现私聊、文件传输等其他功能。利用这些方式培养学生的自学能力, 让其进行自学摸索。
3.完善考核评价体系
教学过程中的一个重要环节就是教学效果评价, 教师对学生能否做出正确、客观、科学的评价, 将在很大程度上影响学生的学习态度和学习兴趣。[4]
为了保证学生在课后主动动手编程, 课程组设置了6个知识点的编程小作业, 并要求对各知识点的程序进行上机验收。在前期实践过程中, 笔者由于没有规定验收截止时间, 导致很多学生在后期才完成实验, 使知识点的衔接不连贯, 给课程讲解带来了一定的困难。
为了解决这个问题, 课程组在后续教学实践中加入了验收截止时间, 并在课程学习群中及时公布验收情况。
参考文献
[1]吴博.“任务驱动教学法”在“网络编程”课程教学中的应用[J].中国大学教学, 2010 (7) .
[2]郑秋华, 胡维华, 姜明.基于复杂网络的课程体系分析方法[J].计算机教育, 2014 (20) .
[3]高应波.《计算机软件技术与应用基础》教学中案例任务驱动教学法的应用研究[J].软件导刊:教育技术导刊, 2007 (04) :23-25.
编程实践 篇8
如果说,在高中或者大学阶段可以通过实施计算机编程、计算机原理类的课程,来开展计算思维教育,那么,小学阶段是否也能开展计算思维教育呢?小学阶段的学生,尤其是低龄段的学生,主要依赖于无意注意,以具体形象思维为主,通过直观感知事物的特征和规律。因此,在小学阶段开展计算思维教育,不适合从枯燥的计算机原理性知识学习的途径进行,而应该采用渗透教育的方法,让学生在有趣的作品制作过程中体验和理解计算思维。第一,早期开展的中小学计算机编程等课程,尽管也涉及计算机原理部分的教学,但是往往过分关注具体的编程技术以及细节,而缺乏关注计算的本质与思维。因此,在中小学开展计算思维教育,不是简单的计算机原理或计算机编程的学习,也不是各种算法的学习,而是要通过适量的计算机知识与技能的学习,真正理解计算思维的本质。第二,在小学开展计算思维教育,应该有一个适合小学生的学习平台或环境,具有趣味性、技术门槛低等特点,以便在教学过程中学生不必过多地关注操作性技能和规定。Kodu是一款游戏软件开发工具,具有三维场景和模式化的编程方式,易学易用,是一个适合小学生使用的程序开发工具。第三,儿童化编程软件融入小学信息科技的课堂,让小学生从小接触计算机编程,其目的不仅是让学生学会编程,更是使其体验一个程序完整的开发过程,知道计算机工作和解决问题的方式,从而发展学生的计算思维。“小学生Kodu趣味程序设计”课程的开发,就是将信息科技课堂实践经验和资料积累向课程、教材和教学转化,为小学的计算思维的普及教学提供载体。
计算思维的本质是抽象和自动化,下面是在小学开展Kodu编程教学中,渗透计算思维本质教育的教学实践。
在编程中体会抽象
所谓抽象,是指通过分析的途径,运用概念在人脑中再现对象本质的方法,从众多的事物中抽取共同的、本质性的特征,而舍弃其非本质的特征。在小学阶段,学生可以通过数学课感受数和形的抽象概念,但是通过计算思维教育,学生可以更全面地感受抽象。在儿童化编程的教学过程中,抽象也是必不可少的。学生学会抽象可以更容易找到编程的切入点,梳理游戏的规则,并且最终将游戏规则转变为Kodu程序。下面通过案例《吃苹果》来说明。
环节一:从故事抽象规则
上课伊始,教师出示游戏故事情境:我们的小伙伴Kodu拥有一个美丽的苹果园,苹果树下落满了成熟的苹果,小伙伴Kodu要收集这些苹果,并将苹果搬运到自己的小屋里。然而,我们的小伙伴并不知道,有一个特别喜欢偷吃苹果的坏蛋已经盯上这里了。
教师然后提出问题,让学生互相讨论:根据这个故事情境,你可以制定怎样的游戏规则?同时,教师出示相关的学习表格(如表1),辅助学生思考。
如果凭空讨论,学生难免没有头绪,无从下手,或是异想天开,设想一些Kodu软件无法实现的内容。通过这样的形式,教师引导学生有针对性地对故事情节进行分析和梳理,抽象出自己的游戏规则,学习表格不仅提供了抽象的方法,也为之后编写程序提供了便利。
环节二:从规则编写语句
制定了游戏规则,可以说是完成了编程的第一步,有了编写程序的依据。这时,教师出示部分Kodu程序(如下图)。
让学生先读一读出示的程序,用“在什么情况,做什么事情”这样的句式来翻译这段程序,帮助学生熟悉“when-do”句式的含义。when就是条件,而do就是动作。接着提出问题,学生分析每一条游戏规则中,哪部分是条件,哪部分是动作。最后,学生理清所有的条件和动作,在Kodu中完成程序的编写。
在制定计划后,如果直接开始编写程序,学生往往分不清楚条件和动作,会对教师提出诸如“when里面怎么没有eat啊”“do里面怎么找不到bump”之类的问题。这些都反映了学生没有搞清楚自己写的程序,哪些是条件,哪些是动作。通过环节二,可以有效地帮助学生抽象出规则中的条件和动作,理解“when-do”句型,更加有效地完成Kodu程序的编写。
对小学阶段的学生来说,抽象概念的理解与运用是比较困难的。在Kodu编程实践中,采用“故事情节→游戏规则→编程语句”的实践路径,可以有效引导学生体验和运用抽象。
在编程中认识自动化
自动化是计算思维的本质之一。所谓自动化,是指机器设备、系统或过程在没有人或较少人的直接参与下,按照人的要求,经过自动检测,实现预期目标的过程。与其他课程不同,计算机编程最大的特点就是自动化,利用计算机本身的功能,解决实际的问题。程序的执行过程就是自动化的具体分析体现。在Kodu《捕鱼达人》一课中,有Kodu、渔夫爷爷以及小鱼等多个角色,程序代码也比较复杂,教师通过教学程序调试的方法,让学生感受计算机执行语句和执行结果的关系,同时促进学生理解自动化的意义。
环节一:体验程序调试
在学生写完程序之后,教师提出问题:现在大家的程序已经编好,是不是可以直接提交给老师了呢?
大部分学生会不约而同地说出“不可以,还要检查程序”。
教师继续追问道:“那么在写完程序之后,我们该如何检查程序呢?”
有些学生说:“自己写好以后把程序读一读,就会发现错误。”
教师提出一种调试程序的方法:运行程序→观察程序→分析错误的程序→改进程序。让学生按照这个方法测试,看能不能发现程序中的问题。
按照这个方式,不少学生都找到了自己程序中出现的部分。
环节二:理解程序执行过程
教师提出问题:是谁告诉你们程序在哪里出错了?并进一步阐述:计算机最大的一个特点就是自动化,它在运行程序时,是一条一条语句逐步执行预先设计的任务。计算机一旦执行了错误的程序,表现出的现象与你原来设计的要求不一致。你需要像计算机执行程序一样地思考,理解计算机执行每一步语句应该有的现象,与实际的执行结果比较,根据错误的现象,找到错误的程序语句,并把它修改正确。
教师为学生提供了调试程序的学习单(如表2)。
学生依照教师提供的程序调试方法,对照游戏规则,对《捕鱼达人》这个游戏进行调试,观察并记录错误现象。在找到错误之后,学生互相讨论,分析解决这些问题的方法,修改程序,重复调试的环节,直到程序完全正确。
计算机是自动执行程序的,但计算机的自动化是一个黑匣子,没有办法看到每一步程序的执行过程,只能通过执行结果来感受。对小学生来说,以程序调试为切入点,通过寻找计算机程序实际执行结果与最初设计方案的不一致,让学生尝试像计算机执行程序一样思考执行语句应该对应的动作,从而发现问题并解决问题。这一过程既是程序调试的过程,也是理解自动化的过程。
编程实践 篇9
《GIS开发与编程》是地理信息科学专业必修课, 是该专业的骨干课程。通常在学习了C语言、C++语言后, 开设的一门课程。学生学起来比较困难, 这门课程学生需要掌握开发语言VB或C# 语言, 以及GIS开发平台Arc GIS Engine组件, 或是Map Objects组件。以VB和Map Objects组件进行开发比较简单, 但功能少。目前最常用的是以C#和Arc GIS Engine进行开发。我校教学计划里C# 课不单独开设, 这样就在讲GIS开发与编程课程时, 需要同时讲授C# 课程和Arc GIS Engine组件的开发, 给这门课的教学增加了难度。
钟广锐[1]对GIS设计与开发这门课进行实验设计, 采用的软件为超图公司的Super Map Objects组件, 设计了九个实验分别为1对数据的操作;2地图的生成与打开;3图例控件与专题图的生成;4图形与属性的互查;5跟踪图层的使用;6空间查询与空间分析;7地图排版工具;8应用系统的发布等八个实验。从实验课的设计上对学生开发能力的培养进行了研究。王靖等[2]对本科生系统开发培养模式进行研究, 提出了“三阶段、多途径”的培养模式。从宏观上对系统开发能力培养进行研究。更多的研究是针对Arc GIS Engine GIS开发技术的研究[3]。
本文对GIS开发与编程实验教学进行研究, 采用C#语言和Arc GIS Engine组件进行实验设计。主要对课程的开发语言进行概述, 对每个实验的实验内容以及实验目的进行设计, 最后给出一个应用系统的设计与开发, 并对本门课的教学方法进行了研究。
1 GIS开发与编程开发语言简介
《GIS开发与编程》是地理信息科学专业的核心课程, GIS的开发经历了专门的开发语言阶段、定制开发, 集成开发, 到目前的组件式开发、Web GIS开发、移动端的开发。组件式开发技术成熟, 是通过组件构建应用程序, 开发者需掌握一门编程语言 (VB, .NET, VC++, Java) , 了解COM组件技术以及怎么使用Arc Objects。本教学采用.NET中的C# 语言。C# 语言具有C++的强大和VB的简单, 可立即被C和C++的使用者所熟悉[4]。
Arc GIS Engine是ESRI公司开发的嵌入式GIS组件, 由软件开发包 (Arc GIS Engine Developer Kit, SDK) 和运行时 (Arc GIS Engine Runtime) 构成, Arc GIS Engine开发工具包包含以下四方面的内容:1基本服务;2数据存取;3地图表达;4开发组件。
Arc GIS Engine的控件有Map Control控件、Page Layout Control控件、TOCControl控件、Toolbar Control控件、Globle Control控件、Scene Control控件、Reader Control控件、Licence Control控件构成[5], 通过这些控件可搭建应用程序框架, 使用Arc Objects SDK可以实现的功能主要有地图基本操作、数据编辑、专题制图、信息查询、网络分析、空间分析、三维分析等二维和三维的GIS功能。
2 课程实验设计
该课程的学时数为54 学时, 此外还有72 学时的《GIS开发实习》课程, 也是为该课程设置的。在这54 学时中要讲述GIS设计的基础知识、C# 程序设计、Arc GIS Engine组件式开发, 内容很多, 重点讲述了C# 程序设计, Arc GIS Engine开发的理论知识, 也安排了16 个学时的上机实习。72 学时的《GIS开发实习》课程主要是实验教学, 以下是实验内容。
2.1 C# 实验课内容
2.1.1 Windows常用控件的使用
实验内容:用户登陆系统的编程实现。
实验目的:掌握常见控件的使用。该部分内容使学生掌握Windows环境下的开发, 主要掌握各种常用控件的使用, 能进行界面的设计和在该环境下的程序开发。
2.1.2 使用ADO.NET访问数据库
实验内容:实现数据库的操作, 在窗体界面下实现数据库中记录的操作。
实验目的:在SQL Server软件中建立数据库, 在窗体界面下实现信息的浏览、修改、添加、删除操作。
2.2 Arc GIS Engine实验课内容[6,7]
首先使学生能看懂对象模型图, 会使用帮助文档, 能搭建简单应用程序框架, 在具备这些知识后, 开始下面的各个实验操作。
2.2.1 地图数据的加载
实验内容:实现各种类型数据的加载, 包括地图文档的加载;Shape File文件的加载;个人地理数据库的加载。
实验目的:掌握地图文档加载接口IMap Document, 该接口定义了操作和管理地图文档的属性和方法。掌握Map Control控件的Add Shapefile方法进行Shape File文件的加载。掌握用IWorkspace Factory接口的Open From File方法打开*mdb数据集的工作空间, 对工作空间里的数据进行加载。
2.2.2 地图文档的保存
实验内容:实现地图文档的保存和地图文档另存为功能。地图文档在修改后需要保存, 地图文档的保存有直接保存和修改后的保存两种形式。
实验目的:掌握IMap Document接口, 及其save方法进行文档的保存, 该接口的new方法创建新的路径。掌握使用IMxd Contents接口读取已打开地图文档的内容, 并使之替换IMap Document接口的实例对象。
2.2.3 鹰眼的实现
实验内容:实现地图的鹰眼功能。鹰眼 (导航图) 是GIS软件的必备功能之一, 它的主要功能是表示数据视图中的地理范围在全图中的位置。
实验目的:鹰眼的实现主要是实现视图同步, 即鹰眼视图和数据视图的地理范围保持同步, 它的实现分为三个步骤:1鹰眼中的数据与数据视图中的数据一致, 且鹰眼视图中地图始终显示为全图;2鹰眼中添加矩形框实现与数据视图的范围联动;3矩形框的拖动与绘制。
2.2.4 要素的选择。
实验内容:实现地图要素点选、矩形选择、圆选择、多边形选择、缩放至选择、清除选择等功能。
实验目的:掌握IMap接口的Select By Shape方法, 通过该方法可查询到与输入的形状 (点、矩形、圆、多边形) 相交图层中的所有IFeature Layer接口类型的Feature。掌握缩放至选择需要的接口IEnvolope接口的Union方法, 使用该方法获取所有选中要素的外包罗范围, 使地图视图缩放至该范围。
2.2.5 地图数据的查询
实验内容:实现地图要素的属性查询和空间查询。
实验目的:掌握属性查询需要的接口:IQuery Filter接口的Where Clause属性, IFeature Layer接口、IFeature Class接口、IFeature Cursor接口的Search方法等。掌握空间查询需要的接口ISpatial Filter接口的Spatial Ref属性, IGeometry接口, IQuery Filter接口、ITopological Operator接口的Union方法来进行几何体合并操作。
2.2.6 地图可视化
实验内容:实现点、线、面要素符号化。
实验目的:掌握点、线、面代码实现的思路。掌握Marker Symbol类、Line Symbol类、Fill Symbol类以及它的子类。以及采用IMarker Symbol接口、ILine Symbol接口和IFill Symbol接口以及子类的接口实现不同点、线、面地图要素的符号化。
2.2.7 专题地图制图
实验内容:实现专题制图中两种专题地图表示方法:唯一值符号化和分级色彩符号化。
实验目的:掌握专题制图代码实现的思路, 掌握IUnique Value Render接口的Add Value方法, 使不同的属性值和填充样式关联, 由IGeo Feature Layer接口的Render方法完成渲染。掌握IClassify GNE接口实现字段等级划分, 用IClass Breaks Render接口的Symbol属性和Break属性对字段进行分级渲染。
2.2.8 空间分析
实验内容:实现多边形的缓冲区分析以及两相交面图层的裁剪分析 (叠加分析) 。
实验目的:掌握缓冲区代码实现的思路, 以及如何添加缓冲区分析操作工具。掌握ITopological Operator接口Buffer方法进行缓冲区生成操作。掌握叠加分析需用的接口IBasic Geoprocessor接口, 以及Intersect方法和Spatial Reference属性、Cancel Tracker属性。
2.2.9 综合性实验
实验内容:实现一个应用型系统的开发。
实验目的:开发一个校园应用系统, 包括基本的地图浏览功能、查询功能、文件加载, 多媒体查询功能、三维显示。采用太原师范学院校园地图作为空间数据。
3 课程教学方法
本门课程实践性强, 难度大, 内容多, 学生需要动手操作才能理解所讲内容。通过一个个小功能的实现, 最后可以完成一个小系统, 初步具有编程能力。
教学上主要采用讲授法、实验法、演示法、启发式教学进行教学, 引导学生使用帮助文档, 理解不同类库包含的内容, 看懂对象模型图, 掌握常用对象的主要接口, 以及接口的属性、方法的使用。
4 教学效果
通过上学期的教学实践, 学生每周上两次《GIS开发实习》课, 每次4 节课在机房进行上机实习, 由于在《GIS开发与编程》课上已经对C# 课程进行了大量的实验操作, 故在《GIS开发实习》课上C# 的实验只有综合性的两个实验, 每次课学生都能独立完成一个实验, 达到预期的实验效果。
Arc GIS Engine的开发是组件式开发, 需调用接口, 使用属性、方法进行开发, 与C# 的开发完全不同, C# 下的开发主要是算法的设计与实现。学生面对那么多的接口、属性、方法, 很难掌握, 刚开始在讲解每个功能时, 对实现代码进行逐一的讲解, 强调主要的接口和方法的使用和掌握。把上课时讲的理论知识再次提起引导他们进行应用, 刚开始的编程主要是照着书上的代码敲, 实现一个个功能。全班74 个学生, 都能完成。随着实验的进行, 在完成要求的基础上, 引导他们修改现有的代码, 按照自己的想法编写程序, 一些没有要求的实验也鼓励他们自己去实现, 最后, 通过一个综合性的实验, 来对前面做的实验进行综合应用, 综合实验中有些功能是上机操作过的, 有些是没有操作过的, 就需要学生自己想办法完成, 一些学的好的同学, 自己实现了许多其他的功能。图1 为学生实现的一个校园查询系统, 实现了基本的操作。通过这门课的学习, 学生都能完成应用系统的开发, 部分同学具有较高的编程水平, 这也和他们对编程的爱好分不开。
5 结论
《GIS开发与编程》课程是一门实践性很强的课程, 本文对它的实验课《GIS开发实习》的实验内容和实验目的、教学方法、教学效果进行了研究, 实践证明, 该课程实验内容、实验目的设计合理, 教学方法得当, 教学效果良好, 通过本门课程的学习, 学生具有了较强的编程能力, 为以后其他编程语言的学习以及就业打好了基础。Arc GIS Engine功能强大, 内容众多, 由于课时有限, 本课程仅对它的基本核心内容进行实验设计, 其他的内容需要用时, 学生们自己去学习掌握。
摘要:对GIS开发与编程这门课的实践教学进行了研究, 对课程实验内容、实验目的进行了设计, 通过该实验的教学, 学生初步掌握C#及Arc GIS Engine组件式开发, 并能完成应用系统的开发, 实践证明, 该实验内容比较全面, 实验具有代表性, 能使学生达到举一反三的效果。
关键词:GIS开发,课程,实践,教学
参考文献
[1]钟广锐.基于Super Map Objects的“GIS设计与开发”课程实验设计[J].地理空间信息, 2007, 5 (2) :117-120.
[2]王靖, 王春, 陈泰生, 等.GIS本科生系统开发技能培养模式研究[J].科技信息, 2013, 35:31-32.
[3]许捍卫, 茆德柱, 何江.基于Arc Engine的GIS三维功能开发技术研究[J].测绘工程, 2006, 15 (6) :50-53.
[4]郑广成, 沈蕴梅, 虞勤, 等.Visual C#.NET程序设计与应用开发[M].清华大学出版社, 2014.
[5]李崇贵, 等.ARCGIS Engine组件式开发及应用[M].科学出版社, 2013.
[6]牟乃夏, 王海银, 李丹, 等.ARCGIS Engine地理信息系统开发教程[M].测绘出版社, 2015.
编程实践 篇10
关键词:项目驱动;数控编程与操作;课程设计
一、基于项目驱动教学的《数控编程与操作》课程分析
(一)《数控编程与操作》课程实施项目教学的必要性
《数控编程与操作》是数控技术应用专业的一门核心专业课程,其理论与实践结合紧密,专业性与实践性较强,学生在较短的时间内既要掌握程序的编制又要熟练掌握实际操作技能,这对教师的组织教学提出了较高的要求。同时在教学中如何提高学生的学习兴趣,如何将理论和实践有机地融合,如何缩短学生与企业的距离,如何培养学生的职业素养和创新意识显得更加重要和迫切。目前,许多职业学校都在进行项目课程的探索,项目课程能较好地体现在教学中以学生发展为本的指导思想。建构主义学习理论认为:知识,特别是技能不是通过教师传授得到的,而是学习者在一定的情境下,借助他人的帮助,利用必要的学习资料,通过意义建构方式获得的。项目驱动教学法是实施探究式教学模式的一种教学方法。从学习者的角度说,项目驱动教学法是一种学习方法,它适用于学习各类实践性和操作性较强的知识和技能。项目驱动教学法可以帮助学习者明确学习目标。从教师的角度说,项目驱动教学法是一种建立在建构主义理论基础上的教学方法,适用于培养学生自主学习、分析问题、解决问题的能力。
(二)《数控编程与操作》课程实施项目教学的可行性
《数控编程与操作》是一门理论与实践结合非常紧密的专业课程,相对于一般专业课而言,其项目的设计比较容易而且通过项目的驱动能更好地融理论于实践中,模拟企业现场操作,缩短学生与企业的距离,激发学生的创新意识,提高学生解决实际问题的能力。基于项目驱动教学,强调以工作过程为主线,在“做中教、做中学、学中做”,项目驱动教学着眼于培养学生自主学习、分析问题、解决问题的能力,对教师组织、管理和课程设计的能力提出了更高的要求。为了较好地适应这一要求,在实际教学中,应组建课程项目团队,以项目为载体对《数控编程与操作》课程内容进行重构,以学生活动为主要特征设计教学项目,编写课程项目校本教材,坚持以学生为中心设计教学组织形式,通过项目驱动进行教学。
二、基于项目驱动教学的《数控编程与操作》课程教学体系的构建
(一)《数控编程与操作》课程项目设计思路
课程项目设计是项目驱动教学的关键一环,项目设计的好坏直接影响教学效果,在设计课程项目时要做到以下几个必须:一是必须围绕课程目标,课程目标包括知识目标、能力目标和素质目标;二是必须符合学生的认知规律,在设计一个新的项目时,既要基于学生已有的知识和技能,又要涵盖将要学习的新知识和技能,既要考虑知识的梯度,又要考虑学生具备的学习能力;三是必须要体现学生的主体地位,项目设计要以学生为中心,以学生的发展为本,教学中,学生在教师的指导和引领下主动去寻找“项目”的结果。由被动地接受知识转变为主动地寻求知识;四是必须着眼于学生职业能力的提高,在设计项目时,教师要有意识地创设情境,激发学生学习兴趣,增强学生创优争先的意识和信心,充分发挥自身的积极性、主动性和创造性,不断提高学生的职业能力。
(二)《数控编程与操作》课程项目教学工作过程设计流程
课程项目的教学过程实质上是用项目来整合知识的应用过程,在传授理论知识的基础上,以项目为载体促进理论和实践有机地融合,不断提高学生的技能水平和职业素养。具体项目的制订安排和实施步骤如图1所示。
在项目教学工作过程设计的各环节中,要以学生为主体,以小组为单位,充分发挥学生的主观能动性和小组长的核心作用,同时教师要善于组织和引导,让学生在完成项目的同时不断提高自己的知识和技能水平。
(三)《数控编程与操作》课程项目体系的构建
在构建课程项目体系时遵循:加工形状由易到难,加工位置由外到内,加工精度由低到高,加工速度由慢到快,加工工艺由易到难。本课程以数控技术国家技能鉴定要求为依据,设计了若干个项目,每一个项目都有相应的教学目标,通过实施课程项目对学生进行训练,使学生具备数控编程与操作方面的知识和能力。在教学中,根据课程知识点和教学目标的要求,将课程项目体系作了如下构建:
项目一:手动加工阶梯轴,该项目旨在通过手动加工工件了解机床面板各功能键的作用及刀具的安装及注意点。
项目二:对刀练习,对刀是数控加工的重点内容之一,通过对刀掌握工件坐标系建立的原理和方法,了解对刀的实质,同时通过多次对刀的练习,熟练掌握对刀方法。
项目三:阶梯轴自动加工,通过该项目掌握程序的格式、程序输入和修改的方法以及G00、G01等指令格式及应用。
项目四:V型槽的加工,通过该项目掌握不同加工情况下切削用量的选择及熟练掌握程序的结构等。
项目五:圆弧的加工,通过该项目熟练掌握G71、G02、G03指令格式及应用。
项目六:螺纹的加工,在该项目里,重点介绍G76、G92、G32等螺纹加工指令格式及应用,同时让学生掌握螺纹的参数及精度检验等知识。
项目七:内表面的加工,使学生掌握加工内表面工件时参数符号的选择方法,掌握刀具磨耗更改与加工外表面的区别,掌握内表面加工刀具的选择等。
项目八:凹弧表面的加工,熟练掌握G73指令格式、应用及掌握凹弧表面加工时刀具的选择。
项目九:椭圆、抛物线加工,该项目旨在让学生了解变量表示和应用、掌握变量运算指令。
项目十:工考强化训练,通过该项目的练习,使学生熟练掌握复杂零件加工工艺的制订,熟练掌握工件坐标系的偏移方法,从而较好地达到国家技能鉴定的要求。
(四)基于项目驱动课程考核评价模式的构建
对于项目课程的评价不能仅限于对项目结果的评价,评价应基于如何提高学生学习的积极性;基于如何改变学生的学习方法、转变学生的学习态度;基于如何促进学生能力和素养的提高。所以评价时要强化项目执行过程的考核,强化学习态度、职业能力的考核,在评价内容方面既要有对知识掌握情况方面的评价,又要有对问题探究、应变能力方面的评价,更要有对工作态度、团队合作和自学与思考等素质的评价。在评价形式上,既要有教师的评价,又要有学生的自评,还要有小组的互评和组长的评价。在评价的取向上,教师要以鼓励为主,对学生多竖大拇指,同时引导学生多看他人的优点,取长补短,引导他们学习别人的长处来改进和提高自己的实施方案,使学生的各种能力在评价中得到提高。
三、基于项目驱动教学的《数控编程与操作》课程教学实施案例
下面以项目“凹弧零件加工”(小奖杯)为例阐述项目教学的实施过程。
1.明确目标。明确通过该项目的驱动要达成的终极教学目标(包括知识目标、能力目标和情感目标等)。本项目目标:掌握G73指令格式及各功能字的含义;熟练应用G73等指令进行凹弧面的加工;正确选择加工凹弧面所使用的刀具等;增强学生的自主探究、团结协作、爱岗敬业的意识等。
2.结构分解。精心选择、确定项目载体——凹弧零件(小奖杯)的加工(零件图略),给学生下达项目任务书,明确项目任务的要求和基本工作思路;教师分解项目知识结构,引导学生自我信息收集,思考利用已有知识解决问题的可行性,同时考虑其他解决问题的方案。
3.制订计划。组建项目小组,在组长的带领下进行讨论,并在教师的指导下查阅资料、归纳分析制订项目实施计划(加工工艺、切削用量、刀具选择等),组长总结汇报本组制定的项目实施计划,教师对各组制订的方案进行点评和分析,小组参考、完善实施方案。
4.知识点介绍。教师讲解本项目的核心知识点——G73指令格式及应用,对G73指令的特点做详细的介绍,并引导学生与G71指令进行比较,对本项目中刀具选择的要求做出说明,并请学生注意观察和思考项目实施中发生的现象。
5.实施计划。学生以小组为单位实施项目计划,在实施计划时,要让学生自主学习和探究,培养学生独立解决问题的能力,但自主学习不等同于学生自己学习,教师要加强引导和巡回指导,使学生在教师的帮助、鼓励下顺利完成本项目,并进行成果展示,最后完成项目实验报告。
6.评价、小结。由本人、小组和教师分别从学习准备(包括任务领会、计划制定、小组分工)、学习过程(包括安全意识、问题探究、操作技术)、学习拓展(包括应变能力、创新意识、知识融合)和学习态度(包括主动学习、团队意识、严谨细致)等方面按相应的评价表进行量化打分评价。
通过项目驱动教学,学生对于每天学习的目的更加明确,学习的积极性也更加高了,更重要的是发挥了教学中学生的主体地位,尤其较好地发挥了组长的作用,在项目教学中,教师担当的角色是组织者、指导者、帮助者和促进者,使教师从满堂灌中解脱出来。较好地增强了学生应用知识的能力,学生在做中学,学中做,学做合一,理论联系实际,解决问题的能力得到了较大的提高。
参考文献:
[1]甄久军.基于项目化教学的《数控机床故障诊断与维修》课程改革与实践[J].职业技术教育,2010(8):28-30
[2]韩春光.以项目为载体的《模拟电子技术》课程设计[J].职业技术教育,2010(8):29-31
[3]蒋庆斌,徐国庆.基于工作任务的职业教育项目课程研究[J].职业技术教育,2005(22):46-50
[4]徐国庆.项目课程的基本理论[J].职教论坛,2006(8):1