java程序员的快乐与烦恼

2024-05-13

java程序员的快乐与烦恼(共9篇)

篇1:java程序员的快乐与烦恼

java程序员的快乐与烦恼

来源:扣丁学堂

现在学习java的人在不断增加,因此java程序员的大军在不断的扩大。身为java程序员的你,是否总是觉得工作特别的枯燥、乏味、无聊?面对成堆的代码后,头脑开发犯困,表情开始僵硬?

如果是这样,简直就是一种折磨,它甚至和你原先所想象的不一样,java程序员本来应该是精力充沛,激情四溢的,幻想着能够去创造去驾驭所有的东西。

归根结底是因为我们对工作失去了兴趣,因为我们越来越发现,情况已经超出我们的控制范围了。

为什么程序昨天还运行得好好的,一觉醒来后就不能正常工作了;

为什么项目到了后期总是能给我们留下一份刻骨铭心的回忆;

为什么在集成测试的时候我们总是担心受怕,总觉得会发生什么问题似的。

而事实上问题确实经常如期而至。

下面扣丁学堂java视频教程讲师总结列举一些解决问题的观点,希望和大家一起来讨论一下:

1、把握需求

尽可能多地去了解需求挖掘需求,对于不懂的业务知识花时间去学习,这在开发阶段会避免你做错事,给你节省很多宝贵的时间。

2、了解整体架构

或许你并不是架构师也不是项目经理,而只是一个 coder,你的工作仅仅是去实现系统中某个模块的功能,但我也建议你尽可能地去了解系统的整体架构,了解其它人都在做些什么。

3、团队交流

只有互相交流你们才是一个团队而不是几个人拼凑在一起,任何问题都可以拿出来交流,并且互相帮助跟互相学习。我想这比一个人整天闷着头写代码感觉要好得多。

4、基础决定高度

对于基础知识,我们应该花更多的时间来学习,因为没有什么比基础更能长远地让你受益的了,如果你是做 Web 开发,HTML、CSS、JavaScript 一样要熟悉,在你的眼里应该只有他们而没有服务器控件。

5、编程思想

语言是你手中的剑,语法是招式,而思想则是内功,只有内功达到一定的深度,你才能最大程度地发挥武功的威力,而且这时候再去学习另一个门武功将显得容易许多。

6、设计模式

深刻理解面向对象的设计原则和设计模式可以让你的代码更加具有魅力,看总这样的代码你总能心情愉快,实际上看着自己的程序因为需求的改变但却没有影响到程序原本的设计或者仅需要写一小段代码就实现了一个新功能的扩展是非常有成就感的一件事。

7、重构

学会欣赏你的代码,他们是你花心思写出来的,你不能放着糟糕的代码却视而不见,而且还安慰自己说,“只要它能工作,就不要去动它”,及时地重构每一行有臭味的代码,这将会给你带来无尽的快乐。

8、单元测试

尽可能地给你的方法写单元测试,它可以让你对你的代码更有信心,这样你才能对你的代码更有把握,你也会更加快乐。

9、不要把问题留到明天

如果已经下班了问题却还没有解决怎么办?加班吧,既使是没有加班费,问题不应该被累积,要不总有一天它会成为你的恶梦,把问题全部解决了再回家,你可以安稳地睡个好觉。

10、学习英语

程序员应该学习好英语,它可以帮助你看懂英语文献跟文档,可以让你在论坛上跟全世界的人一起讨论问题,它也可以帮助你写程序的时候取一个有意义的类名,变量名或方法名,如果你们公司需要跟老外打交道,升官发财的机会也就全靠它了。

工作的时候我们努力地工作,玩的时候我们也要疯狂地玩。好了 内容就分享到这里,感谢大家阅读由扣丁学堂java视频教程讲师分享的“java程序员的快乐与烦恼”希望对大家有所帮助,更多精彩内容请关注扣丁学堂官网。

篇2:java程序员的快乐与烦恼

B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器安装Oracle、Sybase、InFORMix或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。浏览器通过Web Server 同数据库进行数据交互。

C/S 与 B/S 区别:

1.硬件环境不同:

C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例与电话上网, 租用设备.信息自己管理.有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行

2.对安全要求不同

C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强.一般高度机密的信息系统采用C/S 结构适宜.可以通过B/S发布部分可公开信息.B/S 建立在广域网之上, 对安全的控制能力相对弱, 可能面向不可知的用户。

3.对程序架构不同

C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上.比C/S有更高的要求 B/S结构的程序架构是发展的趋势, 从MS的.Net系列的BizTalk 2000 Exchange

2000等, 全面支持网络的构件搭建的系统.SUN 和IBM推的JavaBean 构件技术等,使 B/S更加成熟.4.软件重用不同

C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好.B/S 对的多重结构,要求构件相对独立的功能.能够相对较好的重用.就入买来的餐桌可以再利用,而不是做在墙上的石头桌子

5.系统维护不同

C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级.升级难.可能是再做一个全新的系统

B/S 构件组成,方面构件个别的更换,实现系统的无缝升级.系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.6.处理问题不同

C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关.应该都是相同的系统

B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的.与操作系统平台关系最小.7.用户接口不同

C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高

B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流.并且大部分难度减低,减低开发成本.8.信息流不同

C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低

篇3:java程序员的快乐与烦恼

关键词:Java,程序优化,数据,竞争检测

引言

在互联网平台建立方式中,要实现应用程序的跨平台要求,就要利用Java语言对编程进行解释,从而实现重要的应用手段。Java编程语言在使用形式上一直具有较高的使用率,随着Java应用范围的不断扩大,提升该程序的性能方式成为主要的研究领域,特别是对程序语言在错误发出形式上实施检测的优化方式。

1静态与动态优化

1.1 Java的即时编译优化

JIT技术的出现,提升了Java程序的性能,改变了人们对Java程序性能差的想法。在这种动态编译执行下,Java程序的优化工作主要体现在两方面。根据字节离线中的优化形式、JIT技术的优化运行,为了保护Java中字节码在平台中的无关性,就要对Java中产生的字节码空间进行优化。但为了保护Java字节间与平台产生的无关性,在有限空间表现形式上,就要提升性能速度。因为Java在动态语言上具有较大特性,所以说,Java程序的实现主要在JIT技术运行下进行优化的。因为JIT技术在编译策略中能够实现选择性编译,能够对部分代码实施动态性优化,根据整个程序之间的路径代码重新选择,然后实现动态性的权衡方式;能够实现反馈优化,利用插桩中的相关信息进行优化、指导,在函数内联、对代码进行布局、对指令进行调度等多种技术进行优化,从而保证JIT编译器的级别优化。

1.2 Java的静态编译优化

