群体智能课程与Java程序设计课程的融合方法研究
2018-12-17黄焱
黄焱
摘要:通过分析群体智能课程和Java课程的特点和存在问题,提出一种在Java课程授课过程嵌入群体智能课程内容的教学方案,基于现有教学条件对两门课程进行融合,提升Java程序设计课程内容的新颖性,在计算机专业教学中普及群体智能课程。
关键词:群体智能;Java;课程融合;粒子群算法
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2018)25-0095-02
近年来,云计算、大数据、物联网、移动互联网等领域技术发展迅速,行业应用深入人们生活的方方面面,正在深刻地改变人们的生活,引领人们进入一个新的人工智能时代。人工智能成为世界经济发展的新引擎、学术研究的新热点。我国高度重视人工智能以及相关科技领域的发展,将人工智能提升为国家的发展战略,大力推动互联网、大数据、人工智能和实体经济的深度融合,人才培养成为人工智能行业持续、健康发展的关键因素之一。2017年至今,中国科学院大学、国防科技大学、中山大学、西安电子科技大学、湖南工业大学、上海交通大学、南京大学等高校相继成立了人工智能学院,大力培养人工智能领域的专业人才。
群体智能是指由许多简单个体组成的群体呈现出的涌现行为所表现出的集体智能,维基百科、开源软件、知识共享、万众创新、共享经济等新的社会现象表明人工智能已由传统的个人智能转向群体智能。群体智能成为新一代人工智能领域的研究热点,也是人工智能专业的核心课程,对于学生学习最优化问题、掌握最优化方法并将其应用于人工智能的关键领域至关重要。由于开设群体智能课程的门槛相对较高,目前开设此课程的院校较少,在计算机相关专业中普及群体智能知识、推动人工智能的发展存在一定难度。将已开设的程序设计课程与群体智能课程进行衔接与融合可以使学生在实践中学习群体智能的基本内容,有助于保持程序设计课程“与时俱进”。下面结合自己的教学经验,谈谈群体智能如何与Java程序设计课程衔接融合,提出自己的看法。
1 两门课程的概况和存在问题
1.1群体智能课程
群体智能是新一代人工智能领域的核心课程,主要向学生讲解经典的群体智能算法及其应用。智能计算是通过对自然界中社会性动物、社会性昆虫群体中协作行为表现出的宏观智能进行观察,用计算机程序模拟其群体性行为,求解人类社会中一些复杂度很高的现实问题[1]。这门课程的主要内容、特点和存在问题如下。
1)主要内容
群体智能算法可分为基于生物群体的智能优化算法和基于非生物群体的群体智能优化算法,如表1所示。其中,蚁群算法、粒子群算法是最为经典的算法,烟花算法和头脑风暴优化算法是目前较为热门的新型算法。这些算法的框架均可划分为生成新解、变异操作、映射规则和选择策略,具有一定的相似性。
2)特点和存在问题
群体智能算法通过采用类比的方式向大自然学习,通过仿生的方法模仿动物种群行为或者自然物理现象,取得不错的效果,但大多数算法的理论体系不完善,缺乏严格的理论证明。因此,群体智能课程不需要讲解大量的基础理论,是一门实践性较强的课程,需要通过大量编程实践理解算法思想、熟悉算法性能,课程入门相对容易,学习门槛较低。
人工智能领域热度很高,学生的学习热情也很高,但目前开设群体智能相关课程的院校较少,很多高校缺乏人工智能专业的师资和教材,可以参考的教学方案不多,因此在计算机专业中广泛开设群体智能课程存在一定障碍。
1.2 Java程序设计课程
Java是经典的面向对象程序设计语言,多年来一直为稳居TIOBE编程语言流行指数榜单首位,在IT业界得到广泛应用,是计算机专业的必修课程,也是高校开设率最高的一门程序设计课程。
1)主要内容
Java程序设计课程的内容较为固定,主要内容包含基础语法、类和对象的基本概念、类的方法、类的重用、接口和多态、多线程、Java API、集合类、I/O、图形界面、网络编程、数据库等[3]。授课形式一般分为理论讲授和上机实践两个部分。理论授课以讲解Java课程教材的基本知识点为主;上机部分包含实验和课程设计两个环节,实验环节通过编写一些小程序对理论课的基本知识进行复习和巩固,课程设计环节给学生布置功能较完整、代码量较大的项目,锻炼学生独立开发完整工程的能力。
2)特点和存在问题
Java程序设计课程是计算机专业必修、其他专业选修的基础课程,是全国高校广泛开设、课程普及率很高的课程。该课程面向的对象是学过C/C++语言或者没有编程基础的学生,因此教学内容较为基础,教学内容较为固定。理论教学和实验环节的案例均为讲解知识点而设计,课程设计环节的题目一般为小游戏、聊天软件和信息管理系统,存在案例陈旧、一成不变,对于学生的吸引力不足的问题。
2 设计Java程序设计课程,衔接与融合两课的教学
通过分析两门课程的教學内容、优缺点可以发现,群体智能课程和Java程序设计课程具有互补的关系。在Java程序设计课程中嵌入群体智能课程内容可以不用改变专业培养方案自主开展智能计算课程知识的讲授,满足学生学习人工智能的需求;群体智能课程的实验性强,可以作为学习Java编程的实验案例和课程设计题目,提高Java程序设计课程案例的新颖性,取得更好的课堂教学效果。
2.1 衔接与融合两课的Java程序设计课程教学设计
为了达到这样的目的,我对Java程序设计的教学过程进行如下设计。
1)在Java程序设计理论课中加入群体智能课程内容:第一次理论课讲解Java语言和群体智能入门知识;第二次理论课专题讲解群体智能算法中经典的蚁群算法和粒子群算法的基本思想,通过实验演示让学生对群体智能算法的效果有直观的体验。
2)将蚁群算法和粒子群算法的Java源代码作为教学代码穿插在课程的教学过程中。第一次实验课安排学生熟悉Java开发环境、编写HelloWorld程序,运行蚁群算法和粒子群算法的程序;将算法的Java源代码进行分解,分别在基础语法、类、对象、接口、重用、多线程等知识点讲解环节讲解相应的源代码,通过反复修改、运行程序和课堂提问,加强学生对群体智能算法的原理、框架和算法实现的理解。
3)在讲解完Java语法基础和面向对象基础之后,将蚁群算法求解TSP问题和粒子群算法求解TSP问题作为一次实验内容,通过该实验巩固前段教学成果,通过修改蚁群算法和粒子群算法,将其用于求解TSP问题,加深对两个算法的理解和掌握。
4)将蚁群算法和粒子群算法作为Java课程设计的选题,引导学生设计开发一个具有图形界面的群体智能算法演示系统。在演示系统中可以设置算法的全局参数、选择测试函数,演示系统以动画的形式动态展示算法的收敛过程。
2.2以粒子群算法为例进行两课融合
粒子群算法是群体智能中应用最为广泛的一种算法,其设计灵感来源于鸟群随机搜索食物的捕食行为,通过模拟鸟群的行为求解目标函数的全局最优解位置。粒子群算法将优化问题的潜在解想象为搜索空间中的一只鸟(称之为“粒子”),粒子通过追随当前的最优粒子在解空间中进行搜索,通过迭代找到最优解位置。每一次迭代,粒子通过跟踪两个极值更新自己的位置:第一个是粒子本身所找到的最优解,即个体极值;另一个是整个种群目前找到的最优解,即全局极值。该算法具有简单明了、实现方便、参数设置少的特点,适合作为群体智能教学的入门算法[4]。
下面以粒子群算法为例,介绍该算法的程序设计与Java程序设计教学中的对应关系,如表2所示。
3 结束语
群体智能是人工智能专业领域的基础课程,与Java程序设计课程具有互补关系。通过对广泛开设的Java程序设计课程的授课内容和授课方式进行调整,将两个课程衔接融合,可以不改变现有课程设置,讲授经典的群体智能算法,与此同时提升Java课程的教学效果。
参考文献:
[1] 尚荣华, 李阳阳, 焦李成,等. 智能计算导论课程建设研究[J]. 计算机教育, 2011(15):52-54.
[2] 譚营, 郑少秋. 烟花算法研究进展[J]. 智能系统学报, 2014(5):515-528.
[3] 智慧来, 智东杰. Java教学与数据结构教学的衔接与融合之我见[J]. 计算机教育, 2012(14):81-83.
[4] 杨维, 李歧强. 粒子群优化算法综述[J]. 中国工程科学, 2004,6(5):87-94.
【通联编辑:王力】