当前位置:网站首页 > Java基础 > 正文

java基础教学23



Java课程体系(精选12篇)

Java课程体系 第1篇

高等院校的Java课程体系包含以下课程:《Java程序设计》、《JSP程序设计》、《J2EE应用开发》以及《Android应用开发》, 各门课程需要掌握的知识点如下:

(1) Java程序设计:

JDK的安装, 环境变量的设置;Java基本语法;类与对象;继承与多态;异常处理;图形界面设计;输入与输出;多线程。

(2) JSP程序设计:

Tomcat服务器的安装与启动;JSP标记的使用;JSP内置对象;JSP中的文件操作;JSP中使用数据库;Java Bean的使用;Java Servlet的使用;MVC模式。

(3) J2EE应用开发:

struts2、hibernate、spring三大框架的整合;

(4) Android应用开发:

Android模拟器与常用命令、用户界面设计、基本程序单元Activity、Android应用核心Intent、Android事件处理、资源访问、图形图像处理技术、多媒体应用开发、Service应用、网络编程及Internet应用。

2 Java课程体系教学中存在的主要问题

2.1 重理论知识教授, 轻学生实践能力提升

高等院校里, 大部分Java课程教学仍然沿用传统的教学模式, 即突出理论教学, 忽视培养学生的实践能力。在教学过程中, 为完成教学任务, 同时受到课时限制, 现行Java课程教授往往采用“灌输式”的教学方式。在这种教学环境中, 往往是学生在课上的理论教学中感觉对知识点理解得很好, 但一到实际编写程序时便会觉得无从下手。

2.2 教师缺少项目实践经验

一方面, 高校受各种因素的影响, 在招收新人充实师资队伍时, 过分注重学历门槛, 轻视实践经验, 导致高等院校绝大部分教师都是硕士、博士研究生毕业后直接走上讲台的。他们大多缺少大项目开发的经验, 指导学生实践能力相对较弱。

另一方面, 高校教师的课程压力较大, 很难有足够的时间亲自从事大的项目的开发或者到企业中去进行锻炼。

2.3 学生不能得到最好的教育资源

学生对于教师没有选择的权利, 高校教学中每门课程的任课教师都是固定的, 不管学生认不认同教师的授课方式, 喜不喜欢教师的授课内容, 都要学习该门课程并保证最后通过考试, 没有其他选择。在这种情况下, 学生得不到最好的教育资源, 当然就不能很好地调动学生的积极性, 学生对课程的学习往往只是为了通过最后的考试, 并没能实现对自身能力的提高。

2.4 学生往往需要到培训机构参加二次培训

由于高校的Java课程体系的教学不能很好地培养学生的实践开发能力, 因此为了毕业后能够找到理想的工作, 很多学生在学校里学完Java相关课程之后, 还会选择花费不菲的代价到培训机构重新参加一次培训, 这样就大大地增加了学生的学习成本。

3 Java课程体系改革方案

基于以上问题, Java课程体系的教学方式亟待改革, 传统的教学方式已不适用于Java这种实践性强的语言类课程, 高校的Java课程教学需要寻找一种新的教学模式, 以培养能够满足企业需求的毕业生。

借鉴慕课教学模式:

慕课 (Mooc, Massive Open Online Course) 是新近涌现出来的一种在线课程开发模式, 它发端于过去的那种发布资源、学习管理系统以及将学习管理系统与更多的开放网络资源综合起来的旧的课程开发模式。

3.1 慕课教学的特点

(1) 大规模的

不是个人发布的一两门课程:“大规模网络开放课程” (MOOC) 是指那些由参与者发布的课程, 只有这些课程是大型的或者叫大规模的, 它才是典型的MOOC。

(2) 开放课程

尊崇创用共享 (CC) 协议;只有当课程是开放的, 它才可以称之为MOOC。

(3) 网络课程

不是面对面的课程;这些课程材料散布于互联网上。人们上课地点不受局限。

综上所述, 慕课这种教学模式可以让优秀的课程资源被更多人共享, 在互联网极速发展的当今, 慕课教学将成为高校教学改革的趋势。

3.2 融入慕课教学的Java课程体系

针对于目前高校Java课程体系中存在的问题, 更适合于用慕课的教学模式来解决:

(1) 传统的灌输式的教学方式虽然能够将理论知识传授给学生, 但很难提高学生的动手能力, 培养出来的学生也就很难适应企业的需求。而采用慕课的教学模式可以针对Java教学, 引入优秀的注重实践教学的教学资源, 其中包括课程的ppt, 实例程序代码, 教学视频, 还有配套的实战项目的源代码和开发过程的视频。

(2) 引入优秀的教学资源之后, 学生对于Java相关课程的学习就可以分为两个步骤:

课程的理论知识由学生在课下通过观看视频, 完成作业的方式自主学习, 当然这个任务由任课教师事先布置给学生, 通常学生课下学习的理论知识是为下一次课做准备的。

学生在具备了理论基础之后, 第二个步骤就是由任课教师在课上带领学生做一个有针对性的实战项目, 并实时地解决学生在编程过程中出现的问题。

3.3 在理论教学基础上提升实践教学质量

Java课程体系中的每一门课程都要求学生有过硬的编程能力才可能学好, 因此要提高学生的动手能力, 必须要提升实践教学的质量。提升实践教学质量, 可以从以下几个方面入手:

(1) 理论学习由学生在课下完成

实践永远是由理论来指导的, 实践教学质量的提高同样要依赖扎实的理论基础。在引入优秀的教学资源之后, 由教师事先为学生布置理论学习任务, 学生利用课余时间通过观看视频、幻灯片、做习题的方式完成基本的理论学习任务。

(2) 利用学习平台有效地提高理论学习质量

学生进行理论学习需要用学号和密码登录学习网站, 登录之后的操作会被网站的日志系统记录下来。当学生按教师的要求看完相关视频, 做完相关的练习后, 系统会把该学生针对该章节的学习状态设置为“完成”, 否则学习状态为“未完成”。期末考试前, 系统自动统计出每个学生的学习状态, 任何一个章节没有完成的学生, 都不允许参加期末考试。

(3) 布置实践项目调动学生积极性

理论需要实践来检验, 同样需要实践来巩固, 每一个章节的理论学习任务完成后, 教师都要布置一个相关的实践项目, 此时并不是要学生实际地做, 而是让学生思考, 分析, 写出一份该项目的需求。

(4) 教师带领学生做项目, 提升学生动手能力

学生学习了相关的理论知识, 对要做的项目有了一定的了解之后, 对于怎样实现这个项目肯定有很多的疑问。而在课上教师会带领学生一步步地完成之前所布置的项目, 使学生之前的疑问得到答复, 理论知识得到巩固, 项目的实现也极大地提升了学生的自信和对编程的兴趣, 很好地锻炼了学生的动手能力。学生对项目的完成也会作为一个考核内容, 当然, 每个项目都有多种实现形式, 学生可以自由地在已实现项目的基础上进行改进。

4 总结

针对Java课程体系教学中存在的种种问题, 只有改变原有的教学理念, 找到适合的教学方式才能有效地提高教学质量, 培养适应社会需求的毕业生。

本文提出借鉴慕课的教学思想, 使学生能够享用最优秀的教学资源进行自主地理论学习;同时提升实践教学在课程体系中的地位, 利用实践项目来巩固理论知识并锻炼学生的动手能力。

摘要:本文从当前高校Java课程体系现状出发, 指出当前Java课程体系存在的具体问题, 由于这些问题的存在, 高校培养出的Java人才并不能适应社会的要求, 继而提出Java课程体系的具体改革方案:融入慕课教学思想, 提升实践教学在整个课程体系中的地位。

关键词:Java课程体系,慕课,实践,改革

参考文献

[1]沈维政, 苏中滨, 赵洁.项目驱动教学法在Java语言程序设计教学中的应用[J].东北农业大学学报 (社会科学版) , 2010 (02) .

[2]刘建伟, 时华.Java程序设计教学改革的新思路[J].陕西教育 (高教版) , 2012 (11) .

[3]沈秀, 眭荣方, 曾德伟.地方高校学科竞赛管理体系的构建[J].实验室研究与探索, 2014 (11) .

Java课程设计 第2篇

设计成品(按难度自选一个到两个完成)

可分组或单独完成,每组最多两人,19周前交 1设计报告

(1)本程序的功能描述

(2)程序设计思想(数据结构和各功能的实现办法)(3)核心程序清单(应有必要说明)2结果分析

(1)本程序的局限性及改进方法

(2)应用本程序的设计方法可以编写哪些类似的程序 一:小型通讯管理系统

通讯录管理系统含有:输入 显示 查找 删除

要求

1通讯录的每一条信息包括姓名,单位,电话!(可用数组或数据库)2输入功能:可以一次完成若干条信息的输入.3显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)4查找功能:完成按姓名查找通讯信息.5删除功能:完成按姓名删除通讯信息.6应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

二:个人简历程序:(参照中华英才网http://的创建个人简历的选项)

通过文本框输入姓名,通过单选按钮设置性别,通过组合框选择籍贯(列出省、市),文化程度、出生日期、现居住地。以及填写教育经历、语言及方言等。

请按自行安排界面排版方式,注意美观性。

三:多小球运动程序:

请编写一个多小球运动的程序,要求可以设置每个小球的半径,初始书度,加速度。

当用户点击发射按钮时,程序按指定的弹出一个小球,当小球碰到边界线时,碰撞为完全碰撞。

要求每个小球为一个线程,不考虑小球之间的碰撞。

四:打字小程序。

从屏幕顶端随机落下不同的英文。如果在字符下落的java基础教学23过程中,用户正确输入对应字符,字符消失,加1分;到字符落到底端还没正确输入,扣一分。

给出最宗成绩。程序可设 重新开始,暂停,练习时间,字符出现的数量,速度等。

五:龟兔赛跑

龟兔在同一个圆赛跑,要求可以设置龟兔跑一周的时间,兔比龟快。龟兔同时其跑,当兔快龟一圈时,计算器加1,并显示在屏幕上。六:学生成绩管理系统。

完成一个班学生的成绩管理。为完成程序功能,至少要有两个这样的功能模块:

l 输入成绩 2 查询成绩

因为查询模块中又分为:

l 按学生查询 2 按课程查询

所以为它们分别编写函数。因为上述这些操作中要输入某位学生和某门课程,所以再编写两个函数来输出数组中的学生信息和课程信息并请用户从中选择:

1显示学生信息从中进行选择 2显示课程信息从中进行选择

系统管理员需要管理系统所有用户的信息,包括用户编号、名称、备注等,可以对其添加删除修改和启用停用等操作。

还需要为系统用户划分角色和权限,保证不同身份的用户进入后可以有不同的权限,如某科目的老师可以录入本科目的成绩,学生只可以有查询权限等。

七:使用ServerSocket和Socket实现服务器支持多客户机通信。当有多个客户向服务器提出时请求时,服务器一端会分别为每个客户从一个包含多行文字的文本文件中读取一行文字,发送给每个客户,直到文件读完文件中所有行,服务器一端发出“bye”并停止运行,客户端也都停止运行。

八:编写一个图形用户界面的应用程序,在窗口中,有一个图片循环地从窗口的左面移动到窗口的右边。当鼠标点击窗口时,图片停止运动,再次点击图片恢复运动。九:编写程序,在文件中输入若干个单词(每个单词可重复一次或多次)。编程实现统计每个单词重复次数,并对非重复的单词进行排序,将排序结果输出到文件中。十. JDBC技术的应用

——校园卡信息/学生信息/教师信息/图书信息/宿舍信息/学生会/成绩/课程/教室管理/公务员招考系统的设计实现

以校园卡信息管理、学生信息管理、教师信息管理、图书信息管理、宿舍信息管理、学生会活动管理、成绩管理、教室管理等为例,使用JDBC-ODBC数据库接口,完成对后台数据库的插入、删除、修改、查询等操作。数据库系统可采用Sql Server、Access等,要根据完成的不同功能在数据库系统中定义有关的各种信息表:如在教师信息管理系统中要设计教师基本信息表、教师学习进修情况表、教师奖惩情况表、教师上课情况表等。其他几个子系统中数据表的设计由同学们根据实际的需求自主完成设计。十一.文本编辑器的设计与实现

设计一个类似于Windows记事本(Notepad)的Java程序。可以打开、新建、保存一个文本文件;对选中的文本进行各种编辑操作(设置字体、字号、字型、对齐方式、背景、前景色、复制、粘贴、剪切、查找、替换等);在文本中能够插入对象。十二..计算器的设计与实现

设计一个能实现计算器功能的Java程序,可以进行加、减、乘、除(另外可适当加上阶乘、正弦、余弦和指数)运算。十三.图象浏览器的设计与实现

设计一个能实现图象浏览与编辑功能的Java程序,包括如下功能:

1)从已有的图象文件列表中选择某一个,即可显示该图象,并可做旋转等变换。2)在画布区域上可以进行各种规则图形的绘制(如:线段、矩形、多边形、圆等),还可通过鼠标的拖动自由绘图。