与及时编译相比,静态编译对时间没有较大影响,利用计算资源能够实现较大丰富性。所以在进行程序的分析与优化期间,就要对性能产生的效益进行优化。在比较高的性能计算应用中,与静态编译具有较大关系,在优化过程中,不仅能体现更大的展开空间,实现多种过程的分析程度,还能提升程序化的性能水平。对于Java静态编译器来说,它不支持动态性的载入方式,在优化期间能对所有对象进行。静态编译器在表现形式上具有多种优势[1]。静态编译器能生成可执行文件,方便程序的调试过程。特别是编译器在自身上出现错误时,利用JVM来调试更加困难。静态编译器产生的执行文件能对Java程序中相关的知识产权进行保护,特别是字节码容易被翻译。静态编辑器在运行之前,能对程序成分利用并优化,例如在开销比较大的过程中进行优化,由于JIT对编译时间比较敏感,所以最简单的优化方式要利用轻量级来进行。保证编译在开销、性能效益之间的平衡性,从而实现合理的优化形式。静态编译器在Java程序中启动的时间比较快。可执行文件占用的时间也比较小,由于JVM有很多功能模块,本身具有较大内存,所以在资源储存形式上,就要在嵌入式系统中实现较大的竞争优势。它能对Java程序中程序在分析以及检测上实现更大的安全性,能够体现静态编译器的扩展性和有效性。

2 Java的特性优化

2.1虚函数调用恢复

在Java程序语言中,抽象是它发展中的一种主要特性,它能对运行期间的对象产生的动态性进行调用并选择。虚函数的使用增加了程序编写的方便性,但增加了编译器在分析上的难度。虚函数能对同一类成员函数进行重载等。如果一个基类指针、引用在一个对象中继承时,就要调用继承类中的函数版本。对Java虚函数进行调用分析期间,首先,对虚函数中的调用信息进行识别,由于Java不能进行指针操作,所以就不能进行指针调用,在虚函数调用方式上就要利用间接性的虚函数进行调用。然后根据编译过程中存在的类型表分析对象的初始化状态。为了在分析中实现更大的准确性,就要在各个阶段中构建相关的层次关系,根据在编译过程中产生的类型表,找出具有的继承关系,并根据继承关系中的相关信息建立一个完整的数据结构进行保存[2]。在处理期间,调用点是虚函数发挥调用方式利用的,当一个初始化类型中没有一个子类,该函数在调用期间,就要很据保守解析策略进行分析。如果在这种类型表现形式上判断出该对象为实际类型,首先应根据对象确定出一定的初始化类型,然后根据相关函数进行调用。将已经调用的函数直接利用,并实施更新形式。

2.2 冗余同步删除

Java能够实现语言的多种线程支持方式,程序员能够利用Java中已经提供的同步结构、原语对共享的数据进行安全操作等形式。但由于线程环境比较复杂,程序员为了保证编程的方便性,就会利用保守机制来实现同步操作,从而增加了大量的冗余同步操作。所以在这种操作方式中,为了删除线程中冗余的同步现象,提高程序在运行期间的性能,就要利用优化技术来实现。首先,对逃逸进行分析,它主要对每个对象中产生的逃逸状态进行分析。对于线程级的逃逸对象来说,它只对线程级的对象进行同步操作,其他对象执行冗余操作。但尽管其他线程在操作中没有被编写,但也能存在冗余同步现象,所以在分析转化过程中,就会对程序中的被同步对象的逃逸状态进行分析。在逃逸分析中,在实现方式中主要体现在两方面。一种是过程内分析,它能对每个函数中的语句进行分析,并记录对象中存在的逃逸信息。它是单个过程的分析形式,在每个过程中生成一个连接图,然后对连接图中的节点属性进行分析,从而对每个节点中的逃逸信息进行分析。一种是过程间分析,它主要利用调用图对函数的调用关系进行识别,从而分析出各个对象中的存在的逃逸信息。

2.3 对象内联

面向对象特性提高了Java中的编程效率和程序的复用性。但一个完整的应用程序在分解方式上形成了多个小类,并降低程序在运行期间的性能。在运行期间,分配出的大小对象在相互引用中不仅增加了对象区域的访问形式,在内存分散形式上,相关的小对象也降低了在程序出现中的局部性[3]。对象内联方式的优化主要将相关的对相进行分配,然后在连续的内存空间中提高缓存的布局性,并利用相关地址计算出对象区域中访问次数。首先,利用程序中全局调用图,统计出对象域的基本属性,然后根据对象中的基本属性,识别出对象能够优化的保存区域,最后,对对象实现合并分配并进行相关区域的载入处理。在载入处理过程中,一般是利用载入折叠方式来实现的,需要对各个区域进行访问。当访问子对象区域期间,就要利用父对象中的首地址、偏移量进行计算,从而保证两个区域在载入、操作等形式上的合并以及操作等。

3 动态数据竞争检测

3.1 动态数据竞争检测技术

动态数据竞争检测是利用变量的获取、准确的消息,对访问、共享中发生的关系和信息在执行方式中实现路径中数据竞争错误。在检测策略中主要有三种方式。首先,对于锁集合检测技术来说,它主要将所有的共享内存消息进行锁定,当两个线程访问一个内存位置期间,在这种操作形式中并没有产生公共锁,在这种情况中说明两个访问事件存在的数据竞争是错误的。所以在这种访问期间,如果多个线程访问同一个共享位置,在访问期间就要获得同一个锁,尽管在多个线程上进行访问,也不会存在错误的数据竞争现象。为了减少检测存在的失误,就要对内存分为四个组成部分,设定内存访问位置集合、线程集合以及锁集合,根据每个、访问类型的不同进行读写操作。对于Happens-before的数据竞争检测,它主要在分布式系统中形成建立的,该工具在运行上主要体现在两方面,一种是对插桩代码中的相关指令、同步原语进行执行,一种是对全部的访问对象在原始数据信息中进行记录、维护,从而提高数据竞争的检测性能。

3.2 三层粒度的数据竞争检测

在Java中,对于模型对象来说创造了更大的严格性[4]。只能对引用对象中的数据进行修改,首先为对象创建一个线程,在开始创建中就只能对创建的线程进行访问,如果该对象被引用到其他线程对象上去,引用的对象就从局部现象变为全局现象。如果访问了全局对象,就会导致数据竞争错误,所以在这种方式中就要对全局对象进行访问并监控。三层检测粒度不仅能对相关的区域对象进行检测,还能对所有对象中的数据进行检测。当一个对象从局部转变全局对象期间,检测器在这些全局对象中就会建设一定关系,然后将相关节点作为监控对象,如果对象局部的,就不需要进行处理;如果对象已经被监视,检测器就会通过读取等操作对潜在的数据竞争错误进行检测,如果发生错误提示信息,就要更改已经读取的历史信息;如果对象没有被监控,检测器就要为对象的拥有者进行监控,如果已经被监控,就要进行读取操作。

3.3 实现

首先, 对向量时钟的实现方式, 它主要能够维护Happens-before关系信息的中的数据结构。当同步指令在操作起价,向量时钟就会走动。在实现方式上一般是利用数组来完成的,因为每个数组都代表一个程序中的线程,所以在线程中,大量的冗余元素都要进行一定的内存开销。在竞争检测器中,为了能对全局对象中的元数据进行访问,对象数据结构被修改,就要对修改后的对象进行布局。对于垃圾回收模块,它能够保证程序员在修改形式上由于失误造成内存泄露等现象。垃圾收集器会在某个时间段内对运行空间中的垃圾进行处理,从而达到释放空间的目的[5]。利用技术GC在程序中实现执行方式,对实时程序的实现具有重要意义。对于追踪式垃圾收集算法,它能够保障计数算法的不足现象。对于分代式垃圾收集算法,由于年强垃圾存在比较频繁,所以主要减少年轻垃圾的收集次数。对于对象拥有关系树,当一个对象从局部变为全局发展期间,会产生相关节点,竞争检测器会将这些节点作为全局状态,从而对这些对象进行构建、回收等形式。

