首页 优秀范文 java程序员实习

java程序员实习赏析八篇

时间:2022-05-29 00:23:49

java程序员实习

java程序员实习第1篇

关键词:Java;面向对象;教学方法

中图分类号:G642文献标识码:A文章编号:1009-3044(2008)19-30109-02

Research and Practice on the Teaching of the Java Language

ZHOU Yu

(Information Science and Engineering Technology Institute of Xinjiang University, Ulmq 830046, China)

Abstract: Now, many university offer Java language as the basic course, which effects would effect student's programming capacity. Paper discussed contents, methods and practice in teaching, summarized some of experience about teaching java.

Key words: Java; Object-Orient; Teaching Method

Java是一种纯粹的面向对象程序设计语言,适于进行面向对象的软件系统开发。它所具有的平台无关性、安全机制、高可靠性、多线程和内嵌网络支持等特性,为软件开发人员带来了一种新的设计理念,已成为当今计算机业界不可忽视的力量和重要的发展方向。目前,Java语言程序设计已被我国各类高校列为计算机专业教学体系中的一门重要的主干课程。

在Java语言的教学过程中,一方面要求教师具有良好的教学水平和教学方法,另一方面也要求学生具有良好的逻辑设计能力,因此,教师在教学过程中必须找到适合学生学习特点的教学方法,使学生能通过短暂的课堂学习,理解并掌握更多的Java语言概念和编程技巧。由于Java语言内容繁杂、教材众多,内容不统一,使初学者产生了不少困难。笔者在Java语言的教学工作中总结了如下一些经验:

1 确定教学内容,选择合适的教材

Java语言在Web、多媒体、网络、图形用户界面、数据库、动画等多个方面均具有良好的编程优势,这很难在有限的学时内面面俱到。同时,学生一般在学习Java语言之前,均已学过C语言,甚至学过C++,具有一定的程序设计基础。基于这些,首先确定以下教学内容:基本语法、面向对象(类、继承、接口等相关内容)、图形用户界面、输入/输出(I/O)流、多线程、基础网络编程、数据库连接7个主要内容。其中Java基本语法与C语言的基本语法比较接近,在教学中可将相同部分简要带过,主要强调两者不同之处。如C中无boolean类型,是用0、1来表示逻辑真和假的;而Java中有boolean类型,其值为True和False,与0、1并无关联。

众所周知,Java所提供的功能强大的类库,奠定了Java编程的基础。Java学习的大部分内容,如图形用户界面、网络、JDBC等其实都是Java提供的能够实现相应功能的类,通过学习这些类,来进行不同内容的编程。类是面向对象技术的重要内容,因此在教学过程中,面向对象应成为Java教学过程的核心,并始终贯穿整个教学过程。在教学中,首先帮助学生理解并掌握面向对象编程的思想,并能够熟练掌握类、对象、继承、接口等知识点的概念及应用技巧,再在此基础上展开各个其它应用知识点的教学。

2 培养学生的学习能力

在Java学习过程中,首先训练学生从“读”到“写”的学习方法。教师在教学过程中,不能一味地按书本去讲,而要多举些实际的例子,多与日常的应用相结合。语法、知识点的讲解全部用程序来说明。课上准备的典型示例程序,需要带领学生逐行阅读,理解程序,并对关键语句加注释。阅读时,从程序的整体框架入手,分析Java程序的组成,并让学生尝试给出程序的运行结果,并通过演示程序来给予验证。课下鼓励学生多读程序、多写程序,在学生读懂程序的前提下,允许学生模仿、改编现成程序为己用的情况。

其次是培养学生“举一反三”的学习能力,如图形用户界面这一章节,涉及的组件非常多,但处理组件时采用的事件处理机制都是相通的。在教学中,先介绍窗口、按钮、文本框、标签等4个常见组件的使用,并通过一个简单的用户登录程序,给学生讲解Java中的事件处理机制。在此基础上,再介绍菜单、菜单栏、菜单项的使用,使学生进一步理解Java的事件处理机制,同时也基本掌握了用Java构造窗口的技巧。其它组件的学习则由学生通过自学掌握。

尤其要指出的是:Javadoc作为开发人员的一个重要文档资料,在教学伊始,就介绍给学生。像使用字典一样,学生可以在Javadoc中查找类、查阅其功能及该类方法、字段的使用方法甚至一些简单的示例。实践证明,使用该文档能够给学生的学习增加了很多帮助。

3 加强实验教学,提高程序设计能力

Java语言教学课时中有1/3是实验课时,如何提高实验效果,提高学生的程序设计能力和程序调试能力对掌握Java是置关重要的。

Java有最基础的开发平台,即J2SDK,简称JDK,另外还有许多集成开发环境(IDE),例如:Jcreater、Jbuilder等。在Java教学中,利用好这两种方法进行教学是非常重要的。开课最初几周,要求学生利用JDK+文本编辑器的方式进行Java语言程序设计开发:学生首先用记事本写源程序,然后在DOS命令行方式下编译、运行程序。采用JDK的开发方式有利于学生熟悉开发环境的设置、Java的基本架构以及Java虚拟机的运行机制,对于以后Java的深入学习也是必要的。

由于集成开发环境具有界面友好,上手快,内嵌有许多的可视化功能等优点,适合Java程序设计的教学。因此,从图形用户界面这一章节开始,利用集成开发环境进行实验教学。基于集成开发环境应具有功能强大、应用广泛的要求,笔者在教学过程中采用的是Jbuilder。Jbuilder在使用过程中,首先给学生强调“工程”的概念,写程序首先建工程,在工程下,再建立类、Web服务等。在使用过程中,还应该掌握一些程序调试技巧:如如何格式化源程序、单步调试程序等。

实验环节中,培养学生养成良好的编程风格,提高程序调试技巧也是实验教学的一个重要内容。

4 培养学生树立软件工程的观点

当前,计算机软件在各个领域中均有广泛的应用,应用规模亦日趋增大,因此软件的开发需要由开发团队分工合作,共同完成。在大型软件的开发过程中,软件工程正发挥着关键性的作用,它决定了软件产品的开发进度和开发质量。Java作为面向对象语言所具有的众多优点,在其教学过程中培养学生的软件工程思想非常适宜。Java中以类为单位编码,这一方面易于单元测试,在很大程度上保证提交代码的完整准确性;另一方面,也能够以类作为划分工作的单位,易于实现多人合作分工。

软件工程的素质必须通过实践才能培养出来。在Java学习过程中,结合教学内容,选择合适的项目,要求学生完成一个大的课程设计(大作业),由若干个学生组成开发小组,按照软件过程来开发,利用Java面向对象的特点启发学生用接近真实世界的方式来分析和设计软件系统。

软件开发的过程,也是一个团队的组织、合作、管理的过程。在大作业的完成过程中,老师只负责确定选题范围和技术指导,具体的分工、设计和实现,由小组成员协商完成。这一方面要求学生运用软件工程方面的知识进行功能模块的划分,进而实现不同的分工,另一方面也培养了学生的合作精神,使学生在相互间的学习过程中提高技术水平。同时也能对面向对象有更深的体会和理解。

《Java 语言程序设计》课程的学习使学生综合应用了基础知识,提高了专业技能培养,使学生初步掌握了解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及编写程序、调试程序等能力。为毕业设计及今后从事软件开发工作打下了良好的基础。

参考文献:

[1] 耿祥义,张跃平. Java2使用教程[M]. 第三版.北京:清华大学出版社,2006.