3)可以连续播放所选文件夹下的所有图象。十四: 媒体播放器的设计与实现

利用JMF(Java Media Framework)提供的API,实现图像浏览、音频播放、视频播放功能。

十五:局域网聊天程序的设计与实现

该程序实现局域网内的聊天功能,包括服务器端程序和客户端程序两部分。客户端程序:可连接到服务器,并将消息发送到服务器端和接受服务器端发送来的信息。服务器端程序:可将消息发送到客户端和接受客户端发送来的信息 十六:基于Web的应用

——网上超市/网上书店/网上花店/网上物流/网上招聘/同学录/网上选课/网上考试系统的设计

应用JSP技术,设计一个类似电子商务、电子政务类的简单应用系统,可以在网上动态展示各类信息,并根据相应的业务流程进行必要的逻辑处理,系统信息可以进行后台维护。需要动态显示的信息要存放数据库中,数据库可以用Sql Server、Access;后台管理要提供对数据库中信息进行动态维护(包括添加、删除、修改)的页面。十七:益智类小游戏的设计与实现

高校Java课程教学浅析 第3篇

关键词:Java课程;实践教学;高校;学习兴趣

中图分类号:TP312.2-4 文献标识码:A 文章编号:1007-9599 (2012) 10-0000-02

目前,软件开发企业需要大量的基础的应用人才,很多高校和学生看到了这一机遇,高校开始开设与Java相关的教学课程,很对学生也开始报考学习这些课程,然而,由于目前我国高校Java课程在实际教学中存在着一定的问题,这就在一定程度上使得Java课程教学的效果不理想,从而在一定程度上使得学生不能满足软件开发企业的要求,使得学生在毕业后很难顺利地就业,有的学生则到了工作岗位也很难胜任自己的工作,因此,作为高校和教师,我们有必要对Java课程的教学进行研究,不断地提高Java课程的教学效果,只有这样,我们才能为软件开发企业培养出合格的人才,学生毕业后才能顺利地踏上工作岗位,顺利地进入社会,为社会的和谐发展贡献自己的一份力量。

一、Java课程在实际教学中所存在的问题

(一)学生害怕学习Java

通过调查研究,我们发现学生都说Java课程很难,这在一定程度上使得他们害怕学习Java。在学习Java之前,高校一般都为学生开始C语言课程,因此,对于Java语法级别的学习,学生则相对来说感到比较容易。然而,与C语言不同,Java是面向对象的语言,而不是面向过程的语言,这就要求学生要用面向对象的概念进行思考,要用面向对象的概念进行设计,对于大多数的学生来说,这是一种新的体验,这是一种新的挑战。通过调查研究,我们还发现,很多学生不能够很好地理解“面向对象”,他们对于“对象”可以做什么而感到困惑,对于“对象”怎么做感到困惑,而且除了要求设计者要具有很强的逻辑思维能力,要求设计者的思路要清晰以外,程序设计还要求设计者要不断地自我学习,要能够适应现代编程技术的变化,这些都对学生的学习造成了一定的压力,从而使得学生在一定程度上害怕学习Java。

(二)学生对Java技术理解不够深

目前,Eclipse、NetBeans、JBator等是较为流行的Java集发环境,它们各自有自己的优点,同时,他们也各自有自己的缺点。作为教师,我们在选择编程环境的过程中,要根据不同的讲授对象来选择与他们相应的编程环境,而不能统一用一种编程环境。比如,对于非计算机专业的学生来说,我们就不应该选择基于图形用于界面的框架,如果選择了这样的一种框架,那么,会在一定程度上使得学生忽视了对Java语言本身的理解,使得他们忽视了对Java语言本身的学习,相反,则会使他们将大部分的精力花在对框架结构额理解上,使他们将大部分的精力花在对框架结构的使用上。当然,这会使得学生相对来说擅长整合,擅长快速开发,但是,这会使得学生对系统的理解比较薄弱,在一定程度上使得他们缺乏自主分析问题的能力,使得他们缺乏解决问题的能力。

(三)实践教学不够,学生动手能力不强

通过调查研究,我们发现,目前很多高校的教师在讲授Java课程时,过于重视语法,他们相对地忽视了实践教学,这就在一定程度上使得学生的动手能力不强。教授语言的课程的目的是让学生学会用计算机解决问题的思考方法,是培养学生的实际编程能力,而不是仅仅让学生掌握好相关的基础知识。然而,有些教师在授课的过程中,仅仅注重语言的讲解,他们忽视了培养学生用计算机解决问题的思考方法,忽视了培养学生的实际编程能力。也就是说,教师在授课的过程中,忽视了实践教学,没有给学生足够的实际锻炼的机会,这就使得他们缺乏实际动手的能力,缺乏解决实际问题的能力,达不到学习的实际目的。

二、政策建议

(一)注重训练编程思想

要想完全掌握一种编程语言,我们应该首先掌握相关的编程思想,如果我们掌握了相关的编程思想,那么,只要我们简单的了解了该语言的语法特点,我们便可以触类旁通,完全掌握该语言。编程思想是在反复的教学、观察、分析、比较和总结中积累的。逻辑思维能力对与编程思路很重要,也就是说,如果要想有一个好的编程思路,那么,我们就应该要具有较强的逻辑思维能力。因此,在日常的教学中,教师不应该仅仅教授学生相关的基础知识,同时,教师还应该要注重培养学生的逻辑思维能力,培养学生面向对象的分析能力,培养学生面向对象的设计能力,只有这样,才能最大限度地让学生掌握好Java课程,才能为软件企业培养出合格的人才,从而让学生毕业后顺利地走入社会,踏上工作岗位。

(二)采用案例教学

案例教学是一种对真实项目的模拟,是一种对真实项目的仿真。对于程序设计课程来说,如果我们只是一味地讲解一些抽象的话,一味地讲解一些难懂的概念,一味地讲解一些难懂的语言,而不在授课的过程中采用相关的案例,那么,教学过程就会显得枯燥无味,同时,还会在一定程度上使得学生对所讲授的知识感到困惑,不能很好地理解和掌握所讲授的知识。因此,在Java课程教学中,作为教师,我们应该改变传统的教育方式,尽量地多采用相关的案例,只有这样,我们才能让学生更好地理解和掌握我们所讲授的知识,同时,运用案例,我们还可以向学生提出相关的问题,并让学生针对所提出的问题,发表自己的看法,这样,不仅可以让我们了解学生对于所讲授知识的掌握程度,同时,还可以在一定程度上提高学生学习的兴趣,让学生获取全面的知识。

(三)采用多媒体教学

多媒体教学是现代化的一种教学手段,其会使得所讲授的知识更加的形象,更加生动。对于大多数学生来说,Java课程过于抽象,内容比较枯燥,如果在授课的过程中,我们还是采用传统的教学方法,那么,学生的学习兴趣就相对较低,有的学生甚至会产生厌学的情绪,从而使得他们的学习效果较差。所以,作为教师,在授课的过程中,我们应该利用现代多媒体技术,制作相关的课件来辅助教学,这样,就会在一定程度上提高学生学习的兴趣,同时,还会使得学生对于所讲授的知识有一个比较深的印象,利于学生掌握,利于学生理解。此外,通过运用现代多媒体技术,我们还可以进行相关的演示,这样,对于一些难于理解的知识,学生可以通过演示来更好地理解他们,从而掌握他们,这在一定程度上提高了教学效果。

(四)注重实践模拟

培养学生分析问题的能力,培养学生解决问题的能力是程序设计语言的教学目的,只有学生具备了分析问题的能力,具备了解决问题的能力,学生才能在一定程度上具备项目开发的能力,只有学生具备了项目开发的能力,学生才能满足软件企业的需求。实践是实现这一目的的最有效的方法,实践是对所学内容的综合运用,是对所学内容的巩固提高,通过实践,不仅可以使学生很好地巩固前面所到的知识,而且,其还能让学生自己动手去完成相关的模块,这在一定程度上使得学生对于开发项目的基本流程有了一个教授的了解,从而为日后从事Java领域的开发工作打好了一定的基础。在理论教授结束后,我们可以紧接着为学生安排上机实习,这样不仅可以使学生对于所学的知识得到了巩固,得到了提高,同时,其还在一定程度上使得学生的实际操作能力也得到了相应地提高。作为教师,我们还应该根据学生的实际情况,给他们布置一些相应地能够提高他们动手能力的课后练习及其课后实训课题,给他们布置一些相应地能够提高他们创新能力的课后练习及其课后实训课题,让学生自己动手去完成一些相应的项目,这样,一方面可以使得学生获得一定的成就感,使得学生获得一定的自信心,另一方面,其还在一定程度上发挥了学生的主动性,在一定程度上发挥了学生的创造性,从而提高了学生独立思考的问题,提高了学生分析问题的能力,提高了学生解决问題的能力。

(五)给学生充分的自由,建立开放式课堂

在Java课堂教学的过程中,作为教师,我们应该充分调动学生的主动性,我们应该意识到学生是学习的主体,充分考虑学生的学习基础,充分考虑学生的学习需求,给学生充分的自由空间,我们应该利用一切可以利用的条件,为学生创造良好的学习环境,为学生创造良好的学习条件,例如,我们可以利用BBS平台,利用及时交流工具,利用开放的实验室等与学生进行交流,同时也让学生与学生之间进行交流,这样不仅可以提高学生学习的主动性,而且还可以让学生通过交流发现自己的不足,通过交流发现他人的长处,让教师及时地掌握学生对所讲授知识的掌握程度等等,这些都在一定程度上提高了教学效果。

参考文献:

[1]刘旭红,佟俐鹃.《面向对象程序设计》双语教学的探索与实践[J].教育理论与实践,2007年S1期

[2]王先耀.基于Windows 32位平台基础上面向对象的程序设计及开发工具[A].加入WTO和中国科技与可持续发展——挑战与机遇、责任和对策(下册)[C],2002年

[3]向模军,刘松青.Java教学的探讨和实践[J].计算机与信息技术,2008年03期

