APP下载

基于计算思维程序设计的军事案例研究

2016-11-10王森华王伟嘉李向忠汪霞巨亚荣

计算机教育 2016年7期
关键词:计算思维程序设计

王森华 王伟嘉 李向忠 汪霞 巨亚荣

摘要:针对军校学员利用计算机解决实际问题能力不足的现状,阐述如何将计算思维引入军事案例设计中,并根据程序设计中的抽象模型解决复杂现实问题,将计算机程序设计课程引入到军事案例分析中。围绕军事案例的特性、案例与计算思维算法的结合度、难易度等原则精选案例素材,在教学分析的基础上明确军事案例设计的思路和重点,并举例说明案例设计的相关环节。

关键词:计算思维;程序设计;军事案例

0.引言

计算思维是运用计算机科学的基本概念去求解问题、设计系统和理解人类的行为,对军校学员信息化应用能力提升有很大的帮助。然而,计算思维的形成需要经历计算活动知识积累、计算活动技能习得和经验迁移的过程,需要将理论与实践进行有效融合。通过对我院学员信息化应用能力调查发现,许多学员对计算机技术背后所蕴含的理论和思想缺乏相应了解:在解决专业问题时习惯沿用传统方法,不善于运用计算思维寻求解决问题的方法,导致在信息化应用方面的创新性不足。因此,如何培养学员具备创新解决问题的能力是值得我们认真研究的课题。此外,在实践教学中,我们发现,学员普遍欢迎“问题引导”和“任务驱动”等以案例引导为主的教学方法。经过深入思考和分析,我们拟将案例设计与计算思维结合起来,通过设计出学生喜欢的案例作品,引导学员融人计算活动当中,在知识的学习和应用过程中逐步激发学员的创新意识,培养学员形成综合的计算思维及信息化应用能力。

1.案例的定位及课程选择

计算机基础类课程属于通识教育的范畴,由于军校学员的军事特性,特别是当前向实战聚焦、向部队靠拢要求的需要,案例内容如果与学员的生活、兴趣以及未来的职业发展无关,那么显然实用价值不高。因此,将计算机基础类课程制作成军事案例将更具针对性,对吸引学员的兴趣、提高学员的技能都会有较好的效果。此外,并非所有的计算机课程或内容都适合制作成军事案例。军事案例与传统的教学案例相比更有故事感,因此对课程和内容的选择也是案例制作需要考虑的问题。通过对比分析,在大学计算机基础、计算机网络、多媒体设计、计算机程序设计等几门计算机基础课程中,计算机程序设计由于可抽象模型,能有针对性地解决复杂现实问题,具有理论与实践相结合的特性,是比较适合制作成军事案例的课程。有别于传统程序设计以语法为主的教学模式,程序设计军事案例将围绕计算思维活动,以算法为主来组织教学内容,将研讨式教学模式作为提高传统模式教学的新途径。

2.程序设计军事案例素材的收集和整理

首先,受大学生ACM程序比赛过程的启发,具有较强实践性和故事性的程序设计问题更容易得到学生的喜爱。学生通过设计蕴含计算思维的算法,在计算思维逻辑的引导下,逐步编写出程序、解决问题,他们在这一过程中所获得的成就感和技能提高的程度,是普通题目所无法比拟的,因此军事案例的趣味性和实用性是应优先考虑的。

其次,军事案例与计算思维算法的结合度也需要细致分析。当前,有一些案例属于编故事创造情境的情况。这种方法虽然可行,但是需要较高的技巧。如果所选案例故事逻辑性不强或者与拟讲授的算法内容联系比较牵强,会极大地削弱案例的吸引力,学员看后会感到莫名其妙、印象不深刻以及实用性不强等,学习热情会大大降低,因此军事案例与计算思维算法的相关性以及情境设置的合理性需要认真对比斟酌。

第三,军事案例及计算思维算法的难易度要适当。太容易的案例及算法设计既没有引导计算思维的价值,对编程技能的提高也没有帮助;过于复杂的案例和算法则容易让学员产生挫败感。因此,在攻坚克难的信心没有建立起来之前,军事案例和计算思维算法的编排一定要由浅入深、循序渐进,在潜移默化中逐步提升学员的计算思维和编程实践技能。

出于以上3条原则,我们从近百个军事案例的资源中精选了10个军事案例素材以及与之相结合的计算思维算法,分别是“韩信点兵”(枚举算法)、“敌兵布阵”(分治算法)、“应急救援任务中的油料保障点设置”(递推算法)、“穿越迷宫”(递归算法)、“骑士巡游”(回溯算法)、“某装甲团机动演练任务中的通信信息编码”(贪心算法)、“野外训练单兵负重预案”(动态规划算法)、“火炮射击命中率模拟”(模拟算法)及综合应用“后勤仓库物资配送路径优化”和“军用加油站铺设输油管线路线优化”,按由易到难、趣味与实用结合、基础向拓展延伸的思路组织整理案例素材,形成案例素材库,为军事案例的制作准备好相关材料。

3.基于计算思维的程序设计的军事案例研究

3.1教学分析

在制作程序设计的军事案例之前,要进行认真仔细的分析:该案例的目标是什么,集中解决的问题是什么,学员应当预先掌握哪些先验知识,采用何种表现方式表现等。对于一个完整的军事案例来说,算法原理、程序设计以及拓展应用是教学目标,学员应预先了解相关的自然科学及军事知识、常识及程序语法等先验知识,教员应采用可视化、图形化的表现方式。因此,按照计算思维的逻辑,教员应首先提供先验知识文字材料,使学员熟悉相关事件背景,再利用图片或视频增强情境融入效果,然后根据案例的演绎设置思考题,将算法原理和程序设计过程融入计算思维活动中,从思路、过程、延伸3个方面进行研讨,这样才能够易理解、步骤清晰、操作性强,从而使学员可迁移解决同类型问题。