java程序员实习第2篇

关键词:JAVA程序设计;项目化教学;评价体系;方案研究

项目化教学指的是:由教师与学生共同完成一个JAVA程序设计项目,而开展的教学活动。项目化教学能够充分的展现高职院校职业发展的教学理念。JAVA程序设计属于编程技术,具有较大的发展空间,众多软件公司与学院都在积极的培养JAVA程序设计员,以满足职业岗位需求。

1、JAVA程序设计课程项目化教学改革

1.1重构教学框架JAVA程序设计课程项目化教学的知识量大,是高职院校开设的主要课程,教师在教学时根据课程大纲进行讲解,其中包括11大知识模块,学生需要学习的知识较多,基于此各高校也在进行课程改革,采取项目化教学,即项目驱动教学、模拟职场实践,重构教学课程,将教学内容分为9个子项目,包括:系统平台搭建、系统需求分析、员工基本信息处理、员工与部分信息组织等,以减轻学生的学习压力,提高教学的效率。1.2精选教学内容JAVA程序设计需要用到大量的计算机程序理论,其本质是设计能够解决问题的程序,这需要学生花费一定的时间来进行程序设计,也就是设计不同时间点上的计算机行为,需要程序员具备较强的理论知识基础。项目化教学通过精选课程内容,采取典型性教学、实用性教学、趣味性教学,基于实际需求,开展实训教学,基于项目任务开展教学活动,不仅能够提高学生的技能水平,还能够增加学生的知识储备。1.3面向职业岗位需求JAVA程序设计的学习,对于高职院校的学生而言,存在较大的难度,因为学生是在探索一个陌生的领域,需要学习JAVA程序语言语法,了解程序编程的规则,还需要学生具备基本的计算机操作能力,基于此各高校提出课程项目化教学改革,以JAVA桌面开发能力需求为主,考虑岗位需求,进而制定课程能力目标,即学生要能够独立分析并熟练掌握中小型管理信息系统需求,能够使用软件的各个功能模块,使用JAVA语言来编写程序。

2、JAVA程序设计课程项目化教学评价体系方案研究

2.1JAVA程序设计课程项目化教学评价体系方案针对JAVA程序设计课程项目化教学特点,以项目考核和过程考核为主,将项目考核内容分为课内考核与课外考核两个部分。课内考核主要以课内项目完成情况,作为主要的考核目标,包括学生完成的态度、教学项目报告的质量、问题解答的情况、团队协作情况、应变能力等。课外考核主要以课外项目完成情况为主,主要评价内容包括:项目的实用性、完成的质量、项目报告的质量、面试问题回答情况等。在此方案下提出学生的综合考核成绩=(过程考核+项目考核)×50%。2.2项目化教学评价考核方式与评价标准2.2.1考核方式JAVA程序设计课程项目化教学评价体系方案中,主要采取的考核方法是过程考核与项目考核方法,其中过程考核方法主要考查学生的态度纪律与单元实践学习情况。态度纪律的考核方法是:针对学生项目作业完成的实际情况,以及学生在课堂中回答问题与实践示范情况等,由学生与教师对其学习态度进行评分,其中教师评分占60%,根据学生的考勤情况,对其学习纪律进行评分,采取教师与学生双评价方式,学生的态度纪律评分占据综合考核的20%。单元实践考核方法:结合学生实践情况,采取学生自评和他评的方法,根据学生项目完成的时间与创新情况等,进行小组评价与教师抽评结合评定,单元实践成绩占据综合成绩的30%。其中项目考核主要包括课内考核与课外考核。课内项目考核方法:采取教师与项目组评价方式,分为系统功能成绩、编程规范成绩、答辩成绩三部分,其所占综合考核的20%。课外项目考核方法:采取企业专家评价方式,分为系统功能成绩、编程规范成绩、答辩成绩三部分,其所占综合考核的30%。2.2.2评价标准态度纪律评价标准:主要从课堂表现(30%)、课外学习(30%)、小组学习(40%)等方面进行评价,成绩在86-100分数段的为优秀、70-85分的为良好,60-69分的及格。以课堂表现评价为例,其分为缺勤情况、实训场地与设备爱护情况、问题回答情况等内容,其中没有缺勤且积极主动提出问题,爱护实训设备的学生为优秀学生,缺勤3次以上,但是能够爱护实训设备,且能够正确回答问题的评为及格。单元实践考核标准:主要分为系统实现(70%)、创新(15%)、表达(15%),考核成绩分为优秀(86-100分)、良好(70-85分)、及格(60-69)。以系统实现为例,在规定时间内能够基本完成单元项目实践,且编写的程序,其功能能够到达设计的基本目标,完成简单功能模块代码的编写,将其评定为及格。项目考核标准:将态度纪律(15%)、创新能力(15%)、表达沟通(10%)、程序设计(50%)、文档编写(10%)作为主要评价内容,考核成绩分为优秀(86-100分)、良好(70-85分)、及格(60-69)。以态度纪律为例,将能够认真对待程序设计项目、听从项目教师的安排、与小组成员共同合作的学生,评定为优秀。

结束语

JAVA程序设计课程进行项目化教学改革,能够更好的培养出企业与社会需要的JAVA程序员,同时通过重构教学框架、精简教学内容,采取项目实践教学,能够提高学生的技能水平,而项目化教学改革,其评价体系也需要相应的改革,采取立体化评价方式,提高评价的科学性。

参考文献

[1]王爽.基于Java课程的项目驱动式立体化教学资源体系建设[J].教育与职业,2013,8(27):138-140.

[2]刘芳.“Java语言程序设计”课程项目化教学改革与实践[J].邯郸职业技术学院学报,2012,10(3):67-73.

[3]朱剑锋,王冬,熊志斌,尹成国.项目教学法在Java程序设计课程教学中的应用[J].琼州学院学报,2011,15(2):82-84.

java程序员实习第3篇

14年前,Sun公司的一位营销天才把一门试验性的跨平台语言由象征踏实的“Oak”(橡树),改名为香气四溢的“Java”(咖啡)时,可能他没有想到这门语言能有后来的辉煌。事实上,如果现在Sun想为这门语言改名,以准确体现其在计算机行业的地位,似乎Oak更形象。今天,虽然Java语言并非真正意义上的遍地开花,但它已经出现在众多场合和设备中,而且它享有运行稳定、设计精良的美名; Java代码也许无法主导所有计算机或所有平台,但它离成为通用语言已近在咫尺。

Java之父詹姆斯•戈斯林(James Gosling)在Oracle主办的OpenWorld大会上登台发言时阐述了这一点。他调出JavaFX幻灯片,上面是一连串统计数字:超过8.5亿个具有Java功能的桌面机和大约100亿个具有Java功能的设备。实际上,Java虚拟机在电子设备中司空见惯:电子书阅读器Kindle、蓝光磁盘播放机和智能电话(包括不太智能的手机)等。iPhone应用程序可以在成千上万部iPhone上运行,但Java嵌入在26亿部手机上,从不太智能、20美元就能买到的手机,到最新一代的黑莓和Android手机无一不包。

请戈斯林到OpenWorld大会上演讲,只是Oracle掌门人拉里•埃利森(Larry Ellison)希望向工程师们一再保证这门语言前途光明的手段之一。Oracle想要并购Sun,但它仍得等待欧洲监管部门批准这一决策。美国政府已开了绿灯,但欧洲政府官员由于担心MySQL的发展还没有同意这一起交易。戈斯林和Sun董事长麦克尼利(McNealy)都表示,一旦并购工作完成,Java会从Oracle得到比以往更多的关注和资源。