3.4 性能测试

竞争检测器的测试数据,主要根据在运行期间的性能、检测精度来实现的,并能根据其他检测器进行比较分析。首先,对于运行性能的测试,在测试期间,每个程序的运行都要保证五遍,除去最大值和最小值,最后根据三次时间求出平均值。如果性能退化,表示每个检测粒度在运行期间会产生较大比率,出现的比率数越大,说明数据竞争检测器运行的性能就会比较差。主要由于数据竞争检测器中产生的插桩代码比较小,所以为了提高数据竞争器的性能,就要在时间消耗、访问内存信息中进行维护、处理。对于检测精度来说,它主要能为数据竞争检测器提供良好的检测依据。对于在对象层产生的粒度进行检测,由于竞争错误报告主要在对象层上,其他粒度的数据竞争检测都会出现在区域层来报告数据是否错误。

结论

Java程序语言在不同平台发展中都得到有效利用,能够利用第一语言实现多线程的语言支持。随着多核处理器的不断发展和普及,要实现Java程序的优化和相关数据竞争的检测,就要对相关问题进行探讨,不仅要研究静态技术在编译上的优化,还要提高数据在竞争检测工具的应用性,从而实现技术领域的不断创新和发展。

参考文献

[1]宋东海,陈二虎.一种基于调用链的Java程序数据竞争静态检测算法[J].舰船电子工程,2013,12:53-57.

[2]宋东海,贲可荣,张志祥.一种基于类的Java多线程程序数据竞争静态检测算法[J].计算机工程与科学,2014,02:233-237.

[3]张昱,郝允允.Java程序数据竞争的增量式检测[J].西安交通大学学报,2009,08:22-27+58.

[4]杨哲慜.Java语言的程序漏洞检测与诊断技术[D].复旦大学,2012.

篇4:java程序员的快乐与烦恼

[关键词] 程序设计 案例教学 任务驱动 项目导向

引言

Java语言是20 世纪90 年代初由sun 公司推出的一种纯面向对象的编程语言,随着互联网和移动设施的发展,由于它的可移植性跨平台性等优点,在基于网络编程开发中应用广泛,其得到了迅猛的发展。“Java程序设计”是高职高专院校计算机相关专业开设相当普遍的一门学科基础课,各高校都非常重视这门课的教学,作为高校教师必须深入研究这门课的教学规律,提高教学质量。该门课程的教学目标不仅是使学生通过程序设计语言的学习,全面地掌握面向对象程序设计的基本知识与基本操作技能,为学生学习后继课程打下扎实的基础; 同时,它还是培养学生思维能力和实践能力的重要环节。因此,在该课程的教学中,必须更新观念,开拓教改新路,重视学生思维和实践能力的培养。

我院从2003年起面向计算机应用技术和计算机网络技术专业的学生开设了Java程序设计课程,本人一直担任该课程教学工作,围绕着课程内容与结构、教学方法与手段、课程考核等进行全方位的教学改革研究与探索,本文将从Java课程的理论课教学、上机实验课教学以及实训课教学等方面展开阐述。

Java语言教学存在的问题

在Java 程序设计这门课程日常的教学中,通过无数次与学生的交流、沟通,以及与同事之间的相互交流中,作者发现该门课程在实际教学中主要存在以下几个方面的问题:

1.传统教学模式使学生觉得这门课既“苦”又“枯”

传统的教学模式是,“提出概念—解释概念—举例说明”。课程一开始要引进程序设计的思想和大量的新概念,再加上教学方式为“填鸭式”,学生的注意力都被引导在具体的语法细节上,却忽略了解决问题的总体思想,使学生感觉学习这门课既“苦”又“枯”。“苦”的是要学的东西多,学习是被动接受,不会学以致用;“枯”的是学生刚开始时对学这门课感兴趣,但学着学着就没有兴趣了。程序设计本身就比较枯燥, 对于理解能力和自控力相对较弱专科类学生更是如此。

2.教学方法尚有待改进,学生学习兴趣没有得到良好激发

各高校计算机及其相关专业通常在C 程序课程后开设Java课程,教师在讲授过程中仍然使用面向过程的语言的教学方法,学生也习惯于面向过程语言的学习方法,将教学过程和学习重点放在了语法和算法上,忽略了Java 面向对象的编程思路的理解。再加上大部分教师的教学方式还是以教师讲授为主,学生被动接受,课堂气氛沉闷、极其缺乏互动性。教师的讲授大多还是按照现有教材结构,常规的顺序式、灌输式教学,对课堂上引入的程序案例不能精心筛选或者适当修改,使得其缺乏实用性和趣味性,不能吸引学生学习的“注意力”。这种教学方法不利于培养学生解决综合问题与实际应用问题的能力,更不利于启发学生的思维与激发学生的学习兴趣。常常是很多学生上课非常认真,基本的原理和理论也能听懂,但是一遇到实际问题就解决不了。

3.实践环节较为薄弱,实验教学重验证、轻设计,实验效果不佳

多数教师一般严格按照教学大纲和教材组织教学,学生的学习只限于书本上的练习。实验教学的内容多以执行和验证程序为主,以消化课堂理论讲授内容为目的。大部分学生上机实验只是将实验教程上的实例程序输入计算机,遇到问题查阅资料,很少靠自己思考解决。整个实验过程学生就如在练习打字,一旦题目稍有变化便不知如何设计,遇到实际问题更不知如何解决。而且学生没有参与过完整的项目开发,不能把所学的知识贯穿在一起,不能建立起整体的编程思想,达不到软件业对软件人才的要求。

4.考核方式单一,学生受应试教育思想的影响,学习目的狭隘

过去考核方式基本上是以学期结束的笔试为主,考核是知识而不是能力,而且是一纸定结果。很多学生学习Java 仅仅倾向于应试而淡化实际应用与开发,这也导致学生在学习过程中只是一味模仿课本上的实例,知识点零散,对系统开发认识模糊,不能形成软件开发的整体概念。

5.课程结束后,学生只会做一些孤立的小程序

传统的语言教学往往比较注重Java 语言基本语法的讲解,所举编程实例也只是简单地用来验证语法规则,只是“就事论事”的进行教学,致使大多数学生在学习过程中“知其然而不知其所以然”,对Java 程序设计的掌握也仅仅停留在语言使用层面上,不能吃透、用活所学知识,造成学生学完这门课程后仅会孤立地做一些简单的小程序、小例题,而在开发应用软件时设计能力差,无法实现培养学生编程能力的教学目的。

课程教学改革的实施过程

“Java程序设计”课程的教学环节主要包括:理论课教学、上机课教学、实训课教学三个部分。通过多年的教学实践,采用案例教学方法进行理论课教学,采用任务驱动进行上机课教学,采用项目导向进行实训课教学,可以较为有效地提高教学质量。

