最近与一位从事高校软件工程教育的同仁(挚友)聊天,谈到如何提高学生的创新性思维,两人不免大肆吐槽一番,有谈到过目前高校教育体制、学校的培养方案等等等等,但是这些东东无论是作为我们老师还是学生,只有微不足道的建议权,没有任何决策权,而且有些东西根深蒂固,在短时间内根本无法解决,。因此,我们只能从现实出发,看能否尽大的努力,从课堂和实训教育的角度来让学生的创新性思维有所提高。

如何做?如果希望培养有创新性思维的学生,老师也应该努力去创新。老师的创新将引导和激发学生的创新性思维,创新教育离不开教育的创新。他跟我介绍了他在带《Java面向对象程序设计》实训时的一个创新之举,我深受启发,觉得这是一个挺不错的创新教育实例,希望抛砖引玉,引发各位教育工作者的思考和讨论,更好地进行创新教育和教育创新。

本学期,朋友承担的是《Java面向对象程序设计》的教学和实训指导任务。通常大学里面的Java实训项目大都是做一个MIS系统,例如我原来用过的库存管理系统、酒店管理系统等,也有用过即时聊天系统的(涉及到网络编程、多线程等技术),技术难度会稍大,但是数据库那一部分又太过简单。这些都不说,关键是这样的项目很难创新,每年都做这几个,做来做去就是这么几个项目,这么几个功能,而且,学长学姐们会给学弟学妹们贡献无数代码和文档,,导致实训的效果越来越差,学生的实训积极性也不是很高。这不是办法?

于是,今年做了一次尝试,换了一个新的实训项目——构造三国人物关系模型,基本介绍如下:

      从《三国演义》文本格式的电子书中,选择不少于20个人物,构建一个三国人物关系模型,要求如下:

       (1) 分小组(4-5人)讨论,确定一个人物关系模型构建算法,要求给出合理的算法分析和描述;

       (2) 对于指定的三国人物,以图形化方式显示出与之关系最紧密的5-10个人,按照关系紧密程度排列;

       (3) 要求使用两种及以上的设计模式,注意软件的可扩展性和可维护性,尽量使用配置文件,减少硬编码;

       (4) 以C/S 桌面软件的形式呈现,开发语言:Java;开发工具:Eclipse。

最后检查和验收时,发现每一组学生的模型构造均不一样,不少学生还学习了一些相关的数学和数据挖掘知识,例如关联规则、聚类分类、相似性计算、概率统计,甚至马尔科夫链等,。下面我简单介绍一下其中两组学生的实现方案【比较简单易懂的,毕竟还只是本科三年级学生】:

(1) 第一组学生

首先选择20个常见的三国人物,建立一个名字库(配置文件),包括每一个人物的各种别名和昵称,,例如,曹操的别名(字)有“操”、“孟德”、“曹孟德”等;诸葛亮的别名(字)有“孔明”、“亮”等;

使用一种滑动窗口扫描的技术,滑动窗口的大小通过配置文件设置(例如50),也就是说对于《三国演义》中的每一回,每次扫描指定长度的文本,在其中判断是否存在两个人的名字,如果有则关系计数加1(如果两个关系紧密的人刚好位于两个不同的窗口中,这种方法会导致产生误差,但也不失为一种可行的方法),最后统计两两之间关系的数量,再图形化显示。该组学生还分析了一下滑动窗口大小对结果的影响,得到了一系列在不同滑动窗口下人物关系模型,证明滑动窗口在一定范围内,人物关系是比较稳定的。

在实现过程中使用了策略模式和单例模式,其中,策略模式用于扩展关系计数算法,可能以后会有更好的算法;主窗口用了单例模式,防止创建多个相同的界面。

       (2) 第二组学生

以《三国演义》的每一回为一个单位,因为三国每一回的标题中都会提到一两个核心人物,然后分析该回中各个人物出现的次数(频率),找出在以核心人物作为标题的章回中其他出现频率最高的人物【也考虑了同一个人的多种不同的称呼】,认为他们之间的关系最密切,并据此构建人物关系模型。

在实现过程中使用了单例模式和观察者模式,其中观察者模式是用在MVC中,提供了多种图形化显示方式(柱状图、折线图等),只要模型层的人物列表发生变化,多个图表都会随之发生改变,从而实现一对多的依赖联动。

虽然这两组学生的模型都很简单,但都是他们自己的想法,并且都能够对自己的思路进行清晰的讲解。关键是学生们对这个项目很感兴趣,还有学生把《三国演义》这个目标库改成了自己正在看的一本玄幻小说,看软件的分析结果和自己认为的结果是不是一致。另外,每一组学生都在试图创新,在分析和设计算法的过程中也能够学到很多课堂之外的知识,大家都认为有收获。

从这件事中,我也看到了很多高校老师也都意识到之前的创新教育存在的缺陷和不足,也都在思考和探索如何改善。当然,有时候使用MIS类型的项目作为实训项目效果也很好,而且还能够将程序设计、数据库、前端设计等相结合,在功能等方面也能够有所创新。但是,对于已有过一两次这种类型实训经验的学生,我们作为教育工作者,确实需要在后续的实训内容和形式上创新。学生创新能力的培养离不开具有创新性思维的老师,一想到这些,忽然感觉责任重大,路漫漫其修远兮,吾将上下而求索!

