向 哲
(上海电机学院 电子信息学院,上海 201306)
随着手机互联网的迅猛发展,Android手机已成为全球最受欢迎也是销量最大的手机类别,基于Android操作系统而开发的APP应用在最近几年也进入了全面的爆发式增长阶段。Android软件开发工程师供不应求。而作为培养人才的高校,虽然也相应地开展诸如“手机操作系统”、“Android手机移动编程”等课程,但受制于课程设置、教学环境等因素,效果往往不佳,学生并没有掌握Android开发的一些基本技巧。现将缺点归结如下。
在高等院校中,由于教学环境因素,教学任务指标等因素,Android相关课程往往采用传统的教学模式:由教师在课堂上讲授理论知识,给学生留课后作业加深印象,期末进行卷面考试,受限于上机环境,实践课程大致只是理论课程的1/3甚至更少。学生并不能真正掌握Android编程的精髓和乐趣。
由于学校在招收教师时,学历门槛高,导致大部分教师都是无实际编程项目经验的硕士、博士研究生在讲课。而受到传统课堂教学影响的硕、博士习惯于采用版书和多媒体PPT组织教学,以自己为中心,学生不是在接收知识而是在被灌输知识,此外,学生的学习意愿也被轻视,最终导致课堂教学变成了PPT“念书课”。
“Android手机移动编程”课程需要配置大量的课程群予以辅助教学,比如:在学习Android开发之前,学生需要掌握基本的Java知识,理解面向对象程序设计的原理,掌握基本的数据库方面的知识,掌握GUI和监听器方面的知识,掌握XML和JSON等数据格式。而目前高校的课程设置往往单一,且不连贯,导致学生在接触Android时往往对很多概念非常陌生。
某些学校开设了与“Android手机移动编程”相关的课程群,包括基础的Java,网络编程技术,数据库技术,数据库原理等等,但由于课程安排先后的问题,学生在学习Android课程时,很多的Java知识和数据库知识已经遗忘了,或者很多网络编程技术和设计模式还没有学到,因此很难领会Android课程中的难点和要点。
“Android手机移动编程”是一项实践性很强的课程,光是课堂上的内容无法让学生真正领会“Android手机移动编程”的精髓。同时,一些编程方面的经验,比如:对IDE的使用,对业务逻辑的抽象能力,都需要在实践中解决,这些都是在课堂上学不到的知识。而当前的情况是高校往往只是申请一些科创项目,选取优秀的学生参加,并没有让整个课程组内的学生一同参与,造成了学生之间知识差距的加大。
“Android手机移动编程”是一门偏重于实践的,需要大量先修课程的,培养计算机软件工程师的课程。由于其偏向实践,需要一定项目经验和开发经验。由于其需要配置大量先修课程,需要经常性回归之前的Java相关知识。由于培养的是计算机软件工程师,而软件工程师强调的是自我驱动,因此也需要培养学生的学习热情。现针对上述3方面内容展开教学改革研究的探讨。
在授课过程中,可将整门课程归纳为一个项目,围绕此项目制作几个典型专题,由专题展开实践,锻炼学生的动手能力,在编写代码的过程中,通过一些代码实现的讲解,插入理论教学,讲授Java和Android的一些抽象概念,真正达到从干中学的目的。这样既锻炼了学生的动手能力,培养了学生的抽象思维和逻辑思维能力,更为关键的是,自己动手和思考获得的知识相较于“灌输”得来的知识能被有效记住。笔者在教授“手机操作系统”时,为学生制定了了一个简单的聊天软件APP项目,其中包括登陆专题(Intent跳转),注册专题(对话框),对话专题(菜单、列表),界面专题(各种布局),数据存储专题等,依据该项目进行授课。
“Android手机移动编程”由于偏重于实践,因此特别适合体验式的教学模式。在学校实验室资源紧张之时,鼓励学生在理论课上带电脑进课堂,几个学生合成一个学习小组,一起动手实践。教师在课上围绕专题内容,一步一步地编写程序,让学生吃透,再借助专题内容加深学生的理论理解。借助框架更生动形象让学生理解,如图1所示。
图1 专题内容框架
高校一直没有摆脱笔试考试为主这一考核模式。而课程成绩直接影响了学生的学习模式和方法,如果考核只是笔试,这对专心学一门技术的学生会很不公平。因此笔者认为应采用笔试+课程实验对学科成绩进行考核。课程实验即在期末最后两次实验课制定8~10个基于Android的小项目,由学生6个人左右一组一共同完成,视完成效果和各人贡献给予评分,结课后学生再撰写课程实验报告。
选择班上能力强也善于钻研的学生,开展班与班之间的合作,创造条件让学生们制作小程序,发布APP等。依托学校层面与企业开展合作,积极开展实习置换学分的校企合作任务。引导和鼓励学生参加学校、国家组织的各项编程竞赛,让学生在实战层面加强自身的编程能力。
本研究提出的“Android手机移动编程”课程群的教学研究方法,采用体验式教学模式,为整门课程制定了一个简单项目,围绕项目设置若干个与Android理论知识结合较紧的专题;在理论课上,鼓励学生带电脑学习,与学生一步一步完成编程,与此同时穿插讲解理论课程;在期末考试采用笔试+课程实验的方式予以考核。最终把Android这门实践性质较强的课程依据项目经验结合理论知识教授给学生,在培养了学生动手能力的同时,还锻炼了逻辑思维和抽象思维的能力。