1.理论课教学采用案例教学与“3W1H”教学法

在理论课教学环节中,教师应根据事先精心设计的案例,合理运用“3W1H”教学法等多种教学技巧,准确地向学生传授基本知识与理论。

(1) “3W1H”教学法

理论课授课要始终贯穿“3W1H”教学法思想。“3W1H”,即What—要求教师简明扼要地讲解清楚所要讲述的内容及要点,指出讲课的重点;Why—要求教师引出为什么要讲述该内容,该内容在软件开发中的作用,引起学生的好奇心及对听课的兴趣;Where—要求教师能够结合切身体会和经验指出所讲述的内容用在软件开发的什么地方,突出所讲内容的实用性;How—要求教师能够指出在实际的软件开发中如何使用所讲述的内容,突出所讲内容在实际软件开发中的使用方法和使用应该注意些什么。How的讲解至关重要。这种教学方法的目的在于不仅仅使学生具有应用软件的使用技能,也具备坚实的理论基础,逐步提升对将来的工作环境适应能力和自信心,且对学习充满兴趣。

例如在Java程序设计中“异常”的讲解思路可分解为:

What:解释什么是异常,why:java中为什么要引入异常,Where:在编程中异常都用在什么地方,How: 在异常处理中怎样使用异常。

(2) 案例教学法

在《Java 程序设计》这门课的教学中,要明确课程改革的思路,要以解决实际问题的程序设计思路作为教学的切入点,以教材的内容为主线,采用案例作为教学引导线,在教学中将晦涩难懂的概念、原理融合到案例中,从实际的例子入手,然后再上升到理论高度,适当讲解理论知识相应的知识点。这种模式不仅有助于学生掌握基本概念、基本理论,同时也能够培养学生解决实际问题的能力。能够自己动手解决实际问题是学习的最直接动力,是激发学习兴趣的根源所在。

通过案例教学时,语法、知识点的讲解全部可用程序说话。让学生先看例子,通过动起来的例子看到程序的运行结果,至于为什么这样,如何做到这样正是教师要讲的新知识点。例子讲完之后布置3 个操作练习。第一个练习是“仿”,即完成一道和例子极其相似的程序,让学生在模仿中巩固和加深对新讲授内容的理解,同时教师巡视单独答疑,帮助学生澄清教师讲解时没有理解的内容,最后教师就共性问题予以强调。第二个练习是“改”,即对第一个例子加工,将教师在讲解时已提及而例题中未涉及到的问题交给学生,激发学生自主学习的热情。在此过程中,教师对关键性问题给出指导思想。第三个练习是“提高”,即将具有一定算法难度但语法适用于当前阶段的问题抛给学生,培养学生的算法设计能力。在此阶段教师主要起启发、引导作用,启发学生的创造性思维。

在Java 程序设计课堂教学中采用案例教学方法可对每一个单一知识点进行教学。选取的案例都尽可能小而精,针对特定问题。通过小型案例讲解独立知识点,以案例模仿的形式促进学生动手能力。学生通过案例研究,培养一种分析问题的能力和独立处理、迁移性的应用能力。学习过程贯穿于案例分析的过程之中,培养学生学会抓住或发现问题,然后结合所学知识寻找解决问题的途径、手段。这样不仅能帮助学生巩固已学的知识,同时也能帮助学生提高自学能力和设计能力,强化了案例教学的效果。

在计算机教学中运用案例教学法,能够充分调动学生学习的积极性,提高学生探索、合作、创新能力,有利于学生理论知识的掌握和实践能力的提高。在实际的教学过程中,每位教师都应根据教学大纲、教学内容和学生实际情况的不同合理运用案例教学等方法,只有这样才能真正提高课堂教学效果,提高教学质量,培养出符合时代发展要求的高素质应用型人才。

2.实验教学采用任务驱动,提高学生动手实践能力

Java程序设计是一门实践性极强的学科,实践环节的教学尤其重要,其目的就是让学生在自主探索的过程中完成对新知识的练习和巩固。有一句关于实践的谚语是这么说的:“我听到的会忘掉,我看到的能记住,我做过的才真正明白。”讲的就是理论作为实践的支撑不是死记硬背背会的。让学生亲自动手实践,编辑调试程序,要比听老师讲、看老师做记忆深刻,同时还能明确知道自己到底哪个地方不会,特别是编译中出现的错误往往让学生印象更深刻。学生通过自己动手实验,进一步理解概念和理论知识, 教师引导学生从知道“怎么去做”到学会“怎么做”,达到理论与实践的完美结合。

实验内容除了教材中的例子, 还包括我们精心设计的实验题目。而实验类型大致可以划分为验证性实验、巩固性实验、分析性实验与综合设计性实验等几种形式。其中验证性实验内容主要来自教材中的例子,这种类型的实验目的是为了验证或演示基础知识点的特点与用法,以便理解这些基础理论。验证性实验是其他实验类型的基石。巩固性实验的目的是对基础知识进一步理解、巩固、深化。在验证性实验的基础上,巩固性实验的实验内容是教师为了让学生加深对基础知识的理解而专门设置的,这些实验内容的选择与设置应具有代表性,难度中等,符合教学要求。学习程序设计必须具备一定的程序分析能力与问题分析能力, 因此分析性实验设置的目的就是为了提高学生的分析能力。这一类型的实验中,教师根据要掌握的知识点设置一些程序题,让学生分析程序运行的结果并上机验证,通过比较自己分析与上机验证的结果,既可以知道自己分析的正误又可以更深入地理解知识。而综合设计性实验以培养学生的综合运用能力。我们把它放在课程实训课中完成。无论哪种类型的实验, 实验课题设置的好坏将影响学习效果,因此,针对每一种实验类型我们应该认真地设计相应的实验课题。

具体在实验教学时,要根据具体的教学内容与学生的实际情况,结合现实IT案例,提出实验任务问题,按照“行为导向”的原则,形成以“学生为主体,教师为主导,从中学, 做中练的一体化”的“教、学、做”一体化实验教学模式,以“解决问题、完成任务”为行动使命, 以“培养能力,掌握知识,培养职业素养”为培养目标,实施“任务驱动、启发式教学、讨论教学、现场教学”等教学方法与手段。

3. 课程实训采用项目导向, 提高学生综合实践能力

当今社会对计算机人才的技术能力、实践能力与创新能力要求越来越高, 综合素质较高的人才越来越受欢迎。 因此, 我们还考虑设置了该类型的实验,如课程设计和课程实训,是将所学的基础知识结合起来用以解决较复杂的问题, 在选择与设置综合性课题时,应综合考虑学生目前掌握的知识情况, 需要涉及哪些知识点,难度如何,将这些知识点结合起来解决什么问题,同时还应考虑学生水平的差异、能力的不同,因此具有一定的思维性、综合性与应用性。