【作者:刘伟   http://blog.csdn.net/lovelion】

创新教育实例之“三国人物关系模型”相关推荐

  1. python人像绘制_python 绘制三国人物关系图

    author:weizhendong data:2019.12.19 func:绘制三国演义人物关系图 """ import codecs import jieba.po ...

  2. python关系图谱_python 绘制三国人物关系图

    author:weizhendong data:2019.12.19 func:绘制三国演义人物关系图 """ import codecs import jieba.po ...

  3. mysql三国人物库_一文带你使用neo4j生成三国人物社交关系图

    简介 最近给孩子买了三国演义,可是三国人物关系太复杂,就想着把三国人物关系做成一张图,这样方便看,整好neo4j图数据库非常适合社交关系的处理,下面就一起来看看,如何使用neo4j生成三国人物社交关系 ...

  4. 利用gensim里word2vec训练实例——分析三国里人物关系

    前言 万物皆可Embedding 入坑cs224N后看完第二周和相关论文.觉得word2vec非常有意思,将一段具有上下文关系的短文(实体)词语学习嵌入到语义空间成为一个向量,然后判断两个词语(实体) ...

  5. 使用Vue-neo4j绘制三国人物图谱关系

    前言 发现一个很有用的Vue插件:https://www.npmjs.com/package/vue-neo4j 这个能在前端直连neo4j服务器啦,下图就是测试效果绘制三国人物图谱关系 演示地址 版 ...

  6. 【数据库系统】关系模型、关系、元组、属性、关系实例

    文章目录 关系模型 关系 元组 属性 关系实例 关系模型 要了解关系模型,先要了解数据模型. 数据模型是一个描述数据.数据联系.数据语义以及一致性约束的概念工具的集合,提供了一种描述物理层.逻辑层和视 ...

  7. 【用matplotlib,wordcloud和pyecharts分析三国的分词,词频,词性,小说人物出场次数排序小说人物关系】

    前言 为了顺利完成作业,经过几天的网上查阅完成了[根据第1部分自然语言处理教学内容,请选择一本你喜欢的小说,利用上课讲的但不限于授课内容,对该小说进行分析.比如分析该小说的分词,词频,词性,小说人物出 ...

  8. python语言通过字典实现映射关系_利威平台Python编程语言:如何用字典类型来编程统计三国人物...

    上一篇文章小编对Python编程语言的组合数据学习分享给大家了,这一篇文章小编分享一下如何用字典类型来编程统计三国人物! 小编今天分享给大家用Python编程来统计三国人物出场次数,三国中的人物很多, ...

  9. HugeGraph图数据库构建红楼梦人物关系知识图谱实例

    HugeGraph是一款易用.高效.通用的开源图数据库系统(Graph Database,GitHub项目地址), 实现了Apache TinkerPop3框架及完全兼容Gremlin查询语言, 具备 ...

最新文章

  1. echarts 横纵分割线颜色透明度
  2. Lock/Unlock Account - Active Directory
  3. C++性能优化-字符串的优化
  4. lgg8各个版本_lgg8参数
  5. 解决vmware移动虚拟机之后执行ifconfig命令无输出的问题
  6. pdf各种处理 PDF 的实用代码:PyPDF2、PDFMiner、pdfplumber
  7. C#LeetCode刷题之#746-使用最小花费爬楼梯( Min Cost Climbing Stairs)
  8. CPU 是如何工作的?
  9. 解决springboot jar包冲突
  10. vi设计清单_最终产品设计组合清单
  11. 一个产品经理的工作经历与总结
  12. 消息队列一|从秒杀活动开始聊起消息队列
  13. Qt开发环境下载和安装
  14. RSS简述 及 Java构造RSS接口
  15. react 微信公众平台实现支付功能
  16. 微信小程序把图片下载到本地相册(附源码)
  17. 【技术贴】解决相册thumbnails文件过大 小米缩略图缓存根除办法
  18. python抓取微博评论的图片_用Python语言爬虫抓取微博评论图文教程
  19. c++中opencv对图片旋转镜像并调整尺寸显示
  20. 积累小结-无法将文件”obj\debug\XXX.dll复制到“bin\Debug\XXX.dll” 拒绝访问

热门文章

  1. 基于Java的Minecraft游戏后端自定义插件 04注册命令与处理
  2. RabbitMQ(六)——持久化和权重分配消息
  3. 腾讯大讲堂之每年3万行代码,你达标了吗?
  4. safari苹果浏览器对日期格式不支持的解决办法
  5. 神经对抗网络 自动标注,神经对抗网络研究课题
  6. android 定位轨迹功能,小步外勤怎么看轨迹 定位轨迹功能详解
  7. 地理距离测算(方法免费共享,经纬度、省份、地级市、港口间距离)
  8. 基于帝企鹅算法优化BP神经网络实现数据预测matlab代码
  9. 解决ie11下antd-vue input的clear点击无效
  10. K-近邻算法全面解析