C++程序设计教学改革幻灯片

上传人:cl****1 文档编号:578412959 上传时间:2024-08-24 格式:PPT 页数:37 大小:356.50KB
返回 下载 相关 举报
C++程序设计教学改革幻灯片_第1页
第1页 / 共37页
C++程序设计教学改革幻灯片_第2页
第2页 / 共37页
C++程序设计教学改革幻灯片_第3页
第3页 / 共37页
C++程序设计教学改革幻灯片_第4页
第4页 / 共37页
C++程序设计教学改革幻灯片_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《C++程序设计教学改革幻灯片》由会员分享,可在线阅读,更多相关《C++程序设计教学改革幻灯片(37页珍藏版)》请在金锄头文库上搜索。

1、C+程序设计程序设计教学改革教学改革C+教学怎样进行才不太难教学怎样进行才不太难C+程序设计程序设计 vc+课程的现状与改革的思路课程的现状与改革的思路v如何组织如何组织C+教学教学vc+程序设计关键技术程序设计关键技术v教学指导思想教学指导思想v教学方法的思路简介教学方法的思路简介v教学与考试教学与考试v教学效果教学效果一、一、 c+c+课程的现状与改革的思路课程的现状与改革的思路vC/C+语言本身相当复杂,作为第一教学语言有其天语言本身相当复杂,作为第一教学语言有其天生的困难,全国的教学现状由生的困难,全国的教学现状由2003年年9月白皮书给出月白皮书给出的的C和和C+两份教学大纲可以看出

2、:两份教学大纲可以看出:C语言内容比较全面,对算法的要求也比较高,语言内容比较全面,对算法的要求也比较高,这表明这表明C的教学已经比较成熟。建议学时:讲授的教学已经比较成熟。建议学时:讲授(3)+实验实验(4)。C+中算法大大削减,语法大大增加,并以一般中算法大大削减,语法大大增加,并以一般程序设计内容为主、面向对象内容为辅。建议学程序设计内容为主、面向对象内容为辅。建议学时:讲授时:讲授(4)+实验实验(4)。表明。表明C+教学还不成熟。教学还不成熟。学生的反应也是学生的反应也是“这次地,怎一个难字了得!这次地,怎一个难字了得!”。一、一、 c+c+课程的现状与改革的思路课程的现状与改革的思

3、路v经典的经典的C+C+教学存在以下问题:教学存在以下问题:C+C+是从面向过程的是从面向过程的C C语言发展而来的,并非是纯语言发展而来的,并非是纯面向对象的语言,面向对象的语言,面向过程和面向对象教学分离面向过程和面向对象教学分离,不利学生掌握先进的面向对象程序设计方法。不利学生掌握先进的面向对象程序设计方法。面向对象的面向对象的C+C+语法较复杂,教学往往陷入语法语法较复杂,教学往往陷入语法,面向对象成了语法现象。只能削弱更为重要的面向面向对象成了语法现象。只能削弱更为重要的面向对象程序设计应用和算法的教学。对象程序设计应用和算法的教学。工作平台相对陈旧,未能使用主流的图形化的面工作平台

4、相对陈旧,未能使用主流的图形化的面向对象的操作系统平台。向对象的操作系统平台。教学内容相对陈旧教学内容相对陈旧,新的,新的C+98C+98标准的重要发展没标准的重要发展没有体现。有体现。一、一、 c+c+课程的现状与改革的思路课程的现状与改革的思路v学生与教学整体环境的现实情况:学生与教学整体环境的现实情况:一年级大学生更重视数理化和外语,计算机课的精力分一年级大学生更重视数理化和外语,计算机课的精力分配仅排第五、六位配仅排第五、六位。本科生总学时数下降,尽管计算机课程重要性上升,但本科生总学时数下降,尽管计算机课程重要性上升,但总学时不可能增加。总学时不可能增加。学生认为应试教育天经地义,大