[4]王健,高忠泽,苏秀苹.基于Game理论的交流接触器电磁系统多目标优化设计的软件实现[A].中国电工技术学会低压电器专业委员会第十一届学术年会论文集[C],2002年

[5]姜海红.浅谈JAVA教学心得[J].黑龙江科技信息,2009年08期

[作者简介]

Java课程体系 第4篇

Java技术的开源社区产生了许多有价值的开源项目, 并且培养了一大批优秀的大师级编程专家。开源项目有利于学生动手能力和合作精神的培养。开源项目采用“集体开发”、“合作创新”和“技术共享”的模式, 通过来自底层志愿者的自下而上创新体系进行软件的开发。针对软件工程专业的学生将来选择IT行业就业, 编程能力、团队协作能力、项目分析能力等尤为重要。为此, 基于开源项目下要完善《Java语言程序设计》课程的整体课程体系的设计, 可以在原有基础上进一步提高教学质量和效果, 更好的把理论和实践有机的结合起来, 以满足当前产业发展对创新型工程人才的需求。

《Java语言程序设计》课程是我校计算机软件工程专业的一门专业基础课程, 该课程的教学目标是让学生掌握面向对象的编程思想, 并能够独立完成项目的开发, 但以往的教学实践表明, 很多学生学完课程后并不能很好的应用到实际产品项目的开发中。要达到预期教学目标, 提高学生的实践应用能力, 结合开源项目完善《Java语言程序设计》课程体系的设计应该是改革的途径之一。

二、应用价值

Oracle公司推出的Java的开源社区是最活跃的社区, 这些社区产生了很多有价值的开源项目, 像企业开发项目流行的Apache Tomcat Server、ant、Eclipse、JBoss、Struts等, 在Java技术中采用开源项目按照软件工程思想把某一项目展开并贯穿于整个Java课程体系及教学中, 可以切实的让学生看到学习Java语言课程究竟可以实现什么, 项目打包后的运行效果是什么, 如何去开发一个企业的真实项目, 更好地应用启发式教学让学生明确自己的位置。

将开源项目应用于教学, 最早是起源于美国, 后盛行于德国, 尤其更适合于软件学院。自从龚敏博士从国外带回一大堆Linux等开源项目软件之后, 中国便吹响了开源运动的号角, 最初由David建立了中国的知名Linux站点Linux form。

近年来, 伴随开源运动在中国的推进, 开源社区也取得很大发展。开源社区的建设对促进中国开源事业与国际接轨具有深远影响, 有利于进一步推进与国际开源社区的交流合作, 了解并学习国际前沿开源技术和开源理念, 跟踪国际开源发展最新动态。将开源项目所具备的“集体开发、合作创新、对等评估”, 以及“源码公开、使用自由、资源整合、信息共享”特征于一体的创新体系融入Java课程体系的改革在基于工作过程的课程改革背景下优势突出。

针对2011级软件工程专业学生, 将开源项目用于Java课程体系中, 可以让学生切实从一开始就受到开源思想的熏陶, 顺应当前软件行业开源软件将逐渐流行的趋势。按照这种方法改善Java课程体系, 学生在教学活动中参与程度高, 整体效果好, 提高学生动手编程能力、增强团队合作意识、提高学生的创新能力, 缩短校企合作的距离, 毕业生在就业时进入企业能快速适应团队项目的开发与协作, 并正确定位自己的角色。

三、开源项目下新型课程体系

《Java语言程序设计》课程的授课活动要在开源项目下建立新型的课程体系, 目标对象有两个:授课教师和学生, 前提是授课教师必须了解并掌握开源项目, 并转变授课习惯性的思想和观念, 其次, 在整个教学活动中将开源项目的设计思想、精神灵活地灌输给学生。该课程体系改革的主要研究内容有四方面:新型关联一体化课程设置、分层次分角色集成化课程教学方法、结合开源项目开发并演示软件产品和新型考核方法的建立。Java课程体系改革主要目标就是实现以有利于学生就业为导向的教学模式。

在2012年开学初, 对于2011级软件工程专业Java方向学生开展了为期一周的关于Java课程体系相关课程设置, 如何结合开源项目开发软件, 如何真正地与企业真实项目接轨。为了加强教师的软件项目开发能力, 学院也采取了派教师去企业界工作、培训学习有关Android游戏编程等课程, 与企业界的工程师合作开发项目等措施, 教学效果较好。

1. 新型关联一体化课程设置。

在传统的教学方法中, 各门课程按学科内容几乎是独立的, 课程之间很少关联, 而新型的CDIO方法是按照工程项目的整个生命周期来组织教、学、做的, 这就要求将相关课程关联, 来解决实际的综合问题。如要开发一个购物车网站, 前台可以采用Java语言和JSP语言, 后台可以采用My SQL数据库, 而教师在讲授过程中就要将三门课程相关联, 在利用JSP语言编写客户端网页时如需插入Java Script脚本元素, 要使用Java语言来编写代码, 如果要倒入数据, 就要连接后台My SQL数据库。通过关联化课程的设置, 学生能够利用最少的时间完成基础层次或高层次的项目。

2. 分层次分角色集成化课程教学方法。

对于同一门课程, 不同的学生的爱好程度不同。如对于“Java语言”课程, 可能有的学生非常喜欢, 自己在课余的时间就会抽出更多的时间来学习或参加一些相关的实践项目来提升自己, 而有的学生可能是处于中间状态, 不喜欢也不讨厌, 那他可能更重视的是课程的成绩, 还有的学生可能根本就不喜欢这门课程, 他对自己的要求是只要考试及格就可以, 平时也不会认真去学。因此, 教师可以通过测试学生对课程的爱好程度, 根据它对学生分层次教学。如针对上述情况可划分为三个层次:

(1) 建立课外学习小组教学。对于那些对课程有浓厚兴趣的学生, 教师可以组织学生分成小组, 以团队的形式参与教师、学校或企业的科研项目活动, 从而提高学生的创新能力。

(2) 课外辅助教学。针对中间状态的学生, 可以利用实验设备辅助教学, 使学生更多地参与到“设计-制作”实践项目活动中, 这也是CDIO方法对于每个学生基本要求。

(3) 课堂启发式教学。多数教师公认的最好的教学方法就是启发式教学, 也可以结合其他教学方法, 如探讨式教学等, 这种方法更有助于激发学生的兴趣。

在企业界, 学生除了应具备专业知识外, 还应具有团队协作能力、人际沟通能力、综合素质能力和系统建造能力等, 所以, 要通过集成化教学方法, 使学生同时获得知识和能力。

3. 结合开源项目开发并演示软件产品。

开源项目就是Open Source Project, 对于Java来说, 上apache网站上可以找到很多这样的程序, 他们遵守GPL, Apache, Berkeley等稍有差别的开源协议, 但大体意思都是可以自己修改代码用于自己的程序的, 包括商业用途。这类程序一般通用性的比较多, 比如服务器、数据库、浏览器、论坛、博客等等, 缺点是维护起来对技术要求比较高。在Java课程教学中要结合开源项目开发的具体软件产品如电子商务网站、新闻系统、手机游戏开发等等吸引学生的眼球, 让学生切实喜欢并自觉主动参与项目的开发。让学生选择合适的开源项目如销售电子产品的电子商务网站, 采用熟悉的开发环境如Eclipse、Tomcat和My SQL等安装开源项目, 教师带领学生从开源项目的需求分析着手, 分析网站的总体设计包括几个大模块, 如管理员模块、登陆模块、订单模块、购物车模块等, 然后还原数据库表, 在访问数据时, 如何实现添加、查找、修改、删除等操作, 前台与后台每个模块的设计, 最终网站的调试, 出现401或500错误时应如何修改程序代码, 对于该开源项目如何进行扩充, 结合Java、JSP、Java Script、MVC模式及框架等已教授的内容扩充, 以小组形式完善项目开发, 让每个学生都能够真正参与项目的开发, 运行并演示最终开发的软件作品, 使学生亲自体验真实的软件产品从“构思—设计—实现—运作”的全过程。

4. 新型考核方法。

对于计算机专业语言类课程的考核方法, 传统采用一般是笔试成绩 (70%) 和平时成绩 (30%) , 其中, 平时成绩主要包括学生平时表现和实验两部分。这种考核方式忽视了学生实践能力的培养, 导致学生的动手编程能力较差。以美国MIT学院为例, 它侧重强调的是学生课程实践能力和解决问题能力, 以课程项目和课程作业为主要考核指标。CDIO理念重视在理论和实践中要选择一个最优的平衡点, 才能达到预期的教学目标, 使学生所学的知识能够真正的学有所用。新型的考核方法主要涵盖三方面。

(1) 单元性测验。对于《Java语言》这门课程从内容深度上总体可分为:基础篇、应用篇、提高篇三部分, 每学完一部分做一次单元性测验。单元性测验可以将本部分内容和前续内容结合起来解决一些综合性的问题。测验试题的难度可根据学生的层次而定, 内容要接近学生的生活, 如学生可以独立编写俄罗斯方块游戏或学生信息管理系统等, 此部分成绩占期末总成绩的30%。

(2) 团队项目开发测验。根据班级人数分成不同的团队, 每个团队选择一名成员为小组组长。对于软件工程11级-3班的学生总数25人, 划分成5个小组, 每个小组5人, 根据小组成员兴趣、能力等不同分配不同的任务, 如页面美工设计、创建数据表、编码调试等, 根据项目开发完成情况给予不同的评分, 该部分占学生期末总成绩的50%。

(3) 综合创新性测验。综合创新性测验主要由教师根据学生特点给定一些具体的开源项目, 学生要对给定开源项目进行扩充, 并最终撰写成文档, 提交源代码文件。这部分成绩占期末总成绩的20%。

如学生在开课期间曾参加过学校或企业的真实的科研项目, 可免于参加综合创新性测验。此考核方法在2012年实施时效果较好, 一个软件工程11级-3班的学生共25人, 其中有5人成绩在60~70分之间, 7人成绩在70~80分之间, 10人成绩在80~90分之间, 3人成绩在90~100分之间。因为《Java语言》课程基础打得好, 所以学生在后期学习Hibernate技术、Struts技术等课程时很容易接受。

四、总结

通过一个学期基于开源项目下课程体系的改革与实践, 《Java语言程序设计》课程取得了良好的教学效果, 这种授课方式的优势是以案例项目展开教学激发了学生的兴趣, 且提升了教师的任教水平和要求。学生已基本适应, 它将理论与实践有机的结合在一起, 学生在获得知识的同时, 也具备了相应的能力, 这也正实现了开源项目下课程体系改革的目标, 满足了企业界对创新型工程人才的需求, 同时也更好地实现了以就业为导向的教学目标。但是课程体系的改革, 是一个长期的、综合性的工作, 若想取得综合的教学效果, 还需要进一步的研究与探索。

参考文献

[1].李坚强.基于CDIO模式的嵌入式系统教学研究与探讨.计算机教育, 2010 (12)

[2].潘武玲.改进我国研究教育质量评价指标体系之思考[J].高等教育研究学报, 2011 (3)

JAVA课程设计题目 第5篇

一、课程设计的目的

为了进一步巩固java程序设计课程所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了一周的Java程序设计课程设计。

通过此次课程设计,巩固所学java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。

二、课程设计的基本要求

1、明确题目要求,进行需求分析;

2、进行功能设计,编写设计说明;

3、进行程序设计与调试;

4、对设计过程进行系统的总结;

5、界面美观大方;

6、完成设计报告

7、课程设计建议在Editplus +JDK、JCreator +JDK、myeclipse平台上开发、调试。