从近期来看,埃利森传达的信号也许不是很重要,因为如今Java已成气候,要改变发展方向也并不容易。当然,也有一些人认为,Oracle的商业模式太不一样了,所以它必然会对Java生态系统的每个部分进行重大变化。总体来说,每拿出一个Java可能变化的理由,就有同样充足的理由表明Oracle可能还是希望保持现状。

企业级应用是主战场

Java最先在服务器端找到了自己的位置,未来这个领域仍是有望看到Java虚拟机的主要地方。对Oracle的所有产品来说,大型服务器也是主要的安身之处,所以出现这对组合自在情理当中。虽然PHP编程员青睐MySQL,但对数据密集型的企业应用来说,许多最要紧的项目还是使用基于Oracle的架构封装而成的Java,这种情况应该不会很快发生变化。

Sun称,GlassFish应用服务器每个月的下载量超过100万人次,Tomcat等比较旧的平台仍然很常见。由于Java这项技术备受推崇、运行速度快、真正跨平台,大型企业(如银行和保险公司)对Java开发人员求之若渴。

不过,Java不再被认为是最新最酷的语法。一些编程员对静态类型语言的结构满腹牢骚,纷纷改用更新颖或更简单的语言,比如Ruby、Python或PHP。现在许多较简单的Web应用程序就是用这些语言开发而成的,因为它们编写的代码容易修改,能快速建立原型。然而,这些使用便捷的新语言常常离不开Java: Ruby开发人员常常使用JRuby(基于Java实现的Ruby语言),因为Java虚拟机能够更出色地处理繁重任务、释放多个线程。Jython(基于Java实现的Python语言)也相似。

Java现在正在加入一些最新的编程技术,以此遏制这些新语言大举入侵。Grails明显模仿了Ruby on Rails的许多简单的说明性模式;Grails这种框架利用名为Hibernate的数据库中间件,把Groovy等脚本插件结合起来。Groovy本身添加了众多的动态选项便于代码解释,同时可以直接链接至Java应用编程接口(API)的任何部分。甚至不需要考虑Python或Ruby,因为Groovy凭借一种精巧、现代的语法,让Java编程员可以使用似乎变化无穷的庞大库和底层稳若磐石的虚拟机。

走上移动之路

Java手机的数量(估计约26亿部)委实惊人,因为市面上许多最简单的手机里面都运行Java平台微型版(Java ME)。这让等公司得以构建在整个第三世界都能顺畅运行的文档阅读平台。

不过,运行Java的智能电话数量相对少一点。iPhone的巨大成功激励许多人重新学习“Objective C”,这门语言让编程员对于内存使用等一些系统问题提高了控制能力。Java为编程员隐藏了大部分底层问题,这是个优点,但前提是不需要管理内存等资源,因为要是垃圾收集出现一个小失误,有些游戏就运行不了。可遗憾的是,因为电池续航时间是极其重要的一个因素,智能电话需要比几乎其他任何平台更严格的资源管理。

不过,Java编程员仍然很吃香,因为黑莓手机在其新平台上继续采用Java ME:它为手机的情景模式(profile)添加了支持触摸屏和方向感应器的功能。而Android存在不可预知的因素。由于谷歌开放了Android的使用,许多手机厂商搭上Android这辆彩车。

谷歌的Android建立在开源Apache Harmony及其类上,而不是建立在Sun开发的Java开发工具包(JDK)和Java ME上。对使用Eclipse编写代码的人来说,它们看上去几乎一模一样。在其他许多情况下也无关紧要,因为Android开发使用了很多XML表单,但如果这两套开发框架离对方渐行渐远,这种分裂可能会变成大问题。

收复桌面阵地

大多数人仍然认为Java在桌面端从来没有取得成功,这是过去。如今,Java正在缓慢而稳步地渗入到现代操作系统的各个角落。虽然用Swing编写的标准应用程序因试图定位在每个平台的最基本部分而继续“遭殃”,但是有了像JavaFX和Web Start这些比较新的开发平台和框架,就有可能通过Web有效地部署软件。本地平台可处理Java归档(JAR)的所有缓存工作。只要点击链接,有时偶尔随后点击几下授予权限的对话框,软件就可以安装及更新,还可以随时运行。

JavaFX仍然是一个名副其实的未知因素。图形功能现在可与Adobe的Flash相竞争;计算引擎可支持大部分的Java API,但这门语言是一门奇怪的混合语言,融合了正宗Java、JavaScript及其他的一些标记语言。其代码比正规的Java简单,所以Java编程员又要学习新的东西。不过,对极具互动性的桌面工具而言,新的动画类也许值得花时间学习。Web Start正在继续慢慢改进通过浏览器直接把软件部署到桌面的功能。

抢占嵌入式领域

Java还在人们最预料不到的地方茁壮成长。虽然C编程人员可能从来不会承认Java虚拟机巧妙处理存储区、快速运行的功能,但Java在非智能手机、机顶盒、嵌入式芯片、Kindle及其他低功耗设备取得的成功表明:Java虚拟机完全有能力在嵌入式应用方面一展身手。Java的普及性还帮助编程人员从大平台迁移到小平台。虽然为大型机开发企业级应用软件改成开发小型嵌入式代码并不简单,但Java标准大大简化了这种转变,这让其他许多工具自叹弗如。

Java程序包也在变得越来越小巧。戈斯林用“尘埃”来形容一台硬币大小、能够识别Java的计算机。JavaCard是面向这类小型程序包的一种虚拟机和API,它即将迎来3.0版,这个里程碑式版本将增添网络连接功能。尽管这些小不点还没有小得足以放入到人的眼睛中,但直接与互联网通话的功能却让它们显得极具诱惑力。

合作伙伴

会分道扬镳?

所有开发人员的最大担心是:要是Oracle收购Sun的交易尘埃落定,会出现什么样的利益冲突变化?Oracle是靠收取大笔的软件许可费成长壮大,其软件可运行在客户想要购买的任何硬件上。而另一方面,Sun通常是免费赠送软件,然后通过销售服务器赚到一些钱。这些经销策略也许不会立即发生变化,因为惯性实在太太了,但谁也不知道将来Oracle会做出怎样的决策。

一些人认为,Oracle过去在收取大笔许可费方面屡试不爽,只会鼓励埃利森对Sun采取类似的手法。也许Oracle的销售团队眼下就在垂涎这个机会:针对Java以前免费的地方开始逐步提高许可费。为了避免重新编写Java平台企业版(Java EE)应用软件,许多企业很可能宁可支付每个CPU 100美元、200美元甚至100万美元的费用。

批评人士指出,Oracle很容易开发出新版Java虚拟机,针对不同的市场推出不同的性能级别。桌面虚拟机可能保持免费,Oracle甚至可能会掏钱请电脑厂商来推销Java和JavaFX,而处理极限多线程方面的性能改进可能会收取非常高的费用。从用户身上捞钱有好多法子,许可费相比之下往往便宜得多:要是让拒不服从的编程员先学习一门新语言,然后重新编写代码库,那成本高多了。