课程设计或实训是对本课程所学内容的综合运用和巩固提高,它在整个Java 教学过程中起到一个承上启下的关键性作用,一方面能够巩固前面所学的基础知识;另一方面能让学生了解Java 开发的一些基本流程,为日后从事Java 领域的开发作铺垫。在课程设计阶段,学生已经有了一定的Java 编程基础,欠缺的主要是实际的开发经验和全面系统的、深入的掌握Java 技术。解决的方法就是通过企业真实项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,尽快达到企业的实际要求,让学生在具体的项目中进行学习,缩短学生与企业之间的距离。根据学生的实际能力选择好开发项目是关键,即不能让学生感到太容易,也不能让学生感到无从下手。通过学生的独立实践,使学生熟悉软件开发的全过程,培养团队意识。大大提高了学生理论联系实际和综合分析问题的能力。

有过项目实践经验的人都认为,通过做项目能学到的东西远比听课学到的东西多,因为这是个实践和自主学习的过程。在Java语言程序设计课教学计划需讲授的内容讲授完毕后安排一个为期两周的总结性实训教学课,借助于企业办学的优势,将公司中的实际项目抽取简化,交给学生以小型项目的形式来做,这是对学生一个学期的学习效果的综合考察。在完成这个小型项目的过程中可能会涉及到一些课堂上闻所未闻的知识,利用这个机会锻炼学生搜集资料、整理资料获取知识的自主学习能力。在此阶段,教师的职责不再是教学生如何解决一个具体问题,而是告诉学生到哪里能查找到帮助解决问题的资料。

“项目导向”的实训具体实施时,可将学生分成若干课题研发小组,模拟某企业中项目研发团队。其中被选为组长的同学,可以“情景扮演”成“项目经理”,由他给组内其他成员分配相应的工作任务,按照软件工程的要求完成该项目开发的全部流程。综合实训课程的项目设计注重实用性、真实性。将企业中的实际项目抽取简化,分解成若干模块交给学生以小型项目的形式来做。在完成这个小型项目的过程中可能会涉及到一些课堂上没有学习到的知识,利用这个机会锻炼学生搜集资料、整理资料获取知识的自主学习能力。

对综合实训的总结可以采取分小组答辩的方式,即每个课题小组把此次项目的设计思想、所用到的知识点、实现的技术难点、解决方案、完成效果、尚存在的问题等以PPT 的形式向全体同学、老师做讲解、演示。其他小组的同学和老师可以对其提问,一起讨论。这样的总结形式有效提高了学生自主学习能力、团队合作的精神,为将来步入社会做好了准备;也使得其他组的成员拓展了知识面,汲取到别人的长处,增强学习交流,从而打造了一个“积极”、“热烈”、“和谐”的学习氛围。

结束语

Java 教学一定要围绕提高学生实践应用能力展开,注重面向对象编程思想的培养,通过对《JAVA程序设计》课程各教学环节的教学改革尝试,学生的学习兴趣明显增强,动手能力也有了较大的进步,对本门课程的认可程度大幅度提高。当然,教学改革的方法并不是一成不变的,随着教改的深入,时间的推移,还会有新的问题出现,我们对教学改革的探索还将继续。

参考文献:

[1]刘新桥等.JAVA程序设计课程教学改革的探索与实践[J].长沙航空职业技术学院学报,2009,6,第9卷第2期.

[2]刘梦娟等.《互联网络程序设计》特色课程建设的实践探索[J].福建电脑,2011,1.

[3]俞辉,计算机专业提高Java 语言教学效果的探索与实践[J].计算机教育,2008(14).

[4]贺建英.如何提高高校学生Java 语言的实践能力[J].电脑知识与技术,2008(1).

篇5:作文的快乐与烦恼

作文——你是茫茫的海洋,我只是一叶小舟,愿遨游在你的海面上,慢慢靠近成功的彼岸。在你的海面上遨游是一种快乐,同时也是一种烦恼,通过实践,我对此有着深深的感受。

我喜欢作文,因为它能够提高我的知识,大大提高我的分析和理解能力。我能把英雄的事迹记录下来,能把祖国的美好江山描绘下来,能把动人的事情叙述下来……

每当我把一篇成功的作文写完时,我都会津津有味地读上几遍,每读一遍就会有发自内心的愉快和欣慰。那是我觉得作文太美妙,他的每个字、每个词和每句话都那么生动,形象,让人如痴如醉。每当老师在课堂上朗读我的作文时,几十双眼睛向我投来羡慕的眼光,我望着他们更充满自信。熟悉的文章在我耳旁响过;自豪的神情在我脸上露过;可爱的大拇指也在我面前举过……我才刚刚遨游了你的百分之一就得到了快乐的荣誉,这是我最值得高兴的一点。当我阅读别人的作文时,我同时也增长了不少知识,知己知彼,扬长避短才能把作文写得更好……

作文,你虽然给我带来快乐,但是也给我留下了烦恼。

每当写好一篇作文的时候,我都是挖空心思地去想,越是发愁,越静不下心,脑子里自然也是空白一片。要想把作文写得精彩绝妙,不是一件容易使,因而我对这种情况产生了烦恼。还有选题目时,每当题目自拟和自由作文的时候,我总是不知道该写什么,我绞尽脑汁地思考,很不容易才会想出来,于是,我比较喜欢规定写的作文……

烦恼与快乐是相对应的,只有把烦恼克服才能得到快乐,我相信作文的成功,是靠平时点滴努力得来的,让我化烦恼为快乐,继续在海面上遨游!

篇6:我的烦恼与快乐

在成长的道路上,会有许多烦恼。但只要我们认真对待,这些烦恼就会渐渐消失。

在我上幼儿园的时候,画画得特别差,每次图画课上都会受到老师的批评,于是,我越来越讨厌画画,甚至见到彩笔都觉得厌恶,对自己越来越没信心,直到有一天,爸爸妈妈带我到乡下农村玩,事情才发生了转折……

那天黄昏时分,我们到达了驻地――松阳,刚下车,一阵清风伴着野花的芳香,像柔软的缎子般拂过我的肌肤,我贪婪地吸吮着这清新的空气,似乎永远也吸不够。

这时,远处传来了淙淙的流水声,把小小的我吸引了过去,我拐过一道弯,绕过一道坎,走过一条窄窄的田埂,跨过小石桥,来到了小溪边。小溪清澈见底,碧绿的水中青苔像美丽的丝带,随流飘荡;溪中摆放着几块大小不一的石头,为过往的路人开通了一条水路……我随意捡起一块小石子,用力地向不远处的小溪尽头扔去,霎时间,小面上蹦起了二十公分高的水花,这水花晶莹剔透,在阳光的照射下,转动着身姿,慢慢地落入水中,荡开了一圈圈小圆韵。我兴奋极了,脱下鞋子,光着脚丫子走进小溪中,一股清凉从脚底迅速传遍全身……那时,我的心远离了喧哗热闹的城市,丢掉了紧张的学习生活与老师的批评,没有了烦恼与困惑,灌满了欢乐与幸福,浑身轻松带劲,不觉疲倦地与老爸打起了水仗……玩累了,我躺在小溪边望着这美丽的田埂、山水,真想把这美景带回来,与大家一起分享我的快乐。

回来之后,我突发奇想:何不好好学画,这样我就可以把那里的美景用画笔表现出现了,于是,我开始认真学画,并在不到一年的时间内多次获奖,我的自信心也随之越来越强,对画画更是喜欢。因为,画画让我重新找回了自信,找到了快乐,并让我找到了大自然的美、世界的美……

