孙小华
摘 要:在高职院校移动应用开发专业“高等数学”课程综合实践中加入相关知识进行教学探索。文章以移动应用开发中经常用到的碰撞检测为例,在“高等数学”课程综合实践中进行教学,可以提高高职院校移动应用开发人才的培养质量,为其今后的实习与工作打好相关的数学理论基础,提升移动应用开发专业学生的数学实践能力。
关键词:高等数学;课程综合实践;移动应用开发;碰撞检测
近年来,在“互联网+”战略“大众创业、万众创新”的推动下,我国移动应用市场的应用数量呈现爆发性增长。根据工信部的调查统计,截至2018年12月,我国市场中的移动应用累计数量达到449万款。移动互联网产业的高速发展产生了大量的移动互联网开发人才需求,据统计,2014年我国移动互联网行业应用开发人员需求量是200多万,但由于移动应用开发人才培养的滞后,实际从业人员不到70万人。为此,2015年教育部在《普通高等学校高等职业教育(专科)专业目录(2015年)》中新增加了移动应用开发专业(专业代码:610212)。国内已经有一些高职院校申请开设移动应用开发专业,有的院校已开设了软件开发专业(移动应用开发方向)。
目前,移动应用开发技术人才培养的任务主要由各類教育培训机构如达内科技、北大青鸟、华清远见等完成,学员没有经过体系化、延续化的培训,从业人员的素质与数量都远远落后于行业发展需求,无法满足社会需求。而且移动应用开发专业涉及的信息技术发展迅猛,知识更新很快,除了传统的技术之外,还涉及HTML5、云计算、传感器等方面的知识。在进行移动应用软件开发的过程中,开发人员经常需要用到许多数学知识,如坐标系变换、碰撞检测、数据排序等。高职院校软件开发专业(移动应用开发方向)虽然一般都开设了“高等数学”课程,但重点内容是微积分及其应用,没有涉及移动应用开发中实际需要用到的数学知识。因此,为了提高高职院校移动应用开发人才的培养质量,为他们今后的实习与工作打好相关的数学理论基础,亟需提升移动应用开发专业学生的数学实践能力,在高职院校移动应用开发专业“高等数学”课程综合实践中加入相关知识进行教学探索[1]。
1 学情分析
参加“高等数学”课程综合实践的学生为移动应用开发专业的大一学生,已初步掌握了“高等数学”和移动应用开发相关专业的基本理论知识(如Java语言等),初步具备了移动应用开发专业的基本专业技能,但缺乏综合实践和交叉应用的能力。
2 项目基本情况
在市场上所有移动应用中,游戏类应用规模处于领先。截至2018年12月月底,游戏类应用数量约138万款,数量规模排名第一。在游戏应用中,经常涉及利用圆或球的边界进行碰撞检测问题,所以在“高等数学”课程综合实践中尝试加入碰撞检测问题的求解。
课程综合实践要求学生利用实践期间讲授的碰撞检测知识,并结合移动应用开发专业的课程配置,根据综合实践提供的相关资料,编写二维平面碰撞检测的代码,并撰写一份专题应用报告,培养学生解决模型问题的思路和方法,形成“理论构建—数学建档—解决问题”的数学素质教育的教学模式。一方面,使学生具备运用较为严谨、有逻辑层次、较为精练准确的数学思维和语言分析问题、简化问题以及描述问题的数学化能力,另一方面,提高学生处理一般实际问题的应用能力与创新能力[2]。
3 项目流程
本项目由教师负责制定、编撰理论教学与应用实践内容。对参与项目的学生讲解碰撞检测的原理和基本方法,进行“高等数学”应用报告写作指导,将参与项目的学生分成小组,推荐参考资料,布置学生按组进行文献查阅、概要设计、详细设计、代码编写、测试等,全程跟踪指导各小组完成撰写实践应用报告。
碰撞游戏中的元素是否碰到一起,比如打飞机游戏,没躲避炮弹就算飞机被击中,移动应用要能检测出来,然后执行相应的处理程序。游戏里的碰撞检测分为2D和3D两种情况,在课程综合实践中,主要要求学生进行2D情况下的碰撞检测。
在移动应用程序中,碰撞检测主要有矩形判断、圆形判断、多矩形判断3种方式。在对碰撞检测的精度要求高的情况下,可以采用像素检测算法达到精确检测的目的,但采用像素检测算法计算量大,对手机的性能要求高[3]。
如图1所示,在矩形判断方式中,可以把游戏中敌我双方人物都当作矩形,来检测两个矩形是否相交。图1中把其中一个人物当作中间的矩形,以手机屏幕左上角为坐标原点O,以水平向右方向为x轴正方向,竖直向下方向为y轴正方向。此矩形的左上角与右下角的坐标分别为(x1,y1)和(x2,y2),如果此时把另外一个人物也当作矩形处理,设其左上角与右下角的坐标分别为(x1',y1')和(x2',y2'),那么,此时另一人物处在图中阴影部分的矩形所示位置时,两矩形不相交,即两人物不碰撞。图1阴影部分的矩形所示位置包含以下几种情况:
(1)阴影部分矩形全部在中间矩形左边,即x2' (2)阴影部分矩形全部在中间矩形右边,即x1'>x2。 (3)阴影部分矩形全部在中间矩形上边,即y2 (4)阴影部分矩形全部在中间矩形下边,即x1'>x2。 这时判断两个矩形是否相交,通过取反操作进行,因为相交==!(不相交),即: !(x2' 圆形判断比较简单,判断两个圆心距离d12是否大于两个圆的半径之和“r1+r2”即可。对多矩形判断,需要封装多个矩形来一一判断是否有碰撞。 在给学生讲解完碰撞检测的原理之后,学生需要针对3种碰撞检测方法生成相应的数学模型,并写出伪代码。然后采用Java编程语言编写简单的Demo软件。 4 教学反思 通过在移动应用开发专业开展“高等数学”课程创新创业综合实践,可以加强培养学生以下3方面的实际应用能力。 4.1 数学化能力 初步具备运用较为严谨且有逻辑层次的、较为精练准确的数学思维和语言分析问题、简化问题以及描述问题的能力。将专业知识及实际问题提炼成数学问题,结合相关的数学知识进行消化、理解。 4.2 处理实际问题的能力 初步具备运用适当的数学思想、方法和技巧建立数学模型来解决所遇到的一般实际问题的能力,初步具备查阅应用文献资料时对数学语言的辨识能力。一篇完整的应用报告是学生小组集体的成果,是问题数学化再到最优方案设计的过渡。 4.3 应用创新能力 在后续的专业学习和实习中具备初步运用数学知识的创造能力,科学论文写作时具备初步综合运用数学语言的能力。 [参考文献] [1]弗林特,科迪克.游戏中的数学与物理学[M].2版.周建娟,译.北京:清华大学出版社,2014. [2]吴亚峰,苏亚光,于复兴.Android游戏开发大全[M].3版.北京:人民邮电出版社,2015. [3]乔纳森.Android游戏编程入门经典[M].宋松,王小飞,译.北京:人民邮电出版社,2013.