但也有人认为,Oracle也许不会采用这一招。一名接近Sleepycat(这家开源数据库公司在2006年被Oracle收购)的消息人士表示,Oracle已把技术队伍的规模扩大了约一倍,而所有双许可模式原封不动。软件仍然采用开源或商业许可证这两种形式。如果Oracle像Sleepycat那样对待Java,社区许可及其他方案仍然会跟以前一样免费、随处可得,同时有更多的工程师来改进代码。

与其他各大Java合作伙伴的长期关系方面仍存在更深层的问题。谷歌继续支持Apache Harmony,这个代码超过125万行的项目似乎一心要破坏Sun作为世界中心的地位。IBM输掉了争夺Sun的竞标战,现在发现竞争对手Oracle的实力更强劲了。IBM设计了Eclipse开发工具,可能也会开始把Java平台带往另一个方向。

其他合作伙伴的态度比较激烈。SAP公司首席技术官Vishal Sikka一再要求SunJava社区进程(JCP),着重提到了Oracle在2007年提出的方案:将控制权交由一家“开放、独立、与厂商中立的标准组织”,标准组织的所有成员在机会均等的前提下参与。虽然Oracle对相关细节基本保持缄默,但可以认为,这家公司会因为从Sun承袭过来的一些观点而重新赢得尊重。

但是,尽管其他合作伙伴可能会参与恫吓的举动,但他们可能会考虑“度”的问题,因为大家其实是相互牵制的,任何过激的行为都极可能会被阻止,因为大家都认识到“一次编写、到处运行”理念具有的优势。如果为Android手机编写的代码无法很容易地迁移至索尼蓝光播放机或Glassfish服务器,另一门语言就有机会应运而生。实际上已经有多家公司在编写工具包,让用户可以在iPhone上轻松运行Ruby on Rails或Python软件。

另外,许多这些比较新的语言可能会成为不可小觑的竞争对手,而暗斗过多只会帮助它们攻城掠地。现在有几十种非常好、知名度小一点的开源程序包,只要忠实的爱好者稍加转换,通常就能把它们移植到每个平台上。比如,Python已经是一些科学领域的主要语言,谷歌选择Python、而不是Java作为其应用引擎(App Engine)支持的第一种语言。虽然IBM、Oracle和谷歌在争夺主导权的竞争中可能会相互排挤,但它们必须认识到:所有人都受益于标准化,而不是垄断。要是谁敢过于排挤别人、企图一手控制Java,其他厂商可能会奔向其竞争对手。

Java也开应用程序商店?

Java代码库仍相当有凝聚力、相对标准化,这个事实惹得众人猜测:Sun(如果合并案完成,还有Oracle)到底会怎样利用Java的普及性来大发其财,又不提高许可费、挤压每个人?如果有人开发出一种面向整个Java生态系统的应用程序商店(App Store),从而像销售面向iPhone的应用程序那样销售用Java编写的小组件(widget)―它们可以在桌面、手机、蓝光播放机或可以使用Java的其他任何平台上运行,将会怎么样?

最近已经有了面向Android手机的一批数量可观的应用程序,Sun也在谋划一家Java商店,好让人们只需把应用程序拖到桌面上,或者只要再编一点代码,就可以把各应用程序结合起来,从而让它们可以在Java世界的几乎每个角落里运行。不过,处理截然不同的屏幕和用户界面还是个挑战。

java程序员实习第4篇

关键词:Java虚拟机;设计模式;内存分配

Java作为一门面向对象的语言,在过去十年中取得了其它语言所无法比拟的成绩,Java以其简单、面向对象、可移植性、安全性等特点,成为了现在最主流的开发语言之一。

1 常规知识

Java常规知识指的是:Java基本语法、类和对象的概念及特征、接口、抽象类与包的运用、Java API等等。

(1)基本语法。包括变量定义、操作符运用、数组、控制流等,其中大部分的内容与其它语言类似,比如学习C语言时涉及到的控制流。

(2)类和对象。Java的最核心概念,包括面向对象的三个基本特征:封装、继承、多态,以及this、super、static、final等关键字的运用。

(3) JavaAPI。Java API是运行库的集合,它提供了一套访问主机系统资源的标准方法,运行Java程序时,虚拟机装载程序的class文件所使用的Java API class文件,所有被装载的class文件和所有已经装载的动态库共同组成了在Java虚拟机上运行的整个程序。

2 Java微观知识

Java微观知识指的是:Java的工作原理、Java虚拟机的运行方式、程序在内存中的存储等内容。

(1)Java虚拟机。是运行所有Java程序的抽象计算机,是Java语言的运行环境,是Java语言底层实现的基础,对于Java虚拟机的了解,有助于理解Java语言的一些性质,也有助于使用Java语言。

Java虚拟机的主要任务是装在class文件并且执行其中的字节码。Java虚拟机包含一个类装载器,它可以从程序和 API中装载class文件,Java API中只有程序执行时需要的那些类才会被装载,字节码由执行引擎来执行。不同的Java虚拟机中,执行引擎可能实现得非常不同,在由软件实现的虚拟机中,最简单的执行引擎就是一次性解释字节码。

(2)Java在内存分配时涉及到的区域。寄存器:寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径,可用来暂存指令、数据和位址,程序人员无法控制。

栈:存放基本类型的数据和对象的引用,但对象本身不存放在栈中,而是存放在堆中。在函数中定义的一些基本类型的变量数据和对象的引用变量都在函数的栈内存中分配。栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。

堆:存放用new关键字所产生的对象。Java的堆是一个运行时数据区,对象被存储在堆中。这些对象通过new等指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。

静态域:存放在对象中用static定义的静态成员。

常量池:存放常量,指的是在编译期被确定,并被保存在已编译的.class文件中的一些数据。除了包含代码中所定义的各种基本类型(如int、long等等)和对象型(如String)的常量值。

(3)Java class文件。Java class文件主要在平台无关性和网络移动性方面使Java更适合网络,它在平台无关性方面的任务是:为Java程序提供独立于底层主机平台的二进制形式的服务,这种途径途径打破了C或者C++等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件。

3 Java宏观知识

Java的宏观知识指的是:Java的设计模式和设计原则。设计原则和设计模式就是在大量的实践中总结和理论化之后优选的代码结构、编程风格及解决问题的思考方式。模式有助于提高思考层次,改变学习思维定式,成为更加高效的程序人员。

Java的设计模式过多,在这里只介绍一些常用模式:适配器模式、工厂模式、模式。

(1)适配器模式。适配器模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。

(2)工厂模式。客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。

(3)模式。模式给某一个对象提供一个对象,并由对象控制对源对象的引用。就是一个人或一个机构代表另一个人或者一个机构采取行动。某些情况下,客户不想或者不能够直接引用一个对象,对象可以在客户和目标对象直接起到中介的作用。客户端分辨不出主题对象与真实主题对象。模式可以并不知道真正的被对象,而仅仅持有一个被对象的接口,这时候对象不能够创建被对象,被对象必须有系统的其他角色代为创建并传入。

[参考文献]

[1]袁绍欣.面向对象程序设计[M].北京:清华大学出版社,2007.

[2]叶锋,连进.Java程序设计教学研究[J].湖北经济学院学报(人文社会科学版),2010,7(9):207-208.

java程序员实习第5篇

关键词:Java程序设计;课程建设;思考

1 对《Java程序设计》的认识

《JAVA程序设计》课程早已成为高职院校计算机专业普遍开设的一门主干课。该课程对学习后续的JAVA高级技术,对学生毕业后迅速适应岗位需要,具有重要作用。但是,很多现行的《JAVA程序设计》课程教学内容滞后,脱离实际工作需求;实践技能训练较少,毕业后无法胜任岗位工作;教学知识点分散,没有主线。因此,针对该课程的相关建设工作刻不容缓。

