研究性学习在面向对象程序设计教学中的使用案例_第1页
研究性学习在面向对象程序设计教学中的使用案例_第2页
研究性学习在面向对象程序设计教学中的使用案例_第3页
研究性学习在面向对象程序设计教学中的使用案例_第4页
研究性学习在面向对象程序设计教学中的使用案例_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、研究性学习在面向对象程序设计教学中的使用案例面向对象程序设计课程是计算机学院各专业学生在大学二 年级上学期必修的一门学科基础课 , 是程序设计基础课程的后续 课程。然而,经过一个学期程序设计基础课程的学习后 , 绝大部分 学生的编程基础仍然较弱。显然 , 这种现象的存在不利于培养计 算机应用型人才。 如何通过该课程的学习来提高学生的编程技能 并为后续专业课的学习打下坚实的基础是教学过程中许多教师 一直研究的问题。本文以校级与国家级研究课题为背景, 在面向对象程序设计课程的教学过程中进行了研究性学习的尝试和实 践。研究性学习是以问题为载体的一种全新的学习方式。 它着力 于学生的学 , 鼓励学生以

2、类似科学研究的方式 , 进行主动探索 1 。研究性学习虽然着眼点在于转变学生学的方式 , 但着手点却 是转变教师教学的观念和行为方式。 在本课程中进行的研究性学 习 , 教师仅仅是组织者、 参与者和指导者。 在学习过程中 , 每一位 学生都是通过亲身实践来运用书本上的理论知识并获取直接经 验。经过近 5个月的训练 ,参加研究性学习的学生 ,其编程技能明 显得到提高。1 组织形式组织研究性学习必须由教师全面负责。 教师要能把自己的科 研方向融入到教学中来 ,以某一研究主题作为切入点 , 通过给学生提出问题、 让学生分析问题和要求学生利用课堂上的理论知识 解决问题这三个阶段来培养学生良好的科学素养

3、 2 。针对计算机科学与工程学院 2008级网络工程 1、2班共 51 人, 在该课程的第一节课 , 启动通过面向对象程序设计课程开展 研究性学习的动员会 , 要求学生以自愿参加的方式组成一个研究 性学习团队。一个星期报名后 , 形成了一个 4 人的程序设计学习 团队。2 实施方式 在面向对象程序设计课程中实施研究性学习的方式主要利 用课外时间来完成。 但要求程序设计学习团队每周要进行一次集 中交流、讨论和程序展示 3 。针对这个程序设计学习团队 , 就面 向对象程序设计课程的某一知识点 , 实施研究性学习的案例。2.1 案例 1Vector 容器的使用与文本文件的读操作 一般来说,对于 Ve

4、ctor 容器,教材中仅仅只介绍了它的功能 和一些简单的使用方法。 那么如何在解决较为复杂的实际问题时 灵活使用它呢 ?在提出问题阶段 , 给出了如何利用程序实现朴素贝叶斯分类 器进行预测的问题。 教师首先组织团队成员利用课余时间学习朴 素贝叶斯分类器进行预测的基本原理。在提出问题阶段, 教师一定要把问题的正规化 , 正规化的意思就是要求教师把提出的问题 做成幻灯片 ,在讲解的时候 , 学生便于清晰阅读 ,更重要的是它可 以作为学生课后查阅资料的依据。最后 , 要求团队每一个成员利用一周的课余时间 , 通过阅读相关资料, 认真理解这个原理并记录有疑惑的问题。 具体问题的描述为 :给定训练样本数

5、据集如表 1 所示, 使用 朴素贝叶斯分类器来预测目标新实例 :(Outlook = sunny, Temprature = cool, Humidity = high, Wind = strong)的PlayTennis 的目标值 (yes 或 no) 。在分析问题阶段 , 要求团队每 位成员在每周固定的集中讨论时间内汇报自己的对问题的理解 , 如何从文本文件中读数据 , 如何用 Vector 容器存放数据解决问 题以及对问题存在的疑惑。表 1 训练样本数据集Day Outlook Temperature Humidity Wind PlayTennisD1 Sunny Hot High W

6、eak NoD2 Sunny Hot High Strong NoD3 Overcast Hot High Weak YesD4 Rain Mild High Weak YesD5 Rain Cool Normal Weak YesD6 Rain Cool Normal Strong NoD7 Overcast Cool Normal Strong YesD8 Sunny Mild High Weak NoD9 Sunny Cool Normal Weak YesD10 Rain Mild Normal Weak YesD11 Sunny Mild Normal Strong YesD12 O

7、vercast Mild High Strong YesD13 Overcast Hot Normal Weak YesD14 Rain Mild High Strong No在解决问题阶段 , 教师要求团队每位成员要展示自己的程序 在展示的过程中要讲解如何进行理论与实际相结合。 从这个实例 可以看出 , 经过这样的实践训练学生能将文本文件的读操作与 Vector 容器灵活地结合在一起使用。某团队成员在解决案例一 过程中的部分代码如下 :int fileToVector (string fileName, vector & svec) /* 从文本文件读取样本数据赋值给 string 对象 *

8、/ ifstream inFile (fileName.c_str();if (!inFile)return 1;string s;while (inFile s)svec.push_back(s); /* 将 string 对象存储在容器 svec 中*/inFile.close();if (inFile.eof()return 4;if (inFile.bad()return 2;if (inFile.fail()return 3;2.2 案例 2 运算符重载的应用对于运算符重载的使用 , 绝大多数的教材中一般针对的是较 为简单的类 , 例如,用复数类来列举一些较为常用的运算符重载 的应用

9、。那么 , 如何在解决实际问题的过程中灵活运用运算符重 载的知识呢 ?针对这个知识点 , 提出了如何利用程序实现数据隐私中的 k- 匿名模型。在利用案例一中的方法将实现 k- 匿名模型的 Datafly 算法介绍给学生 , 要求学生在解决这个问题的过程中能灵活运用 运算符重载的知识。具体的问题描述为:已知给定k=2,利用k-匿名思想将表2所 示的记录分组 , 得到的匿名表中 , 每个分组里至少有 2条记录是 相同的。表 2 原始数据表Race Birthdate Sex Zipcode Diseaseblack 1965-9-20 male 02141 short of breathblack

10、 1965-2-14 male 02141 chest painblack 1965-10-23 female 02138 painful eyeblack 1965-8-24 female 02138 wheezingblack 1964-11-7 female 02138 obesityblack 1964-12-1 female 02138 chest pain white 1964-10-23 male 02138 short of breathwhite 1965-3-15 female 02139 hypertensionwhite 1964-8-13 male 02139 obe

11、sitywhite 1964-5-5 male 02139 feverwhite 1967-2-13 male 02138 vomitingwhite 1967-3-21 male 02138 back-pain 某团队成员在运用运算符重载知识实现 k- 匿名的部分程序 代码如下。class Date /* 定义日期类用来表示生日 */private:string year,month,day;public:bool operator =(const Date &rhs); /*重载逻辑运算符=*/bool operator !=(const Date &rhs);/*重载逻辑运算符!=*/void set(string s); /*定义 set 成员函数用来设置日期定义省略 */void generalize(int k); /* 归纳函数 , 定义省略 */ friend ostream &operatoryear=rhs.year&this-month=rhs.mont

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论