8、Java源程序应加上详尽的注释语句,对所设计的类、属性、方法说明其用途,对方法的调用说明其用意和使用参数的原因。特别是有深刻理解、有独特见解的地方,用注释语句加以说明。

三、课程设计的主要内容

利用学到的编程知识和编程技巧,通过具体项目的分析、设计和开发,掌握开发Java大型软件项目过程中所需要的软件技术并熟悉软件。

可以以小组为单位,每组1至2名学生,在教师的指导下,每组完成一个题目。题目可由下面提供的选题中选择或学生自选经教师审核后方可。该组每个同学承担题目的不同部分,每位同学的课程设计报告必需独立完成。题目类型大致分配如下:

1、网络通讯类,编制网络聊天(Chat)程序,以下简称“网络”类。

2、图形界面Application类,编制类似计算器、MP3播放器、围棋打谱,斗地主、潜艇大战、挖地雷、迷宫等功能单一的程序,以下简称“图形 ”类。

3、通讯类,使用Socket通讯完成信息通讯,比如

4、数据处理类,编制考试系统、出题系统、查询系统、学生学籍、课程成绩、图书编目、仓库货物等数据录入查询程序,以下简称“数据”类。

5、其它类型,自选题目,须经老师同意。

四、主要技术关键的分析、解决、方案比较

以下是可以参考的课程设计可能包含的相关知识:

1、Java核心编程J2SE:

面向对象技术

Java程序运行机制

开发环境的安装和配置 Java语言基础和重点API Java程序异常的处理 I/O、控制台程序开发 Swing程序开发 Socket通讯

2、数据库技术:

关系型数据库原理 SQL数据查询语言 MS SQL Server使用方法

数据库中对象的建立与使用

Java数据库编程(JDBC)

五、课程设计考核方式与标准

采用上机情况、程序质量、实习报告相结合的考核形式:

1、上机情况

包括出勤情况、调试程序时表现。

2、程序质量与创新能力

最终完成的程序设计的工作量、质量、难易程度。

3、课程设计报告

报告的格式与内容。

六、参考题目及要求:

1、多媒体播放器程序的设计与实现

目的:利用java开发一个支持mp3、wma、wmv、avi、mpg等不同音频、视频格式的多媒体播放器。通过课程设计掌握多媒体编程的基本原理。任务: 编程实现一个可支持多种音视频格式的多媒体播放器,其基本功能包括媒体播放、音量调节、播放进度选择、暂停、停止以及歌曲信息的查询与添加等;

2、带格式的文本编辑器

功能参考word软件

3、学生信息(包括成绩)管理系统

要求:

使用图形用户界面

用数据库建立1或2个学生信息表。(不限使用哪种数据库)能连接数据库并实现查询、增、删、改等功能。

4、期刊资料信息管理系统

要求:

使用图形用户界面

用数据库建立1或2个图书信息表。(不限使用哪种数据库)能连接数据库并实现查询、增、删、改等功能。借阅记录等信息

5、聊天小程序 要求:使用图形用户界面。能实现一个聊天室中多人聊天。可以两人私聊。提示:使用socket通信

6、ATM柜员机模拟程序

要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:

1)查询余额:初始余额为10000元

2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

3)ATM存款:不能出现负存款。

4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

7、超市收银系统

要求:使用图形用户界面。

由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。从数据库中取出有关价格信息,再把这些信息返回给收银台。同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。

另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。

8、网络监听程序

要求:使用图形用户界面。

有服务器和客户端,服务器监听客户端的登陆。即:如果A客户端登陆服务器,则服务器界面上的A字母对应的红灯变成绿色。

绿灯表示连接,红灯表示断线。提示:socket的监听方法

9、全球通计费程序

要求:使用图形用户界面。

使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。能根据输入实现各种用户的话费的计算并显示月实时帐单。

提示:使用接口和多个子类实现分别表示金卡、银卡等各种套餐的话费计算。

10.学生机房上网计费系统

要求: socket通讯

11.电子英汉词典

要求:

能够编辑词典库中的信息

能够实现英译汉,汉译英。(要考虑一词多义)

12.加密与解密

要求:采用图形用户界面

1)给定任意一个文本文件,进行加密,生成另一个文件。2)对加密后的文件还原。3)图像水印的添加以及还原

13.小游戏

要求:。

程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜。(使用图形界面)

14.敏感词汇分析

要求:

任意选择一个文本文件,分析该文件,如果存在敏感词汇(这些词汇保存在sentive.txt文件中,每个词占一行),报告每个词出现的次数。

15、猜数字游戏

要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。

要求提交Application和Applet两个版本的程序。

16、小学算术运算测试程序

要求:制作一个可供小学数学运算程序:10以内加减法,能根据输入题数出题,判断做题是否正确,最后计算分数。

要求提交Application和Applet两个版本的程序。

17、模拟画图

要求:模拟Windows中的画图程序,实现图形图像的编辑、修改、保存等功能。模拟时钟

要求:通过多线程技术,重绘界面,界面包括表盘和指针。并用数字表显示时间。实现要点:多线程技术,图形的绘制。

18、打字训练测试软件

要求:设计一个英文打字测试软件。从文件中调入英文录入材料,最后可以给出错误率,平均录入速度。

19、用java开发一个小型数据库管理系统,比如Access 在界面中输入SQL语句,可以完成数据可的相关功能 20、学生宿舍管理系统

数据库

21、电话号码查询系统,ip地址、手机归属地查询

要求:有电话录入,修改,增加,删除,按姓名查询,按电话号码查询,按部门查询,按部门显示,显示所有电话号码信息,打印等功能。

22、同学录管理系统()

要求信息的录入、查询、删除、修改等一列功能。

22、购物车子系统

要求:使用图形用户界面。当输入给定的顾客编号和密码(初始卡号和密码为)时,系统能进入购物车子系统,顾客可以按照以下规则进行: 查询自己购物车中商品信息; 修改 删除物品 数据库库存管理

23、火车票管理系统

要求: socket通讯,多线程

服务器端数据库存放火车票信息

客户端(窗口)卖票,退票

24、利用Socket通讯模拟学生食堂卖饭系统

账户的管理,充值管理,售饭管理

启动两个客户端(窗口),模拟售饭过程

25、为一个超市设计一个货物管理程序。

要求:

进货库:货号,货名,型号

,进货量,进货价,经办人,销售库:货号,销售量,售价,利润。

存库:

货号,库存量。

包含功能:

1)在程序中初始化库存库,销售库,及进货库.2)可提供菜单,供随时添加,修改,删除,查找库中信息.(具体货物及编号等自编),在设计时应尽量考虑全面,比如查找就可以按照货名或者货号,经办人等来查找。

3)可自动计算利润等字段。可以统计总利润。

4)可随时根据进货库调整库存库。

5)可随时根据销售库调整库存库。

6.)可根据要求核对库中内容,如数量是否一致等。

7.)可根据销售情况统计出销售排行榜。

8.)自行设计的其他功能。

Java课程体系 第6篇

摘要:目前,很多高校的软件学院都开设有《Java程序设计》这门课程,但都存在重理论,轻实践的问题。本文在深入分析该门课程目前存在问题的基础上,提出了相应的解决办法,并且通过一个学期的课程改革试验,证明了建议解决办法的可行性及有效性。

关键字:Java教学改革;应用型人才;软件学院

Abstract: At present, many university software schools have“Java programming” course, but there are pay attention to theory, light practice problems. Based on in-depth analysis of the course at present on the basis of existing problems, and puts forward the corresponding solutions, and through a semester course reform experiment, proved that the proposed solution is feasible and effective.

Keyword:Java teaching, Application type talents, School of software

一、Java课程概述

《Java程序设计》课程是软件学院学生的核心专业课程,它的内容是介绍J2SE相关知识,包括Java语法基础、面向对象理论知识、基本类库、图形用户界面及事件处理机制、异常处理机制、多线程程序设计、数据库的连接访问、输入输出流和网络编程等。本课程学习的效果不仅关系到后续课程的学习和毕业设计的效果,而且直接关系到学生程序设计水平的提高和专业素质的培养。

二、问题分析及建议

以下结合本人多年的Java开发及教学经历,对一些存在的问题进行分析并提出相应的建议。

1.加强实践训练及实践管理

问题分析:Java语言是一门实践性很强的计算机语言,但目前成了单一为考试而设置的一门课程,其结果是有的学生连最基本的实践操作也不会做。有的实践教学学生只是将书上的程序输入电脑运行一下,并没有去思考为什么会是这样的结果。学生只是机械地完成了程序的运行,过后就忘了,没有达到练习的目的,更不能做到学以致用。

建议:在条件许可的情况下,教师上课均应采用多媒体教学。在讲授Java理论的同时,在课堂上给学生进行使用演示,这样不仅使学生对所学的理论知识有直观的认识,而且能提高学生的学习兴趣,引发其好奇心,促使课后实际动手练习。另外,教师在讲授该门课程时,除了教材上既有的实例外,还应多找一些典型的实例,在课堂上给学生讲解和演示,加深学生的理解。

2.选择合适的教材

问题分析:传统的教学方法都是注重教学的系统性和完整性.按照一般教科书的编排顺序组织教学,想把Java语言讲透,至少得100课时以上。这样的教材内容,必然有大量的语法结构生涩且难以理解,使学生望而生畏,学习效果较差。

建议:尽量选择有较多实际例子的教材,或者选择有配套实验手册的教材,方便学生实践练习。

3.注重双师型教师的培养

问题分析:在指导学生使用Java程序设计实践教学方面,由于目前双师型教师的匮乏,师资队伍存在着知识结构、能力结构不合理问题,难以完成应用型人才Java程序设计的实践教学要求。

建议:教师在上课之余,应该多学习Java领域的最新技术,并且利用假期时间多去企业参观,学习企业用的最多的开发技术,才能教出符合企业需求的信息技术专业人才。

三、课程改革及成效

在对Java程序设计课程目前存在的问题深入分析后,本人上学期对第2部分中提到的各个建议解决办法进行了试验,以下简单予以介绍:

(1)关于加强实践方面。在讲述理论的同时,教材90%的代码均在上课时现场输入、现场演示、现场评讲。另外,除了教材上的实例,还通过查阅搜寻一些典型的实例,在相应的章节进行演示。

(2)关于教材选择方面。经过仔细对比研究后,上学期选用了机械工业出版社的《Java语言程序设计教程》一书作为上课的教材。本书由叶乃文主编,于2010年第一次出版,所讲Java技术和业界最新技术基本同步,而且综合性实例较多,非常方便学生进行课后练习。

(3)关于双师型教师培养方面。2010年暑期,去北京中关村一些知名IT企业进行学习参观,历时20余天。通过学习参观,了解到目前企业最新的Java应用人才需求,也学到了不少企业的开发经验,返回学校后对学生进行了相应的指导,学生反响强烈。

上学期,经过以上3点措施的实施,Java程序设计课程的教学效果相比以前明显改善,学生们普遍反映良好。具体表现为:因为实践动手多了,学生对学习Java的兴趣提升,实践动手能力快速提升,上机作业质量明显提升,教学效果持续改善。

四、小结

针对应用型高等学校人才的特点,作者依据多年从事Java技術开发的实际工作经验与理论教学实践经验,分析了企业对Java技术人才的需求及现今Java程序设计课程体系中存在的问题,提出了一些建议解决办法,并进行了相应的课程改革实践。实践结果证明了提出的建议解决办法的可行性和有效性。

【参考文献】

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