篇7:成长的烦恼与快乐

“我不想、我不想、不想长大,长大后世界就没童话,我孤单的可怕,我突然想起从前陪我的那个洋娃娃„„”时光在悄然流逝,我也在渐渐长大。每每听到这首歌,总会回想起这十多年的生活,期间,有数不尽的烦恼,也有说不尽的快乐。

成长的过程中,烦恼是不可避免的。记得小时候,我多么渴望长大,而今我又是如此不想长大。长大意味着烦恼的增加,而我的烦恼,主要是在我的学习上。每天早上天蒙蒙亮我就要起床,背着长了好几层脂肪的大书包上学,一天天再拖着重重的书包埋头在台灯下写着永远都写不完的作业;周末还有上不完的补习班,辅导课,奥数班,新东方。妈妈的唠叨,爸爸的数落,哥哥的着急,老师的督促,同学的对比,都会让我感到些许压力。挥手告别了金庸小说,路过杂志小摊再也不能像以前那样临摊自娱,也再也不能像小时候那样看着自己喜欢的连续剧度过假期。我要回顾上一学期的成败对错,还要为下一学期的新征程热身奋斗。

快乐和烦恼是一对形影不离的孪生兄弟有快乐的地方就有烦恼,当然有烦恼的地方也会有快乐。说到成长快乐,就是学会了很多东西。首先,我学会了感恩,在家能帮妈妈分担一些力所能及的家务活,对于爸妈的唠叨也不再表现出自己的不耐烦了,而是用我的耐心和微笑接纳他们这种宝贵的爱。假期和爸爸妈妈游览了古都北京,省都济南,被紫禁城这座古迹名胜荟萃的古老建筑深深吸引,也饱览“一览众山小”的壮阔,旅行,让我增长了知识,也开拓了我的视野。长大之后,和爸妈一起看过的春晚,游过的西湖,爬过的泰山,对自然和生活都有了新的认识,它们给予我的快乐,为我生活的花瓶,又添了一束芬芳满溢的紫罗兰。

篇8:java程序员的快乐与烦恼

目前,许多高校的计算机专业认识到了开设Java程序设计课程的必要性,但很多高校仍采用传统的讲授程序设计类课程的教学方法,教学效果不是很理想。这导致学生不能较好地掌握Java程序设计的知识,Java技术课程体系中的后继课程也将难以为学生所掌握。根据近年来在Java开发技术的工程实践以及Java语言课程的教学实践,本文对《Java程序设计》教学从教学的思想和方法方面进行一些探讨。

1 当前教学存在的问题

1.1 课程教学目标不是很清晰

明确课程的教学目标是教学效果得到保证的前提,但在高校的Java程序设计课程教学中,教学目标往往是不全面或者是不准确。例如,教学目标仅着眼于Java语言的基本语法、类、接口等面向对象的基本知识,在编程思想上重视不够或者孤立地制定这门课程的教学目标,没有把该课程放到整个Java开发技术体系中去考虑。

1.2 难以选择合适的教学教材

当前Java的学习和指导书籍非常多,但适合大学Java语言教学的却是很少。Java语言的知识点非常多,更新也很快,选择一本合适的教材非常重要,但显得很难。市场上很多Java语言教材通常存在知识结构不清晰、知识结构不全面或者知识点较陈旧等问题,而较厚的学习指南类书籍又难以用于学时比较有限的大学课堂教学上。

1.3 教学思想与方法不合适

学习Java不仅是多学习一门更为流行的编程语言,更是学习一项开发技术。学生在学习Java语言前一般学习过C、C++语言,如果是以同样的角度和高度来教学Java语言那便存在着较大的问题,但在现实教学中这种状况也较为常见。另外,在课堂教学上采用的教学方法比较单一,难以激起学生学习编程的兴趣。

1.4 教师缺乏实际的工程经验

Java技术的工程经验源于一线的开发和实践经验,而这点往往是教师所欠缺的。工程技术是综合性的技术,如果缺乏这一点,那便很难站在整个Java技术体系的高度地把Java语言的知识讲透彻,做到深入浅出。教师的岗位毕竟还是教学,拥有丰富的工程经验较难,但这可以通过暑期培训、社会实践以及科研得到一定积累。

2 教学目标与思想

这里假定学生在学习Java语言之前已经学习了C、C++语言,并从培养应用型人才的角度进行一些探讨。

2.1 教学目标

1)通过这门课程的学习,使学生掌握Java语言的基本语法、类与继承、GUI设计、多线程、I/O操作、网络编程、数据库编程以及常用类库等基本知识,提高运用面向对象思想设计程序的能力。

2)在教学中引导学生学会查找资料去解决问题,并逐步建立以自主学习为主的开放式学习意识和学习方法。

3)为Java技术课程体系中《JSP应用开发》、《J2EE框架技术》的学习打下坚实基础。

2.2 教学思想

在Java语言教学中,要以其教学目标为要求,同时以持续激发学生的学习兴趣、运用实践将教学落到实处、注重培养学生的编程思想以及采用多种有效的课堂教学方法为教学理念和手段,将之贯穿Java语言教学的全过程。

3 教学方法的探讨

3.1 持续激发学生的学习兴趣

兴趣是最好的老师。一旦学生的兴趣被激发了,他们会自觉地投入到课程的学习上来,学习将会成为一件快乐的事情。激发学生学习Java语言的兴趣,就是帮助学生打开他们的智慧之门,使他们感受到这门编程语言的魅力。然而兴趣很难长期保持,因此要做到持续地激发学生的学习兴趣。

1)使学生感受到Java语言的魅力。第一课就要让学生知道Java不仅是当前最为流程的编程语言,更是一项强大的开发技术,并且可以作为职业发展中一种技术方向来选择。同时,可以向学生展示用Java语言编写的实用性小程序,比如聊天程序、游戏程序等,使学生直观感受到Java语言的魅力。

2)让学生明白Java技术课程体系。学习不能总是空中楼阁的感觉,要让学生明晰目标,并找到前进的途径。学习Java技术的总体路线是:Java语言基础→J2SE高级特性→JSP&Servlet→J2EE框架技术。这门课程的学习只是其中的第一步,鼓励学生自主学习。

3)教学案例要体现实用性、连续性。教材上的例题大多只是讲解了语法现象和知识,比较简单、枯燥,学生难以集中注意力。这就要求我们要设计能使学生产生深刻印象的生活化的案例,或者从实际应用工程中提取恰当的案例,而且有的案例应该采用逐步演化的模式去设计。

4)讲课要做到循序渐进、深入浅出。在学习Java语言的道路上,困难是大家都会遇到的,如果解决不了,学生的兴趣很容易被消磨掉。因此,教学过程要逐步的深入,而且要通过举例等方法做到深入浅出,同时还要及时解决学生在学习中产生的疑惑。

3.2 运用实践将教学落到实处

计算机技术是工程技术,实践是学习的根本。很多同学之所以学不好计算机、学不好编程关键在于实践太少。Java语言是实践性非常强的课程,一定要让学生去充分的实践,深刻认识到编程是“练”出来的。Java语言的实践包括课堂练习、上机实践和课程设计等。

