高等职业院校软件开发类专业课程教学方法改革的创新与探索
来源:用户上传
作者:丁俊
摘要:随着软件开发技术与云计算、大数据、物联网及人工智能等新技术的深度融合,市场对软件开发技术专业人才的需求日趋旺盛。然而在人才的供给端,高等职业院校软件开发专业人才培养却存在诸多不良的现象和棘手的问题。论文以普遍反映教学难度大的高职软件技术专业为例,对高职软件技术专业学生的学习现状和成因进行了深入的剖析,对专业课程教学方法改革进行了有益的探索和尝试,提出了一系列的具体教学改革措施,希望能够激发软件技术专业学生的学习兴趣和内在学习动力,培养学生自主学习意识,提高学生的学习效率,改善软件技术专业的人才培养效果。
关键词:职业教育;软件开发;教学方法改革;自主学习
中图分类号:G712 文献标识码:A
文章编号:1009-3044(2019)27-0124-03
1引言
随着高考录取率的不断提高,再加上近年来自主招生的实行,高职生源的质量也在不断下降,越来越多的学生已经从曾经的满腔热情、求知若渴的心态转变为一时的心血来潮,进校后很快就进入了被动学习、敷衍了事,甚至厌学逃学的状态。正是因为当前高职学生主动学习意识的严重缺失,在高职教育活动中,除了传授必要的专业知识外,更重要的是激发学生的学习兴趣,增强学生自主学习的意识。只有学生具有了一定的学习兴趣和自主学习意识,接下来讨论用什么方法,设置什么教学内容,才有现实意义。否则再好的教学方法、再实用的专业知识,也只是一厢情愿,对牛弹琴。本文从高职软件专业学生的学习现状分析人手,深度剖析其背后的成因,在教师课堂教学层次,针对性地提出一些教学方法改革措施,并在实际教学中展开改革实践探索与尝试。2高职软件专业学生学习现状和成因分析
以多年的软件专业课程教学经历为基础,并多方面与其他软件专业教师及学生进行交流沟通,对当前高职学生学习软件开发专业课程的现状及存在的问题进行深度剖析,总结出当前高职院校软件开发专业学生的学习现状具有如下几方面的特点:
1)学习过程随着时间的推移难以为继。入学时学生们满腔热情,蜂拥而入,大多学生怀着对这个神秘的高科技行业的崇拜而来,同时又受到行业高額的薪资和优越的工作环境所诱惑,家长也极力支持学生选择该专业。然而在真正的专业学习过程中,大多学生又表现出严重的畏难情绪,无法继续坚持学习,最终彻底放弃,尤其随着时间的推移和课程难度的加深,这种状况表现的愈加明显。
2)主动学习意识欠缺。正是因为大部分学生都是奔着行业的薪资和工作环境而来,他们是因为外界原因而选择了该专业,大多数学生对专业的特性和难度并未作深入地了解,所以其主动学习意识不强,其学习效果可想而知。
3)学习方法欠缺。进入高职的学生大多都缺乏合适的学习方法,而软件开发课程在高职各专业中是难度较大的专业课程类别,如果缺乏合适的学习方法,要将抽象度高、逻辑思维强的软件专业课程学懂学透是极具挑战性的。
4)数学和英语知识匮乏。由于在程序编写过程中,需要大量的英语和数学知识,然而大多数高职学生这两方面支持都比较薄弱,这种状况直接导致上完第一门语言课之后,大部分原本满腔热情的学生对软件开发其他的专业课程都望而却步。
5)不肯动脑,缺乏逻辑思维能力和主动思考的能力。软件产品是人类思维的结晶,软件开发工作是一项高强度的脑力劳动,绝不是照搬照抄能够实现的,而当前高职学生普遍缺乏逻辑思维能力的现状,是在软件开发学习过程中一道难以逾越的鸿沟。
6)缺乏程序的排错纠错意识和能力。这主要体现在当程序出错时,大部分同学就束手无策,严重缺乏排错纠错的能力,错误排除不了,他们就失去了继续学习的信心和动力了。
3专业课程教学方法改革的创新与探索
众所周知,影响人类行为的因素有内因与外因两方面,内因来自兴趣和需求,外因来自引导和压力,其中内因起决定性因素,而外因只是起到加速或减缓的作用。因此,在软件技术专业课程教学过程中,论文从这两个方面人手,开展一些尝试性的课程教学方法改革创新和探索。
3.1兴趣培养和需求激发
对于学生学习兴趣培养和需求激发属于人文素质教育范畴,在专业的课程教学中不可能耗费大量的时间和精力去开展相关的教育活动,可能需要家长、辅导员等其他相关人员贯穿到学生的日常学习和生活中。这里仅从专业的角度对学生进行有限的兴趣培养和需求的激发。
1)体验应用场景,信息化时代,软件的应用场景非常广泛,涉及学生们日常生活的方方面面,对于每一门软件开发课程,教师都可以从学生的现实生活中挖掘出本课程可以开发的目标软件产品,引导学生逐步转变角色,从一个软件的使用者,逐步转变为软件的开发者,并且能够自由地在两种角色间转换,以新的视角看待软件的使用和开发,让学生体验出作为软件的使用者和软件的开发者具有不同的心理诉求和感受。学生在使用软件时,引导学生去思考软件的某个功能是如何设计和实现的,使得软件开发过程不再那么的抽象,与此同时,学生在开发软件时,引导学生去体会作为用户使用软件时的真实感受,通过使用软件的过程使其对软件产品建立直观印象嘲。
2)展示就业现状,对于每一门软件开发课程,一定要在第一次课程介绍中,向学生充分展现出该课程未来的发展方向和目前的就业现状。课前,教师可以充分利用丰富的互联网就业招聘资源,搜索收集一些与本课程相关的就业岗位,并在课堂上给学生展示该就业岗位的基本待遇以及知识技能要求等信息,一方面可以让学生对自己未来就业萌发憧憬之心,激发其内部的兴趣和动力,另一方面也可以让学生在学习过程中了解本课程中哪些内容正是市场上相关工作岗位所需要的知识技能点,提醒学生需要重点关注和掌握,以满足相关工作岗位的需求。
3)介绍优秀学长,作为教师,在平时也要注意联络自己带过的一些优秀毕业生,收集他们目前的工作状况以及他们在专业学习过程中的经验和历程,通过分享这些优秀学长的成功经历,可以给学生们提供激励和借鉴作用,必要时还可以邀请这些优秀的毕业生,进入课堂与学生们面对面的交流,这将更具真实感,让学生对自己的未来充满希望,对学生会产生更大的激励作用。 4)发掘身边成功案例,在授课过程中,可以动员班级学生发掘自己身边的亲戚、朋友和同学在软件开发工作岗位上的成长历程和成功经验,并且定期轮流安排个别学生将自己身边的这些成功的案例在课堂上与大家分享,利用这些具有正能量的真实案例,或多或少也会给学生一定的激励作用。
5)帮助学生挖掘身边的软件开发需求并协助实施,在高职层次的软件开发课程教学中,大多以某门开发语言或者开发技术的基本语法和语义为教学重点,缺少真实有趣的案例开发教学,即使有些学校引入了一些企业项目案例,开展任务驱动型的项目式教学,由于企业项目一般都比较复杂,而且还需要一定的领域知识,方可真正理解并实现企业项目的开发,这对师生来说难度都很大。不过,教师可以以团队的形式组织班级学生挖掘身边的软件开发需求,比如学生自己、朋友或者亲戚存在某个实际软件开发需求,就可以让团队免费承接这样的软件开发项目,由需求方提出真实的功能需求,团队内分工协作,教师协助并指导团队实施整个软件开发过程,对于这些身边的真实案例,一方面便于交流和沟通,另一方面,也让学生们更具有成就感,通过自己的所学为自己或者自己的亲戚朋友做些实事,并且学有所用,学生们会乐此不疲。
3.2具体的教学方法改革措施
1)以学生为中心展开教学和实训,如定期安排优秀学生课下收集专业方面的专题知识,再到课堂上与大家分享,或者安排优秀的学生上台现场编写和调试代码,老师在台下分析和阐述编程思路,指导和启发台上学生如何进行编码和测试,真正做到以学生为中心的教学方式,虽然这种教学方式比较耗时,但效果很好。
2)主动试错,出错后演示纠错排错过程,培养学生纠错排错意识和能力。目前高职学生在纠错排错能力上相当匮乏,遇到错误往往束手无策,同时对调试工具也很少使用,这种现状对于学生未来的发展是相当不利的。因此,老师上课时首先要简要的阐述和演示开发平台中调试工具的使用,然后在编程中主动设置一些错误,并引导学生学会如何查阅错误提示?如何根据错误提示查阅相关资料?如何判断错误发生位置和原因?如何找到错误的解决方案?逐步培养学生的纠错和排错意识,指导学生练习使用各种调试工具,提高学生的纠错和排错能力川。同时引导学生将开发过程中遇到的各种错误提示、错误原因以及最终解决方法收集整理归档,以便于后期学习和查询。
3)理论联系实际,结合人们的日常生活经历来阐述软件开发过程中深奥难懂的抽象原理。比如在讲到Java Web中的Session对象时,让学生明白会话过程是学习Session对象的重难点,此时,可以通过引入大家耳熟能详的打电话的过程来进行类比,帮助学生理解抽象的Session会话过程。软件开发专业课程中,很多知识点都是非常抽象的,单纯按照书本概念去讲解,学生很难理解,此时,老师在备课时就要做好教学设计,尽量从现实生活中挖掘出类似的事物,利用大家熟悉的事物来帮助学生理解这些抽象的专业知识原理,否则学生会很快失去听课的耐心,从而失去对该课程的學习兴趣。
4)实训教学时要求学生边读边写边测。由于实训时学生已经有了参考源码,大部分同学都是照抄源码,等全部源码敲完后,才进行调试运行,这种情况下,基本上都会出现大量的错误,而学生又缺乏有效的纠错排错能力,大部分学生在尝试若干次纠错后,仍不能把所有错误排除,无法看到正确的运行结果,这对学生的学习信心会产生很大的打击,大部分学生都因此而最终失去耐心,半途而废。因此,要求学生在实训中一边读代码,一边写代码,读懂多少写多少,写完一个小功能后,立即进行测试运行,查看运行结果,通过运行结果检验学生对代码段的理解正确与否,如果能出现预期的结果,说明代码理解和输入正确,让学生看到阶段成果会让学生立刻萌发成就感,正是这种成就感对学生具有强大的正向激励作用,让学生得以保持强大的内在动力继续完成后续的开发。即使出现错误,由于代码段很短,错误排除难度也很小。所以,切忌把软件开发实训课上成了“打字课”,一定要让学生在看懂代码的基础上再去敲代码,再去运行和调试程序。
5)利用技术手段采集学生项目调试过程中的异常和错误,进行典型分析和精准指导。由于多种原因,老师很难为每一位同学排除程序中的异常和错误,现在可以利用大数据采集软件Flume对所有学生机上产生异常报错进行实时采集,然后再进行集中汇总统计,找出出错频率高的问题,然后对典型问题进行集中讲解和分析,同时还可以根据采集上来的数据,快速定位到每个问题发生的机器,在合适的时候,还可以进行精准指导。
6)案例的演示不只是展现结果,更重要的是展现过程,深度剖析学习和理解的过程,如在讲授Java Web开发环境和JSP文件的执行过程时,大多老师都会按照“Java Web开发环境的构成一环境搭建一创建测试项目一部署运行”的流程给学生讲解JavaWeb开发环境,当看到了正确的运行结果后,再按照“*.JSp→*.iava→*.class→*.html”的流程阐述一下JSP文件的执行过程。表面上看,这个过程已经很详细完整了,但是站在学生的角度,他们只看到了最终的运行结果,至于整个中间环节他们基本上是知之甚少。其实这个中间环节是相当复杂的,而且对于这个中间环节的理解,对学生以后深入学习Java Web程序也是相当重要的。此时就非常有必要对这一过程作进一步的展开和剖析,重点分析这一过程的每个环节都是如何进行的?都产生了哪些结果?每个环节中各软件都发挥了什么作用?教师可以通过在磁盘中找到项目创建时源文件所在的位置和部署后项目的实际位置,增加学生的直观映像,让学生明白部署阶段做了什么工作,让学了解真正执行的程序是部署后的程序;同时可以打开Tomcat下的Work文件夹,找到JSP文件执行过程中产生的*java和*class这两个中间文件,让学生更直观地理解和记忆JSP文件的执行过程,与此同时,借助于这两个中间文件,正好可以阐述Tomcat和JDK在JSP文件执行过程中所起的作用。这一系列中间环节的展示和阐述,让学生对JavaWeb环境搭建、JSP文件的执行过程、Tomcat等软件的作用以及他们之间的作用有了更加直观和深刻的理解。
7)重视学习方法的传授,正所谓授人以鱼不如授人以渔,授课过程中,每每遇到课程中的重难点,首先应该向学生阐述的这个知识点的学习方法,剖析掌握和理解该知识点的关键所在。然后再尝试利用此方法带领学生来学习该知识点,此举可谓是一举两得,通过利用有效的学习方法掌握了这个具体的专业知识点,与此同时,利用一个具体的知识点训练了如何使用这个学习方法,并逐步引导学生进行举一反三,再利用此方法去学习其他相关的知识点。例如,在讲到Java对象方法的使用时,首先需要告诉学生的并不是某个具体方法如何使用,而是要把Java对象方法的一般用法和学习要点告诉学生,要求学生始终抓住方法的四个要点内容,即方法的名称、功能、参数和返回值,对于对象名称和功能的学习以记忆为主,哪怕只是模糊的映像,当以后在项目中遇到待解的问题时,可以通过记忆中的一系列对象方法和功能,初步判断大概可以通过哪个对象的哪个方法可能会解决该问题,随后再利用丰富的网络教学资源进一步详细了解该方法的具体语法格式、参数和返回值。然后再现场演示对该方法的调用,验证其调用效果。随后再安排一名同学上台按照此学习流程尝试调用其他类似的方法,老师此时可以在台下一边监督其他学生,一边根据台上学生的表现进行针对性的指导,协助其完成任务。通过对学习方法的阐述,并且老师和学生分别进行两轮演示,学生对该知识点会有更加深刻的映像,至少台上的学生会取得很好的学习效果。
8)培养学生查阅专业资料,学习新知识的能力。在教学过程中,一定要学生明白课堂和书本的知识非常有限,IT技术飞速发展,知识更新换代迅速,仅凭课本上的知识是远远不够的,而且书本知识大多比较陈旧。引导和培养学生学会如何查阅专业技术资料,并根据相关资料快速学习新知识和新技能在软件开发课程教学中尤为重要。
4总结
随着软件开发技术与云计算、大数据、物联网及人工智能等技术应用的深度结合,市场对软件开发人才的需求会日趋强烈,在这庞大的人才需求市场中,职业教育必定有其一席之地。对于高职院校来说,培养满足市场需求的高技能职业人才是我们的当务之急,而作为教书育人的践行者,教师需要不断自我反思、自我革新,在教书育人的实践中,不断地探索和创新教育教学方法改革,方可与时俱进,培养出满足市场需求的专业技能人才,实现自我人生价值。
转载注明来源:https://www.xzbu.com/8/view-15040574.htm