5、学应延续中学的应试教学生认为应试教育天经地义,大学应延续中学的应试教育,不懂得主动学习。育,不懂得主动学习。尽管中学教学大纲对计算机要求提高,但学生水平未提尽管中学教学大纲对计算机要求提高,但学生水平未提高。高。大学生上机实践环境大大改善。大学生上机实践环境大大改善。大学生对计算机学习的期望值很高,但对学习将遇到困大学生对计算机学习的期望值很高,但对学习将遇到困难的心理准备不足难的心理准备不足。一、一、 c+c+课程的现状与改革的思课程的现状与改革的思路路v本课程改革的出发点是:本课程改革的出发点是:与时俱进与时俱进和和实事实事求是求是。与时俱进是指教学内容要跟上计算。与时俱进是指教学内容要跟

6、上计算机技术的最新发展;实事求是是指教学要机技术的最新发展;实事求是是指教学要切合当今大学生的实际情况,切合本课程切合当今大学生的实际情况,切合本课程在大一同时开设的课程中的地位。在大一同时开设的课程中的地位。一、一、 c+c+课程的现状与改革的思路课程的现状与改革的思路v课程体系改革的具体思路:课程体系改革的具体思路:培养面向对象与参数化程序设计的能力。培养面向对象与参数化程序设计的能力。突出突出C+关键技关键技术的教学术的教学。要有重点,不要贪多嚼不烂。要有重点,不要贪多嚼不烂。选择最新的选择最新的C+C+体系(体系(9898标准)作为教学内容标准)作为教学内容。突出程序设计,强调算法而不

7、是语法。立足于白皮书指出突出程序设计,强调算法而不是语法。立足于白皮书指出的让学生的让学生学到实实在在的应用技能学到实实在在的应用技能。基础教学与实践教学相结合。基础教学与实践教学相结合。突出编程能力的培养。突出编程能力的培养。解决面向对象与面向过程分离的问题,直接讲授面向对象解决面向对象与面向过程分离的问题,直接讲授面向对象程序设计方法。程序设计方法。培养大学生的自学与研究能力。培养大学生的自学与研究能力。 二、二、 如何组织如何组织c+c+教学教学vC+C+教学内容的组织:教学内容的组织:白皮书给出了白皮书给出了C+的基本教学要求。的基本教学要求。但同样的内容,但同样的内容,怎样组织教学却

8、有大学问。怎样组织教学却有大学问。教学目的不同,教学内容的组织方式也不同:教学目的不同,教学内容的组织方式也不同:如果要讲的是程序设计语言本身,当然是以语法为如果要讲的是程序设计语言本身,当然是以语法为主;主;如果学习的是程序设计,则应该以程序设计的方法如果学习的是程序设计,则应该以程序设计的方法和技术(算法)为主,而语法只是作为工具。和技术(算法)为主,而语法只是作为工具。不能语法与方法并重,否则不能语法与方法并重,否则C+C+的教学无论对老师的教学无论对老师还是学生都是还是学生都是太难了。太难了。二、二、 如何组织如何组织c+c+教学教学v怎样组织,怎样组织,C+C+教学才教学才不太难不太

9、难的:的:深刻了解教学内容的内在联系和学生现状是基础。深刻了解教学内容的内在联系和学生现状是基础。C+C+教学最简单也是最直接的组织方法是:按语法教学最简单也是最直接的组织方法是:按语法现象,先讲面向过程,再讲面向对象。因学时有现象,先讲面向过程,再讲面向对象。因学时有限,结果学生学到的是前者,后者仅仅是一个语限,结果学生学到的是前者,后者仅仅是一个语法现象,一个模模糊糊的印象。法现象,一个模模糊糊的印象。影响到下一届学影响到下一届学生就是面向对象有什么用?生就是面向对象有什么用?第二种组织方法是直接讲面向对象,重点放在程序第二种组织方法是直接讲面向对象,重点放在程序设计的方法和技术(算法)设

10、计的方法和技术(算法) 。结果学生的反应是:。结果学生的反应是:我们的专业基础课是不是都这么难?那怎么得了我们的专业基础课是不是都这么难?那怎么得了?二、二、 如何组织如何组织c+c+教学教学v怎样组织,怎样组织,C+C+教学才教学才不太难不太难的:的: 白皮书(白皮书(03年年11月)指出:过程性程序设计与月)指出:过程性程序设计与面向对象程序设计不是两个相互独立的程序设计范面向对象程序设计不是两个相互独立的程序设计范型,后者包括前者,是前者的发展。把两者分开并型,后者包括前者,是前者的发展。把两者分开并列是不妥的。列是不妥的。 我们理解:我们理解:面向对象是勾画了程序的整体框架,面向对象是