1)课堂练习对巩固新的知识很有用。可能有人会认为课堂上老师应该多讲,教学信息量应该尽可能大些,但通过实际的教学情况来看,经常留出一点时间让学生动手写点程序效果会更好。其实这就是实践的一种体现,这样可以培养学生“练”的意识和习惯,从而真正改变学习的方法。

2)通过上机实践落实理论教学知识。除理论课外,Java语言课程一般都会安排占整个教学课时1/4或1/3的上机课,这对于学生掌握理论课上所讲知识很重要。老师在实验内容的安排上要针对相关知识出题,也要出不同层次的题目,同时还要扩大题目的来源,比如从历年的认证考试或企业招聘试题中选题,一举多得。

3)课程设计是提升编程能力的关键。Java语言课程设计非常重要,要求指导老师精心选题,并在一段较密集的时间里带领学生完成,一般不少于两周。课程设计的形式是将学生分成多个组来开展,引导学生进行设计分析,由学生来完成项目程序和相关文档。该成绩的考核是以程序和文档的质量以及答辩的表现来综合评定。

3.3 注重培养学生的编程思想

编程语言或技术只是软件开发的手段,编程思想才是灵魂。编程思想的好坏直接影响程序质量的高低。此外,不同的软件可能会要求用不同的语言或技术来实现,但如果掌握了编程的思想,从一种编程语言转到另一种语言并不困难。

1)使学生具有开放性编程的意识。这里就是要引导学生解放自己的编程思想,懂得从网络或其它途径学习、更新知识,学会利用现有的JDK类库、开源开发工具,第三方软件包以及新的编程理念去设计程序,提高编程的质量和效率。

2)培养学生面向对象的编程思想。此前虽然学习了C++课程,但相当部分的学生并没能完全掌握面向对象编程思想,还是会出现用面向过程的思想来使用面向对象的语言进行编程。例如,在讲到封装时就可以分别用面向过程和面向对象的思想来编写求圆柱体表面积和体积的程序,引导学生去对比思考。

3)学会应用简单的程序设计模式。设计模式是一套被反复使用、多数人知晓的、经过分类编目的代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。在上机实践课的出题时可以涉及工厂模式、单例模式、模板模式、组合模式等有关知识。

3.4 掌握课堂教学的一些方法

Java语言的课堂教学往往会使学生觉得枯燥,特别是传统的讲解教学,因此应注意根据不同的教学内容采用不同的教学方法。有时也要根据上课的时间、学生的状态采取不同的教学方法。对于该门课程的教学来说,采用案例教学、演示教学、比较教学以及讨论教学等方法是比较有效的。

1)案例教学法。案例教学将知识点融于精心设计的案例之中,使学生较为轻松地就掌握了相关知识。设计程序案例是这种教学方法的关键,比如在Java语言的教学中设计一个点对多点的通信程序,在讲到GUI设计、I/O操作、网络编程相关章节时便实现相应内容,课程讲完就完成了一个相对综合性的实用性程序。

2)演示教学法。如果所有的案例程序代码都事先编写完成,然后分析,这将不利于促使学生去思考。因此,在课堂上还要经常现场向学生演示编写1~2个程序,边写程序边引导学生思考,还要做好必要的程序注释,让学生养成好的编程习惯。有时老师也可以在一些易错的地方故意犯错,引导学生去发现错误,增强与学生之间的交流。

3)比较教学法。Java语言与C++语言有许多相似之处,但也有些不同之处,有些是学生不太好理解的,这时可以采用比较教学方法,比如Java的引用型变量、数据类型封装、内存管理、继承方式等与C++均存在不同。另外,Java语言自身也有一些知识容易混淆。

4)讨论教学法。为了培养学生的思考能力和创新精神,老师可以布置具有一定难度的程序设计题目,根据情况可作一定的引导,主要内容由学生课后去完成。下次上课的时候,大家就此问题提出自己的实现方法,并进行讨论和比较。这种以学生为主导的教学方法,在国内的计算机教学方面应该被提倡。

5 结束语

当前编程的技术以及理念在不断的进步,这对学生的编程能力以及老师的教学都提出了更高的要求。Java语言作为一门流行而强大的语言,目前在高校的计算机专业中被广泛开设,但在学生学习以及老师教学中都存在一些难度。这里所阐述的教学思想和方法经Java教学实践运用,取得了良好的教学效果,并且这些思想和方法也可以运用于其它程序设计语言类的教学。

摘要:为了提高学生的Java编程能力以及就业能力,从培养应用型人才的角度,分析了当前Java程序设计课程教学存在的一些问题,重新思考了这门课程的教学目标,并对教学思想以及教学中可以采取的有效方法进行了较为具体的探讨。这些教学思想和方法经Java教学实践运用,取得了良好的教学效果。

关键词:Java教学,程序设计,教学思想,教学方法

参考文献

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

[2]Herbert Schildt.Java参考大全(J2SE 5 Edition)[M].北京:清华大学出版社,2006.

[3]Bruce Eckel.Java编程思想[M].4版.北京:机械工业出版社,2007.

[4]李瑞生.Java程序设计课程教学中遇到的问题和对策[J].计算机教育,2010(22):119-122.

篇9:java程序员的快乐与烦恼

【关键词】双语教学  Java程序设计  教学模式

【基金项目】江苏高校品牌专业建设工程资助项目,项目编号(PPZY2015A033)。

【中图分类号】G42 【文献标识码】A 【文章编号】2095-3089(2016)35-0236-02

前言

1991年,Sun公司里的Green小组推出了一款面向对象的革新型的程序设计语言Java。因其具有简单易用和功能强大两大特征,国内外IT公司首选其作为桌面程序、Web程序、嵌入式和分布式系统应用的编写语言。我国对Java程序设计的人才的培养也不遗余力,除了计算机专业将其作为必修课外,一些非计算机专业的理工科专业也将其作为主修课,甚至采用双语教学。所谓双语教学,即采用英文和中文两種语言进行授课,使学生可以更好的掌握Java程序设计的本领,方便以后成为国际合作交流和竞争的IT人才。当然,国家相关政策对双语教学进行了规范和要求。2001年,我国教育部颁发了《关于加强高等学校本科教学工作提高教学质量的若干意见》,其中加强本科教学的12项措施中明确要求各高校在三年内开设5% - 10%的双语课程,并引进原版教材和提高师资水平。2005年,教育部又颁布了《关于进一步加强高等学校本科教学工作的若干意见》,其中指出不但要提高双语教学课程的数量又要继续提高其质量,甚至把双语教学纳入对高校评估的一项重要指标。可见双语教学对大学生的培养至关重要。

近年来,我院紧密围绕教育部提出的要求,深切贯彻各项方针,将《Java程序设计》设为双语教学课程。本文主要探索双语教学的模式,实践其方法,在教学过程中不断总结并改进,可以为同行提供宝贵的经验和指导作用。

一、Java课程的基本情况

