随着浙江省深化普通高中课程改革的进行,为学生提供有兴趣、有特色的选修课,成为每位教师所必须考虑的。在开发选修课之前,我首先会问自己,选修课与必修课到底有什么不一样。我认为,必修课是基础的,是面向全体学生的。因此当这门课程的基础内容学完时,全体学生还是基本能够接受的。但当深入课程内容的时候,许多学生就比较吃力了,或跟不上,或不感兴趣,甚至有的学生彻底放弃了。选修课正好能弥补这一点,在必修课的基础上,对有兴趣继续深入学习的学生,选修课提供深入的、有创想的学习内容,让学生在更高一层次进行学习。
我在策划选修课时,初步设想开设计算机程序类的选修课。随着各种移动终端的普及,基于智能移动设备的程序开发应该比计算机端的开发更能引起学生的兴趣,因此我决定开设基于智能移动设备的程序开发课。在开发平台选择上,出于让学生作品更容易发布,同时为了更好地对机器人进行控制的考虑,我们选择了基于安卓平台的移动程序开发。由于中学生没有Java编程基础,完成安卓程序教学是很困难的。为了让学生切实感受到编写程序的实用价值,并能很好地引起学生的学习兴趣,我选择了抛弃复杂程序代码,而使用程序块的方法来完成安卓设备程序开发App Inventor项目(谷歌实验室创建的一个完全基于云计算服务器在线开发的Android程序开发环境,目前它由谷歌公司移交到麻省理工大学进行维护)。通过该项目的学习,学生可以很快地从中体验编程思想,如事件驱动、变量定义及应用、程序控制、数据库设计,同时能认识到以用户需求为中心进行设计的重要性。于是,我开设了一门名为《安卓创意程序设计》的选修课。
事实上,在一个学年的《安卓创意程序设计》选修课中,学生学习热情非常高涨,除了体验编程思想和提高计算思维能力外,还能帮助他们提升关键的专业技能,包括快速适应新环境、有效沟通、寻找问题的解决方案以及合作能力。他们已经开始利用所学知识去编写具有实用价值的APP。其中,王瀚庆同学针对本市刚刚投入的城市公众自行车平台这一新生事物,策划为市民提供公共自行车服务的APP。但是,他感觉仅靠个人很难完成该项目。于是我重点帮他组织团队,指导项目分析,并对项目中的数据采集、界面设计、程序模块设计(服务点定位、路线设计、计时、里程计算)等任务进行合理分配。这个团队的五名学生连续两周利用课外活动时间,泡在机房进行相关开发,遇到困难大家一起讨论推演(如图1)。而我则努力为学生营造一种个性化和人文化的开发环境,如在教室后排准备咖啡、面包和资料工具柜,陪同学生去自行车出租公司实地调查进行软件需求分析(如图2)。
参加选修课的学生们沉浸在这种从学校到企业的角色转换中,努力完成这一项目挑战,用心体会在科技公司才有的这种文化。学生在产品设计的讨论过程中,不断有新想法,如“公共自行车租车点地图、租车点导航是必须的,再加个计费功能吧”、“如果能得到租车点的API接口,就能获取各个租车点的空余车位和剩余车辆等数据,这样软件的功能就更强大了”。在团队的交流过程中,团队不断迸发出的创意令学生们兴奋不已,这是传统灌输式教育所没有的情景。作为指导老师,真的为这些学生高兴。
学生的协作意识也在项目开发过程中被激发出来了。宋天笠同学负责各个租车点的经纬度采集和软件测试,王瀚庆同学主要负责软件界面设计和推广工作;葛子昂同学则和金宇桐同学承担了软件的程序开发工作。他们分工明确,但更重要的是相互协作来完成整个项目。如图1所示的团队讨论情景,在整个开发过程中是很常见的。学生们有时顾不上吃饭,就在网络教室中就着泡面一起攻克难题,如图3所示。
目前,这个项目已完成并正式发布了“金华公共自行车APP”1.0版。软件除了能通过安卓手机的实时定位功能帮助用户寻找距离最近的自行车服务点外,还能够规划路线实现导航,计算出租车所需的时间和费用。在接下来的版本中,将会增加服务点自行车数量变化的实时查询,以及使用自行车后减少的排放量计算等用户体验。用户还可以把自己使用自行车后为社会减少的碳排放量发到微博、微信等社交网络上,与朋友互动,倡导绿色出行理念。通过扫一扫图4所示的二维码,可以体验学生开发的“金华公共自行车APP”。图5则是“金华公共自行车APP”开发界面。
选修课学习的模式还可以有很多。我们此前的程序设计课受环境限制,学生缺少动手创作与动脑思考相结合的情境式学习过程。为了改变这种状况,在第二学期,我尝试让学生做一些动手的实验,如将机器人各类传感器和移动智能设备上的蓝牙、gps、重力感应、语音传感器相结合,创设一些实用控制场景。从通过手机按钮、划拨、翻转甚至语音等多种方式控制乐高机器人行进(如图6),到配合Arduino电路板对机器人进行改装(如图7),学生们都在快乐探究的学习气氛中体验着,他们在提高计算思维和程序编写能力的同时,经历了一次理论与实际操作体验相结合的尝试之旅。
考虑到很多学校想开发该项目,可能碰到这样一些实际困难,如网络环境不顺畅,无法很顺畅地连到国外的App Inventor编译服务器;教师缺少一个对学生作品进行过程性评价的平台;学生创作出的作品可能比较稚嫩,无法得到在商业化的安卓市场展示和发布的机会。我们正着手创建一个面向中学生的开发和应用网络平台(http://app.ourschool.cn)。这样,当国外的App Inventor编译服务器繁忙时,学生们的移动程序开发工作也可以在该平台上继续进行,教师可以在该平台上对学生作品进行指导和评价,有一些创意作品也可以在该平台上对外发布,为学生创意应用提供一个展示和交流的场所。如果我们的学生在中学阶段就能经历一次从产品设计、编程实施到产品测试和应用的软件开发流程,相信我们国家在出现更多的技术英才的同时,还会出现更多懂技术的经理人和用户,使得技术和创意能够快速结合,大大降低软件开发的沟通成本,出现更多的“时代创意”和“时代软件”。
(作者单位:浙江师范大学附属中学)