11、勾画了程序的整体框架,程序个部分和各层次的内在联系,使可再利用性大程序个部分和各层次的内在联系,使可再利用性大大提高;而具体描述算法的程序段则是过程性的。大提高;而具体描述算法的程序段则是过程性的。所以所以 后一种组织方式是比较好的,但后一种组织方式是比较好的,但降低其难度是降低其难度是关键关键。 二、二、 如何组织如何组织c+c+教学教学v怎样组织,怎样组织,C+C+教学才教学才不太难不太难的:的:实际现有的两种组织方法,教学都是从面向过程和实际现有的两种组织方法,教学都是从面向过程和面向对象两方面着手,仅仅是教学次序和侧重点面向对象两方面着手,仅仅是教学次序和侧重点不同。不同。考虑到既然我

12、们的目的是培养学生的编程能力,同考虑到既然我们的目的是培养学生的编程能力,同时按照时按照ISO14882 C+语言标准语言标准的要求,我们的教的要求,我们的教学组织从两个方面着手:学组织从两个方面着手: 面向对象和参数化程序设计面向对象和参数化程序设计 给参数化程序设计以前所未有的重视。给参数化程序设计以前所未有的重视。三、三、 c+c+程序设计关键技术程序设计关键技术v要具体降低难度,首先要深刻理解要具体降低难度,首先要深刻理解C+C+的的关键技术关键技术,要有重点,要有重点,不能面面俱到,有所失,才能有所得。围绕关键技术不能面面俱到,有所失,才能有所得。围绕关键技术“精讲精讲多练多练”,可

13、以花较少的学时取得更好的效果。,可以花较少的学时取得更好的效果。突出关键技术突出关键技术多态的教学多态的教学 强强调调类类对对象象个个性性实实现现的的关关键键技技术术多多态态。包包括括重重载载(编编译译时时的的多多态态,包包括括函函数数与与运运算算符符重重载载)、层次结构中的同名覆盖与超载(运行时的多态)。层次结构中的同名覆盖与超载(运行时的多态)。 在在介介绍绍函函数数时时就就引引入入函函数数重重载载,在在教教学学刚刚涉涉及及类类对对象象时时就就引引入入运运算算符符的的重重载载。引引入入的的越越早早应应用用的的机机会会越越多多。普普遍遍使使用用这这些些技技术术是是面面向向对对象象的的C+的的

14、标志。标志。三、三、 c+c+程序设计关键技术程序设计关键技术突出关键技术突出关键技术参数化程序设计的教学参数化程序设计的教学 C+中参数化是由模板技术实现的。突出模中参数化是由模板技术实现的。突出模板相关内容的教学。不是将模板作为一种语法现象,板相关内容的教学。不是将模板作为一种语法现象,而是作为一个有力的工具用于本教材所涉及的全部而是作为一个有力的工具用于本教材所涉及的全部数据结构基本知识,包括顺序表、链表、栈、队、数据结构基本知识,包括顺序表、链表、栈、队、二叉树以及查找排序算法。同时介绍标准模板库的二叉树以及查找排序算法。同时介绍标准模板库的简单使用方法。简单使用方法。最新发展的最新发

15、展的ISO14882 C+语言标准一个较大的改变语言标准一个较大的改变是把模板引入标准库,使用模板类来代替传统的是把模板引入标准库,使用模板类来代替传统的C+中定义的类,实现通用的与数据类型无关的算中定义的类,实现通用的与数据类型无关的算法(参数化程序设计)。法(参数化程序设计)。 三、三、 c+c+程序设计关键技术程序设计关键技术强调关键技术强调关键技术聚合的教学聚合的教学 : 提倡完善的类对象封装,不仅封装数据和对数提倡完善的类对象封装,不仅封装数据和对数据的操作,而且封装资源(尤其是内存)的动态分据的操作,而且封装资源(尤其是内存)的动态分配与释放,形成一个完备的子系统。在一个有层次配与