[2]张建东.《Java程序设计教学探讨》[J].科技信息.2009,(24):700.

基于java的web密码体系研究 第7篇

1 Web密码体系的实现

1.1 传统模式

对于传统的web密码体系的实现, 一般有几种模式:Http认证、Http摘要认证、基于表单的认证等。

Http认证方式是当用户访问首受保护的信息的时候, 服务器弹出对话框要求用户输入用户名和密码, 然后通过BASE64位编码把数据传输到服务器进行认证。对于这种模式有两个缺点, 一个是大部分用户并不喜欢通过弹出对话框的方式来输入用户和密码, 另一个就是数据的安全性存在巨大的漏洞, 截获者只要截取用户的数据然后通过解码器便可以得到其密码。

Http摘要认证方式是通过验证摘要信息来认证用户, 但是并不传输密码本身。这种方式服务器会创建一个且唯一的随机值, 然后将其送到客户端, 客户端会把它进行杂凑, 并传输到服务器, 服务器根据已经知道的用户和口令同样计算出一个杂凑数, 并将它们比对。但是这种方式最大的缺点就是不能移植, 因为不是所有的浏览器和服务器都支持摘要认证。

基于表单的认证是提交表表单到服务器, 然后在通过持续化数据进行验证。Servlet与服务器进行的数据交互的方式有两种:Get和Post。Get方式是幂等, 一般不会用它进行数据验证, 因为它是通过浏览器的地址提交到服务器来进行数据交互, 如果用于get方式来实现web密码体系, 只要得到浏览器的地址便知道用户的密码。Post方式来实现web密码体系是用户在HTML页面输入用户名和密码, 把用户信息存入到session, 因为seesion可以存在在多个浏览器页面之中, 最后通过用户点击按钮把表单提交给服务器来进行验证, 具体demo代码如下:

但是这种方式并没有摘要认证安全, 因为session同样可以被截获而导致用户信息泄露。

1.2 Spring框架的密码体系实现

Spring是近年流行的java框架, 其中Spring Security3框架提供了一套完整的用户认证及访问授权机制。Spring安全框架为用户信息的加密和验证提供了统一的框架和具体的实现方式, 它通过定义Password Encoder接口对密码的加密和认证进行了统一的封装。它的加密认证过程如图1:

用于实现Spring用户密码加密具体有两个配置方法:基于XML存储用户信息配置和采用数据库存储账户信息的配置。

基于XML存储用户信息配置主要是在XML配置文件里通过 配合使用SHA加密算法实现加密, 而在XML里存储的是加密后的密码。

基于数据库存储用户信息的配置一般是将用户信息保存到数据库中, 然后通过Spring框架中Jdbc Dao Impl类来加载数据库中的用户信息。具体实现方法可在application Context.xml文件上定义实现密码的Bean, 然后在其中引用数据库的类, 通过依赖注入实现。

Spring实现密码体系的基础也是使用session来跟服务器进行交互, 但是它会对session里面的数据进行加密, 就算用户信息被截获, 也是不能获得用户的真正密码, 图2是eclipse中调试下观察session里面的用户信息。

1.3 Struts 2框架密码体系实现

Struts 2是实现MVC设计模式的第二代Web应用程序框架, 它实现用户验证模块是通过动作拦截器。在配置文件中需要定义拦截器的名和实现类, 而其中有两种方式来完成验证工作:在validate () 方法中验证和sturts 2自带的验证框架。

Validate () 方法中验证是通过继承action Support类的接口与workflow拦截器一起协作完成的。workflow拦截器会在验证出错的情况下把工作流重新定向到输入页面, 而params拦截器要在workflow拦截器之前匹配定义, 因为params拦截器会把请求数据转移到动作对象上, 然后workflow拦截器在这些数据被模型接受之前验证这些数据。

Struts 2自带的验证框架是在workflow拦截器前面再定义一个validation拦截器, 该拦截器提供了进入验证过程的入口点, 只需要在xml文件定义几个参数便可以完成验证工作。

2 关于用户密码的系统的优化

关于java web应用的服务, 开发者一般会选用成熟的框架来实现, 如Spring和Struts, 但是这样的框架只会提供满足需求的基本功能, 面对用户越来越复杂的要求, 需要提高配置以优化该系统。

2.1 为用户添加时间验证和用户过期跳转

用户过期功能的实现有多种方法, 最简单的就是在web.xml方法中方法中设置。

480

还可以通过编写代码实现

Http Session session=request.get Session (false) ;

session.set Max Inactive Interval (480) ;

而用户过期跳转是可以用JSP, 实现这一功能的工具就是Filter, 在把数据传输给服务器之前就先进行判断。

还可以使用Spring Security 3配置来实现用户过期跳转

2.2 登陆用户保存当前操作

用户在浏览器上进行某项需要一定权限操作的时候会跳转到登陆页面, 而登陆成功需要返回登陆之前的页面, 方便用户的操作, 它可以用struts 2来实现, 实现的工具是动作拦截器

在此之前需要配置一个验证用户的拦截器, 并将登录前的url存入session

除了此方法还有Spring Security 3框架可以实现, 只要配置用户权限, 实现登陆后会自动跳转至登陆前页面。

2.3 用户权限控制

通过设置用户的权限来限制访问的页面, 提高系统的安全性, 可以使用Spring Security 3来实现这一功能。在security Config.xml里编写代码

上面设置代表登录页面为login.jsp, 进入admin.jsp页面的页面权限为ROLE_ADMIN, 而进入任何页面的权限为ROLE_USER, 如果权限不够则会进入access Denied.jsp页面。

用户的权限可以通过两种方式设置, 一种是在xml定义用户名和密码, 并赋予权限, 另外一种是通过数据库来设置权限, 上面2.2节已有介绍, 在此不累述。

3 结束语

对于web系统密码的实现有多种方法, 它可以基于Spring框架的Spring security 3来实现, 也可以基于Struts 2的拦截器进行验证实现。为了满足用户越来越复杂的需求, 开发者需要再此基础上进行更深入的配置研究, 这样才能开发出满足企业需求的Web应用程序。

摘要:随着java技术的快速发展, 网络安全成为人们关心的重要问题。文章介绍了java密码体系传统模式和基于Spring Security和Struts 2流行框架的密码体系, 并着重介绍了传统模式的实现方法, Spring Security框架基于XML和数据库的配置方法和Sturts 2框架基于拦截器的认证方法, 最后在此基础上提出了一些高级功能的实现, 为web应用开发者提供了很好的参考。

关键词:大型企业,ERP,集中部署,部署模式,管理模式

参考文献

[1]丁振凡.Spring安全的用户密码加密处理研究[J].长春工程学院学报 (自然科学版) , 2012, 13 (3) :2-3.

[2]丁振凡.基于Spring Security的web资源访问控制[J].宜春学院学报, 2012, 34 (8) :71-74.

[3]Brown D.&C.M.Davis&S.Stanlick.Sturts 2 in Action[M]北京:人民邮电出版社, 2012:217-229.

[4]Craig W.Spring实战[M].北京:人民邮电出版, 2013:41-50.

[5]朱丽娟.数据加密技术的研究与发展[J].中国制造业信息化, 2011, 40, (17) :59-62.

[6]周文红, 晏素芬, 蒋玉芬, 邓朝晖.Spring Security安全框架应用[J].计算机与现代, 2013 (11) :2.

[7]裴德志.基于J2EE的WEB安全研究[D]:武汉:武汉理工大学计算机科学与技术学院, 2006:20-25

[8]肖云.基于Spring Security安全的Web应用开发[J].计算机与现代化, 2011 (6) :158-159.

[9]霍尔, 布朗, 蔡金.Sevlet与JSP核心编程.胡书敏.北京:清华大学出版社, 2009:26-91.

[10]曹洪军.基于Web的系统安全框架的研究与应用[D].武汉:中国地质大学, 2007.

《Java面向对象编程》课程研究 第8篇

在就业压力越来越大的今天,计算机软件专业的学生能够熟练地使用一门编程语言在就业中的优势是非常明显的。Java语言由Sun公司于1994年推出,然后其开源、丰富的类库、平台无关性等优点吸引了无数的编程爱好者,随着Java语言的不断发展和互联网应用的日益广泛,Java从2001年开始就一直是应用最广泛的编程语言,而且遥遥领先于第二名———C语言。美国《信息周刊》刊文评出有史以来最伟大的12款软件,其中Java语言作为唯一入选的编程语言,被排在第五位。综上所述,计算机软件专业的大学生学习好《Java面向对象编程》课程是很有意义的,而实际上学生对于这门课程的掌握情况并不十分理想,这其中有教材选用、教授方式、实践安排等各方面的原因。下面我就这些原因的形成提出解决方案,希望对于本课程的教育教学和学生后来的就业有所帮助。

2. 问题解析

2.1 教材选用

在繁杂的Java编程教材中选取一个适合本科教学和实践的并不是一件容易的事情。有些教材侧重于理论,基本是知识点的罗列和简单验证,这种教材类似于中学时代的数理化课本,学生对此类教材并不喜欢,感觉与实践相去甚远,不能将教材上的知识点与自己未来的工作和实践应用联系起来,因此提不起学习兴趣;有些教材虽然实例很多,也比较注重实践,但是由于讲授内容过浅,学生学过之后感觉教材上的内容已经掌握,但是对于一个简单的应用需求仍然无从下手,从而使学生对自己能力产生疑问;有些教材技术没有及时更新,讲授的内容已经不再适用,从而导致教授过程不理想;还有些教材虽然没有上述的问题,但是提供的基于实践的练习却很少,练习少导致学生书上的例题都可以做出来,但是却不知道如何举一反三加以运用。

2.2 教授方式

本课程的教学效果很大程度上依赖于教师的教授方式和教授方法。区别于其他专业课程,这门课的实践意义要远大于理论意义,所以使用何种教学方式就显得尤为重要。经了解,目前大多数教师采用的教授方式有两种:第一种教授方式是验证式,即教师提出一个知识点,然后用一段程序加以验证该知识点,然后继续提出下一个知识点。这种方式给学生的感觉不是在教授一门实践课程,而是在验证一些理论知识,导致知识点与日后的应用严重脱节。第二种教授方式是总结式,其实就是第一种教授方式的倒序,即先写一段程序,然后总结该段程序中出现的知识点。这种方式要比第一种效果稍好,但是一部分接受能力稍差的学生在这种方式下会感到特别吃力,因为一个知识点还没有被提出,它就要先被应用到一段程序中,有些不知所以。

2.3 实践安排

对于编程类的课程,如何安排实践是重中之重。大部分教材上的习题都过于侧重知识点的考核,而不是如何将知识点加以运用,除了选取合适的教材之外,教师还可以自行安排一些旨在提高学生积极性和动手能力的编程练习,而不是严格地按照教材上的练习安排实践或者随意找些类似考级之类的题目来让学生做。

2.4 其他问题

除了上述三个问题之外,还有一些因素会称为本门课程教学的关键点,比如多媒体教学的使用,IDE工具的选择,知识的及时更新,安排模拟课程设计,等等。

3. 解决方案

针对第2部分提出的本课程教学过程中存在的种种问题,我经过实践和研究,总结出以下解决方案以供参考。

3.1 选用编程从业人员中认知度较高的半工具书

