以企业需求为导向的Java程序设计教学改革探讨

来源 :中国电力教育 | 被引量 : 0次 | 上传用户:vitalee
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:Java是一门易入门、难学精的课程,传统的教学方法已不能适应企业的用人需求。针对这·问题,文章明确了本课程的教学目标,确定了教学内容,并探讨了相应的课堂教学方法、实验教学方法、考核方法,实际结果表明该教学改革提高了学生的学习兴趣、培养了学生良好的编程思维和较强的动手能力,更好地适应了企业的要求。
  关键词:Java;计算机;程序类课程;教学改革
  
  当前,几乎所有的大学都开设了计算机专业,这一专业的开设对于促进我国信息化发展作出了贡献,同时也造成了大量的潜在软件从业人员。但从企业用人的角度来看,却出现了没有足够专业人员符合工作需求,从而出现了这样一组矛盾:每年数以万计软件专业学生毕业,但软件企业却难以招聘到合适的员工。这说明了当前大学的程序类课程的教学内容、教学方法、教学手段等方面出现了滞后,没有与社会实际需求挂钩,在一定程度上造成了软件专业学生就业难的问题。
  针对这一实际问题,长沙理工大学计算机与通信工程学院(以下简称“我院”)为了提高学生编程能力,成立了軟件设计研究所,专门进行语言类程序教学工作,并根据当前主流的开发平台和语言,成立了教研小组,以便更好地进行教学交流、教学改革,以提高教学质量,从而使学生更能适应企业的要求。J2EE是其中重点的教学方向之一,包括Java程序设让企业级Java开发技术等课程,而Java程序设计是Java类课程基础,本门课程的教学效果直接决定后续课程的教学质量,因此,Java程序设计的教学工作具有重要的地位。本文根据近年的Java程序设计课程的教学实践,对Java程序设计课程从教学内容、教学手段、考核办法等几个方面进行了探讨。
  
  一、教学目的与教学内容
  
  据统计,Java程序员的市场需求量稳居第一,它对学生的要求也较高,传统的教学很难达到企业的需求,而Java是计算机专业高年级的课程,其教学质量直接面对企业的考核。因此Java教学不能仅仅满足于完成教学任务,而应该以企业需要为出发点,对学生进行强化训练,使学生能够达到企业用人的基本要求,提高学生的就业能力,以弥补传统教学与企业用人之间的鸿沟。
  为了达到这一目的,首先需要明确教学内容。大学的程序类课程是系列化的教学,在Java之前已经学过多门语言课程,如c语言。这些语言类课程的基本风格、语法、程序逻辑是一样的,因此在Java教学中,对于这些基本的内容不必详细讲解,通过简单的回顾即可,应该把大量的时间和资源用于更高级、更专业内容的学习,这样,学生才能更快地提高自身素质,加强编程能力。
  目前,市面上很多教材对于Java的介绍偏容易,尤其是对于Java的一些重点内容并没有详细介绍,这对于学习Java是不好的。笔者认为Java的学习重点可以集中于六个方面。
  
  1.面向对象鳊程
  Java是一种纯粹的面向对象的程序设计,因此,掌握面向对象的思想和方法是重中之重。如封装、继承、多态、抽象等内容,其中抽象是难度非常大的,需要长期的培养与熏陶,如一些框架技术,就大量用到抽象、多态等技术。
  
  2.10操作
  10是Java初学者感到困惑的地方,因为涉及输入/输出的类非常多,Java在设计类库的时候采用装饰者模式,初学者刚开始的时候难以习惯,这时,授课教师须重点讲解Reader与Stream的区别与使用场合。
  
  3.多线程
  多线程是操作系统中的概念,现在的高级编程语言都支持多线程,可以结合操作系统来讲解,同时需要强调临界资源、并发等问题,通过讲解,尽量使学生能够理论联系实际。
  
  4.集合
  集合是系统开发常用的,本质是数组,但集合是存储空间能够动态变化的数组,如ArrayList、HashMap等,可以结合数据结构,讲解存储空间动态变化的原理,以及Hash的实现原理,排序算法等内容,使学生具有更好的数据结构的应用能力。
  
  5.反射
  反射是Java高级应用中大量使用的技术,如struts、spring、hibernate等,通过使用反射可以使程序组件更加抽象,适应面更。
  
  6.常用的设计模式
  常用的设计模式,如工厂模式、单例模式、模板模式、组合模式等,需要强调动态代理模式,这是面向切面编程的基础。
  以上列举的内容是一个合格Java从业者必须深刻理解和掌握的内容,当然,除此以外,还有网络编程、swing等技术,因为企业的需求有限,这些技术可以略讲。
  通过这些知识点的学习,可以大大提高学生的积极性,使他们认识到Java语言的特点,拓宽了眼界,还可以理论联系实际,更重要的是这些内容衔接了Web开发的内容,有利于学生们后续的学习。
  
  二、课堂教学方式
  
  语言课的教学对于教师来说是存在挑战性的,这些课程相对而言比较枯燥,很多同学对此难以提起兴趣,导致不愿学,学不会。授课教师应该调动一切因素来让更多的人参与学习,因此,教学方式是关键的。
  对于Java课程的教学,笔者采用了如下措施。
  (1)课程开头回顾上次课的内容,并介绍本次课的重点,使学生听课能够抓住重点。
  (2)使用多媒体技术。Java课程中存在大量的案例,我们不仅把这些案例的代码显示在PPT上,还在PPT上用动画的形式把这个案例运行的过程逐步显示,让学生看到程序在运行过程中的中间情况,如内存中数据的变化,让学生更清楚程序的运行是一个动态的过程。在阅读程序时也应该用动态的眼光,而不要像读小说一样按照顺序阅读,这有利于培养学生提高阅读代码的能力和程序分析能力。
  (3)现场编写程序。如果课堂上所有的代码都在PPT上做好,然后分析,还不能让学生体会到编程的过程,这其中应该包括调试、跟踪等基本技术。因此,每次上课,我们都会现场编写3个左右的案例,边写代码边解释,然后做好必要的程序注释,让学生养成好的编程习惯。在教师过程中授课老师可以在一些的易错的地方故意犯错,然后进行编译,运行。当出现错误时,并不是急着改错,而是与同学交流,甚至允许同学上讲台上来改错,这样可以提高同学的参与度,最后,利用断点、跟踪等技术,将错误定位并分析错误原因,这样,在让同学全程参与代码的编写的同时,更能提高学习积极性。
  (4)每堂课的最后的集几分钟对本节课进行回顾,强调重点,布置一定量的作业,同时把当堂课的案例代码拷贝给学生,让学生在课余的时间里可以研究和模仿。
   通过这些环节的贯彻,基本可以带动学生的积极性,使大家可以学习到基本的知识。通过结合课外的一些环节,跟踪大家的学习进度,能够掌握学生的学习状况。
  
  三、实验教学方式
  
  语言类课程教学的另外一个难点在于学生的“眼高手低”,听课能听懂,但不能动手做事,这是很多计算机专业学生的通病。笔者曾经和很多同学进行交流,问一些知识点是没有问题 的,但当笔者问最多编写过多少行代码时,大多数学生都说只有20~30行,这显然是一个严重的问题,一个学生离开学校去企业供职之前,至少应该有写过2万行程序的经验,这样,在编程风格、速度、调试等方面才能满足企业的要求。
  因此,学生的动手编程能力亟待加强,加强学生的动手实验的能力,最好的地方当然是实验教学环节。
  
  1.尊重客观的学习过程
  学习编程是从模仿编程倒自主编程的过程,没必要刚开始就要学生做比较复杂的实验,而应该让学生在轻松的环境下熟悉编程,使学生不至于产生畏惧心理,同时也有利于学生提高兴趣。在编程初期,可以安排几个例子,让学生对照书本敲程序,运行,自己尝试改错,调试。经过几天的练习,学生基本就能懂得基本的语法、编程方法、调试技巧,这时候,学生自己基本上具备了动手解决问题的意识。
  
  2.安排好前后期实验任务
  每堂课依照实验大纲,完成实验任务,对于普遍觉得较难的例子,老师可以集中讲解,现场编程演示,然后让学生当场模仿,掌握编程思想。这样做可以让学生在很短的时间内解决问题,增强信心。在后期教学中,老师则不必将程序完整写出,可以给出大致思想和程序骨架,让学生自己根据自己的理解去完成程序,让学生学会用程序的方法去思考问题,提高他们的编程解决问题的能力。
  
  3.适当地布置工作量大的程序
  如果仅仅依靠实验大纲还不能培养优质的程序员,原因在于每章节的實验内容相对较窄,知识点明确,代码量不大,不能发挥学生的联想能力和主动思考问题的能力。笔者曾经要求学生作了几个作品,如FTP工具,该软件应用到了网络、多线程、文件操作、集合、IO、Swing、设计模式等知识点,可以实现客户机/服务器之间进行文件上传/下载操作,还可以支持断点续传功能。通过这个例子,学生用到了Java的所有的基本知识,并做到了融会贯通,其积极意义远远大于相同代码量的若干小程序。
  
  四、考核方式的改革
  
  考核是整个教学中最后一环,用于考查学生学习本门课程的效果。但像Java这样的语言类课程,其考核办法应该要能真实体现同学的学习效果,尤其是动手能力,这才是考查的核心所在。
  
  1.笔试
  企业的笔试题往往并不注重概念性的知识点,其面试内容更注重实用,很多的问题都是来自于实际工作中,然后将这些问题稍加修改,用于职员面试。这些来自于工作中的问题都是一些常用的知识点,因此,笔试内容应该注重实际应用知识点的考查,没有必要考太多偏、怪的知识点,只需强调一些基本的、常用的知识点,如接口、多态、集合、多线程等。在考查这些知识点时要更多地结合具体的程序片段,来了解学生是否能够理解和灵活应用这些知识点,并增强学生阅读代码和分析代码的能力。
  
  2.机试
  机试的考核只考核编程题,注重考核编程能力,可以结合两种方式进行。
  第一种是在线判题。在规定的时间地点上机考试,题目完成后,学生通过网络将程序提交到服务器,由评判程序利用测试数据自动进行判题,即采用黑盒测试法进行判题。这种考核方法可以快速、高效、大批量评判学生的编程逻辑,能够提高学生的编程逻辑、调试能力、编程速度等,满足企业的开发需要。
  第二种是项目考查。以两人分组,给定项目,要求每组学生在规定的时间内自行完成,然后由老师在演示现场观看完成情况,包括完成的功能、代码编写的质量、知识点的应用。通过项目考查,可以锻炼学生的系统分析能力,快速查找并利用有用资料来加快项目开发的能力,了解项目开发的过程和方法,另外,还能锻炼企业所强调的团队合作能力,使学生能快速适应企业的团队开发方式,减少磨合时间。
  
  五、总结
  
  企业的需求是客观的、不可回避的,大学Java的教学应该以企业需求为出发点,确定高级应用的教学内容、强化学生编程的能力和分析问题的能力,采用更务实的应用能力的考核办法,使学生更好地明确学习目标,强化编程能力,适应社会需求。实践结果表明,通过新的授课方式,学生的学习积极性得到了很大的提高,动手能力也得到了改善,达到了企业的用人需求,主要表现在求职的速度快、对口率高、薪酬好等方面。我们将继续努力,为学生能更自主地学习研究更多的可行、可靠的方案,使Java程序设计课程的教学趋于完善。
  
  参考文献:
  [1]阿诺德,戈斯林,霍姆斯Java程序设计语言(第4版)[M].北京:人民邮电出版社,2006.
  [2]辛运帏Java程序设计(第二版)题解与上机指导修订版)[M].北京:清华大学出版社,2010.(责任编辑:郝魁府)
