0 引 言
随着计算机技术、互联网技术和人工智能技术的快速发展,大学计算机基础教学在人才培养中发挥着越来越突出的作用。美国卡内基·梅隆大学周以真(Jeannette M. Wing)教授于2006年提出了计算思维概念[1],她认为,计算思维是运用计算机科学的基础概念进行问题求解、系统设计以及人类行为理解等涵盖计算机科学之广度的一系列思维活动。教育部高等学校大学计算机课程教学指导委员会(以下简称教指委)于2010年7月发表了联合声明[2],正式提出:要旗帜鲜明地把计算思维能力的培养作为计算机基础教学的核心任务,加强课程体系和教学内容的研究,要让学生像计算机科学家那样去思维。
计算思维为计算机基础教学提出了新的机遇和挑战,有了计算思维的课程指导思想后,很多教育专家开始研究计算思维的落地问题[3-5],专家们普遍认为:计算思维的落地就是如何在计算机教学内容与教学方法上提高学生用计算机解决实际问题的能力,即问题的求解、系统设计以及人类行为理解等[6]。基于此,構建适合引导和驱动计算机教学的项目和寻找更能激发学生兴趣、积极性的案例成为我们必须面对的问题。
1 计算机博弈项目是计算思维培养的重要载体
在2016世界人工智能科学诞生60周年之际,谷歌公司的AlphaGO围棋软件与世界围棋冠军李世石上演了“世纪人机大战”。2017年伊始,Master围棋网测又取得了60场全胜的战绩,随后,卡内基·梅隆大学的Libratus在德州扑克比赛中轮流击败了4名顶尖人类高手,人工智能再次引发了世界范围内的研究与开发热潮。目前很多学者认为:人类社会正在从“互联网+”向更高阶的“人工智能+”跃迁,智能科学与技术已经成为促进所有学科发展的重要因素,计算机博弈是人工智能领域的重要研究方向[7]。
计算机博弈项目涉及的方法主要包括:博弈问题的提出、棋盘的数据描述、棋面的评估模型、搜索算法的选择、算法的实现与优化、人机交互处理等方面,这些内容刚好与计算思维的思想相一致,非常适合培养学生的计算思维能力。
一段时间以来,学生网游上瘾困惑着家长和教育工作者,以何种方式引导青年学生远离网游以及网游的魅力一直是不解之谜。而多个高校的实践证明,计算机博弈项目能迎合青年学生的愉悦、冒险、好奇和高对抗需求,让他们在快乐中分析、编程、斗智,既长知识,也长能力,既培养了计算机实践与创新能力,也培养了计算思维、科研思维和团队合作精神。
学会将人的思维过程用计算机来实现,学会处理相关的问题,学会做好最优决策,这对于所有学生来说都是有助益的。计算机博弈项目是培养学生实践与创新能力的应用型项目,更是培养大学生计算思维的重要载体。
2 新课程体系与课程内容改革
现有的计算机基础课程体系没有充分考虑计算思维和创新思维能力的培养,也没有突出宽、专、融的教学特点,并且课程内容陈旧。2015年教指委推出了新版的《大学计算机基础课程教学基本要求》(以下简称基本要求)[8],指出了新的历史时期计算思维能力的培养将成为大学计算机基础教学的新常态,对课程体系、教学目标和内容进行了全面阐述。
依据基本要求和部分学校的改革实践[9-10],提出了适合沈阳航空航天大学应用型人才培养的宽、专、融相结合的大学计算机基础课程新体系(见表1)。新的课程体系以计算思维为主线,以培养学生的计算思维意识、计算思维方法和计算思维能力为目标,分为3个层次,每个层次设置不同的课程。随着课程体系的重新构建,各类课程的教学内容也重新进行了调整,例如:在第1层次,减少了Office方面的内容,增加了动手实验和Python内容;在第2层次,取消了VF内容,增加了C#内容;在第3层次增加了基于计算机博弈的科技创新平台的内容。
2.1 大学计算机基础课程内容改革
在大学计算机基础课程中,主要设置了4个模块:①计算机系统、网络与操作系统;②信息编码与信息处理技术;③数据库基础;④计算思维、算法与程序设计初步。在第4部分中,加入了排序算法、黎曼积分、机器博弈、旅行商、哥尼斯堡七桥等常用问题的算法。还特别增加了Python语言部分[11],通过求解三角形面积,引出了顺序、选择和循环结构的基本用法;通过求解π的值,引出了蒙特卡罗方法和公式方法;通过蟒蛇的绘制,引出了Turtle库的使用方法。通过以上内容的学习,学生可以对程序设计的基础知识和利用计算思维解决问题的方法有一个初步的了解,初步培养学生程序设计的基本能力和计算思维意识。
以全面开放的形式设置了3个专项实验:计算机拆装、操作系统安装和计算机组网,通过学生亲自动手实验,提高学生对计算机硬件的认知能力和计算机维护能力。
2.2 计算机程序设计课程内容改革
在计算机程序设计课程中,本着为专业服务、与时俱进的思想,将课程设置成3个模块:C#语言主要面向航空类专业和创新实验班学生;VB语言主要面向文管类和安全类专业学生;C语言主要面向电子、自动化、材料、机械类专业学生。在开课过程中允许学生跨专业选课,学生可以选择更适合自己的语言或多种语言同时学习。
为了突出实践能力的培养,课程内容中增加了8个实验学时,专门用于综合性程序设计实验,该实验由3~4人组成的小组共同完成。在期初的时候进行动员,在期中的时候布置实验题目,在期末的时候进行答辩验收。通过综合实验,学生初步具备了利用所学知识解决实际问题的能力,培养了学生计算思维方法和团队协作精神。
2.3 将计算机博弈案例与教学内容深度融合
为了调动学生的学习积极性,将学生喜欢的计算机博弈项目作为案例融入教学中[12-13],使学生在兴趣与主动学习中领悟计算思维。
在大学计算机基础课程中,讲授了计算机博弈的发展与竞赛概况、计算机博弈的空间复杂度与搜索复杂度、蒙特卡罗方法等。
在计算机程序设计课程中,以具体项目的形式为学生讲授了计算机博弈的评估方法、搜索算法、棋盘的数据表示与可视化制作等内容。
在计算机综合训练课程中,我们设计了与计算机博弈问题相关的课设题目,例如:爱恩斯坦棋的人人对弈平台设计、幻影围棋的开局设计、局面评估的建模方法等。通过博弈案例建模和典型算法设计,帮助学生掌握使用计算机技术解决博弈问题的途径和基本方法,为学生进一步开展计算机博弈科技活动打下坚实基础。
3 新形态化的教材建设
团队人员以《VB程序设计教程》为切入点,进行了新版教材的建设。教材的主要特点是新形态、立体化、数字化和案例式。除了纸质版教材,还在网络平台上发布了数字化教学资源,主要包括教学课件、案例素材、拓展案例、微视频、实验素材、参考资料等,这些资源非常有利于学生自主学习、协作学习和探究性学习。
微视频资源是针对重要知识点建设的,每个微视频大约3~5min,微视频的二维码印制在教材的相应章节上,学生可以通过手机扫描访问,实现了基于移动互联网的学习方式。微视频特别适合学生利用碎片化时间进行辅助式学习。
教材中的案例遵循5结合原则:①与数学知识相结合。例如:积分计算、矩阵运算、函数曲线等,都是学生熟悉的问题。②与趣味性题目相结合。例如:抽奖活动、分糖果游戏、开心农场等,都是学生喜欢的小项目。③与实际应用相结合。例如:高考录取、学生绩点计算、打气筒模拟、课堂点名等,都是学生经常面对的实际问题。④与专业知识相结合。例如:曲柄滑块机构,这是机械类专业学生应掌握的典型机构。⑤与計算机博弈知识相结合。例如:博弈搜索算法、棋盘的可视化设计等。通过有兴趣的教学案例引发学生深入学习与研究的积极性,也体现了寓教于乐的教学方式。
4 开展计算机博弈科技活动
沈阳航空航天大学从2011年引入计算机博弈项目以来,团队人员依托博弈项目,深入开展了寓教于乐、寓教于研、以研促教、以赛促学的创新人才培养模式[14]。
1)开展博弈科技研究和“大创项目”工作。
基于计算机博弈项目,很多老师开展了科技研究,并将科研成果应用于教学中。建立了博弈科研梯队,教师既能对博弈活动起到组织、指导和护航作用,又能在计算机博弈的科研中勇攀高峰,形成学科制高点,为科技攻关和实际应用创造条件。开展了计算机博弈科技社团工作,社团成员在老师的指导下,既可以参加科研课题,也可以组队申报大学生创新创业训练项目(简称大创项目)。学生与老师合作开展科技研究、撰写论文,形成了良好的学习与科研氛围。
2)开展计算机博弈竞赛工作。
计算机博弈项目具有喜闻乐见、挑战无穷的特点,深受学生喜欢。学校鼓励学生组成不断吐故纳新的代表队,支持学生参加各类计算机博弈竞赛(校级、省级、国家级和国际级)。到目前为止,共组织了6届校级计算机博弈比赛,平均每年参加人数达200余人。校赛选拔后组织集训,备战全国比赛,共组织学生参加了6届全国计算机博弈大赛和1次国际机器博弈大赛,营建了良好的校园计算机创新文化氛围。
5 取得的成效
1)学生课程成绩提升。
以计算思维为主线的教学改革方案使学生受益颇多,每年有4 000名学生学习计算机课程,学生课程成绩提高较大,例如:计算机程序设计课程平均成绩提高15%,大学计算机基础课程平均成绩提高10%。在期末对学生进行问卷调查时,大部分学生表示学习收益较大,对计算机技术的理解和利用计算机技术解决问题的能力都有较大提升。
2)学生竞赛成绩优异。
随着研发能力的不断增强,学生参加的计算机博弈竞赛项目也越来越多,现已达到12项,包括六子棋、点格棋、苏拉卡尔塔棋、亚马逊棋、幻影围棋、不围棋、爱恩斯坦棋、军棋、国际跳棋、海克斯棋、斗地主、桥牌。近几年累计获省级以上奖项100余项,累计获冠亚季军20项,其中幻影围棋、亚马逊棋、军棋、六子棋项目都曾获得过全国冠军奖项,总体竞赛成绩位居全国前几名,既提高了大学生的计算机创新能力,也促进了我国计算机博弈事业的发展,在国内高校中产生了较好影响。
3)学生科技成绩突出。
基于计算机博弈项目,学生与老师合作在CCDC国际会议的机器博弈(Computer Game)专题上已发表论文25篇,表2是发表的部分学术论文。学生在老师的指导下申报了大创项目30多项,表3是部分大创项目。
6 结 语
计算思维的理论研究在我国已经走过了6年多,现在应该是全面落地的时候。我们本着与时俱进、为专业服务的指导思想,调整了各门课程的教学内容,引入了Python、C#等程序设计语言,将学生喜欢的计算机博弈项目作为教学案例与课程内容深度融合,实现了竞赛与教学相结合的教学新模式。计算机博弈项目具有喜闻乐见、挑战无穷的特点,特别能引发青年学生的好奇心与研究热情,广泛开展基于计算机博弈项目的科技与竞赛活动,较好地培养了学生的创新精神和科研思维。计算机博弈项目是非常好的培养学生计算思维的重要载体。笔者希望本文能对高校的计算机教学提供一种参考,更希望计算机博弈能在更多的高校生根、发芽、开花和结果。
参考文献:
[1] Wing J M. Computational thinking[J]. Communications of the ACM, 2006, 49(3): 33-35.
[2] 何钦铭, 陆汉权, 冯博琴. 计算机基础教学的核心任务是计算思维能力的培养:“九校联盟(C9)计算机基础教学发展战略联合声明”解读[J]. 中国大学教学, 2010(9): 5-9.
[3] 陈国良, 董荣胜. 计算思维与大学计算机基础教育[J]. 中国大学教学, 2011(1): 7-11.
[4] 李廉. 以计算思维培养为导向深化大学计算机课程改革[J]. 中国大学教学, 2013(4): 7-11.
[5] 冯博琴. 对于计算思维能力培养“落地”问题的探讨[J].中国大学教学, 2012(9): 6-9.
[6] 龚沛曾, 杨志强. 大学计算机基础教学中的计算思维培养[J]. 中国大学教学, 2012(5): 51-54.
[7] 王骄, 徐心和. 计算机博弈: 人工智能的前沿领域: 全国大学生计算机博弈大赛[J]. 计算机教育, 2012(7): 14-18.
[8] 教育部高等学校大学计算机课程教学指导委员会.大学计算机基础课程教学基本要求[M]. 北京: 高等教育出版社, 2016.
[9] 王移芝, 金一, 周围. 基于“计算思维”能力培养的教学改革探索与实践[J]. 中国大学教学, 2014(3): 49-53.
[10] 刘光蓉. 融入计算思维的 C 语言实验教学设计[J]. 实验室研究与探索, 2015, 34(10): 81-83.
[11] 嵩天, 黄天羽, 礼欣. Python 语言: 程序设计课程教学改革的理想选择[J]. 中国大学教学, 2016(2): 42-47.
[12] 王亚杰, 王晓岩, 邱虹坤, 等. 基于爱恩斯坦棋的程序设计课程教学案例设计[J]. 计算机教育, 2012(18): 75-77.
[13] 李飞, 王亚杰, 尹航, 等. 基于幻影围棋的C语言课程教学案例设计[J]. 计算机教育, 2016(10): 117-119.
[14] 王亚杰, 邱虹坤, 尹航, 等. 计算机博弈竞赛与创新人才培养模式改革[J]. 实验技术与管理, 2016, 33(10): 10-14.
(见习编辑:景贵英)