2 对《Java程序设计》课程建设的意义

对《Java程序设计》课程进行深入研究,有助于课程建设团队准确把握Java在企业中的应用情况,了解企业对Java编程人才的需求,从而更好地服务于软件技术各方向专业,尤其是高级编程方向专业的专业建设。通过《Java程序设计》课程建设的研究,将会带动其他软件开发类课程的课程建设,为其他程序设计类课程改革提供参考。将《Java程序设计》作为重点课程建设,对于推进我院的教学改革、提高教学质量、培养高级应用型软件开发技术人才具有特别重要的意义。

3 《Java程序设计》课程建设存在的问题

3.1从课程体系来看,由于高职院校的学制较短,计算机及相关专业通常将JAVA程序设计作为低年级的基础课程。学生之前往往只是学习过一门面向过程的程序设计语言(例如C语言),直接学习面向对象的程序设计语言,很多语法和机制难以理解。

3.2从教学方式来看,很多院校仍然采取“教材+黑板”的理论课配合上机课的教学方式。理论课上以教师讲为主,学生听为辅,上机课是学生照着教材“敲代码”。这样培养出来的学生缺乏自主探索知识的能力,缺乏运用知识解决实际问题的能力。

3.3从采用的教材来看,它们有一个共性:纯粹的语法,没有软件工程思想的体现,脱离了实际应用,仅仅是为了让大家明白什么是JAVA语言。

3.4从以往的教学效果来看,学生普遍觉得这门课程抽象,枯燥无味,缺乏实际用处。

4 《Java程序设计》课程建设的几点思考

4.1明确课程定位,以适应人才培养的需要

以能力为本是高职高专教育的本质;“实用”、“够用”是高职高专教育的原则。“JAVA程序设计”课程的人才培养目标的定位必须基于这两点,即“面向应用,突出技能”。课程地位的确立必须以市场需求为导向、符合教学规律,既不能脱离学生实际学习能力盲目拔高,也不能丧失课程实践性要求高的教学特点。

4.2开展课程团队的建设工作

没有一支技术过硬、师德高尚的教师队伍,课程建设就无从谈起,因此,我们务必充分重视教师队伍的建设。在早期的教学模式中存在着这样的一种概念,针对一门课程而言,课程团队中的教师应该是教同一门课的。这种思想从某种意义上讲是合理的。然而,就Java课程而言,正如这种语言所倡导的开放源码一样,需要的是相关学科的不同思路的引入。就Java程序设计课程而言,研究组以教Java课程的教师为主,还包含C++程序设计、C语言程序设计、软件测试,以及数据库等方面的教师。这种组成结构从外观上看是拼凑,然而通过课程团队内的沟通可以有效地解决很多问题。

4.3开展对课程的整体设计工作

对《Java程序设计》的整体教学设计是,以工作任务为中心组织课程内容,让学生在完成相应工作任务的同时,构建相关理论知识,发展职业能力。课程内容突出对学生职业能力的训练,理论知识的选取紧紧围绕工作任务的需要来进行,并融合相关职业资格证书对知识、技能的要求。教学过程中,通过校企合作、校内生产性实训基地等多种途径,充分开发学习资源,给学生提供丰富的实践机会。教学效果评价采取过程评价与结果评价相结合的方式,通过理论与实践相结合,重点评价学生的职业能力。

4.4开展教学方法改革工作

在教学方法的选取上,应该采用任务驱动的项目教学法,把实际项目通过适当的修改,成为有针对性的教学案例和学习任务,让学生在完成任务中学习知识,一个学期、一个阶段乃至一节课都有明确的任务,让学生的学习过程中有的放矢。

4.5开展教学内容重组的工作

针对Java程序员工作岗位进行深入分析,根据该岗位所对应的典型工作任务,分析这些工作任务对于知识、能力、素质的要求,找出相关理论与实践知识点,围绕典型工作任务来设计课程的学习情境。Java程序员岗位中的典型工作任务是进行Java平台下的项目开发。为此,对教学内容进行精心设计,通过以一个学习型的项目——“在线考试系统”为载体,贯穿4大学习情境——项目开发前期准备、桌面应用程序开发(单机),服务器/客户端应用程序开发(C/S)和Web应用程序开发(B/S)。

4.6开展网络平台建设工作

近几年来,很多高职学院对本校的课程搭建了网络平台,例如Java程序设计网络平台、数据库网络平台、数据结构网络平台等。这些网络平台的搭建增加了教师与学生间的信息交流,使学生在课后能够根据自身的需要巩固所学内容,并对相应课程有更深入的掌握。经过了这些年的发展和完善,可以不夸张地说,网络平台不仅是教师和学生间信息交流的窗口,更是“辅助学生学习的第二课堂”。

参考文献:

[1]陈红军,耿永军,闫洪亮.《Java程序设计》课程教学改革探讨[J].信息系统工程,2010(1):128-130

[2]范明霞,袁颂东.化学反应工程重点课程建设探索与实践[J].广东化工,2009,36(2):111-112

作者简介:

java程序员实习第6篇

关键词:JAVA 教学分析 措施

中图分类号:G642.4 文献标识码:A 文章编号:1673-9795(2013)05(a)-0148-01

1 JAVA概述

JAVA是一种计算机的编程语言,目前仍然是较为常见的计算机编程语言,具有效率高、覆盖面广、简单易用等特点,不但可以用来进行桌面程序的开发,还可以适用于与互联网应用的开发,在当前具有广泛的应用。JAVA是面向对象的编程语言,在计算机、网络和多线程等技术领域都涉及到JAVA的相关知识,学习JAVA编程语言应经成为软件技术开发相关人才培养的基础。在我国,随着计算机和互联网技术的不但发展,JAVA编程技术人员需求巨大,相关专业的就业前景很好,很多高校都开设了JAVA语言相关课程。

2 当前JAVA教学存在的主要问题

2.1 JAVA课程的认知困境

近年来,高校扩招和民办高校的发展,使得更多的学生进入大学学习,加上激烈的市场竞争和宣传,计算机编程专业成为很多学生心目中理想的学习和就业方向。在这种大趋势下,学习JAVA编程的学生显著增加,但由于很多的学生对JAVA知识并不了解,只是为了获得理想的就业而选择编程,在学习时缺乏主动积极性。JAVA语言作为计算机编程基础知识,需要学习者具有较好的逻辑思维能力、严谨踏实的态度和抽象思维能力。这些较高的要求使得JAVA学习成了很多学生的难点,产生了畏难和认知的偏差。

2.2 JAVA课程设置问题

当前大多数高校的JAVA课程设置,由于学生大多没有相应的基础,因此所设置的课程大多集中在以JAVA SE平台教学为主,包括有面向对象编程方法、JAVA多线程、JAVA界面及事件编程、JAVA数据库连接、网络编程等基础知识。但是这些知识并不能构建完整的JAVA知识体系,学生在学习之后不能了解JAVA与C++等计算机编程语言之间的关系,JAVA语言编程的优越性,并且认为这些知识就可以满足社会对JAVA人才的要求。其次是由于缺乏相应的后续自主学习能力,不能适应JAVA编程技术的新发展,在JAVAEE等新对社会流行编程技术面前感到吃力,学生在完成学习走向社会岗位时,仍然不能满足社会的要求。课程设置的不合理实际上从整体降低了JAVA学习的应有水平。