16、释放,形成一个完备的子系统。在一个有层次结构的类体系中资源的动态分配与释放应封装在成结构的类体系中资源的动态分配与释放应封装在成员对象中,如同使用标准的员对象中,如同使用标准的string字符串类那样。字符串类那样。成员对象往往不被重视,教学中往往重视派生而轻成员对象往往不被重视,教学中往往重视派生而轻视聚合,聚合是一种完善的封装。采用成员对象将视聚合,聚合是一种完善的封装。采用成员对象将大大简化层次结构的类体系中资源的动态分配与释大大简化层次结构的类体系中资源的动态分配与释放的处理方法,不再出现难度极大的多层次的深复放的处理方法,不再出现难度极大的多层次的深复制。制。三、三、 c+c+程序设

17、计关键技术程序设计关键技术介绍关键技术介绍关键技术异常处理异常处理 : 介绍怎样在面向对象的程序设计中使介绍怎样在面向对象的程序设计中使用异常处理技术来处理一些很难查找甚至用异常处理技术来处理一些很难查找甚至是无法避免的运行时错误和异常。是无法避免的运行时错误和异常。这里要求从一开始学习资源的动态分配就习这里要求从一开始学习资源的动态分配就习惯于在构造函数中动态分配资源、在析构惯于在构造函数中动态分配资源、在析构函数中释放资源。函数中释放资源。三、三、 c+c+程序设计关键技术程序设计关键技术v总之,不是泛泛介绍面向对象的总之,不是泛泛介绍面向对象的C+的语的语法和框架,而是突出实用技术,包括

18、完善法和框架,而是突出实用技术,包括完善的封装、派生、多态和模板,在构造函数的封装、派生、多态和模板,在构造函数中动态分配资源、在析构函数中释放资源中动态分配资源、在析构函数中释放资源和异常处理,这是面向对象的和异常处理,这是面向对象的C+程序设程序设计的精髓。计的精髓。这里没有强调一般的封装与派生,并非不这里没有强调一般的封装与派生,并非不重要,而是它们是最基础的,不会被忽重要,而是它们是最基础的,不会被忽视。视。三、三、 c+c+程序设计关键技术程序设计关键技术v 教学上有重点与没有重点是大不相同的,平教学上有重点与没有重点是大不相同的,平均使用学生的精力和学时是不可取的。均使用学生的精力

19、和学时是不可取的。“伤伤其十指,不如断其一指其十指,不如断其一指”。教学与打仗是一。教学与打仗是一个道理。个道理。教学目的不同,所取的重点也是不同的。这教学目的不同,所取的重点也是不同的。这种以关键技术为重点的方法是突出种以关键技术为重点的方法是突出程序设程序设计的方法和技术。计的方法和技术。这样培养的学生所编的程序给人的第一印象这样培养的学生所编的程序给人的第一印象应该是:应该是:这是规范的面向对象的程序。这是规范的面向对象的程序。四、教学指导思想四、教学指导思想v首先应淡化语法、强调算法:首先应淡化语法、强调算法:注意介绍有关独立于任何特定编程语言的算法概念和注意介绍有关独立于任何特定编程

20、语言的算法概念和结构,即突出程序设计而不是语法。强调算法,不结构,即突出程序设计而不是语法。强调算法,不是忽视语法,而是不要繁琐的钻牛角尖的语法,我是忽视语法,而是不要繁琐的钻牛角尖的语法,我们要的是基本的常用的语法,但更多的是模仿。不们要的是基本的常用的语法,但更多的是模仿。不是知道的语法越多,程序编得越好,而是是知道的语法越多,程序编得越好,而是自己动手自己动手编程越多,程序编得越好编程越多,程序编得越好。 重点攻算法,带动基本语法的学习,也可以大大节约重点攻算法,带动基本语法的学习,也可以大大节约学时,降低教学难度。学时,降低教学难度。四、教学指导思想四、教学指导思想v第二,力图把面向对

21、象与面向过程有机地结合第二,力图把面向对象与面向过程有机地结合起来。面向过程突出了算法,学生易接受,起来。面向过程突出了算法,学生易接受,C+不应该不讲面向过程的部分。但必须尽早不应该不讲面向过程的部分。但必须尽早引入面向对象的概念。学生刚进入编程能力培引入面向对象的概念。学生刚进入编程能力培养的实质阶段,学习的就是面向对象的程序设养的实质阶段,学习的就是面向对象的程序设计。这样,大学生才能顺利接受面向对象思想。计。这样,大学生才能顺利接受面向对象思想。形象地说面向对象是编程的大框架,面向过程形象地说面向对象是编程的大框架,面向过程是编写处理具体问题程序段的工具。是编写处理具体问题程序段的工具

