第1篇:递进案例在面向对象程序设计教学应用论文
递进案例在面向对象程序设计教学应用论文
递进案例在面向对象程序设计教学应用论文
摘要:《面向对象程序设计》是计算机专业的一门重要的基础课程,较强的理论性与语法的复杂性给学生的学习带来困难。分析以往教学过程中存在的问题及原因,浅谈如何设计、运用递进案例,使得学生从以教材语法为中心的学习重心转移到案例的分析和领会上,到达学生主动学习、对知识点融会贯通的目的。
关键词:面向对象程序设计;递进案例
0引言
《面向对象程序设计》是计算机专业的一门重要的基础课程,是编程语言教学中的重点也是难点。该课程要求学生了解面向对象程序设计的基本思想、掌握面向对象编程的技术,为大型应用软件设计与开发打下良好的理论和实践基础。在教学实践中,有学生反映课程很难学,甚至有个别学生对编程产生畏惧的情绪。笔者结合实际的教学工作,分析课程教学过程中碰到的主要问题和成因,浅谈如何引入递进案例方法提高教学质量。
1教学过程中存在的问题及原因
以往在教学过程中主要存在的问题及原因如下:(1)学生对面向对象程序设计的学习的目标不明确,学习动力不强。由于学生相对欠缺项目经验,对面向过程程序设计在大型软件开发过程中遇到的代码难维护、难扩充等问题意识不足,仅从软件功能的角度看问题,以为已经有面向过程编程的方法已经可以写软件了,不理解为什么需要学习面向对象程序设计。(2)教材对面向对象程序设计技术的描述过于侧重语法,缺乏思维引导和结合应用的'分析,较少围绕“为什么面向对象程序设计包含了这个技术点?”“什么情况下需要使用这个技术点?”“如何使用这个技术点?”等问题展开讨论,导致学生停留在“知其然而不知其所以然”的阶段,即使掌握了面向对象程序设计的语法,还是没领会到面向对象程序设计的思想精髓,不懂运用。(3)教材和课后习题以每一章节的知识点为目标设计,缺乏系统性与连贯性,缺少对知识综合运用能力的训练。
2引入递进案例提高教学质量
针对上述问题,笔者在教学中使用递进案例,根据教学目标和内容需要,采用案例组织学生进行学习、研究、锻炼,把教授和学习的重心放在案例的分析和领会上,而不是以教材的理论知识点为中心[1-2]。旨在让学生在理解案例所涵盖的知识点后,通过模仿案例到灵活运用设计创新,到达学习的目的。本节讨论递进案例设计和运用过程。(1)案例的编写首先,案例保持内容的连贯性与递进性[3]。案例以编写某个软件为目标,与教材内容章节顺序保持一致,在前一次课完成的功能的基础上,提出丰富软件功能的新需求,引入新的知识点学习。整个过程由简到繁,循序渐进,将知识点串联起来,引导学生在学习过程中承前启后、举一反三。同时,案例的设计要考虑趣味性[4]、实用性和可操作性。例如,计算机专业的学生通常喜欢游戏,可以以游戏为例子吸引学生。此外,案例的编写要详尽,对于每个知识点,需要写清楚它的作用、适用场景和相关代码,使得学生在课后能通过阅读案例深入理解、掌握知识点,并会模仿、应用。(2)案例的运用笔者在使用递进案例进行教学的时候,采用“提出需求、抛出问题、分析问题、讲授知识点、布置任务”的路线进行讲解。首先,在第一次上课的时候向学生介绍案例的内容,说明要实现一个什么样的软件,具体要实现哪些功能。然后,给学生布置课程设计,让学生实现与案例软件相关的另一个模块,要求在后续的学习过程中每次学到新技术后,能模仿案例将新技术点用到课程设计中。每次课堂按以下步骤展开:①提出需求。结合新知识点,提出给软件增加某个功能,要求学生采用以前学过的面向过程程序设计的方法实现。②提出问题。要求学生思考:在用面向过程程序设计方法实现该功能的时候,遇到什么困难?提示学生从代码管理、代码可扩充性等方面思考。③分析问题。要求学生分析困难出现的原因,总结面向过程程序设计在大型软件开发过程中的不足之处,让学生领悟到:“在这种应用场景下,需要利用面向对象程序设计的技术去解决这个问题。”,激发学生的学习兴趣。④引入新知识点。结合教材的例子讲解知识点的语法。在讲解过程中,对于部分难以理解的内容,像构造函数、析构函数、拷贝构造函数、动态内存分配等,可以采用动画形式演示,让学生对这些抽象的过程有较具体的理解。然后结合案例演示知识点的运用将知识点扩大为知识面,最后由形象到抽象,揭示概念本质。⑤布置任务。任务分两部分内容。首先,要求学生完成教材的习题,通过语法关。然后,要求学生模仿案例,将新知识点运用到课程设计中。
3一个具体的案例
本节分享笔者在教学中使用的递进案例。在我院,《C++面向对象程序设计》这门课安排在一年级第二学期上,作为《C语言程序设计》的后续课程。笔者在上《C语言程序设计》的时候,要求学生用面向过程程序设计的方式实现一些小游戏,例如猜数字游戏、打字游戏等。由于学生对游戏都比较感兴趣,所以收集了不少优秀作品。在面向对象程序设计课程中,笔者设计了一个实现“小游戏集锦”的递进案例,要求学生在学习完整套案例后,实现游戏玩家管理的模块。教材一般按照类的封装性、继承性、多态性的顺序组织内容,对应地,案例的内容设计也基本按照上述顺序展开。(1)类和对象的概念。将多个小游戏的代码分发给学生,要求学生把代码汇总成一个“小游戏集锦”的程序。让学生设计一个菜单入口,在菜单中选择游戏,进入相应的游戏界面。让学生体会到,这个貌似几行代码能解决的问题,会碰到诸如“全局变量名冲突、数据和函数的关系不明显”等的麻烦。接下来,引入类和对象的概念,介绍类的作用,再讲解类的语法。在案例中演示如何将每个游戏单独写成一个类。要求学生在掌握了类的语法后,写一个玩家类。(2)类的封装性。举一个“窜改代码关键变量”的例子,让学生理解封装性的作用。要求学生在玩家类里实现对玩家数据信息的封装。(3)构造函数、析构函数、拷贝构造函数、静态成员等。结合某个游戏类,对类增加恰当的需求应用,展开对这些知识点的讲解。例如,在游戏集锦中,仅要求每个游戏类生成一个对象。可由此需求引入静态成员的知识点进行讲解,然后演示如何设计单例模式解决这个问题。(4)类的继承与派生。要求增加功能:统计每个游戏的进入次数。用户每进入一次游戏,该游戏的进入次数加一。在学习类的继承与派生之前,学生只能在逐个游戏类里面添加私有变量intcount,并在各个类的游戏入口函数处增加count++的语句。提问学生:如果有一百个小游戏,是否需要分别在一百个类里面做重复的定义count和count++的操作?如果有一个类忘记对count加1会出现什么情况?引入面向对象程序设计的另一个重要特点——继承。在案例中,定义一个游戏基类Game类,Game类包含成员count,再派生出各个小游戏类。要求学生掌握类的继承与派生之后,写一个游戏的游客类。游客类与玩家类的区别在于,游客类每的对象每次登录游戏集锦时,分数清零;玩家类的分数不清零。要求思考该如何对游客类和玩家类的代码进行重构、设计。(5)类的多态性。多态是面向对象程序设计最复杂也最难诠释的一个特点。在案例中,要求增加功能:菜单按游戏的热门程度(进入游戏的次数)排序。提问若采用已学过的知识,这种做法是否方便:定义一个数组统计各类小游戏的访问次数,然后对数组进行排序,得到小游戏的菜单列表,再根据用户输入的选择找到相应的游戏入口函数。引入基类指针指向派生类对象和多态的知识点,提出可以将Game类设计成虚基类,采用Game类指针数组存储指向各个小游戏的对象的指针,则可以方便地对指针数组排序,实现按游戏热门程度排序的功能。要求学生掌握多态性的知识点后,写一个在线玩家(包括游客)的列表,要求将在线玩家和游客按游戏成绩排名显示。
4结语
《面向对象程序设计》是计算机专业的一门重要的基础课程,该课的学习质量直接影响专业后续课程的学习。本文探讨了教学过程遇到的一些问题,分析了学生学习困难的原因,讨论如何用递进案例教学,通过递进案例让学生脱离枯燥的语法学习,将学习重心转移到对知识点的领悟与运用上,提高教学质量。
参考文献:
[1]廖湖声.面向对象程序设计课程的教学改革探讨[J].计算机教育,2016.3.
[2]王文冰,李辉.以实例贯穿课堂的面向对象程序设计课程教学改革[J].计算机教育,2011.1
[3]肖志娇.以游戏为实例进行面向对象程序设计趣味教学[J].现代计算机,2011(1):14-16.
[4]王婧.游戏案例在面向对象程序设计教学中的应用[J].电脑知识与技术,2016,12(2):124-126.
第2篇:面向对象程序设计教学浅析的论文
摘要面向语言程序设计是计算机专业的必修基础理论课,在课程教学中,许多教师和学生都认为,计算机语言教学死板,不利于将知识转化为能力。本文结合作者的教学实践,对如何有效讲解面向对象程序设计这门课程进行了探悉,以期提高教学效率和效果。
关键词面向对象程序设计教学方法
面向对象程序设计是计算机专业的必修课程,开设此课程的目的是使学生掌握程序设计的基本方法并形成面向对象的程序设计思想,能够熟练地使用C++语言进行程序设计并具备独立调试程序的能力,为后继课程学习和应用打下坚实的基础。作者结合国内外优秀编程语言的教学方法和模式,不断地总结和积累经验并运用于教学实践之中,取得了较好的教学效果,有助于学生在有限的教学时间内,以最快最简单易懂的方式,扎实地掌握C++语言的内容。下面是作者在面向对象程序设计教学中的一些体会。
一、培养学习兴趣
为了使初学者能尽快地掌握计算机知识,进入计算机的应用领域,在课程讲授过程中,要特别注意培养学生的学习兴趣。初接触计算机时,很多学生感到新奇、好玩,这不能说是兴趣,只是一种好奇。随着课程的不断深入,大量的感念、规则、定义、要求和机械的格式出现,很容易使部分学生产生枯燥乏味的感觉。为了把学生的好奇转化为学习兴趣,授课时作者从具体问题入手,让学生先从感性上认识新知识,继而再讲授理论要点。
在首次课上,给学生找一些《高等数学》、《线性代数》等已学课程的问题,用算法语言来求解,使学生体会程序设计的用途和一种全新的解决问题的方法。在课程的进行中,引导学生学一种算法,就尝试在同行课程中应用。作者还经常介绍一些趣味性算例,如:“迷宫问题”等[1],来培养学生的学习兴趣,让大家积极主动地获取知识,打好程序设计基础。整个教学过程中应该把解题思路、方法和步骤当作授课的重点,从而让学生明白如何分析并解决实际问题,逐渐培养学生进行程序设计的正确思维模式。
二、循序渐进讲解
绝大部分学生是第一次接触面向对象程序设计的概念,通俗、易懂的教学原则同样适合于这门课的教学。在课程讲授过程中,作者没有把重点放在语法规则的叙述上,而是放在算法和程序设计方法上,通常由几个例题引出一种语法规则,通过一些求解具体问题的程序来分析算法,介绍程序设计的基本方法和技巧,既注重教材的系统性、科学性,又注重易读性和启发性。从最简单的问题入手,一开始就介绍程序,要求学生编写程序,通过反复编写、运行程序来掌握语言规则和程序设计方法。同一个语法规则、同一种算法,在选择例题时也是由简到难,逐步呈现给学生。在学习上不要求学生死记语法规则,而是要求学生能把各个孤立的语句组织成一个有机的程序。注意培养学生良好的编程风格,让学生在编制程序过程中不断总结、巩固,达到学会方法、记住语法规则,提高设计技巧的目的。
三、改进教学方法
作者要求学生事先预习,实际上就是要求他们课前自学,讲课时以学生预习过为起点,只讲难点、重点,这样既给了学生思维分析的余地,又节省课时。这就要求必须精选教学内容,注意详略安排。如在讲到“类与对象”,“继承与派生”[2]这些关键性章节时就讲的特别精,使学生能够熟练掌握、理解透彻,而讲到“输入输出流”时,让学生做到一般了解即可。课堂上找一些程序设计较好、解题思路清晰的例题让学生自己读,找出精妙之处和不理解之处,对普遍性的问题共同讲解,个别问题课后解答。
作者特意地设置一些不同深浅的笔误和口误,马上让学生肯定对与错,以考查学生注意力集中的程度,提高他们的敏锐性和判别力。对有些问题,给出一种程序设计方法后,让学生讨论,还有没有其它的程序设计方法和思路,让他们发表意见,提出自己的解题思路和编程方法,给学生交流不同思路和观点的机会。这就要求老师既能引导又能放开,既有事先的精心备课,又有课堂上的因势利导,同时也可以从学生讨论中提出的问题来丰富教材内容,使得教与学相得益彰,共同进步。
四、习题与上机实践
做习题是复习所学内同的过程,也是深入学习的过程。作者每次课后给学生布置一些有代表性的习题,以巩固课堂上所学的内容。也通过学生的作业情况来了解学生对课程内容的掌握程度。对作业中比较普遍出现的错误,在下次课上当堂讲解,使得学生能对学过的东西理解透、掌握牢。作业中新颖的程序设计方法和思路,也当堂宣讲或作业批注,以鼓励创新型的学习方法。
每次实际上机操作前,都根据实验教学计划,有系统地布置上机实习作业,让学生明确上机任务,编写好上机调试的程序,使学生在每次上机实践中都有收获。作者让学生按照自己的姓名、学号命名自己的程序文件,调试成功后存入磁盘,并撰写实验报告,课程结束后结合学生的程序和实验报告来评定实验成绩。课程结束前作者坚持进行总结,把所学的内容作一个概要分析,前后联系起来,使学生对所学课程内容能够融汇贯通。
参考文献
1.刘璟,周玉龙.高级语言C++程序设计.第二版[M].北京:高等教育出版社,2006
2.GradyBooch著,冯博琴,冯岚,薛涛,等译.面向对象分析与设计[M].北京:机械工业出版社,2003
第3篇:面向对象程序设计教学浅析的论文
面向对象程序设计教学浅析的论文
摘要面向语言程序设计是计算机专业的必修基础理论课,在课程教学中,许多教师和学生都认为,计算机语言教学死板,不利于将知识转化为能力。本文结合作者的教学实践,对如何有效讲解面向对象程序设计这门课程进行了探悉,以期提高教学效率和效果。
关键词面向对象程序设计教学方法
面向对象程序设计是计算机专业的必修课程,开设此课程的目的是使学生掌握程序设计的基本方法并形成面向对象的程序设计思想,能够熟练地使用C++语言进行程序设计并具备独立调试程序的能力,为后继课程学习和应用打下坚实的基础。作者结合国内外优秀编程语言的教学方法和模式,不断地总结和积累经验并运用于教学实践之中,取得了较好的教学效果,有助于学生在有限的教学时间内,以最快最简单易懂的方式,扎实地掌握C++语言的内容。下面是作者
第4篇:《面向对象程序设计》教学大纲
《面向对象程序设计》教学大纲
课程名称:面向对象程序设计 英文名称:Object Oriented Programming)学分:2 总学时:36 实验(上机)学时: 8 开课专业:电子商务专业
一、本课程的性质、目的和培养目标
面向对象程序设计是电子商务专业的限定选修课程。面向对象程序设计是当今最为流行的程序设计方法,本课程以C++语言为核心,全面概述面向对象程序设计的基本概念和基本技术。主要内容包括:理解和掌握面向对象程序设计的基本思想和技术,掌握C++中的引用和函数重载、类与对象、静态成员与友元、运算符重载、继承与派生类、多态与虚函数等重要概念和技术。通过教学要求学生基本掌握面向对象的程序设计方法,认识C++是如何支持面向对象程序设计的,培养、训练学生运用面向对象技术进行程序设计的能力。
二、
第5篇:面向对象程序设计感想
C#面向对象程序设计感想
本课程主要讲解了控件,资源管理器,文件流,线程等等,通过这门课的学习,我学到了一些应用性的知识,比如如何设计控件,对文件流进行程序的代码编写,还有就是多线程编程技术,在此我想主要谈谈基本控件的学习和感想
学习控件,使我了解了基本控件的使用方法。在原先学习过c#的基础上,通过将窗体和控件联系起来,使得编写代码不再枯燥,反而能编写出更好玩的东西,比如《贪吃蛇》《拼图》这样的小游戏(界面有点死板哈,但是基本可以看出来的,还有待改善),在这其中确实增加了学习的兴趣,更深刻得理解了程序的编写,提高了编程的能力。
当然,到现在仍然有一些问题,比如timer,picturebox之类的,老师在教的时候,听课是没有一点困难的,难的是课堂上记住操作步骤,即使上课记下一点,但是只要有一处漏记了
第6篇:面向对象程序设计教学大纲
面向对象程序设计(专业限选课)Object-Oriented Programming 【课程编号】XZ26175 【学分数】3 【学时数】60=38+22
【课程类别】专业限选 【编写日期】2010.3.30 【先修课程】C语言程序设计、计算机应用基础
【适用专业】通信工程
一、教学目的、任务
通过学习,使学生深刻理解和领会面向对象的基本思想和基本特征,掌握面向对象程序设计语言C++语言的基本概念、基本语法以及面向对象程序设计的基本方法;使学生养成面向对象的编程思维习惯。
二、课程教学的基本要求
1.理解面向对象的基本概念和使用面向对象技术进行程序设计的基本思想 2.能比较熟练地用C++语言进行一般面向对象的程序设计
3.初步掌握面向对象编程环境Visual C++的使用
三、教学内容和学时分配(2 + 5
第7篇:面向对象程序设计心得体会
这次课程设计让我收获到很多,上个学期我们也有过课程设计,但是我们都是从网上下一个程序,连带着报告,看一遍程序,修改修改报告,然后就直接去答辩,都是糊弄糊弄就过去了,自己根本就没有付出过努力,到现在,那个程序的内容是什么全忘光了。但是这次的课程设计,虽然老师您的要求十分严格,但是却是让我切实体会到了自己动手的快乐。要我们自己设计一个管理系统,从定题目,到开始写代码,全部都是自己来。我在开始课程设计前的两周就开始考虑我课设的时候应该做什么内容,想做一般同学都能想到的学生管理系统,但是就怕会有类似的不敢做,冥思苦想了好久,最后才定下的备忘录管理系统,其实所有的管理系统的本质都是一样的,增,删,改,查,但是,这些东看似简单,做起来却难。像我在做增加的时候,就遇到了问题,最后通过老师的调试,才发现原来是
第8篇:《面向对象程序设计》教学大纲
《面向对象程序设计》教学大纲
课程名称:信息内容安全 课程代码:042504 总 学 时:64 学
分:2
课程类型:专业必修课 适用专业: 信息安全专业 制 订 人:徐雪飞 审 定 人:肖
文 制订日期:2015年3月
《面向对象程序设计》教学大纲
一、课程性质、目的和任务
C#语言是.NET平台上的核心开发语言,具有简单易学、类型安全、完全面向对象等特性,是一门面向现代软件工程的主流程序设计语言。本课程系统地介绍C#语言的结构化设计、面向对象、泛型、商业开发等功能要素,使学生在掌握程序设计的基本方法和技巧,培养利用计算机解决实际问题的能力,以满足专业课应用和继续学习的需要。
二、教学基本要求
通过学习本课程,要求学生能够熟悉C#语言的语法和类型系统,掌握面向对象程序设计和泛型程序设计的基本方法,并具有商业应