2.3 JAVA作业和实验设计中的问题

由于JAVA学习的特殊性,其作业和毕业实验设计等需要学生具有良好的自主思考和动手能力,但是在实际的教学中,学生对JAVA的动手实践和综合运用能力较差,不能独立的进行实际问题的解决;毕业设计等过度依赖已有的资料,套用现象严重,不能进行原创;学生在学习期间也没有形成良好的设计习惯,表现出对系统设计和实现的随意性。

2.4 JAVA教学老师的问题

JAVA技术是一门不断深入发展的技术,在当前的计算机网络多个方面有着广泛的运用,高校的JAVA教学老师缺乏长期的一线实践开发经验,不能适应发展的新技术,教学效果不理想。JAVA学习的特殊性要求其必须做好教学与实践之间的结合,对老师的教学内容和方法提出了更高的要求,很多老师并不能有效的实现学生理论知识与实践动手能力之间的协调发展。

3 JAVA的教学设计探讨

3.1 合理的规划教学内容

JAVA知识主要包括有JAVA基础知识、JAVA核心知识和JAVA提高知识三个部分。基础知识要求学生对面向对象的编程、JAVA的语法和异常处理、JAVA的环境等知识进行很好的掌握,是进一步学习JAVA知识的基础。核心知识部分要求学生对面向对象的继承性、封闭性、抽象性和多态性等,并掌握这些特性设计的技术。JAVA提高知识部分是指根据专业方向学习的不同需要,选择多线程、图形处理、数据库处理、网络等内容学习。教学内容的设置,要求学生在掌握基本的JAVA基础知识的基础上,建立面向对象思想、算法设计思想等,为更深入的学习和提高程序设计水平奠定基础。

3.2 案例教学,启发学生的编程思想

JAVA编程语言的学习,重要的是在基础知识学习的基础上实现对其编程思想的掌握,从而真正实现举一反三,能够进行独立的编程开发工作。编程思想的形成,需要在不断的实践观察、分析和思考总结的基础上完成,因此,在教学中采用案例教学,是符合JAVA知识特点的有效手段。采用的案例一定要小而精,符合学生已掌握的JAVA知识,使得学生可以在原有知识体系的基础上通过自我实践和探索,实现对新知识的学习和体系构建,不但可以实现对新知识的有效掌握,还可以实现对自学和设计能力的锻炼。

3.3 运用多媒体教学与传统教学方法相结合

多媒体教学作为新的教学手段,在教学实践中取得了良好的教学效果,在JAVA知识的教学中采用传统教学模式与多媒体教学相结合的形式,可以将多媒体直观、形象和吸引力强等优点充分发挥。老师在教学时以传统方式进行理论知识讲解,以多媒体技术进行实践和案例的讲解,增加理论与实践之间的结合。

3.4 加强实践教学,提高JAVA知识综合运用能力

JAVA程序设计是一门应用为目标的教学,要求学生具有很强的实践动手能力,当前高校的JAVA课程教学,应该在讲解代码、编程调试等基础知识外,还应该加强上机实践的相关内容。可以探索校企结合的教学模式,让学生在企业实际JAVA研发项目的参与中体会需求分析、设计、编写代码和进行测试等各个环节,增加学生的软件开发实践经验和培养专业的职业素质。

3.5 提高教师的专业素质

JAVA知识需要在不断的实践开发项目中进行提升和锻炼,这是当前教学老师所缺乏的。应该尝试建立老师的继续深造和培训实践制度,如定期参加合作单位的企业JAVA开发项目,获得实践经验和与一线开发人员进行交;参加JAVA程序培训班;对老师的入职考核加大力度,对JAVA的自主开发创新能力进行严格要求。

4 结语

JAVA语言是计算机软件和网络编程的重要语言之一,本文结合实际的教学经验对当前JAVA的教学现状进行了分析,并且提出了改变教学方法、合理设计教学内容和增强实践运用等方面的建议,以期促进JAVA教学事业的发展。

参考文献

[1] 耿祥义,张跃平.Java2实用教程[M].3版.北京:清华大学出版社,2006.

java程序员实习第7篇

关键词:JAVA程序设计 教学 改革

中图分类号:G642 文献标识码:C DOI:10.3969/j.issn.1672-8181.2013.16.020

随着社会的高速发展、科技的飞速进步,计算机越来越成为一门必会的工具,很多学校计算机专业学生已经开始按照不同的方向因材施教,比如分为.NET方向、JAVA方向、嵌入式开发方向、网络方向;由于JAVA的广泛使用、简洁易学,很多计算机专业的学生选择JAVA作为自己的方向,重点学习JAVA相关的语言、技术,期望以后谋得一个好的职位,有一个好的发展,这给相关课程的教师提出了较高的要求,身正为范、学高为师,在学生的关键、渴望知识的时期,我们作为高校教师,应该担负起责任,为JAVA课程的发展做出贡献。笔者结合近些年JAVA课程的教学经验,认为要从以下几方面来进行JAVA程序设计的教学改革。

1 跟上软件发展的脚步,制定教学大纲

教育的目的是为了培养合格的、符合社会需求的毕业生,这应该成为设置教学大纲的初衷;现在社会上的公司、单位对JAVA开发人员的需求量比较大,同时对JAVA中的一些热点技术,比如Hibernate、Struts、Spring等框架有较高的要求;那么,学校里的教学大纲就要考虑到这种需求,否则就是闭门造车。

大纲需要充分考虑到JAVA语言自身的特点,突出JAVA独有的特色,比如JAVA不同于C的地方在于JAVA没有指针的概念;JAVA不同于C++的地方在于JAVA没有指针的概念、而且JAVA是纯粹的面向对象的语言;JAVA不同于.NET的地方在于JAVA跨平台;应该根据这些特点来制定JAVA程序设计的教学大纲,突出JAVA特点,才能够在接下去的教学中更好地实施。

JAVA程序设计可以作为计算机技术的基础课,也可以作为更深入的技术课程。借助JAVA的学习,学生应该掌握面向对象程序设计的方法,以JAVA为基础,来培养学生的严谨的程序设计思想、较强的编程能力和灵活的思维方式;在制定大纲时,也可以考虑国内国际流行的编程大赛的内容,比如每年的ACM大赛,大纲中可以预留几节课,讲这方面的知识和题目。

2 保证上课课时

JAVA的学习不是一蹴而就的,需要一定时间的付出。据笔者了解,有些学校出于学时有限的考虑,压缩了JAVA课程的上课时间,导致教师讲得匆忙、学生听得糊涂,没有达到应有的效果;所以笔者建议,JAVA的学时不应该少于70学时;这样JAVA能有一个比较好的基础,方便以后的JSP、Servlet、SSH的学习;而且应该在大二的上学期开设JAVA课程,怎样可以让学生接下来有有更多时间去学习更深入的课程。

3 使学生也参与教学

笔者上课时,对某些章节,在上课时,笔者找一些学生,进行角色互换;让学生上课讲课,笔者坐在下面听课;这种方式起到了一定的效果,一定程度上提高了学生的积极性;不过也遇到一些学生消极对待、被动参与;所以,这种方法,只能作为一种辅助手段,不能作为主要教学改革的方法。

4 强化课程的实战内容