弃用目前广泛使用的本科教材,而改用编程从业人员中认知度较高的半工具书。目前的本科教材存在着严重的问题,比如大部分是知识点罗列,选用例题无新意,练习没有针对性,知识结构老化,等等。另外,由于很多本科教材的编者自身并没有在企业中有过实践经验,因此对一些行业规则和公共规范了解不多,导致采用了很多与行业规则和规范相悖的习惯误导学生。而从业人员中认知度较高的半教程半工具书则不然,直接针对实践,知识点更新速度更快,采用了规范的编程习惯,例题紧贴实践,这些原因使得这一类工具书能够很好地起到教学和实践相结合的作用,我经研究和使用,效果很好。

3.2 采用探索式教授方法

由于目前广泛采用的验证式和总结式教学方法都有其缺陷,因此我提出探索式教授方法。具体方法是,先提出一个现实生活中可能遇到的问题,然后思考现实生活中的解决途径,将此途径用代码模拟实现,经过精心安排,在上述代码中埋下下一个问题的伏笔,然后提出下一个问题,如此反复。探索式教学方法建立在实践问题的基础上,先探索在实践中的解决方案,然后将该方案付诸于代码实现模拟,再总结该代码中出现的新的知识点和涉及的下一个问题,一节课结束之前在讨论该节课涉及的知识点在其他方面的应用。

3.3 合理安排实践和习题

针对实践环节中存在的问题,我提出如下方案。首先,将验证式教学中的教师角色应用到学生身上,在探索式教学的基础上,让学生自行编写例题验证所有的知识点,并将程序保存为自己的类库供以后参考学习。其次,针对知识结构适时安排恰当的练习,比如可以一些经常见到的小应用软件、小游戏,作为实践内容,既生动有趣,又可以锻炼学生解决问题的能力,提高学生的编程技巧。我在实践中就曾经将五子棋、扫雷游戏、货存管理系统、梭哈游戏等作为学生设计实践的练习,效果很好。

3.4 其他

备课尤为重要,教师要不断地更新自己的知识结构,掌握最前沿的技术动向。另外,在IDE工具的选择上,我建议在学习初期最好使用纯文本的编辑工具,以让学生最大限度地了解Java语言的内涵和使用规则,熟悉各个关键字的拼写和使用。而在提高阶段为了提高效率可以适当使用IDE工具,并适当传授一些工具使用的技巧。

4. 结语

对于计算机软件专业的学生而言,《Java面向对象编程》课程的重要性不言而喻,教师应该在教材选择、教授方式、实践安排等各个环节求新求变,争取找到效果最好,最适合自己和学生的教学安排,在提高学生自身能力的同时,为国家的就业问题作出自己的贡献。

摘要:本文针对计算机软件专业学生在《Java面向对象编程》课程中遇到的问题, 提出了编程课程教学的新模式, 以期可以让学生更好地掌握编程技巧, 在教学中将实践能力的提高最大化, 从而最终缓解计算机软件专业毕业生的就业压力。

关键词:《Java面向对象编程》,教学方法,教材改革,实验教学

参考文献

[1]Kathy Sierra, Bert Bates.Head First Java.中国电力出版社, 2007.

[2]李相国等.Java实例精通.机械工业出版社, 2009.

Java程序设计课程教学探讨 第9篇

关键词:java,任务驱动

一、引言

《Java语言程序设计》是高校计算机专业一门基础课程, 在网络时代的今天, 掌握Java语言对于计算机专业学生来说, 尤为重要。学习JAVA语言, 不仅是学会一门编程语言, 更重要的是掌握面向对象的编程思想。Java语言入门看似简单, 但在实际的教学中, 却发现学生存在着很多问题。针对这种情况, 笔者总结了一些教学经验, 对存在的问题和解决的方法进行一些探讨。

二、教学现状和存在的问题

1、难以建立面向对象的编程思想

在学习Java语言之前, 绝大多数学生都完成了C语言的课程。由于受C语言的面向过程编程的影响, 对面向对象编程不容易接受, 解决问题的方法, 仍是沿用面向过程的思想。

2、基础概念太多, 互相穿插, 难以理解。

Java作为面向对象编程语言的典型代表, 已经成为众多计算机专业的首选编程类课程。各种教科书中, 除了Java语言本身特点的介绍, 还介绍了很多面向对象的共有特性。这些内容一定程度上加大了Java课程的难度。初次接触面向对象语言的学生, 往往会被这些内容搞得晕头转向, 更别说编写正确的程序了。

3、庞大的Java类库, 让学生望而却步。

功能强大且庞大的Java类库, 虽然使得开发Java程序更方便了。但无疑在一定程度上使得Java的学习难度更大了。

4、课时安排过少, 教学内容难以吸收。

由于专科性质, 课程教学学时压缩, Java课程一学期基本在70学时以内就结束, 加之上机课时过少, 对于学生来说, 往往讲过的内容很快就忘了。

5、

教学中, 往往偏重Java知识点的讲解, 而忽略知识“面”的培养。学生难以对所学的知识融会贯通。

三、教学探索

1、学习Java, 相比于细节上的编程, 本人认为建立面向对象的立体思维更重要。

C语言是面向过程的, 而Java是面向对象的。这两者之间的差别绝非一个class能解释清楚。很多学生学了很久的Java, 还是习惯于面向过程的思维方式, 要首先帮助学生养成面向对象的思考方式, 尽可能的忘记那些面向过程的解决问题的方式。用抽象来代替具体的解决方案, 用接口来替代面向过程中的函数。比如, 说到两个数相加, 学生往往会马上动手编写一个add函数, 这时, 老师就要纠正, 可以用一个接口operator, 内含若干个抽象的运算方法。只有在思维正确的基础上, 才能开展更有效的教学。

2、

针对基础概念过多难以掌握的情况, 笔者认为, 应该先抓主线, 先帮助学生建立一个比较清晰的思路, 比如, 用典型的“hello, world”程序让学生理解类—对象—程序这种JAVA程序设计的模式。多用一些形象化的例子, 使学生理解比较抽象的内容。比如谈到继承, 可以用一个father类表示父亲, 父亲有一个成员money, 被儿子类son继承, 而son类中也有自己的money成员, 通过比较, 使学生较快理解继承的概念。

3、对于庞大的Java类库的学习, 笔者认为应该鼓励学生学会自学。

虽然Java自带了一个API文档, 但几乎没有教科书对其进行详细的介绍, 实际上, 这也是不可能的。授人以鱼, 不如授人以渔。教师在课堂上要有目的的引导学生多查API文档, 每次碰到一个新类, 先查API文档, 了解其成员变量和方法, 学习其用法。让学生养成查阅API文档的习惯。

4、Java本身所包含的概念比较多, 在谈论到某些内容时, 容易让学生有囫囵吞枣的感觉。

对于一些知识点, 应该尽可能的做一些探讨, 对于不太复杂的内容, 做一些模拟的代码实验, 对于学生加深理解, 有很大的帮助。

比如在说到容器类中有关迭代器的使用时, 学生经常都是死记硬背下面的几句代码:

至于迭代器如何得到的, 又是如何利用迭代器实现集合遍历的, 却很少有学生关注。尽管底层实现很复杂, 但可以用学过的Java知识来模拟迭代器, 这样学生理解起来也就更容易了。比如写一个程序, 先定义自己的迭代器接口my Iterator。用一个数组来模拟集合, 在集合类my Co的内部, 使用内部类定义自己的迭代器类iter, 并实现了迭代器接口my Iterator。在集合类my Co中的iterator方法中, 创建自定义的迭代器对象, 并返回其引用给用户使用。通过这个实验, 学生既理解了迭代器的工作过程, 又对接口和内部类有了更深的理解。在教学中, 应该多找机会写这样的模拟代码, 有助于学生加深内容的理解, 更能让自己所学的知识融会贯通。

5、学习一门计算机语言, 最有效的方法, 就是写代码。

看得懂, 不叫真的懂, 写出来, 能正确运行的, 才是真的懂。要让学生多动手, 最好将书上的代码都敲一遍。同时, 动脑也很重要。作为教师, 应该鼓励学生勤思。在书上代码的基础上, 教师应该多考虑如何变化代码, 产生更多不同的结果, 并作为习题, 留给学生思考。采用任务驱动教学方法, 一个阶段的课程结束后, 布置一个综合编程练习;在课程的最后, 应选用一个较为完整的综合项目, 锻炼学生的思维和编程能力以及考察对知识融会贯通的掌握程度。

四、结语

随着网络时代的发展, 可以预见, Java语言在未来很长一段时间内, 都是计算机专业的一门重要课程。学好Java对于计算机专业的学生来说, 是非常重要的。作为计算机教师, 应该不断提高自身素质, 在教学中发现缺点, 并切实的去纠正, 才能更高效的完成Java程序设计课程的教学任务。

参考文献

[1]Bruce Eckel.Java编程思想.机械工业出版社, 2012.2

Java课程体系 第10篇

平台即服务PaaS(Platform-as-a-Service)作为云计算的一种,是将基础设施平台作为一种服务呈现给用户的商业模式,方案成本比较低。对那些资金有限、IT服务资源有限,并且急需扩展IT基础支撑的企业有着巨大的吸引力[3]。同时,PaaS也是SaaS模式的一种应用,它降低了SaaS开发应用的门槛,提高了开发效率,充分体现了互联网低成本、高效率、规模化应用的特性,是一场互联网应用软件开发的革命。

本文首先分析了现有PaaS平台的特征及其面临的安全问题,然后介绍了现有解决方案及其不足,最后提出了一种基于Java安全体系结构的托管PaaS平台安全容器解决方案。

1 托管PaaS平台及其安全问题

1.1 托管PaaS平台

PaaS提供基于基础设施(即IaaS)上的软件、中间件和应用开发工具[8]。不同的PaaS提供不同组合的服务,综合的PaaS是一个集开发、测试、部署、托管和应用维护为一体的集成运维环境,有的PaaS还提供源代码和版本控制等应用软件开发的过程管理[6]。从PaaS环境的应用支撑环境出发,典型的PaaS系统分为两类:开放PaaS平台和托管PaaS平台。其中托管PaaS平台只提供包含安全和可伸缩性等基本功能的托管服务,不提供开发和测试环境。

1.2 托管PaaS平台的安全问题

托管PaaS平台为了实现可扩展、可用性、管理以及运行效率等方面的“经济性”,基本都采用多租户模式。多租户PaaS服务模式的应用面临着一些安全隔离问题[9]。

(1)云计算应用所用的数据会和其他用户的数据混合存储,恶意的云服务提供商、恶意的邻居“租户”以及某些类型应用的滥用会造成用户数据安全问题;

(2)不同用户的应用共同运行在一个JVM之上,对JVM的非法操作会造成邻居租户的应用安全问题,例如恶意应用通过系统调用使JVM退出;

(3)不同用户的应用在运行过程中共享系统资源,如CPU、内存、网络资源等。恶意应用对共享资源过多的非法占用将会造成邻居租户应用无法正常运行。

1.3 PaaS平台安全问题一般解决方案

在多租户PaaS模式中,最核心的安全原则就是多租户应用隔离[7]。云用户确保自己的数据只能被自己的企业用户和应用程序访问。为了实现多租户应用隔离,云提供商必须提供“沙盒”架构,通过平台的“沙盒”性实现集中维护客户部署在PaaS平台上应用的保密性和完整性。为了提供“沙盒”架构,现有云提供商通过为每一个用户应用提供一个Servlet容器的方法来实现逻辑上的隔离,例如Google App Engine为每一个应用运行一个独有的Jetty容器。

现有解决方案能有效提供平台的“沙盒”架构,实现多租户应用隔离,但是同时,多租户模式下运行多个Servlet容器的模式会带来较大的系统开销。本文在现有解决方案的基础上,提出了一种由一个Servlet容器承载不同应用的解决方案,在实现多租户应用隔离的同时保证系统性能。

