王晓亮 吴春梅
(广西科技师范学院 广西来宾 546100)
Android操作系统是由谷歌公司开发的一个开源的,基于Linux系统的,移动设备操作系统。截至2019年9月,在手机领域,Android已远远超越 iOS,占据手机端操作系统70% 左右的市场份额[1]。在未来,随着物联网技术的发展,Android操作系统也会在物联网领域大放异彩。现在本科院校开设的《Android应用开发》课程可以为社会培养大量的Android工程师人才。我校作为应用型本科院校,也开设了这门课程。为服务地方,培养应用型人才尽一份力。
《Android应用开发》课程是一门综合性很强的课程,通常在大三学年开设。这时学生已经具备一定的开发基础。在《Android应用开发》的教学过程中,除了Android基础编程的教学外,也还涉及很多网络编程、数据库开发应用等知识。在教学过程中涉及的计算机相关知识体系繁多,对于教学的要求很高。作为一门本科教育阶段的新增课程,其内容体系和教学模式尚处于探索阶段[2]。为了更好地培养应用型人才,在当前这个移动互联网时代,我们不能局限于传统教学模式,需要有教学上的创新,才能跟上时代的发展,为社会培养有用的人才。
《Android应用开发》课程是属于软件工程专业的课程,在教学过程中,理论学时占比为三分之二,实验教学占比为三分之一。在传统教学模式下,任课老师会根据教学大纲安排,针对各个知识点进行理论讲解,然后通过实验环节来巩固理论知识点。在这种传统模式下,我们发现,由于涉及的知识点非常多,学生通常对于单个的知识点能够掌握理解,但是面对复杂一些的项目,会比较茫然,难以入手,不能从工程角度来整合知识、解决问题。作为未来的软件开发工程师,这是能力上还存在缺陷,不能把所学知识很好地转化为应用。学生学习效果没有达到预期效果,作为教师我们需要反思,《Android应用开发》这门本科课程,我认为是传统教学模式中会存在以下几个问题:
(1)传统教学法往往是将一个任务分为多个阶段,分阶段完成任务,任务之间相对独立[3]。所以学生在学习的过程中比较难以理解各个知识点之间的关系,在完成综合性项目的时候会摸不着头脑。实验教学部分也是围绕各个阶段学习的知识点来设计的,学生很难全面了解所学内容,学习过程中会感到枯燥,部分学生会丧失学习兴趣。最终教学效果不理想。
(2)在5G时代,我们身处移动互联网中。Android项目开发的App更重要的是作为前端界面,在开发的过程中,我们还需要考虑与服务端、数据库等之间的关系。导致了《Android应用开发》课程涉及的知识点繁杂,使用的技术也抽象难学[4]。如果教学过程中没有考虑各个模块之间复杂的关系,仅仅从离线、独立的App的角度教学,没有综合考虑规划合理的教学方案。这样将极大地限制学生的发挥空间,跟不上时代脚步。
(3)本科阶段的《Android应用开发》课程是一门实践性很强的课程[5],需要学生通过编写大量代码的来作为日常练习。通过大量编写程序才能够达到练习编程技能的效果。对于老师来说,我们要检验学生的学习效果,传统方式就是布置作业,然后学生提交作业或者实验报告等。这种方式学生很容易通过复制粘贴的方式来应付任务,对于老师来说批改作业工作量也很大,不利于实时跟踪学生学习状态。特别是从2020年新冠疫情开始,网课开始逐渐流行,老师对于学生学习状态的跟踪更加困难。
综上所述,《Android应用开发》课程使用传统教学和考核方式的话,会导致学生实践与理论割裂,无法提起学习兴趣,学习效果不好。而且缺少软件工程项目开发的综合素质,不能很好应用所学内容。老师也不能很好监控学生学习状态,教学效果不是很理想。
通过在教学过程中的不断总结,以及和企业深入交流过程中,我们总结了一套以成果为导向的项目教学模式。具体内容为以下几点:
(1)基于项目综合考虑设计教学大纲
新的教学模式中,教学大纲强调以成果为导向,设计综合性的实验项目来帮助学生学习课程内容。设计的实验项目通常基于实际的成熟的项目,通过反向设计,逐步把项目分解成为考核要求和知识点,详见图1。这样在教学过程中,不仅要讲解项目中各个模块涉及到知识点,还要让学生能够理解各个模块在项目中发挥的作用,理解整个项目架构设计的目的和意义。在教学过程中也不应局限于教材内容,尝试在教学过程中,把知识点放在实际的、成熟的项目中去讲解,积极组织学生课后讨论。这样基于实际项目的学习,能够更好地帮助学生把学习到的知识点和理解记忆的内容转化为具体的项目成果。同时,引导学生在不断实践过程中,培养项目思维,理解软件项目组织架构,理解各个模块的原理和方法。
图1 项目架构和课程体系之间的关系
(2)增加实践教学环节,加强与其他课程的联系
为了提升学生学习兴趣,增加学生实践能力。在教学过程中,我们要以学生为中心,要让每个学生都要能发挥自己的特点,做出自己的项目作品。这就要求课程要更加重视实践,在教学过程中实践和理论要紧密结合起来。而且《Android应用开发》本身就是一门实践性很强的课程,更加需要通过增加实践教学环节来培养学生。
通过不断尝试,我们认为课程可以直接安排在计算机机房上课,增加的实践教学环节可以尝试在每节理论课后都留下几分钟的时间,给学生自己动手尝试。让学生不是单纯的对知识点进行理解记忆,而是在理解记忆知识点后可以马上通过动手实践加深印象。因此这些更多的实践教学环节,可以让学生将理论与实践相结合的程度更深。
《Android应用开发》课程,我们设计为项目式的教学。而项目教学的关键是要给出明确的项目要求,进而确立项目架构,强调项目中各个模块之间的互动,制定合理的教学策略。这门课程本身就需要先熟练使用java语言,培养的目标是让学生能够具备开发互联网App应用项目的基本能力,所以还需要加强与后台服务端开发、数据库开发等课程的联系,可以和其他课程授课老师进行沟通,融合这些课程的课后作业,要求学生能够给出一套融合解决方案,来完成作业。从而达到教学目标。
为了不断提升教学效果,我们要进行课堂教学行为分析,让老师更了解学生,从而因材施教。课堂教学行为分析有助于教师发现教学中存在的问题,并促进教学反思和教师专业发展[6]。现在,我们在智慧课堂环境下,教师可以利用信息技术开展教学。这是教师信息技术应用能力的外化表现。具体在这门课程,我们选择使用了Gitee这款国产代码托管服务。Gitee在国内使用相对于GitHub来说更加稳定,高效,虽然开源软件不如GitHub多,但是对于构建智慧课堂来说,我们能够用Gitee实现代码的托管、项目的管理、团队协作开发,已经完全能够满足使用了。
为了提升教学效果,让理论和实践能够相互结合。在尝试使用Gitee实现迭代式项目驱动教学后,我们发现以下好处:(1)可以构建小粒度教学课堂,让理论与实践联系更加紧密。(2)学生能够更好地将课堂未完成的练习放到课外继续,实现无缝链接。(3)老师可以通过网络随时监控学生项目进度。(4)让学生自主的学习。
根据学生注意力集中曲线,理论学习的时间最好控制在13 分钟以内,以减少注意力失焦现象的发生[7]。Gitee实现迭代式项目驱动教学过程中,可以从理论教学中更加频繁地切换到实践教学之中,这样频繁切换可以使得一次课堂教学的覆盖更多的知识点。而《Android应用开发》这门课程的特点,就是知识点特别多,通过这个教学过程理论与实际能很好结合,使得各个知识点更易掌握。
使用 Gitee 构建的《Android应用开发》小粒度课堂中,我们基于项目综合考虑构建了相应的理论案例库和实践案例库。具体的案例库分为2个部分,(1)理论知识点案例库;(2)基于项目构建迭代式实践项目库;
《Android应用开发》课程教学我们选用的是在线聊天App开发项目。依据项目需要的知识点的能力要求,设计对应的理论教学环节的案例库。教师在理论教学环节授课过程中,利用设计好的案例库讲解项目开发过程中涉及的知识点,接着学生马上可以根据案例库模仿验证。验证完成后上传Gitee,作为整个课程项目的一个小模块,方便以后调用,和老师检查完成情况。
在讲解案例库的过程中,需要对案例库的知识点进一步细化。根据案例库代码顺序再细分成更小的版本,不断迭代。以编写聊天界面为例,细分迭代项目库的构建设计见表1。根据App的开发步骤,将页面内容开发项目细分为6个迭代步骤。
表1 细分迭代项目库
各个迭代步骤都能对应课程知识点,每完成一个迭代步骤学生都能上传Gitee,做到理论实践相结合。
通常《Android应用开发》课程考核分为平时分和考核分数,重点还是在期末那一次的分数考核,这样以一次考核决定成绩的方式存在弊端,不能很好监控学生学习状态,督促学生学习,需要建立一个新的课程评价体系了。
我们以项目为导向建立新的全过程课程评价体系。在这个课程评价体系中需要跟高效的师生协同教学,通常由老师讲解完案例的每个迭代步骤后都发布对应实验任务项目,让学生紧跟教学进行实验,完成后提交到Gitee中。这样可以记录学生提交的各个迭代步骤的作业,用来记录学生完成项目的全过程。老师也可以通过学生上传到Gitee的项目案例,分析提交的案例代码,在这个作业项目从无到有的完整的过程中,老师可以通过Gitee实时查看学生编程步骤,判断学生项目完成情况、完成时间和完成质量。还能够通过分析学生作业完成时间,减少作业项目的抄袭现象。最后通过综合权值来计算出最终评价。
在课后的项目扩展作业中,也能够充分利用Gitee项目分享的便捷性,可以为课后编程实践提供参考,实现课内编程与课外编程无缝衔接,实现编程思路的无间断,达到培养学生良好编程习惯和学习知识技能的目的。
作为应用型高校,在课程建设的过程中,我们始终以学生为中心,通过加强校企合作,不断改进课程体系,研究项目化教学在《Android应用开发》课程中的应用,通过多种信息化工具构建智慧课堂,实现多元化考核,提高学生工程实践的能力。后续我们也将继续努力,不断完善和探索教学内容,为社会培养更多应用型人才。