JAVA课程特别强调实战,教师可以设计一些比较切合实际的小项目,最好含有完整的流程,把学生分为若干个小组,每组独立完成任务,每组内人员有适当的分工和定位,协作完成整体任务。这样不仅可以让学生深入理解开发流程、开发技巧、熟悉JAVA语言,而且使学生熟悉团队开发的方式,是很有好处的。但是需要注意:应该防止在一个组内,学习好的学生做得过多、学习差的学生做得过少的情况,这需要教师严格要求,每当项目结束时,应该对每一个学生仔细询问,让其讲解所做内容,看看能否完整严密的表达出来,以此来判断是否存在舞弊的行为,如果答非所问,就要求这些学生重新做一次,直到合格为止。需要注意的是:实战内容应该紧密联系当前社会中的应用实际,不能相脱节;而且尽量选取学生较熟悉的题目,让学生尽快进入角色。

5 建立兴趣小组

教师可以发掘对JAVA课程感兴趣的学生,组成学习兴趣小组,给他们开小灶,多补充更先进、更深入的知识和技能,并定期召开小组内的讨论和交流会,使每一个有兴趣的同学都可以加入进来,学到更多更广泛的知识;这样也会影响到更多的同学加入进来,对提高同学们的JAVA学习热情很有裨益。这种方法,笔者用于教学中,取得了较好的效果,笔者在大二JAVA教学中建立了兴趣小组,吸引了一部分大一的同学参与进来,而且参加兴趣小组的大部分同学,从大二到大四,一直坚持不懈学习JAVA,很多同学毕业后靠过硬的JAVA技术找到了满意的工作;实践证明,这种合适的引导起到的作用是巨大的。

6 改进考核方式

以往的考核方式片面注重对知识的记忆,忽视了计算机中的动手能力的考核;这使得单纯依靠死记硬背的学生虽然可以得到高分,后果是在实际动手能力方面则难尽人意。这种考核方式对教学质量整体的提高是一个很大的障碍,需要采取新的考核方式予以解决。比如可以采用笔试加机试的方式,既有纸质试卷,又要有上机做的题目,综合考核学生。现在有的学校采用了类似计算机二级考试的JAVA语言作为期末考题,比较贴近等级考试,还可以让学生熟悉等级考试的题目形式。这种方法很值得借鉴,可以激发学生的兴趣,因而受到一些学生的欢迎。

java程序员实习第8篇

关键词:实验模式 面向对象 实施模式 多语种教学模式

文章编号:1672-5913(2011)18-0078-03 中图分类号:G642 文献标识码:A

教学语言必须是工业界的主流语言,否则学生学非所用。迅速地开发具有实际用途的程序,有助于激发和保持学生的兴趣。目前,国内外很多高校已经将Java列为教学语言。然而,面对Java日益庞大的体系结构以及Java技术的飞速发展,如何在有限的学时内有效地开展教学很值得研究。

为了提高学生利用Java解决实际问题的能力和在就业市场中的竞争力,我们利用5年时间,在精心研究国内外Java程序设计课程实验的教学模式的前提下,结合新疆地区汉族、民族和民考汉学生的实际情况,总结出了一套比较适合于不同层次、不同民族学生的Java实验教学模式,并将其逐步应用于不同班级的实验教学中,获得了可喜的研究成果。

我们的主要研究成果为撑托Java实践教学各个环节的一整套实验教学材料:Java语言程序设计实验指导书(验证性+设计性);Java实验教学大纲(验证性、设计性);Java语言程序设计习题集;期末上机测试编程题目;民汉双语实验教学网站。指导教材的内容设置以逐步培养学生解决一般问题的能力为前提,以提高学生解决综合问题的能力为最终目的。

1 研究的基本内容

1.1 认真编排实验内容

考虑到我院是在大四第一学期开设Java课,如

何编排实验内容值得研究。先做基础实验,是一种循序渐进的方式,但比较老套,学生在已经具备其他语言学习经历的前提下,比较容易失去学习动力。先编图形用户界面的程序的做法从GUI和applet开始,似乎能够引起学生的兴趣,但这需要学生具备牢固的面向对象程序设计方面的知识,并要求学生对Java事件处理模式有很好的理解,所以学生可能不太容易完全接受。必须有针对性地选择实验内容,对Java的基础知识和高级应用有一个折中处理是我们编排指导书时的一个出发点。一方面,使得学生能够掌握必要的基础知识,为以后的进一步学习打下扎实的基础;另一方面,由于其涉及部分高级知识,为开发实用程序提供可能。

指导书包含了大量的图示主要用于说明程序输出结果,学生可以通过这些图示,更充分理解实验目的。本书还包含了大量的表格主要用于说明每次实验中要用到的类以及消息功能,主要用于解决教材书中这方面的不足以及指引学生尽早入门,少走弯路。

从第1个实验开始就让学生接触到了类和对象的概念[1]。实验中将类和对象的实验移到前面的目的:使学生最初就能够思考类和对象,弄清类和对象的实质区别,有助于更彻底的掌握类和对象的概念。从第一个实验到第四个实验学生学习的是Java集成开发环境自身提供的类的使用方法。其中,实验1至实验4主要涉及到学生必须掌握的Java基础知识。通过实验,学生可以掌握Java应用程序与小应用程序在结构和运行方式上的区别;学习并掌握系统自身提供的常用类及消息的功能以及其使用方法;基本控制流语句的掌握;基本绘图方法的掌握。为后面的实验打基础,前面的4个实验中用到图形类(Graphics)、栈类(Stack类)、字符串类(String类)、日期类(Date类)和键盘输入类(Scanner类),以及基本的流程控制语句。学生掌握如何定义现有类的对象并使用其提供的API后,从第5个实验开始就可以编写自定义类了,并在后续的实验中继续使用这些自定义类,完成更复杂的功能。

实验内容的编排遵循了由浅入深、循序渐进、由简到繁的原则,符合学生学习心理承受力。通过编排内容连贯的实验和有趣的绘图实验,学生可以掌握比较难于掌握的Java的自定义类,类的实例对象、类的重用性等重要概念。如:从实验5开始,通过编排内容连贯有趣的绘图实验,要求学生从编写可绘制窗户、门、房子等自定义类开始,要求学生利用类的代码重用性,让学生定义窗户类,门类的多个实例对象来构造有多个窗户和门的一栋房子以及绘制位置不同的几栋房子。让学生在实验中切身体会一个复杂的对象其实是由很多独立的小对象堆砌出来的道理。在后续的实验中通过让门、窗户和房子类继承同一个抽象类的方式,让学生在程序设计的过程中切身体会多态、抽象性等很重要但比较难理解的概念。这些概念的正确利用往往使得程序更接近于面向对象程序设计风格和理念。通过实验7学生可以掌握Java的事件处理机制、图形用户界面的设计、多种布局管理器的使用,并为实验8做准备。在实验8中通过增加按钮组件,要求学生实现通过按钮绘制房体,门和窗户的程序,让学生更加深入学习Java的事件处理机制、图形用户界面的设计、布局管理器的使用以及向量Vector类的使用。通过实验9和实验10掌握从文本文件加载数据――加工处理――输出到文本文件的方法和步骤。进一步说,通过实验9和10学生可以掌握从文本文件加载数据到Vector或数组等临时储存空间,然后经过加工处理后将结果输出到文本文件的方法和技术。

1.2 重视编程技巧与风格的培养