3.2案例设计

为了达到更好的研讨效果,案例设计至关重要。程序设计的军事案例应当围绕教学目标来进行。根据军事案例教学分析的结果,将整个案例分为情境创设、思路及算法研究、过程分析和拓展延伸4个部分。情境创设部分进行主脚本设计、创设情境、设疑激趣,使学生始终处在兴趣之中,给学生提供更多的思维空间;思路及算法部分引入先验知识,提供可采用的相关计算思维算法及其原理,着力使学员了解案例背后所蕴含的思想和逻辑,做到心中有数,有的放矢;过程分析部分突出计算思维活动设计,动手、动口、动脑,着力于计算思维的培养,让学员在轻松愉悦的研讨气氛中学习;拓展延伸部分突出“新颖”,新背景、新参数、新规模、新思路,强化知识的转化过程,培养学生主动探索的精神。整个军事案例的设计应主线清晰,重点突出,逻辑性强,明了易懂。

4.程序设计军事案例设计实例框架

4.1情景创设

(播放救灾场景视频,附文字材料说明。)

2014年2月12日17时19分,新疆和田地区于田县发生7.3级地震,新疆和田武警第五支队根据上级指示,派出260名救援官兵于12日23时从新疆和田出发紧急赶赴事发地区。部队出发地距地震灾区约1 000公里。已知目前一辆沙漠车耗汽油为1升/公里,总载油能力为500公升。显然沙漠车装一次油是无法到达灾区的,因此必须设法在沿途建立若干个应急油料保障点,使沙漠车能顺利穿过高海拔山区,到达救灾地点。如果你是沙漠车驾驶员,试问怎样建立这些应急油料保障点?每一应急油料保障点对于单辆沙漠车来说至少应存储多少汽油,才能使沙漠车以消耗最少汽油的代价到达救灾地点?

4.2思路及算法

(描述相关先验知识及算法原理。)

这是一个抗震救灾油料应急保障情景假设案例。主要采用递推算法完成案例问题的求解。递推是利用问题本身所具有的递推关系求解问题的一种方法,基本思想是把一个复杂的庞大计算过程转化为简单过程的多次重复。递推方法有顺推法和倒推法。

{实施递推的步骤如下:

确定递推变量:……

建立递推关系:……

确定初始(边界)条件:……

对递推过程进行控制:……

本案例采用倒推法。}

4.3

过程分析与程序设计

(分析问题解决过程及进行算法程序设计。)

过程分析:{用倒推法来解决这个问题,从终点向起点倒推,逐一求出每个油料应急保障点的位置及存油量……

(1)为了消耗最少的汽油,最后一个保障点m=0应该离终点500公里……

(2)为了在保障点m=2处储1 000升汽油,沙漠车最少从保障点m=3处开三趟载满油的车到保障点m=2处……

(3)依次类推,为了在m=k处储on[k]=k*500升汽油,沙漠车最少从m=k+1处开k+1趟满载油至m=k处……

(4)最后,反推至m=n站到起点距离为1 000-dis[n]……}

程序设计:问题求解是需要设置多少保障点,每个站点多少油?由上述分析得递推公式:(从终点往起点推得)

{设dis[i]为第i个保障点到终点(i=O开始)的距离;

*oil[i]为第i个保障点的存储油量;

*递推:

*dis[1]=500;oil[1]=500;//距离终点第一个站点

*dis[2]=dis[1]+500/3;oil[2]=500*2;//距离终点第二个站点

*dis[3]=dis[2]+500/5;oill3]=500*3:

{……

*dis[k+1]=dis[k]+500/(2k-1);on[k+1]=500*(k-1);//距离终点第k+1个站点

*终点(起点):

*距前-保障点距离:1000-dis[n];储油:oil[n-1]+(1000-dis[n])*(2n-1)}

程序及演示结果:

{…………………………………………)

4.4拓展与延伸

(总结案例算法思路,提出新问题拓展应用。)

简要总结案例分析过程,提炼递推求解基本方法。

(1)递推求解的基本方法

{首先,确认:能否容易地得到简单情况的解?

然后,假设:规模为N-1的情况已经得到解决。

最后,重点分析:当规模扩大到N时,如何枚举出所有的情况……}

(2){如果沙漠车平均时速x千米/小时,限定救援到达时间为Y天内,采用该应急油料补给方法能否按时到达救灾地点……}

5.结语

军队信息化迫切需要具备良好计算思维能力的高素质人才,以军事案例为教学素材,采用问题引导、任务驱动及研讨教学等方式,可以更好地使学员在协作学习中提升计算思维和应用能力,培养实战化所需的信息技能。目前,可用于教学的计算机课程军事案例素材相对较少,仍需广大计算机专业教员做更深入的研究。此外,学院应当把教员的案例库建设与学员的案例自主学习纳入教学管理的整体规划中,这样军事案例教学才会为学院的教学发展注入新鲜活力与动力。

猜你喜欢

计算思维程序设计
基于OBE的Java程序设计个性化教学研究
基于Electron.js的风向玫瑰图绘制程序设计与实现
项目化教学在Python程序设计课程中的应用
C++程序设计课程教学改革研究
医学专业“Python程序设计”课程教学改革总结与思考
“C语言程序设计”课程混合教学探索
基于计算思维的多媒体技术及应用课程教学模式研究
基于计算思维的软件类研究生高级算法课程教学研究
程序设计课程中计算思维和应用能力培养问题研究
民族高校C语言程序设计课程教学改革的研究