90年代至今,Java语言一直活跃在编程语言的榜顶。凭借其语法简单、功能强大、安全可靠、多线程和跨平台等特征,一直成为计算机专业的必修课。近年来,随着社会对Java人才的需求,许多高校的非计算机专业也开设了Java程序设计相关课程。我校电子信息工程学院开设了《Java程序设计》这门课程始于2012年,迄今已经有5个年头了。课程主要的教学内容包括:Java语言概述、Java开发环境、Java程序设计基础、面向对象程序设计、集合类的使用、异常处理、Java I/O数据流与文件处理、Java多线程机制、JDBC数据库编程、Java网络编程等,本课程以专业选修的形式开设在大学第六学期。有了前期相关课程及电子信息专业英语的学习,一直以双语教学的形式进行。

通过本课程的教学,特别是贯穿始终的案例教学和设计实践,使学生掌握Java程序设计语言的基本概念和程序设计的基础知识,理解面向对象程序设计的思路和方法,并能运用Java技术和基本开发工具进行程序设计。培养学生的编程能力,启发学生的创新意识,提高学生在程序设计过程中分析问题和解决问题的实际动手能力,使学生的理论知识和实践技能得到共同发展。

二、双语教学模式

双语教学是指学校使用非母语进行全部或部分学科的教学。在我国,双语教学是用除汉语外的一门外语进行课堂教学,绝大多数使用的是英文。目前权威的双语教学的模式主要有以下三种:

(一)沉浸式双语教学Immersion Bilingual Education:学校的一切教学活动以外语进行,学生完全沉浸在非母语的学习环境中,比如香港的绝大数高校。

(二)保持式双语教学Maintenance Bilingual Education:学校的教学活动绝大部分以母语为主,只是后期逐渐使用第二外语进行部分学科的教学,比如我大陆目前的现状。

(三)过渡式双语教学Transitional Bilingual Education:学生进校后部分或全部的使用母语教学,然后转换为完全地使用第二语言进行教学,完成从母语到第二外语的过渡,比如国内的预科班。

针对以上三种主流双语教学模式,结合我国高等教育现状,选择保持式双语教学模式开展和推进Java程序设计双语教学工作更为合适。教师在授课过程中,采用汉语和英语两种语言授课,既方便“传道、授业、解惑”,又可以精确的把握课程的原汁原味的精髓,使学生因为乐趣而掌握这门晦涩的课程。

三、Java课程双语教学实践

(一)教材选用:引进优秀的英文原版教材,譬如《Thinking in Java》、《Effective Java》、《Core Java》、《Introduction to Java Programming》和《Java?鄄A Beginners Guide》等。授课老师可以指定一本英文原版书籍为教材,将其它优秀英文原版书籍作为参考书推荐给同学进行广泛阅读,从各个方面不同角度更好的理解Java语言编程。同时,为了减轻学生对英文教科书的学习难度,更好的准确理解和把握课程的主要学习内容,阅读有关Java语言编程方面的中文参考书也是必不可少的。

(二)课堂教学:双语教学与传统教学的不同,除了引进了优秀英文原版教材,实现教学内容与国际接轨,我院还与荷兰Saxion大学联合办学,在交流的过程中了解到Java课程在Saxion大学目前采用《Java?鄄A Beginners Guide》作为教材并使用IntelliJ IDEA这一Java集成开发环境配合Java课程的教学。而目前国内大学主要采用的Java IDE是Eclipse。Eclipse和IntelliJ IDEA是当前最常用的两个Java IDE开发工具,各有优劣。一些程序员因为IntelliJ IDEA开发效率较高,更加地智能而从Eclipse转向了IntelliJ IDEA。所以,我们的大学Java课程也可以适当的转向IntelliJ IDEA。

另一方面,是教学媒介的不同。使用英语作为第二语言,其可以贯穿于部分或整个教学过程中,包括教材、PPT讲义、课堂教学语言、实验指导书、作业、试卷等方面。很多人纠结第二外语和汉语在双语教学中的比重,其实在我们的Java程序设计课程中并不是过分强调外语的比重。Java课程双语教学的重点还是掌握Java编程的专业知识,在此基础上我们根据学生的英语应用能力,尽可能多的在教学过程中使用第二语言,从而达到在保证学生准确理解和掌握专业知识的同时提高学生英文水平的目的,从而提高Java课程双语教学质量。具体的来说,Java程序设计课程的教材、PPT讲义、作业、试卷等课程资源都采用英文这一课程媒介,但为了更好的理解专业知识,学生可以参考中文的专业书籍,试卷和作业中的题目尽可能的用英文作答,如果觉得有困难也可以用中文作答,在课堂上老师交替使用中英文,为了让学生更好的理解专业知识,先用英文介绍新的知识点,然后中英文结合着做进一步解释。

四、Java课程双语教学的思考

(一)学生英语水平欠缺:教学过程其实是教和学的过程,老师和同学共同决定着教学效果。开展双语教学,对学生的英语水平有一定的要求。对于学生而言,双语教学过程中的听说读写四个方面较为困难的就是“读”了,让很多学生最头疼的就是去读厚厚的全英文教科书了。在开始学习Java双语教学课程前,大多数学生没有尝试过大量的英文专业书籍的阅读,因此阅读速度慢,而且本能的读不进去,自然而然地就产生畏难情绪。这对Java双语教学的开展造成了很大影响,也不利于双语教学的顺利进行。其次就是听,因为涉及到一些专业的英文词汇,听力障碍造成思维的迟缓,甚至分心走神。所以讲解到专业词汇及其函数的用法时,可以用中文进行解释。

(二)双语教学师资力量缺乏:双语教学不仅对学生的要求高,同样对进行双语教学的授课老师也提出了新的要求。承担双语教学课程的老师在掌握扎实的专业知识和技术的基础上,还要具备良好的英语听、说、读、写的能力,不仅能够阅读专业上的英文文献资料和用英文撰写科技论文,而且还要具有用英语组织课堂教学和交流的能力。

(三)课堂的授课方式:在Java双语教学授课环节,会刻意的加强学生的课前预习。授课老师会将所有的英文PPT发布到Java程序设计课程网站上供学生下载,学生通过PPT膜片讲义可以了解整个课程的内容,又可以提前了解相关专业术语和生词。在Java程序设计课程的教学平台网站上,除了发布英文讲义PPT之外,还会上传Java双语课程的微课小视频。我们将Java课程各章节的重点和难点归纳总结出来,列出一系列的小标题,然后逐一录制并放在Java课程网站上让学生课后去观看,去回味。在Java双语课程的课堂教学过程中,除了采用老师讲,学生听的传统教学方法外,还结合翻转课堂教学法,让学生首先针对某个问题分组讨论,然后用英文总结解决问题的方法并制作PPT进行演讲汇报。

结论

随着全球经济一体化,为了更好的培养出具有国家合作交流和竞争的Java程序设计人才,我院积极的开展了《Java程序设计》这门双语教学课程。在采用保持式双语教学模式的基础上進行了实践、归纳和总结,从学生和老师自身的角度进行了思考,并给出了一些有用的经验和建议。

参考文献:

[1]教育部关于印发《关于加强高等学校本科教学工作提高教学质量的若干意见》的通知[J].教育部政报,2001,(10).

[2]教育部发出《关于进一步加强高等学校本科教学工作的若干意见》[J].中国高等教育,2005,(6).

上一篇:物探测绘处保密法宣传月活动总结下一篇:记者职业道德和社会公德