其他文献
胎儿窘迫是指胎儿胎盘系统的呼吸循环功能不全为主的一组综合征,表现为胎儿与羊水两种类型.根据出现时期、原因及变化程度又分为急性和慢性.临床上常忽视慢性宫内窘迫,实际上
目的观察替罗非班在急性心肌梗死患者介入治疗术后的临床疗效及安全性。方法急性心肌梗死患者106例,均于发病后6h之内行急诊介入治疗,随机分为替罗非班组(n=52)和对照组(n=54
总结2例阿维菌素中毒的临床救治经验,结合文献复习,对急性口服阿维菌素中毒的发病机制、临床表现、治疗方法等进行阐述.
目的 评价中晚期原发性肝癌患者经超选择性肝动脉化疗栓塞介入治疗的方法 和疗效.方法 收集2004年4月起在本科做介入治疗的36例中晚期肝癌患者的资料.所有患者皆以导管超选择
新式剖宫产手术适应所有有剖宫产指征的孕妇,其顺应了人体的生理解剖,新式剖宫产该术式具有减少手术步骤、损伤小、出血少、缩短手术时间术后恢复快等优点.收集我院于2009年4
目的 为了阐明行为训练和特殊教育是治疗儿童孤独症十分有效的方法 ,并借此向各地的医部保健机构宣传,使更多的孤独症儿童获得有效治疗机会.方法 利用行为训练和行为教育的方
针对大学附属医院护生实习教学实施过程中存在的特点和矛盾,探索护生实习教学的管理方法 ,经过五年的尝试,措施初见成效.
目的 通过对60例穴位按摩与扣击治疗腰椎间盘突出症的护理与分析,显示病程长、年龄大、突出间隙型对疗程均有一定的影响.方法 穴位按摩与扣击治疗腰椎间盘突出症,疗程为2-5个
肠道病毒包括脊髓灰质炎病毒、柯萨奇病毒(Cox病毒)、埃可病毒(ECHO病毒),其中由于免疫强化作用,脊髓灰质炎病毒在自然界已越来越少;但Cox病毒和ECHO病毒仍然对新生儿造成威
2005~2009年采用自制的中药制剂治疗烧烫伤41例,取得了令人满意的疗效.该药使Ⅰ度、深、浅Ⅱ度烧烫伤治愈,不留疤痕.治疗方法简便,止痛显著,恢复迅速,局部无刺激,安全无毒副作