22、。四、教学指导思想四、教学指导思想v第三,基础教学与实践教学相结合:第三,基础教学与实践教学相结合:程序设计是一门实践性很强的课程,仅在基础教学中程序设计是一门实践性很强的课程,仅在基础教学中“精讲多练精讲多练”还是不够的,通常有课程设计作为实还是不够的,通常有课程设计作为实践教学。践教学。实践教学与基础教学应各有侧重,互为补实践教学与基础教学应各有侧重,互为补充充。这样基础教学可以专攻一项,教学难度也可以。这样基础教学可以专攻一项,教学难度也可以下降。下降。在基础教学中采用在基础教学中采用WindowsWindows平台下的控制台方式,以平台下的控制台方式,以突出编程基础能力的培养。在实践部

23、分比较全面地突出编程基础能力的培养。在实践部分比较全面地学习标准的学习标准的WindowsWindows图形界面编程。图形界面编程。 WindowsWindows与与MFCMFC编程相关原理在课堂教学中讲授。编程相关原理在课堂教学中讲授。操作性内容安排操作性内容安排学生提前自学学生提前自学,教师进行重点内容的演示。,教师进行重点内容的演示。 四、教学指导思想四、教学指导思想通常通常MFCMFC教学内容庞杂,学生易迷失在令人眼教学内容庞杂,学生易迷失在令人眼花缭乱的操作中,而看不清程序的基本组成。花缭乱的操作中,而看不清程序的基本组成。我们要求的内容,简洁而不失完整性:我们要求的内容,简洁而不失

24、完整性:由应由应用程序向导建立程序框架,由资源编辑器建用程序向导建立程序框架,由资源编辑器建立用户界面,由类向导建立成员变量、消息立用户界面,由类向导建立成员变量、消息映射和处理函数,加上文档序列化和注册;映射和处理函数,加上文档序列化和注册;使学生对使学生对MFCMFC编程的关键步骤一目了然。编程的关键步骤一目了然。四、教学指导思想四、教学指导思想v课程设计课程设计采用研究型学习方法采用研究型学习方法学生自选课题,自定解决方案,在掌握了基学生自选课题,自定解决方案,在掌握了基本方法和解决问题的途径后,对自己感兴趣本方法和解决问题的途径后,对自己感兴趣的内容,自然愿意努力去寻找答案,这比从的内

25、容,自然愿意努力去寻找答案,这比从老师那里得到答案要强得多。老师那里得到答案要强得多。再难他也认为再难他也认为不难。不难。如果小组如果小组成员搭配成员搭配合理,基础较差的合理,基础较差的同学也可以跟上进度,至少有一次全过程的同学也可以跟上进度,至少有一次全过程的学习机会。教师在此阶段只需提醒学生合理学习机会。教师在此阶段只需提醒学生合理分配工作时间,注意小组成员之间的沟通,分配工作时间,注意小组成员之间的沟通,帮助把握进度。帮助把握进度。五、教学方法思路简介五、教学方法思路简介v有了适当的教学内容组织,加上好的教学方法,可有了适当的教学内容组织,加上好的教学方法,可以使教学难度大大下降。以使教

26、学难度大大下降。C+C+教学方法大体有两类:教学方法大体有两类: 一类是细细地讲,所有的难点、问题和细节都举一类是细细地讲,所有的难点、问题和细节都举了大量的例子一一交待清楚。把知识嚼烂了再反了大量的例子一一交待清楚。把知识嚼烂了再反哺给学生。这样学生学习的难度是下来了,但学哺给学生。这样学生学习的难度是下来了,但学生的能力很难提高。生的能力很难提高。 另一类是粗犷地讲,讲重点、讲关键技术,其他另一类是粗犷地讲,讲重点、讲关键技术,其他留给学生自学,留给学生通过实验来掌握。教师留给学生自学,留给学生通过实验来掌握。教师主要起引导的作用,让学生不走或少走弯路。主要起引导的作用,让学生不走或少走弯