掌握标准的设计模式,可以避免重复设计或尽可能少做重复设计,极大地提高软件的可复用性和灵活性,从而大大提高软件开发效率。考虑到大部分学生基础不牢,对面向对象的程序设计的理解薄弱,处理细节和矛盾的能力不足,缺少自主分析问题、解决问题的知识、能力和经验,因此在Java实践教学中通过提供程序框架,让学生填补实现代码的方法。程序框架中提供相应类和各个类中接口的定义和各个接口应具备的功能说明,使得学生从用户的角度对要实现的项目产生直观的认识,再让学生自己完成具体实现。这种让学生先当用户,体会用户的需求,然后再当设计者的方案不仅培养了学生独立解决问题的能力,也使其学习了Java框架中优秀的编程技巧与风格。

1.3 设计大作业,强化实践环节

在课程后期,学生有了一定的Java编程基础,欠缺的主要是实际的开发经验和全面系统、深入的应用所掌握的Java技术。解决的方法就是通过真实项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,尽快达到实际要求。

在设计性实验中有在线购物网站、图书管理系统、桌面纸牌游戏和网络魔方游戏。考虑到大部分民汉学生对项目的规划和设计还比较生疏,为了灌输面向对象程序设计的核心思想及正确的编程方法,采取了“老师提供系统框架,学生填补实现代码”的科学的实事求是的编程方法,使得学生在做大作业时能够在有限的10个学时内,按时完成课程设计任务并掌握面向对象的程序设计的基本理念。在设计性实验中,为了使得学生充分了解自己的进展,我们规定了每一个学时中应完成的内容,并且不厌其烦地把每一个大作业都分成了几大类,给出了各个类中应该实现的方法,并且用伪代码(汉语)为每个类以及其中的方法的功能进行了详细的阐述,要求学生编写相应代码。这种做法在现存的Java实验指导书中是少见的,但较符合我院学生的现状,也较值得推广。

1.4 推进评价环节的改革

一门课程的教学效果决定了该门课程的成功与否。除了对教学环节和实践环节的充分重视,评价环节亦会显著地影响教学效果。学生的评价主要由五部分构成:上机实验成绩+课程设计成绩+期末上机编程测试成绩+上机考勤+期末笔试成绩。这种通过不同环节评价学生的方式,能够督促学生重视并参与所有教学过程。更加客观地反映出学生的学习效果,对学生的评价也更加科学。

期末上机测试时为防止学生之间相互抄袭,测试题目尽量做到让每个学生完成不同的题目。这种测试方法尽管使得老师出题目比较辛苦,但可以确保对每个学生的真实水平给出正确评价。期末上机测试编程题目要求中给出了程序的框架以及运行结果图表和详尽的要求说明,题目的编排尽量让学生将平时所学知识充分挖掘出来,发挥其真实的编程水平。

1.5 形成完整的实验教学辅助环节

为了使学生能够尽快完成实验内容,完成了民汉实验教学网站建设,实验教学网站的内容丰富、操作方便,把工作重点放到了网站内容的建设上。网站中集成了与Java课程教学、实验教学有关的所有资料。包括每一个实验的标准源代码,学生可以在后期的实验中看到前期实验的代码,并从中找出自己的不足,逐步积累编程经验,还提供了很多的超链接,使学生能够很快找到常用类及其消息的格式和功能说明(对指导书中类的拓展),可以成为学生学习、巩固和拓展Java常用类及其方法的得力助手。我们还将每个实验的字节码文件嵌入到网站中,让学生直接观察实验结果,通过对实验结果的动态操作,使得学生从感性上更明确实验目的和实验要求,引发学生编程兴趣。

2 实验成果

2.1 填充式实验模式

在设计性实验中,考虑到大部分学生对面向对象程序设计方法比较生疏,为了使学生尽快掌握面向对象程序设计的核心思想及正确的编程方法,采取了“老师提供系统框架,学生填补实现代码”的科学的实事求是的编程方法。这一实验模式在现有的Java指导书中很少见,实践证明该方法可以使学生尽早上路,少走弯路,轻松地掌握面向对象的程序设计的基本编程规范,并保证按时完成课程设计任务。

2.2 培养团队合作精神

软件开发是一个团队协作[2]、共同设计的过程。在设计性实验的实施过程中,为了培养学生的团队合作精神,根据设计题目的要求,把学生分成组,根据

自己的兴趣和特长进行分工,在完成所选择设计题目的同时,学会团队成员的协作。

在设计性实验的实施过程中,我们为了培养学生的团队合作精神,要求学生根据自己的兴趣和爱好自由选择设计题目[3]。一般情况下,每个班级会分成4个项目小组。然后根据学生平时实验成绩指定4个项目组长来组织和管理各个项目小组。组长主要承担小组人员的任务分配、组织组员进行讨论以及最后要提交的系统的测试和集成任务。开发过程中学生遇到问题时,由组长组织组员进行讨论,大家共同解决设计中遇到的种种问题,实在解决不了的方可要求指导老师的帮助。由于每组设计性实验的框架和每个类中要实现的API接口和系统的测试要求在指导书中说明的都很清楚,可以确保每个同学都可以分到不同的设计任务,并且对所要完成的任务在一开始就基本清楚。看着学生在设计性实验的设计阶段中所付出的努力和在系统测试成功时如获至宝的喜悦,心中总是为他们感到无比骄傲和自豪。分组实验也可以带动编程能力不太强的同学,因为在他们遇到困难时团队队员之间的相互帮助和鼓励,给予他们力量和完成任务的信心。

2.3 用多语言进行教学

针对不同学生需求,采用多语言进行教学,在他们掌握Java的同时,培养汉语言学生使用外文资料的能力,提高民族学生通过汉语能够较深层次地真正理解比较抽象的概念,又在恰当时机采用维语对难以理解的专业概念进行解释。

3 应用及总结

Java语言程序设计性实验指导书从2005年启用到2011年全面推行以来,学生虽然感到有难度,但通过指导老师的精心指导,大部分同学顺利完成了实验任务,并普遍表示从中学到了很多编程经验与编程思想。该Java实验指导书将会继续应用于以后的Java实验教学当中。Java语言程序设计习题集已成为学生进行考前复习的必备材料。Java语言程序设计测试题目已用于每学期的实验测试中,虽然测试题目有一定的难度,但学生普遍反映这些题目一定程度的训练了他们的逻辑思维能力和编程能力。Java语言教学网站到学院局域网供学生上机时使用,每堂课每个学生的平均点击率不下5次。2008年验收成果时,评审专家们对指导书给予了充分肯定和高度评价。下一步计划正式出版该书,Java实验教学网站也将会到教务处提供的网络教学综合平台供学生使用,我们还打算申请校级精品课程进一步充实和完善Java实验教学材料和实验网站的建设。

总之,教师要按照本课程的实际教学特点,实验中注重学生能力的培养、而不是简单的知识记忆,精心组织教学每个环节。实践证明这种设计性实验的教学方式受到了学生的欢迎和支持。

参考文献:

[1] 王逢州. Java语言程序设计的教学研究与改革[J]. 电脑知识与技术,2010,6(35):10072-10074.

[2] 汤志忠. 清华“计算机专业实践”课程的创新与实践[J]. 计算机教育,2006(7):7-9.

[3] 李颖. Java程序设计语言教学改革的探索与实践[J]. 中国新技术新产品,2010(1):238.

Research on the Application of Java Experimental Teaching Mode

Minawaer•NULAHEMAITI, Mayila•BIEKEQIANGTAYIWA

(Computing and Information Engineering Institute, Xinjiang Agricultural University, Urumqi 830052, China)