2 托管PaaS平台安全容器设计

本研究中,基于Java实现托管PaaS平台,采用Jetty作为Servlet容器,实现对Java Web应用的托管服务。

自Java技术出现以来,Java平台的安全问题以及应用Java技术而产生的安全问题引起了广泛的关注,并从JDK1.0以来,Java的安全体系结构不断演变,安全也不断得到加强,如今Java技术已能提供对安全的良好支持。本文提出的PaaS平台安全容器,就是利用Java技术提供的安全性,并在此基础上结合托管PaaS平台特点进行定制而实现的。

2.1 Java安全体系结构

Java技术从多个方面提供了对安全性的支持:Java语言本身安全性;虚拟机的双亲委托类加载机制;安全管理器和Java API。这些共同构成了Java安全体系结构,即沙盒模型:一个支持灵活的细粒度访问控制安全策略,并且具有可扩充性和伸缩性的安全体系结构。

Java沙盒采用了灵活的保护域安全模型,由安全策略来决定代码具有的访问许可,对被保护资源的访问会激发安全检查,这些检查会将授权的许可和其试图访问所需要的权限进行比较。这些激发安全检查的访问包括文件系统访问、JNI访问本地代码和创建Socket连接等。

2.2 托管PaaS安全容器

利用Java沙盒模型提供的访问控制功能,可以将同一JVM中运行的代码从逻辑上分开:分别运行于不同的沙盒中。在本研究中,托管PaaS平台安全容器,即基于Java沙盒模型实现应用隔离。

利用Java沙盒模型可以实现PaaS平台应用的访问控制功能,但同时也存在一些不足:

(1)Java安全策略文件实现代码和权限映射,在托管PaaS平台上,系统运行过程中,用户不断上传新应用,这就使得安全策略文件需要不断修改并生效。

(2)用户上传Web应用多采用war包的形式,Jetty部署应用时会将其自动解压至临时文件夹,这为在安全策略文件中指定该应用的代码位置带来了困难。

(3)在PaaS平台中,多租户应用共同运行在一个Jetty容器中。为避免相互影响,这些应用只能拥有有限并且相同的资源访问权限,通过安全策略文件的形式存在很大的重复,并且JVM实现安全策略文件到应用权限的映射也会降低系统性能。

因此,本研究中,基于托管PaaS平台及Jetty和用户应用的特点,在Java沙盒模型的基础上进行了扩展和定制。其体系结构如图1所示。

在托管PaaS平台运行环境中,安全容器提供应用运行受限的环境,即沙盒环境。沙盒环境实现应用运行时5个方面的访问控制:文件访问控制、网络访问控制、多线程控制、JNI访问控制和System.exit()方法访问控制。在托管PaaS平台运行环境中,安全容器在Java安全体系结构基础上进行扩展,实现了两套逻辑沙盒模型,在逻辑上把系统代码和应用代码分开处理,实现简化安全策略文件的配置,提高系统性能。

在托管PaaS平台运行环境中,两套逻辑沙盒模型(默认沙盒、应用沙盒)分别提供系统代码和应用代码的运行环境,并实现相应的访问控制。托管PaaS平台运行环境安全模型主要通过保护域模块、类加载模块、安全策略模块、访问控制模块4个逻辑模块来实现。

(1)保护域模块

在Java安全体系结构中,域在逻辑上封装了一组类,并根据当前有效的安全策略,将这组类的实例赋予一组相同的许可权限。当类加载器将类型装入Java虚拟机时,它们将为每个类型指派一个保护域,Java应用环境通过维持代码到它们的保护域,再到它们的许可权限的映射来实现沙盒。

在PaaS系统中,定义了两种安全域:系统保护域和应用保护域。系统保护域使用Java安全体系结构中默认的域模型,即通过代码位置及签名指定保护域,并通过安全策略文件为其指定权限。

类似地,应用保护域由每个应用的AppContext来指定,逻辑上与一个Web应用相对应。同时,由于安全容器中所有应用拥有特定的有限权限,可以通过应用类加载器直接为应用指定权限集,从而避免安全策略文件到权限的映射。

(2)类加载模块

在Java安全体系结构中,由类加载器根据所加载的所有类或接口的代码库和签名,以及系统的安全策略创建保护域的实例,并为每个类型指派到相应的保护域。

PaaS平台运行环境中实现了两套保护域模型,相应地实现了两套类加载策略:系统类(Jetty代码和服务端代码)和应用类分别由系统类加载器和WebApp类加载器加载。系统类加载器加载代码时,使用Java安全体系结构默认的方式(即代码位置)为每个类型指派保护域。WebApp类加载器加载应用类时,根据该应用的AppContext为其指派保护域,并为此保护域赋予默认应用权限集。

在Jetty中,应用类的加载利用ContextClssLoader的方法,为每一个应用起一个线程,通过该线程的ContextClassLoader属性保存一个ClassLoader实例的引用,使得此线程的任何语句都可以得到此ClassLoader,然后用来加载类。即在Jetty中,每一个应用由一个WebAppClassLoader实例进行加载。

(3)安全策略模块

在Java安全体系结构中,沙盒模型中类和权限的映射由类加载器加载类时实现:类加载器创建一个保护域的实例,并根据当前安全策略为该保护域内代码创建权限集。

默认沙盒采用Java安全体系结构默认的安全策略文件来实现安全策略,即JVM实现安全策略文件到保护域权限集的映射。应用沙盒采用PaaS系统默认应用安全策略,该策略指定了PaaS系统中应用的默认权限集,由WebAppClassLoader加载应用类型时直接指定。

(4)访问控制模块

Java安全体系结构中,运行于沙盒中的代码访问被保护资源时,由安全管理器进行安全检查,最终实现对沙盒中代码的访问控制。由PaaS平台运行环境体系结构图可知,在PaaS中,为了更好地进行应用的访问控制,系统代码和应用代码分别运行于两套沙盒模型中,并且这两套沙盒分别采用各自的域模型和安全策略模型。因此,为了实现访问控制,需要分别按照两套逻辑分别进行权限检查。同时,出于安全的考虑,Java安全体系结构中,JVM实例某一时刻最多只能指定一个安全管理器实例,因此在PaaS平台运行托管环境中,安全管理器需要同时处理两套访问控制逻辑。其访问控制流程如图2所示。

访问被保护资源时,安全管理器将进行访问控制:首先判断当前访问请求来自应用沙盒还是系统沙盒;其次根据沙盒的保护域模型进行相应的访问控制。

3 托管PaaS平台安全容器系统测试

3.1 系统测试部署

测试环境如图3所示。

PaaS云平台中逻辑结点均为虚拟机,包括一个PaaS Manager、一个FTP服务器以及若干PaaS Container结点。测试中,所有虚拟机性能均相同,CPU个数为1,内存为1024 MB。

3.2 安全容器系统开销测试

在此测试阶段,3台Container结点分别使用以下方式托管应用:运行一个Servlet容器,托管一个用户应用;运行一个Servlet容器,托管3个不同用户应用;运行3个Servlet容器,分别托管一个用户应用。系统启动并运行稳定后,每5 s记录一次Container占用CPU及内存的情况。测试结果分别如图4、图5所示。

由测试结果可知,运行Servlet容器将会带来较大的系统开销,而一个Servlet容器中托管应用数的增加并不会带来较明显的CPU及内存的消耗。因此,与现有PaaS使用一个容器托管一个应用的方式相比,本文中PaaS安全容器解决方案将会带来明显的系统性能提升。

3.3 沙箱模型性能测试

为了实现PaaS容器安全,通过Java沙箱机制实现应用隔离。本文的PaaS安全解决方案中,结合Jetty托管应用的特点,在Java沙箱模型基础上实现定制。本测试阶段,3台Container结点分别作如下实现:无沙箱、默认沙箱和定制沙箱。3台Container分别托管相同应用,该应用无文件访问权限,系统启动并运行稳定后,通过PC客户端访问应用,进行10次文件读操作,记录所需CPU时间。测试结果如图6所示。

无沙箱限制时,应用读文件成功,沙箱环境下,应用访问失败。同时,由上述测试结果可知,没有沙箱限制时,应用读文件所需CPU时间最短。通过定制沙箱,减少从安全策略文件到沙箱权限集的映射,一定程序上提高了应用运行速度,提高系统性能。

云计算是当前发展迅速的新兴产业,其发展面临着许多关键问题,其中安全问题成为制约其发展的最主要因素[7]。PaaS作为云计算的一种服务方式,具有广阔的发展前景。本文研究了PaaS云平台所面临的一些安全问题,分析了现有解决方案及其存在的缺陷,并在此基础上提出托管PaaS平台安全容器解决方案。通过测试证明,本文所提出的解决方案在实现PaaS平台应用隔离的前提下,降低了系统开销,保证了系统性能。

摘要:分析了PaaS云平台的特征及其面临的一些安全问题,及现有解决方案存在的不足,在此基础上提出新的解决方案——基于Java安全体系结构的托管PaaS平台安全容器。

关键词:云计算,PaaS,安全容器,Java安全体系结构

参考文献

[1]刘鹏.云计算的定义和特点[OL].(2009-02-05).http://www.chinaclold.cnlshow.aspx?id=741&eid=17.

[2]CSA,Cloud Security Alliance[EB/OL].http://clandsecuringaliance.org.

[3]LUIS M V,LUIS R M,JUAN C,et al.A break in theclouds:towards a cloud definition[J].ACM SIGCOMM Com-puter Communication Review,2009,39(1):50-55.

[4]BALACHANDRA R K,RAMAKRISHNA P V,ATANU R.Cloud security issues[C].Proceedings of the 2009 IEEEInternational Conference on Services Computing.2009:517-520.

[5]张云勇,陈清金,潘松柏,等.云计算安全关键技术分析[J].电信科学,2010,26(9):64-69.

[6]RAJU B P R,SWARNA P R,RAO M S.Privacy andsecurity issues of Cloud Computing[J].IJART,2011,1(2):128-136.

[7]冯登国,张敏,张妍,等.云计算安全研究[J].软件学报,2011,22(1):71-83.

[8]KUYORA S O,LBIKUNLE F,AWODELE O.Cloud com-puting security issues and challenges[J].IJCN,2011,3(5):344-349.

Java课程体系 第11篇

关键词:Java程序设计;项目驱动教学模式

中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2012) 10-0000-02

在目前的java程序设计教学中,普遍存在着课本不及时更新,无法摆脱应试模式框架,以及教育与实际脱轨等一系列的问题。而java程序设计是一个对学生的操作和实践很有依赖性的学科,所以,只有选择项目驱动教学的方式,才能使得学生的实践和操作能力得到一定的发展,更好地学习java的程序设计。

一、什么是项目驱动教学

项目驱动教学法是指通过进行一个完整的项目工作,来达到教学的目的,让知识和学生的动手能力都可以得到很好的进步。项目驱动教学模式主要应用于计算机软件这种比较复杂,学生可以借助项目的发展,来接受一些诸如程序设计之类的知识系统。

二、项目驱动教学模式的意义

项目驱动教学模式可以具体针对每一个学生来进行程序设计的教学。通过分组讨论等方式,可以使得学生的思路更清晰,更好地掌握java程序设计的知识理论。可以大大提高学生的学习兴趣和实践能力,使得高职院校更好的和社会接轨。所以,项目驱动教学模式是一种具有划时代意义的教学史上的重大改革。

三、就java程序设计对项目驱动教学模式的研究