27、路。我们提倡后一种。我们提倡后一种。五、教学方法思路简介五、教学方法思路简介v首先围绕关键技术精讲多练:首先围绕关键技术精讲多练:强调掌握面向对象强调掌握面向对象C+C+的关键技术。与之有关的的关键技术。与之有关的精讲,无关的泛读。要求学生能熟练应用多态精讲,无关的泛读。要求学生能熟练应用多态(重载和超载),熟练应用模板,熟练应用派生。(重载和超载),熟练应用模板,熟练应用派生。习惯在构造函数中动态分配资源、在析构函数中习惯在构造函数中动态分配资源、在析构函数中释放资源和异常处理的方式。释放资源和异常处理的方式。围绕关键技术教学围绕关键技术教学是精简学时的关键是精简学时的关键。 C+C+的内容

28、很丰富,只要达到以上三个熟练应用的内容很丰富,只要达到以上三个熟练应用和一个习惯的目的即可。为了达到精讲多练,应和一个习惯的目的即可。为了达到精讲多练,应安排大量同步实验,每个实验包括多个范例和练安排大量同步实验,每个实验包括多个范例和练习,当然可以选做一部分。习,当然可以选做一部分。五、教学方法思路简介五、教学方法思路简介v其次,提倡庖丁解牛的方法:其次,提倡庖丁解牛的方法: 面面向向对对象象程程序序设设计计的的原原代代码码通通常常比比较较庞庞大大,原原因因是是数数据据与与数数据据的的操操作作封封装装在在一一起起,原原则则上上包包含含的的操操作作要要全全面面,正正是是众众多多的的成成员员函函

29、数数使使学学生生认认为为自自己己面面对对的的是是一一个个庞庞然然大大物物,吓吓也也吓吓蒙蒙了了。教教师师应应该该指指出出成成员员函函数数是是一一个个个个独独立立的的操操作作,每每一一个个成成员员函函数数都都是是简简单单的的。可可以以给给学学生生讲讲讲讲庖庖丁丁解解牛牛的的故故事事,要要求求学学生生做做到到目目无无全全牛牛,也也就就是是面面向向对对象象的的程程序序要要一一个一个函数来编。个一个函数来编。五、教学方法思路简介五、教学方法思路简介v第三,正确处理编程细节与大局观:第三,正确处理编程细节与大局观: 建议建议本课程一学年完成本课程一学年完成,在第一学期的教学中对在第一学期的教学中对算法的

30、描述,侧重于采用算法的描述,侧重于采用C+语言编程的细节的讲语言编程的细节的讲解。要求学生学会先分析算法,再画流程图,最后解。要求学生学会先分析算法,再画流程图,最后进行编程。特别是在进行编程。特别是在“基本控制结构程序设计基本控制结构程序设计”和和“函数函数” 的教学中要严格贯彻这一要求。之后是过的教学中要严格贯彻这一要求。之后是过渡阶段,对编程的细节的讲授随教学推进而逐渐淡渡阶段,对编程的细节的讲授随教学推进而逐渐淡化,对程序的整体掌握的要求逐渐加强,使学生的化,对程序的整体掌握的要求逐渐加强,使学生的编程能力上一个台阶。编程能力上一个台阶。 建议在第二学期的教学中,算法表述的细节基建议在

31、第二学期的教学中,算法表述的细节基本留给学生自己看,教师重点讲解脱离具体本留给学生自己看,教师重点讲解脱离具体C+语语言的算法本身的描述和程序整体的构造。一方面提言的算法本身的描述和程序整体的构造。一方面提高学生的自学能力,另一方面引导学生的编程的大高学生的自学能力,另一方面引导学生的编程的大局观。局观。五、教学方法思路简介五、教学方法思路简介v第四,强调入门时对编程细节的指导,第四,强调入门时对编程细节的指导,提倡学生互相帮助:提倡学生互相帮助:学生尚未入门时具体指导尤其重要,最好是在实学生尚未入门时具体指导尤其重要,最好是在实验室里配大屏幕显示,教师为学生同步演示具验室里配大屏幕显示,教师

