王岩 欧歌 向健 黄岚
摘要:针对高校Java课程设置存在的课程结构不紧密、知识点衔接不连贯等问题,文章提出引入本体技术解决Java课程体系建立过程中存在的上述情况。通过分析Java体系中相关课程的特点以及各个知识点之间的联系,提出以Java课程体系为例的课程本体构建方法。通过搭建课程本体系统,对课程之间的知识点进行有效的管理和规划,体现各个课程之间的关系和内在联系,为学生推荐科学合理的学习安排,提高教学质量和学生学习效率。
关键词:Java课程体系;本体推理;大数据课程;安卓课程;J2EE课程;Android
1Java课程体系现状
Java语言是一种典型的面向对象的程序设计语言,具有高效、安全、能在不同平台之间移植的优秀特性。依照2016年2月最新的TIOBE编程语言排行榜公布的结果,Java语言位居榜首,占有率达21.145%。
鉴于Java语言的普及程度,国内外很多高校已将其作为计算机专业学生必须掌握的编程语言。根据教育部计算机基础课程教学指导委员会最新制定的白皮书,Java语言课程已经被列为计算机专业核心课程。与Java语言配套的相关课程也在不断跟进,如Java数据库管理、J2EE框架、安卓开发以及基于Java的大数据分析架构平台等,这些课程的出现也在推动着Java课程体系的进一步形成和完善。但是由于传统教学课程体系设置的滞后,存在课程结构不够分明、授课联系不够紧密等问题,课程之间各个知识点的衔接不够明确和恰当,使学生在学习过程中存在一定的迷茫和阻碍。例如,很多学生想要系统地学习Java相关内容,但是由于Java涉及的课程和技术非常多,学生不知道如何开始打基础,也不知道下一步该学习什么,甚至经常本末倒置难以系统地掌握Java技术及其相关技能的精髓和发展趋势。
2本体及课程本体
在哲学领域方面,本体定义的解释为:本体是有关物体客观存在的,是对客观存在事物的合理性解释和说明,它注重的是客观现实存在的抽象本质。1998年,Studer等学者对其内涵进行了细致的探索,他们普遍相信本体是“共享概念模型的明确形式化规范说明”。不同的应用系统运用各自的术语或词表来描述信息资源,因此在不同的系统间共享知识变得十分艰难。所以,本体可以成为一种纽带,将实际的语法表达形式和这种表达的抽象概念模型联系起来。
课程本体则是与课程概念有关的一个基本框架。对课程本体的探索其实是对它所包含的知识点进行内在分析以及关系探索。一般来讲,课程本体是由课程中存在的定义、定义之间的关系以及形式化描述语言构成的,其构建目标是形成对课程内部知识点层次的共同理解。课程本体具有描述特定课程中概念间联系的功能。
从本体角度可以将课程结构划分为3层,分别是课程概念、章节概念和知识点概念。因为课程概念包含章节概念,章节概念包含知识点概念,因此定义上下层概念之间的关系为:contain_with和belong_to,即包含和属于关系。在课程体系中,各课程的知识点之间还存在着前导、后续和相关关系,所以知识点之间的另外三种关系定义为:prerequisite_for、follow_up和related_to。借助本体构建工具Protege创建本体关系如图1所示。
3Java课程体系构建
如前所述,当前高校课程设置存在着诸多问题,学生在学习Java的过程中也遇到了课程联系不够紧密、知识点过于分散、理论与实践脱离等实际问题。而且,由于Java相关领域技术发展非常迅猛,目前很多高校的教学安排难以满足学生对学习Java及其相关技术的所有需求。因此,应对当前的Java课程进行合理的规划和调整,以满足学生的学习需求和市场上人才培养的要求,则变得至关重要。
通过查阅大量关于Java教学计划的资料,在文献提出的Java体系结构方案的基础上,我们扩展引入了最新的大数据和数据科学课程内容,将其作为所要构建Java本体系统的课程体系结构参考。该Java体系结构以Java开发语言为整个课程体系的核心,以c语言和C++语言为基础,并将数据结构和算法设计作为辅助课程。在掌握Java语言课程之后,可以进行高级开发部分的学习,如选择具有实际应用意义的J2EE和Android开发作为教学实践部分。与此同时,在高级课程部分还融入了数据库理论和软件工程两部分内容,帮助学生在项目驱动的理念下,更好地掌握Java及其相关技术。为了培养学生的实际动手能力,除了必要的理论课程教学外,还添加了一些实践课程和具体的课外培养计划。考虑到大数据和数据科学的快速发展,Java在云计算、Hadoop等相关方向的技术发展也越来越受到人们的关注和重视,因此在文献的Java课程体系中扩展了云计算和Hadoop两门课程作为Java在大数据技术方面的扩展。构建Java本体系统参照的Java课程体系结构如图2所示。
4课程本体构建
4.1Java课程体系本体系统构建
参照图1的Java课程体系,可以将以下课程安排作为构建本体系统的基础:算法分析与设计、数据结构、c语言程序设计、c++程序设计、Java程序设计语言、JavaEE架构与程序设计、Android开发、软件工程、云计算技术、Hadoop等。依照前述定义的3种概念(即课程概念、章节概念和知识点概念),借助本体构建工具Protege对Java课程本体进行创建。具体的课程概念及其实例表示的示例如图3所示。
在导入3种概念对应的实例之后,再通过已经定义各个概念之间的contain_with和belong_to,将课程实例、章节实例以及知识点实例联系起来。以Java程序设计语言为例,该课程的概
4.2课程本体概念之间的关系
以上只是定义了上下级概念之间的两种关系,实际上同—概念中的多种实例之间也存在很多关联。例如我们学习的每门课程本质上都是由知识点构成的,而知识点之间则存在多种联系。通过整理总结这些知识点间蕴含的内在联系,构建本体概念联系,可以推导出课程体系中全部课程的先后排列顺序;进而,利用这些推导结果更好地为学生提供准确的学习指导。
使用前面定义的知识点间3种关系(prerequisite_for、follow_up和related_to),可念结构图如图4所示,圆点表示contain_with,菱形表示belong_to。其中列出了Java课程实例、所有章节实例以及第一章Java语言概述包含的知识点实例。
以在知识点这一层次上建立概念间的关系作为课程本体推理的基础,帮助推导课程概念之间的隐含联系。
为了更好地说明Java课程体系中各个课程之间的关系,可以选取Android开发、Java程序设计语言、数据库原理、数据结构、算法分析与设计等部分课程本体中的知识点概念来说明课程本体之间的关系,如图5所示。
Android开发课程的第一章主要介绍了Android的基础知识,主要包含了Android概述、特点、简单示例、搭建环境等内容。在学习这些知识点之前,学生需要有Java语言相关的知识点为基础,因此,Java程序设计语言这—课程中存在着Android开发课程的前导知识,即prerequisite_for关系。
在实际的Android项目开发中,除了Java语言基础,还需要数据库技术的支持。在学习完数据库原理课程的所有知识点之后,可以继续对Android开发课程中有关可持续化存储的知识进行研究。所以,Android开发课程中关于数据库应用部分的知识点是数据库原理课程中部分知识点的后续知识,即follow_up关系。
数据结构和算法分析与设计是计算机专业的学习必须掌握的基础课程。在数据结构这门课程中,讲述数据结构基础知识的同时也对算法时间复杂度和空间复杂度知识点进行了介绍。而在算法分析与设计课程中,在学习具体的算法知识之前,也需要掌握一些基本的数据结构知识,这些知识点之间并没有明确的先后关系。因此,将它们定义为相关关系,即related_to关系。
5课程体系本体在学习中的应用
Java课程体系中包含了与Java技术相关的多种课程,这为Java学习者提供了一个较为全面的课程学习体系,也为培养掌握Java多项技术的全面型人才奠定了基础。文中所构建的课程体系本体能够很好地解决教学上出现的问题,建立起能够对知识点进行有效管理的本体知识库。在以往的学习过程中,学生总是对先学习哪门课程或是后学习哪门课程存在疑问,而教师也仅能凭借自己的教学经验为学生进行指导。然而,文中建立的课程体系本体能够帮助学生进行更加系统的学习安排,为学生提供一个较为合理的学习规划。Java课程体系本体系统的查询界面及查询效果示例如图6和图7所示。
该本体构建策略同样可以作为其他课程体系的有力参考。在未来的工作中,可以将整个计算机学院课程导人课程本体,构建出面向全计算机学科的知识参考模型.。另外,目前3层概念之间的关系都是人工定义的,当课程数量非常多的时候,这些对应关系不仅仅可以人工提供,还可以通过数据挖掘手段来获取,比如MOOC笔记、各种课程网站的内容分析等。这两方面的工作将会使整个计算机课程本体更具有合理性,也为学生的学习过程提供极大的帮助。
6结语
文中系统可以有效指导学生对Java及其相关技术进行系统的学习;同时,文中系统也适合推广到其他课程的本体构建中作为参考,使学生可以更为科学合理地安排自己想要学习的课程,并事半功倍地达到学习目的。