(一)如何选择授课项目

项目的选择应该与当下社会的发展趋势相匹配,这样的授课项目才可以与时代的发展接轨。项目的选择要根据授课时间、授课地点以及学生的学习能力来判断。如果项目过难,学生不易接受,反而达不到预期的效果。反之,项目过易,学生的积极性不容易被调动起来,也容易达到事倍功半的效果。如果项目的基体过于庞大,教师很难完全的对项目进行细致的分析,会影响教学的完整性。而项目的技术含量如果太高,就会使得学生失去学习的兴趣,打击学生对项目研究的勇气和信心。所以,教师应该根据学生的接受能力,授课的周期来具体分析,为学生选择合适的项目来进行授课作业。

(二)如何合理安排学生分组和授课进度

授课项目的选择是为了完成整个学期的学业。所以项目的安排要合理地分散于学生学习的一个周期之内。根据授课的进度,适当增加项目的难度以及技术含量。这样比较利于学生的学习积极性和学习兴趣一直处于一个合理的状态,避免了填鸭式教学的传统弊病。

学生的分组可以按照学生的接受能力和领导组织能力。领导组织能力强的同学可以作为每个小组的组长,接受能力高的同学可以作为副组长。这样就能更有利地组织学生来一步步完成项目的每个阶段。并且能更好地激发学生的团体协作精神和部分同学的领导力,并且可以大幅度减少教师的教学负担。还能使得学生更好地适应今后的工作。

(三)如何进行项目驱动教学

1.教师讲解软件开发的环境

在授课的开始,教师一定要本着当下软件开发的环境为学生作深入细致的讲解。当下,软件开发企业为了降低成本,提高速度,使用的是一体化的集成设备,即把数据库,服务器等集成在一起,这就增加了学生学习的难度,使得原本简单的东西复杂化。

Java的后台程序都是英文版的,这就要求教师更合理地引导学生来正视软件开发的难度,同时借助语言,肢体,以及软件的实际操作来打消学生的负面心理,提高学习的积极性。

2.确定授课的软件

在教学过程中,一定要选择合适的授课软件及其辅助工具。因为java的程序设计不但要求学生知道程序设计的目标,更要让学生知道该过程及其原理,以及软件开发的条件和必备工具。在授课初期,教学过程一定要采用可视化的软件,这样可以使得学生更直观地看到程序的管理,编程等的产生和形成。在授课达到一定程度之后,再采用非可视化的开发工具,锻炼学生的能力,使得学生更好地掌握软件开发的知识,更好地锻炼学生的动手能力和操作能力。

3.授课的考核

在当下,传统的考核方式已经不再适应项目驱动授课的教学模式。在项目驱动的模式下,我们不应该只用笔试,口试的方法对学生的能力和知识量来进行评定。在此,我们应该在教学到了某一进度时,让学生亲自动手制作某软件或者某程序。例如:让学生自己动手来编程,而不是让学生在纸上填写编程代码。当学生的考核完成以后,由学校的权威专家来逐个评判考核的结果,并评分,计入考核档案。这样才能防止某些学生作弊,更好地体现考核的权威性和公平性。

4.教学实践

当学生的考核完成并且合格以后,就应该让学生来参加实践。实践可以是教师根据企业的发展来设计出的项目,也可以是学生自己寻找的项目,无论如何,都要和日后学生即将步入的社會相适应,不可以搞****,让学生空有一身知识而无处倾泄。实践可以更好地锻炼学生的动手能力,以及对之前的知识更为系统地掌握和消化。并且能让学生更为自信的走向社会。

5.引导学生就业

当学生的知识掌控的比较随心所欲,并且动手操作能力也能得心应手时,教师应该主动引导学生走向社会,即让学生就业。根据学校的优惠政策和人脉关系,为学生选择一个适合的行业来发挥他们的最大才能。初入社会的学生并不懂得社会上的一些潜规则和人际交往,教师应该用委婉的语言向学生合理解释,如果话说的太直接,容易导致学生对社会产生恐惧的心态,打消学生走向社会的积极性。学生应该努力自己走向社会,用自己的知识和能力,选择合适的就业岗位,并且在教师的帮助下,把自己的一切做到最好,发挥自己最大的优势适合自己的空间。

四、小结

项目驱动的教学模式现在的我们已经不陌生,它的作用是把教学和实践完美的结合在了一起。杜绝了以往学生只知理论,不懂社会实践的尴尬局面。学生步入社会以后可以更快,更好地接受社会所给于的压力,及时把自己的知识应用在工作中。所以,项目驱动的教学模式是今后教育改革的必由之路。

参考文献:

[1]马玉青.计算机绘图教学中应用“任务驱动”教学法初探[J].职业教育研究,2005,(10)

[2]姜大源.职业教育专业教学论初探[J].教育研究,2004,(05)

[3]张哲,陈桂生.在Java语言教学中实施“项目驱动”教学法的实践探索[J].教育与职业,2007,(18)

[4]张党省.论职校教师在项目教学法中的角色[J]. 科教文汇(下半月),2006,(09)

[5]岳云峰,顾晖,李跃华.计算机硬件课程教学中的项目驱动教学法[J]. 南通大学学报(教育科学版),2007,(03)

[6]吴言.项目教学法[J]. 职业技术教育,2003,(07)

[7]兰景英,范勇.基于项目驱动的软件测试人才培养模式[J].计算机教育,2011,(6):10-13

[8]陆芸婷.基于工作过程的《数据库基础》课程设计[J]. 中国科技信息,2009,(15):269-271

[9]朱雄军,杨旭东,陈晴.高职计算机网络专业基于工作过程的课程体系设计[J].职业技术教育,2008,(5):32-33

[10]罗伟,张莹,张翠英.基于“工作过程”的铁道技术专业课程体系构建[J].陕西教育(高教版),2008,(3):34

Java程序设计课程教学研究 第12篇

SUN公司的Java语言以面向对象、平台无关、多线程、功能强大等诸多领先特性,成为目前软件行业的主流开发语言,各计算机专业均把Java程序设计作为核心课程。但程序设计本身的枯燥、理论的抽象、知识点多、课时少以及学生知识水平、认知规律和接受能力的局限性,都给该课程的教学带来了很大难度。

在Java程序设计教学过程中,如何找到一条比较新颖、有效的解决Java语言教学本身枯燥、难理解的教学模式,一直是广大计算机教师不断探索的问题,也是教师们颇感兴趣的课题。为了培养学生编程的兴趣,提高学生编程能力,树立学生学习信心,经过详细的思考和从学生实际出发,重新对Java语言程序设计教学方法进行设计,从就业出发对Java程序设计课程进行教改,学教并重,以项目教学、实践教学为主,理论教学为辅,灵活运用多种教学模式和现代化教学手段,精讲多练,使学生学有所用、学以致用。

2 教学目标及手段

1)培养学生自主学习的兴趣。

挑选一些实用趣味性强的例子,激发学生学习的兴趣,帮助学生构建自己的知识体系,通过实例讲解程序设计的基本概念、基本方法,把重点放在解题思路上,使学生触类旁通地学会其它问题的解决方法,培养学生自主学习的能力。

2)运用案例一题多解,培养学生发散性思维。

一题多解可以让学生深刻理解所学的知识,学会新的方法,同时挖掘学生的内在潜力,培养思维的灵活性,使学生可以从多个角度去考虑问题。例如:1-100的求和,可以用for,while,do三种不同的循环语句实现,写出不同风格的程序来。

3)选用合适的教材,突出技能训练内容

目前现行教材基本以知识点为逻辑结构体系编写,不适合应用型和适应型人才的目标,应选择合适的教材或对教材进行再创造,理论以“够用”为度,突出实际应用技能训练,以案例为中心,打破以教材为中心的传统教学模式,把授课重点放在具体案例的讲述上。

4)任务教学法

学生的学习活动是创造性的劳动过程,任务教学法围绕一个实际问题,设计出一个环境,让所有学生共同探讨需要学生解决的问题,承担不同的角色。从信息收集、方案设计、方案的实施,到学习结果的评价,都督促学生相互之间保持良好的协作关系,进而在携手合作的基础上各司其职,寻找解决问题的途径,最终顺利完成学习任务。这也就从获得角色,获得突出的表现机会并成为获得中的主人,由此可以增强学生的内心体验,激发学生的学习动机和愿望,同时培养团队合作开发的意识。

5)案例研究

学生结合个人亲身经验,设计日常练习小程序,通过案例分析和研究,达到为日后工作做准备的目的。选择案例应强调问题的普遍性和代表性,避免使用太复杂而不易解决。

6)采用项目教学法

结合理论教学,设计课程项目,积累编程经验。课程项目以大作业的或课程设计形式来组织,随教学过程的结束而结束。学生通

过较为完整的编程过程,学习和掌握教学中每一个环节的基本知识提高解决实际问题的能力。Java根据知识点的不同,项目大致可以分为三类:基于图形、图像与多媒体的系统开发、基于jsp的网络应用、游戏开发等。这些知识点虽然不是Java课程教学内容,但对学生专项能力的培养、从事日后的软件开发大有裨益。对于这些知识点,根据学生兴趣,选择适当的题目,让学生查阅资料,教师进行网络辅导,既可以提高学生编程能力,又可以提高学生自主学习能力。

3“演示、模仿、创造”教学模式

在日常的教学过程中,充分利用现代化的教学手段,采用“演示、模仿、创造”的教学模式。该模式把教学过程分为三个阶段,即教师演示阶段、学生模仿阶段、学生独立编写程序的创造阶段。教师在讲解案例时首先是将案例的运行结果演示给学生看,增强学生的感性认识和编程兴趣,然后进行分析、讲解。学生模仿阶段是学生根据教师开发案例的过程、模仿教师编程思维方式完成相似案例的实现。创造阶段是学生独立选择日常生活中的实际题目,独立完成一个全新的具有实用价值的项目。

4 结束语

Java程序设计是兴趣主导的一门课程,如何通过编程使学生乐在其中,是教学中的关键。在编程的过程中,教师应多从学生的认知角度出发、设计合理的编程题目,遵循“演示、模仿、创造”的编程学习理念,循序渐进地建立学生信心、培养编程兴趣、提高编程水平,才能使Java程序设计教学达到事半功倍的效果。

参考文献

[1]任侠.Java语言程序设计教学改革探讨[J].电脑知识与技术,2007(3).

[2]陆萍.浅议Java程序设计教学改革[J].电脑知识与技术,2007(8).

[3]陈云平、VB程序设计教学改革初探[J].电脑知识与技术,2007(8).

本文来自 9**术网 (www.99xueshu.com),转载请保留网址和出处

【Java课程体系】相关文章:

课程设置与课程体系06-17

课程培养体系05-09

金融课程体系05-11

综合课程体系05-25

创业课程体系06-14

语文课程体系07-07

特色课程体系07-23

课程体系建立08-18

医学课程体系09-16

  • 上一篇: 有基础培训java
  • 下一篇: java基础学习时间
  • 版权声明


    相关文章:

  • 有基础培训java2025-04-12 18:50:01
  • java基础月报2025-04-12 18:50:01
  • java web 网页基础2025-04-12 18:50:01
  • java基础 入门2025-04-12 18:50:01
  • java超级基础502025-04-12 18:50:01
  • java基础学习时间2025-04-12 18:50:01
  • java深度基础2025-04-12 18:50:01
  • java核心基础全集2025-04-12 18:50:01
  • Java基础类代码2025-04-12 18:50:01
  • java基础2篇连载2025-04-12 18:50:01