32、为学生同步演示具体操作。在辅导实验时只可能解决少数学生的体操作。在辅导实验时只可能解决少数学生的少数问题,提倡上机时学生互相讨论互相帮助。少数问题,提倡上机时学生互相讨论互相帮助。提倡较难的题可以同学之间先讨论再独立完成,提倡较难的题可以同学之间先讨论再独立完成,规范化编程主要是灵活应用通用算法,不是创规范化编程主要是灵活应用通用算法,不是创造别人看不懂的算法,初级阶段主要是模仿。造别人看不懂的算法,初级阶段主要是模仿。要有讲评,这是一个总结提高的过程。要有讲评,这是一个总结提高的过程。五、教学方法思路简介五、教学方法思路简介v第五,培养学生调试程序的能力:第五,培养学生调试程序的能力:教师在

33、教学初期的课堂教学中应多做控制台应用程序教师在教学初期的课堂教学中应多做控制台应用程序设计全过程演示。学生调试程序的能力主要在这时设计全过程演示。学生调试程序的能力主要在这时培养,不仅是培养,不仅是C+C+,而且以后而且以后“微机系统微机系统”等后续课等后续课程用程用DebugDebug调试各种程序的基本功都是在这里打下的。调试各种程序的基本功都是在这里打下的。辅导上机,主要指导学生怎样跟踪程序的运行,怎辅导上机,主要指导学生怎样跟踪程序的运行,怎样设置被监视的变量,怎样设置断点,怎样单步运样设置被监视的变量,怎样设置断点,怎样单步运行,怎样使用行,怎样使用DebugDebug工具。授之以鱼,

34、不如授之以渔。工具。授之以鱼,不如授之以渔。帮同学调通一个程序,不如教会同学怎样去调程序。帮同学调通一个程序,不如教会同学怎样去调程序。五、教学方法思路简介五、教学方法思路简介v第六,尽早引入面向对象的思想:第六,尽早引入面向对象的思想:例如当介绍基本数据类型时,传统的教学方法例如当介绍基本数据类型时,传统的教学方法是说同一种算法用于不同的数据类型时结果是说同一种算法用于不同的数据类型时结果是不同的,意思是算法是通用的。而实际情是不同的,意思是算法是通用的。而实际情况是算法是与数据捆绑在一起的,不同数据况是算法是与数据捆绑在一起的,不同数据有自己的独立的算法集,即数据是与其操作有自己的独立的算

35、法集,即数据是与其操作封装在一起的,本质上是面向对象的。让学封装在一起的,本质上是面向对象的。让学生刚开始学习就接触面向对象的思想,是非生刚开始学习就接触面向对象的思想,是非常重要的。常重要的。五、教学方法思路简介五、教学方法思路简介v第七,广泛使用图解法:第七,广泛使用图解法:人获得的信息人获得的信息90%是来自视觉。图可以表现事是来自视觉。图可以表现事物之间的联系和转换,文字说不清的事,用物之间的联系和转换,文字说不清的事,用图就可以表述的明明白白。查找、排序、特图就可以表述的明明白白。查找、排序、特别是链表的各种算法,用图解不仅可以帮助别是链表的各种算法,用图解不仅可以帮助理解,而且帮助

36、记忆算法。递归很难讲授,理解,而且帮助记忆算法。递归很难讲授,但用图解就简单多了。阅读理解程序是协同但用图解就简单多了。阅读理解程序是协同工作的基本功,用图解法使理解程序也变得工作的基本功,用图解法使理解程序也变得忒简单。忒简单。五、教学方法思路简介五、教学方法思路简介v第八,淡化指针:第八,淡化指针:指针是指针是C+的难点。但的难点。但C+有各种技术取代了有各种技术取代了指针的许多功能,如引用取代指针的间接访指针的许多功能,如引用取代指针的间接访问、成员函数取代函数指针。建议只保留指问、成员函数取代函数指针。建议只保留指针作为地址这一基本功能针作为地址这一基本功能(访问动态建立的无访问动态建

37、立的无名对象名对象)和指针与一维数组访问的关系和指针与一维数组访问的关系(指针指针的运算的运算)。其他都可以不讲。淡化了指针,。其他都可以不讲。淡化了指针,C+的难度就明显下降。的难度就明显下降。五、教学方法思路简介五、教学方法思路简介v第九,随时更新的教学资料:第九,随时更新的教学资料: 教材是死的,总是滞后与实际教学的。教材是死的,总是滞后与实际教学的。而教学是活的,是随时在发展的。为此所有而教学是活的,是随时在发展的。为此所有任课教师都应准备大量的任课教师都应准备大量的不断更新的不断更新的教学资教学资料,并互相交流。料,并互相交流。六、教学与考试六、教学与考试v总学时安排:总学时安排:

38、本教程建议授课时数本教程建议授课时数4848学时,习题课学时,习题课8 8学学时,上机实验时,上机实验5656学时(含课外上机),综合学时(含课外上机),综合考虑一年级大学生课程安排,以及与本课程考虑一年级大学生课程安排,以及与本课程的相关性,建议安排在两个学期中完成。的相关性,建议安排在两个学期中完成。 另有小型软件设计的实践环节(课程设另有小型软件设计的实践环节(课程设计,短学期),计,短学期),1616学时加上机实验学时加上机实验3232学时学时(含课外上机)。(含课外上机)。六、教学与考试六、教学与考试整个教学强调过程,知识积累的过程,能力培养的过程,整个教学强调过程,知识积累的过程,

39、能力培养的过程,使学生能快乐地学习。使学生能快乐地学习。一定要避免应试教育,避免学生跟一定要避免应试教育,避免学生跟着考试的指挥棒转。考试目的是督促学生努力提高自己的着考试的指挥棒转。考试目的是督促学生努力提高自己的编程能力,检查学生学习情况。所以考试方式要求多样化。编程能力,检查学生学习情况。所以考试方式要求多样化。考试覆盖面要广,但难度要适中。考试覆盖面要广,但难度要适中。教学要求分教学要求分3挡。挡。教材全部内容最高,为学有余力的同学教材全部内容最高,为学有余力的同学服务。教学大纲第二,是为课堂与实验教学服务的。考试服务。教学大纲第二,是为课堂与实验教学服务的。考试要求最低,是要求全体学

40、生重点掌握和理解的内容。要求最低,是要求全体学生重点掌握和理解的内容。考试命题非常重要,应考试命题非常重要,应只包括考核学生编程能力的内容,只包括考核学生编程能力的内容,而不包括编程中几乎用不着的纯语法的弯弯绕的内容。而不包括编程中几乎用不着的纯语法的弯弯绕的内容。当当学生不要去参考任何为语法考试准备的参考书学生不要去参考任何为语法考试准备的参考书时,我们的时,我们的命题就达到目的了。否则我们就给学生制造了双重难度。命题就达到目的了。否则我们就给学生制造了双重难度。六、教学与考试六、教学与考试建议本课程一学年完成,课程考试分两阶段,五建议本课程一学年完成,课程考试分两阶段,五次完成。次完成。第

41、一阶段为程序设计课程考试,分两次笔试和两第一阶段为程序设计课程考试,分两次笔试和两次上机。总成绩由笔试(次上机。总成绩由笔试(60%)、上机()、上机(30%)和平时作业(和平时作业(10%)合成。)合成。第二阶段为课程设计,采用研究型学习方法,由第二阶段为课程设计,采用研究型学习方法,由综合程序设计全过程作为评分依据,而不是只看综合程序设计全过程作为评分依据,而不是只看结果。结果。七七、结论、结论教学效果教学效果v教学效果的评价有不同的出发点。本课程的建设的教学效果的评价有不同的出发点。本课程的建设的目标是培养学生软件编制能力。首先要看学生实际目标是培养学生软件编制能力。首先要看学生实际能力

42、的提高。客观的评价,能力的提高。客观的评价,大约三分之一的同学的大约三分之一的同学的动手能力比过去的教学方法下培养的学生有明显的动手能力比过去的教学方法下培养的学生有明显的提高,他们学到的本领不是对付卷面考试的能力,提高,他们学到的本领不是对付卷面考试的能力,而是实际编程的能力而是实际编程的能力。v有少数同学,非常困难,他们提出有少数同学,非常困难,他们提出“我们的要求很我们的要求很低,老师不要讲那么多东西,只要给我们讲怎么解低,老师不要讲那么多东西,只要给我们讲怎么解题,细细讲,反复讲。题,细细讲,反复讲。”一方面他们是中学应试教一方面他们是中学应试教育的受害者,另一方面也是大一其他课程的压力太育的受害者,另一方面也是大一其他课程的压力太大,实在没有时间。分层次教学,可部分解决。大,实在没有时间。分层次教学,可部分解决。 面向对象面向对象C+C+程序设计程序设计EndThank you!

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号