Java语言课程

2024-05-05

Java语言课程(精选12篇)

Java语言课程 第1篇

Java语言的语法比较多, 即使能够理解其中的语法, 但诸如多线程和容器、网络编程等语法的灵活应用, 还是不容易掌握。而以往的教学方式无法充分调动学生学习兴趣和积极性, 更加缺乏学生应用已学知识解决实际问题的能力培养和提高。因此, 在Java语言课程教学中增加实践教学就显得尤为重要。

1 Java语言教学中存在的若干问题[1]

(一) 课堂教学灌输多、启发少

在Java语言课堂教学中, 一些教师仍然采用比较老式的“满堂灌”的教学模式来进行教学, 教师在上课期间没有给学生留下充分的时间去理解和思考, 学生即使能够理解也不明白到底应该如何应用知识解决实际问题, 因此可能无法也根本上调动学生学习的兴趣和积极性。教师在教学过程中, 没有或者很少通过实例来分析解决问题的办法, 给学生的启发较少, 只是单纯的讲解问题, 这样也无法从根本上提高学生解决实际问题能力。

(二) 综合实训比例小, 学生工程应用能力不强

Java语言如今是应用最广泛的程序开发语言, 因此提高学生的编程水平, 解决实际问题的动手能力就显得尤其重要。但由于高校总共安排的课时有限, 给学生提高实践的机会不多。以笔者所在软件工程专业为例, Java语言课程总共安排36个实践课时, 但本课程涉及到的知识点又非常多、应用性强, 所以能够安排给各个知识点的实践时间就更少。因此学生很少有机会参与实际项目的开发, 提高学生的动手能力和项目经验就更加无从谈起。

2 Java语言程序课程的实践教学改革

笔者在本文中主要从Java课程教学目的、实践教学内容阶段安排、实验项目设计、课程设计、学生实验考核等方面来阐述Java语言程序设计课程实践教学改革。

2.1 Java语言课程教学目的

基于Java语言课程的课堂实践教学方法, 其主要教学目的是:让学生能够真正的理解面向对象思想, 理解类与对象的关系, 掌握面向对象程序设计过程中类的继承、数据的封装、以及多态性等等有关OOP的机制, 同时要掌握类的设计方法和对象的使用, 类和类的层次结构关系等。

能够熟练掌握Java语言编程中的基本语法, 能够熟练掌握Eclipse开发环境及API等帮助文档, 具备用来参与实际项目的开发能力。

2.2 实践教学内容阶段安排

近年来, Java语言实践教学体系逐渐成熟, 结合笔者所在学校的具体情况结合该区域发展, 以及社会对Java语言实践人才的刚性需求, 注重培养提高学生的解决实际问题的能力、团队合作能力、创新能力为出发点, 将实验课程分为四个阶段[2]:验证性实验阶段、设计性实验阶段和综合性实验阶段、课程设计阶段, 四个阶段紧密结合, 相互联系, 在实验的安排上从易到难, 由浅入深, 最后到以实际项目为实训的课程设计。如图1所示:

(1) 验证性实验

首先由教师编写Java语言程序实验指导书, 按照应教材所对应的知识点, 按照实验步骤进行实验, 学生仅仅是通过编写简单的程序设计来验证实验结果。例如, JDK环境的安装和开发环境Eclipse的熟练使用、基本语法的应用、类与对象的简单设计、Math等常用类的应用, 用户界面编程、多线程等。通过验证性实验, 可以让学生了解Java语言的基本语法、概念, 以此来培养和提高学生的基本编程能力, 强化各个知识点。Java语言课程的实验课较少, 验证性实验占用6~8学时为宜, 其余验证性实验可以让学生通过课余时间来完成。

(2) 设计性实验

设计性实验是指由教师根据学生验证性实验完成的情况, 来给出设计性实验具体的项目需求, 要求学生根据学习Java语言的基本语法来设计实验过程、编写Java程序、最后根据实验完成情况来填写实验报告的过程。学生首先要分析设计性实验项目的需求, 创建需求模型, 编写算法, 最后编写Java程序完成设计性实验。该阶段实验可以充分的提高学生解决实际问题的能力, 可以为下一阶段的实验打下良好的基础。在该实验阶段中, 学生3~4人为一组进行开发, 按照软件工程的开发流程来完成, 可以培养学生相互合作的能力。我院每年组织学生参加由工信部举办的“蓝桥杯”全国软件大赛Java语言组的个人比赛, 还让学生以团队合作的方式积极参加全国的“蓝桥杯”作品竞赛等。在设计性实验可以安排8-10学时。

(3) 综合性实验

综合性试验是以设计性实验为基础的下一个阶段的实验, 教师要给出多个可供学生的选择的实际项目题目, 以Java语言进行开发, 运用与其相关的计算机课程, 比如:软件工程、UML建模语言、数据库、数据结构、算法设计与分析等相关学科的知识, 来完成该阶段的实验。通过综合性实验可以培养和提高学生独立进行需求分析、算法设计、代码实现、编写文档的能力。通过该阶段的实验结合我校的开放式实验室题目, 可以让学生真正体会到IT企业中开发项目的流程, 对于以后早日实现学生角色的转换具有非常重要的意义。综合性试验建议安排10学时, 该阶段实验主要是学生在教师的帮助和指导下利用课余时间来完成。

(4) 课程设计

本课程的课程设计为1周时间, 主要安排在授课结束的第二学期进行。教师根据综合性实验完成情况, 在每个小组已完成的任务上增加多个功能模块, 继续以分组的方式来合作并独立完成。让学生在一个个典型的课程设计的驱动下运用以学习的Java语言知识, 自主学习和相互合作, 完成该课程设计。通过完成这些课程设计, 学生可以掌握Java语言的知识与技能, 也能够锻炼学生的动手能力和解决实际问题的能力。在教师的指导下, 学生以分组的方式完成整个课程设计的需求分析、系统设计、详细设计、编码、测试、及编写文档的过程, 即按软件工程的要求, 完成课程设计的目的[3]。最后, 各组必须制作PPT来演示所完成的课程设计参与答辩, 教师可根据学生课程设计完成情况和答辩表现等进行评分。

2.3 实验项目设计

在Java语言教学中, 如数据类型、选择、顺序、循环三种基本语句以及数组等基本知识点, 在C语言的学习过程都已了解或掌握, 教师在讲述时要注意培养学生的动手能力和解决问题的能力, 不能过于讲述语法。要选择一定难度和趣味性的实验题目来提高学生的兴趣和求知欲。在Java语言课堂教学过程中, 笔者选用了具有一定代表性的学生信息管理系统, 能够检验学生掌握Java语言基本法的情况, 又在教学中调动学生学习的兴趣和积极性, 培养学生能够解决实际问题的动手能力。具体实验项目设计如下表1:

除了通过完成表1中的项目来逐步实现学生信息管理系统功能来掌握Java的基本语法以外, 还可以借此来提高学生的实际动手能力和解决题的能力, 增强学生学习Java语言的积极性和自信心。笔者还精心选择了以下6个课程设计的题目, 这6个课程设计名称和主要设计的知识点如表2所示:

以上6个课程设计题目难度适中, 根据笔者所在学校的软件工程专业的培养方案安排, 课程设计安排在Java课程授课的下一个学期执行, 所以造成很多知识无法在课堂上讲授。学生要先自行分组, 来独立、合作完成课程设计。教师在课外时间对学生进行辅导, 并进行中期和最后答辩来检查学生完成情况。课程设计的题目除以上题目之外, 学生还可以在老师的指导下, 题目亦可自拟。

这些课程设计题目比前几个阶段中的实验项目内容多、难度大, 学生可能一时难以理解和动手, 所以要求教师能够很好的把握课程设计实验项目的难度, 对项目进行概要性的讲解, 逐步帮助学生完成课程设计实验项目, 培养学生自主学习、相互合作的能力, 充分调动学生的学习积极性。

结束语

Java语言课程实践教学改革是一个长期的不断探索、不断完善的过程。虽然没有固定的教学方法来可以遵循, 但是我们可以根据Java语言课程特点、学生的基础等多方面因素, 在教学过程中更多的增加实践环节, 培养和提高学生的动手能力和学习的积极性, 一定会进一步提高Java语言课程的教学质量。

摘要:Java语言作为软件工程重要的基础课, 旨在提高学生的逻辑思维能力和动手能力。在Java语言教学中多增加实践环节, 将理论与实践融入教学过程中, 能够提高学生的动手能力和学习的积极性。

关键词:Java语言,实践教学,教学方法,课程设计

参考文献

[1]汤亚玲, 秦峰.面向对象程序设计课程教学探讨[J].安徽工业大学学报, 2008, 25 (6) :132-134

[2]李东明, 赵伟.Java语言课程实践教学改革[J].计算机育, 2011 (13) :122-125

五子棋JAVA语言课程设计报告 第2篇

课程设计报告

学 院: 信息科学技术学院 班 级: 软件技术2班 姓 名: 王更新 学 号: 1108900505 指导教师: 郭韶升 课设时间: 2014-03-17 至2014-03-26

二O一四 年 三月 二十六 日

目 录

一、设计要求…………………………………………....2

二、设计步骤…………………………………………....2 2.1程序流程图………………………….…………...2 2.2程序的功能分配……………………….………...3

三、设计正文…………………………………………....6 3.1创建棋盘类……………………………………….6 3.2判断输赢功能实现……………………………….9 3.3测试结果……………………………………….....9

四、心得体会…………………………………………...12

五、参考文献…………………………………………...12 附录(源代码)……………………………………….13

一、课程设计要求

设计一个15╳15围棋棋盘,由两玩家交替进行对战,并可以实现以下功能: 1.选择落子的先后顺序 2.重置棋盘 3.刷新重新开始 4.退出提示

并且规定退出者判为负,但退出过程中要有提示。以防不小心点错了。最后判断某一方是否为五子连珠。

实现一个简单的多用户五子棋的游戏程序,包括如下两个界面(1)选择对弈桌(执黑、执白)。

(2)在游戏界面,有开始,退出(游戏未结束、点退出自动判负);

二、设计步骤

2.1程序流程图

2.2 程序的功能分配

a.棋盘的绘制

public void draw_qipan(Graphics G)//画棋盘 15*15{

G.setColor(Color.lightGray);

G.fill3DRect(10,10,300,300,true);

G.setColor(Color.black);

for(int i=1;i<16;i++){

G.drawLine(20,20*i,300,20*i);

G.drawLine(20*i,20,20*i,300);

} } b.添加按钮

Button b1=new Button(“开始”);Button b2=new Button(“重置游戏”);Label lblWin=new Label(“ ”);Checkbox ckbHB[]=new Checkbox[3];Button exist = new Button(“退出”);public void init(){

ckbHB[0]=new Checkbox(“执白”,ckgHB,false);

ckbHB[1]=new Checkbox(“执黑”,ckgHB,false);

ckbHB[2]=new Checkbox(“观看”,ckgHB, false);}

c.鼠标棋子的触发事件

public void mouseClicked(MouseEvent e){

Graphics g=getGraphics();

int x1,y1;

x1=e.getX();

y1=e.getY();

if(e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300){

return;

}

if(x1%20>10){

x1+=10;

}

if(y1%20>10){ y1+=10;

}

x1=x1/20*20;

y1=y1/20*20;

set_Qizi(x1,y1);

m*=(-1);}

d.按钮的触发事件

public void actionPerformed(ActionEvent e){

Graphics g=getGraphics();

if(e.getSource()==b1){

Game_start();

}

else{

Game_re();

}

if(e.getSource()==exist){

Game_re();

lblWin.setText(Get_qizi_color(color_Qizi)+“输了!”);

intGame_Start=0;

}

e.判断落子的位置及画出相应的黑白棋子 public void set_Qizi(int x,int y)//落子{

if(intGame_Start==0)//判断游戏未开始{

return;

}

if(intGame_Body[x/20][y/20]!=0){

return;

}

Graphics g=getGraphics();

if(color_Qizi==1)//判断黑子还是白子{

g.setColor(Color.black);

color_Qizi=0;

}

else{

g.setColor(Color.white);

color_Qizi=1;

}

g.fillOval(x-10,y-10,20,20);

intGame_Body[x/20][y/20]=color_Qizi+1;}

f.判断胜负

if(Game_win_1(x/20,y/20))//判断输赢1{

lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);

intGame_Start=0;

}

if(Game_win_2(x/20,y/20))//判断输赢2{

lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);

intGame_Start=0;} if(Game_win_3(x/20,y/20))//判断输赢3{ lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);intGame_Start=0;} if(Game_win_4(x/20,y/20))//判断输赢4{ lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);

intGame_Start=0;} }

三、设计正文

3.1创建棋盘类

Public class WcyChess extends Applet ActionListener,MouseListener,MouseMotionListener,ItemListener{ int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子

int intGame_Start=0;//游戏开始标志 0未开始 1游戏中

int intGame_Body[][]=new int[16][16];//设置棋盘棋子状态

int m=-1;Button b1=new Button(“开始”);Button b2=new Button(“重置游戏”);Label lblWin=new Label(“ ”);Checkbox ckbHB[]=new Checkbox[3];Button exist = new Button(“退出”);CheckboxGroup ckgHB=new CheckboxGroup();NetchatClient chat=new NetchatClient();public void init(){

setLayout(null);

addMouseListener(this);

add(b1);

b1.setBounds(330,50,80,30);

b1.addActionListener(this);

add(b2);

b2.setBounds(330,90,80,30);

b2.addActionListener(this);

ckbHB[0]=new Checkbox(“执白”,ckgHB,false);

ckbHB[0].setBounds(320,20,60,30);

ckbHB[1]=new Checkbox(“执黑”,ckgHB,false);

ckbHB[1].setBounds(380,20,60,30);

ckbHB[2]=new Checkbox(“观看”,ckgHB, false);

add(ckbHB[0]);

add(ckbHB[1]);

add(ckbHB[2]);

ckbHB[0].addItemListener(this);

ckbHB[1].addItemListener(this);

add(lblWin);

lblWin.setBounds(330,180,80,30);

lblWin.setBackground(Color.red);

lblWin.setText(“胜利者!”);//没有显示?

ckbHB[2].setBounds(440, 20,60, 30);

add(exist);

exist.setBounds(330,130,80,30);

implements

//

exist.addActionListener(this);add(chat);chat.setBounds(20, 500, 300, 300);chat.frame();chat.setVisible(true);Game_start_csh();setSize(500,600);setVisible(true);} public void itemStateChanged(ItemEvent e){ if(ckbHB[0].getState())//选择黑子还是白子{

color_Qizi=0;} else{

color_Qizi=1;} } public void mousePressed(MouseEvent e){} public void mouseClicked(MouseEvent e){ Graphics g=getGraphics();int x1,y1;x1=e.getX();y1=e.getY();if(e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300){

return;} if(x1%20>10){

x1+=10;} if(y1%20>10){

y1+=10;} x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1);} public void actionPerformed(ActionEvent e){ Graphics g=getGraphics();if(e.getSource()==b1){

Game_start();} else {

Game_re();}

} if(e.getSource()==exist){

Game_re();

lblWin.setText(Get_qizi_color(color_Qizi)+“输了!”);

intGame_Start=0;} } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void paint(Graphics g){ draw_qipan(g);

3.2判断输赢功能实现

if(Game_win_1(x/20,y/20)){ //判断输赢1

lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);

intGame_Start=0;} if(Game_win_2(x/20,y/20)){ //判断输赢2

lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);

intGame_Start=0;}

if(Game_win_3(x/20,y/20))//判断输赢3{

lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);

intGame_Start=0;}

if(Game_win_4(x/20,y/20))//判断输赢4{

lblWin.setText(Get_qizi_color(color_Qizi)+“赢了!”);

intGame_Start=0;}

3.3 测试结果

a.进入游戏界面

游戏开始的界面有三个选择项,用户可以选择相应的角色,选择 完毕后点击开始进入游戏。

b.选择角色,开始下棋

首先达到五个棋子连在一块的赢了,并在红色区域显示谁赢了!c.下完后,重新开始

下完一盘后游戏停止,点击重新开始,界面回到初始界面,选择角色继续游戏.d.游戏中点退出,自动判输

在下棋的过程当中谁中途退出,即点击退出,系统自动判断谁输

四、课程设计心得体会

通过此次课程设计,将我本学期所学的JAVA知识得到巩固和应用,在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。它还让我学会了在网上查阅那些无限的资料。由于自己的分析设计和程序经验不足,该系统设计和实现过程中,还有许多没有完善的地方,比如用户界面设计不够美观,异常出错处理比较差等多方面问题,这些都有待进一步完善和提高。对于文中出现的不足和系统中出现的问题敬请老师指导。

五、参考文献

1.吴其庆编著.Java程序设计实例教程.北京:冶金工业出版社 2.柳西玲.许斌编著.Java语言应用开发基础.北京:清华大学出版社 3.丁振凡 Java 语言实用教程 :北京邮电大学出版社

附录(源代码)

import java.net.*;import java.io.*;import java.applet.*;import java.awt.*;import java.awt.event.*;import java.applet.Applet;import java.awt.Color;Public class wuziqi extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener{ int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子 int intGame_Start=0;//游戏开始标志 0未开始 1游戏中

int intGame_Body[][]=new int[16][16];//设置棋盘棋子状态

int m=-1;Button b1=new Button(“开始”);Button b2=new Button(“重新开始”);Label lblWin=new Label(“ ”);Checkbox ckbHB[]=new Checkbox[3];Button exist = new Button(“退出”);CheckboxGroup ckgHB=new CheckboxGroup();public void init(){

setLayout(null);

addMouseListener(this);

add(b1);

b1.setBounds(330,50,80,30);

b1.addActionListener(this);

add(b2);

b2.setBounds(330,90,80,30);

b2.addActionListener(this);

ckbHB[0]=new Checkbox(“执白”,ckgHB,false);

ckbHB[0].setBounds(320,20,60,30);

ckbHB[1]=new Checkbox(“执黑”,ckgHB,false);

ckbHB[1].setBounds(380,20,60,30);

ckbHB[2]=new Checkbox(“观看”,ckgHB, false);

add(ckbHB[0]);

add(ckbHB[1]);

add(ckbHB[2]);

ckbHB[0].addItemListener(this);

ckbHB[1].addItemListener(this);

add(lblWin);

lblWin.setBounds(330,180,80,30);

lblWin.setBackground(Color.red);

e.getY()<20 || e.getY()>300){

lblWin.setText(“胜利者!”);//没有显示?

ckbHB[2].setBounds(440, 20,60, 30);add(exist);

exist.setBounds(330,130,80,30);exist.addActionListener(this);Game_start_csh();setSize(500,600);setVisible(true);}

public void itemStateChanged(ItemEvent e){ if(ckbHB[0].getState())//选择黑子还是白子 {

color_Qizi=0;} else {

color_Qizi=1;} }

public void mousePressed(MouseEvent e){} public void mouseClicked(MouseEvent e){ Graphics g=getGraphics();int x1,y1;x1=e.getX();y1=e.getY();

if(e.getX()<20 || e.getX()>300 ||

return;}

if(x1%20>10){

x1+=10;}

if(y1%20>10){

y1+=10;}

x1=x1/20*20;y1=y1/20*20;set_Qizi(x1,y1);m*=(-1)}

public void actionPerformed(ActionEvent e){ Graphics g=getGraphics();if(e.getSource()==b1){

Game_start();

} else{

// 输了!“);

赢了!”);

Game_re();}

if(e.getSource()==exist){

Game_re();

color_Qizi=m;

lblWin.setText(Get_qizi_color(color_Qizi)+“

intGame_Start=0;

}

}

public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void paint(Graphics g){ draw_qipan(g);}

public void set_Qizi(int x,int y){ //落子

if(intGame_Start==0){//判断游戏未开始

return;}

if(intGame_Body[x/20][y/20]!=0){

return;}

Graphics g=getGraphics();

if(color_Qizi==1){//判断黑子还是白子

g.setColor(Color.black);

color_Qizi=0;} else{

g.setColor(Color.white);

color_Qizi=1;}

g.fillOval(x-10,y-10,20,20);

intGame_Body[x/20][y/20]=color_Qizi+1;if(Game_win_1(x/20,y/20)){ //判断输赢1 lblWin.setText(Get_qizi_color(color_Qizi)+”

intGame_Start=0;

了!“);

赢了!”);

赢了!“);

15*15

}

if(Game_win_2(x/20,y/20)){ //判断输赢2{

lblWin.setText(Get_qizi_color(color_Qizi)+”赢

intGame_Start=0;}

if(Game_win_3(x/20,y/20)){ //判断输赢3

lblWin.setText(Get_qizi_color(color_Qizi)+“

intGame_Start=0;}

if(Game_win_4(x/20,y/20)){ //判断输赢4

lblWin.setText(Get_qizi_color(color_Qizi)+”

intGame_Start=0;} }

public String Get_qizi_color(int x){

if(x==0){

return “黑子”;} else {

return “白子”;} }

public void draw_qipan(Graphics G){ //画棋盘 G.setColor(Color.lightGray);

G.fill3DRect(10,10,300,300,true);G.setColor(Color.black);for(int i=1;i<16;i++){

G.drawLine(20,20*i,300,20*i);

G.drawLine(20*i,20,20*i,300);} }

public void Game_start(){ //游戏开始

intGame_Start=1;

Game_btn_enable(false);

b2.setEnabled(true);} public void Game_start_csh(){//游戏开始初始化

intGame_Start=0;

Game_btn_enable(true);

b2.setEnabled(false);

ckbHB[0].setState(true);

for(int i=0;i<16;i++){

for(int j=0;j<16;j++){

intGame_Body[i][j]=0;

}

}

lblWin.setText(“");} public void Game_re(){ //重新开始游戏

repaint();

Game_start_csh();} public void Game_btn_enable(boolean e){ //设置组件状态

b1.setEnabled(e);

b2.setEnabled(e);

ckbHB[0].setEnabled(e);

ckbHB[1].setEnabled(e);} public boolean Game_win_1(int x,int y){ //横向判断输赢

int x1,y1,t=1;

x1=x;

y1=y;

for(int i=1;i<5;i++){

if(x1>15){

break;

}

if(intGame_Body[x1+i][y1]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

for(int i=1;i<5;i++){

if(x1<1){){

t+=1;

}

else{

break;

}

}

if(t>4){

return true;

}

else{

return false;

} } public boolean Game_win_2(int x,int y){ //纵向判断输赢

int x1,y1,t=1;

x1=x;

y1=y;

for(int i=1;i<5;i++){

if(x1>15){

break;

}

if(intGame_Body[x1][y1+i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

for(int i=1;i<5;i++){

if(x1<1){

break;

}

if(intGame_Body[x1][y1-i]==intGame_Body[x][y]){

t+=1;

}

break;

}

if(intGame_Body[x1-i][y1]==intGame_Body[x][y]

else{

break;

}

}

if(t>4){

return true;

}

else{

return false;

} } public boolean Game_win_3(int x,int y){ //左斜判断输赢

int x1,y1,t=1;

x1=x;

y1=y;

for(int i=1;i<5;i++){

if(x1>15){

break;

}

if(intGame_Body[x1+i][y1-i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

for(int i=1;i<5;i++){

if(x1<1){

break;

}

if(intGame_Body[x1-i][y1+i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

if(t>4){

return true;

}

else{

return false;

} } public boolean Game_win_4(int x,int y){ //左斜判断输赢

int x1,y1,t=1;

x1=x;

y1=y;

for(int i=1;i<5;i++){

if(x1>15){

break;

}

if(intGame_Body[x1+i][y1+i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

for(int i=1;i<5;i++){

if(x1<1){

break;

} if(intGame_Body[x1-i][y1-i]==intGame_Body[x][y]){

t+=1;

}

else{

break;

}

}

if(t>4){

return true;

}

else{

return false;

} } }

Java语言课程 第3篇

与传统的教学方法相比,项目教学法将问题或疑难情景融入真实发生的典型性事件中,一个项目即为一个实际情境的描述,学生在完成项目的过程中寻找解决问题的办法,掌握相关知识,并提高自身的综合素质。在JAVA语言程序设计课程中应用项目教学法,可有效提高学生的实践能力,激发学生的学习兴趣。文章针对JAVA语言程序设计中项目教学法的应用进行讨论与分析。

关键词:JAVA;项目教学法;课程教学

【分类号】TP312.1-4

项目教学法是以项目驱动为主的新型教学方法,在JAVA程序设计课程中应用项目教学法无疑是一种新的尝试,通过一个个项目实现教学与研究的有机融合,学生在项目的驱动下探索知识,提高能力,而老师则通过项目驱动对教学方法做出调整与创新,提升自身的教学能力。

一、项目教学法的内涵

所谓项目教学法是通过设计、实施一系列完整的项目促使学生在完成项目的同时提高能力、掌握知识的教学过程。与传统的教学方法相比,项目教学法充分尊重了学生的主体作用,老师选择适当的项目,学生通过分组合作学习的形式共同完成整个项目,在教学过程中老师处理主导地位,而学生则是学习的主体。现阶段很多高等院校都开设了JAVA课程,其应用面广、社会需求量大,但是需要学生通过学习具备独立解决问题的能力,真正做到学以致用。而在JAVA课程教学中融入项目教学法,老师可根据教材内容、学生的实际情况设计与本门课程密切相关的项目,充分激发学生的学习兴趣,在完成项目的过程中培养学生的学习能力,提高其职业素养与专业水平。通过JAVA课程的学习,学生要全面掌握面向对象编程语言的基本思想,为后续其它面向对象的语言打下坚实的基础。

二、项目教学法的实施过程

具体而言,项目教学法在JAVA教学过程中的实施过程包括以下几个阶段:

(一)三阶段组织教学

软件专业通常每学期均会开设一门程序设计语言课程,为了避免学生在学习过程中感到枯燥,或者产生学以致用的紧迫感,项目教学过程中可以将整个教学过程分为基础知识、应用实践及课程设计三个阶段,每个阶段以项目教学为核心选择不同的教学方法,尽量减少理论课程的讲解,增加实践课程,遵循“回避难点、注重实践”的原则。在JAVA课程教学过程中,基础知识阶段的教學重点主要是JAVA基本语法及面向对象编程思想的讲解。采用多媒体演示,并结合案例教学法,案例尽量选择一些与生活比较贴近、实用性与趣味性较强的例子,比如超市销售模拟程序,这些案例演示可视作整个教学大项目中的预热项目。

应用实践阶段主要包括JAVAGUI窗体设计与数据库编程。该阶段编程代码量大大增加,老师要充分结合学生的认知规律,按照界面设计、事件编程、数据库操作等顺序由浅入深进行讲解。该阶段的主要项目任务包括登录窗口设计、系统主界面设计、数据库查询等各应用知识点。该阶段的主要任务是通过与后续课程设计相似功能模块的训练提高学生举一反三、融会贯通的能力。

课程设计阶段则主要是实训部分,其主要作用是检验教学效果,提高学生的动手能力。课程设计尽量做到一人一题,或者一组一题,每个学习小组设计不同的项目,由学生一起合作、共同完成。学生进行课程设计过程中,老师可以随时讲解,对项目要点进行总结,学生在老师的指导下完成课程设计。

(二)学徒制实践教学

在完成JAVA理论课程后的课程设计阶段,可以采用学徒制进行实践教学,即指导学生尝试软件项目开发训练。该阶段要求学生对项目的全部功能要求深入理解,进行编码、测试,并搭建实际的运行环境,该阶段的主要目的是对学生所学知识予以巩固,积累更多的开发经验,形成初步的独立解决问题的能力与自主学习的能力。课程设计是检验老师课堂教学效果的重要途径,可在校实验室或校内实训室模拟企业的开发环境进行项目开发。这个过程中,老师与学生均要进行角色转变,即采用“学徒制”的教学模式进行教学,老师为传统企业中的技术师傅,而学生则是初入岗位的学徒,老师指导学生完成项目制作。注意实施过程中要根据不同的阶段划分不同的教学环节,包括项目建模、模块讲解、辅导答疑、编码实现、项目总结等。其中项目建模需要老师进行详细讲解,帮助学生分析项目需要实现哪些功能,然后再将学生分成若干学习小组,合作完成编码,最终实现软件的功能。在这个过程中,学生可以随时向老师进行提问,老师负责答疑解惑,学生每解决一个问题,均将其记录下来,做好总结,培养学生掌握学习方法的能力。

(三)项目考核

项目教学法中项目考核是非常重要的环节,项目实施效果的优劣需要通过项目考核反馈给老师,不过项目教学法的验收侧重于项目的完成过程而非结果,因此,项目考核需要突出考核的全面性,包括学生的出勤、日常表现、作业、测试结果、项目完成质量、课程能力目标实现情况等;要制定明确、统一、可行的考核标准,提高考核的公平性与公正性;此外,考核形式要多样化,采用生生互评、老师点评等多种评价方法,以评价学生在实施项目过程中所展示出来的分析问题、解决问题的能力,考核形式也可以将传统试卷考核与项目考核互相结合。

三、结语

总之,项目教学法是以项目任务为基础,其更加侧重于学生技术应用能力与职业核心能力的培养,是一种新型的实践教学模式。在JAVA语言课程设计教学中采用项目教学法,可以提高学生的学习兴趣,教学过程中融入项目教学理念与学徒制实践教学模式,可以循序渐进的提高学生的编程能力,激发其编程兴趣,获得事半功倍的效果。由此可见,项目教学法真正体现出了“学以致用”的教学思想,后续要加强项目教学法的研究与实践,以培养出企业真正需要的技术型人才。

参考文献:

[1]张哲,陈桂生.在JAVA语言教学中实施项目驱动教学法的实践探索[J].教育与职业,2014(6):456

[2]宋英超,吕宜忠,沈斌. 运用项目教学法开展工学结合的研究与实践[J].科技创新导报,2014(5):231-232

[3]刘尧猛,陈军.注重创新人才培养的计算机实验教学研究[J].实验技术与管理,2014(5):78

[4]王进,陈建平.反思性教学在JAVA程序设计实验教学中的应用[J].实验技术与管理,2015(1):43

Java语言课程 第4篇

一、合作学习的理论

合作学习是指学生有明确分工的互助性学习, 以达到共同的任务目标。合作学习鼓励学生为集体利益和个人利益一同工作, 完成共同任务的同时实现自己的目标。国外具有代表性的观点由美国斯莱文教授提出:“合作学习是指教师对学生在小组中从事学习活动, 依据他们在整个小组的成绩获得奖励或认可的课堂学习能力”, 该观点强调学习活动中对合作学习能力的培养与获得。国内合作学习的研究先驱者, 山东教育所研究员王坦认为:“合作学习是一种以促进学习异质小组中相互合作, 达成一致的学习目标, 以小组的总成绩为奖励依据的教学策略体系”, 该观点是以小组为单位来学习, 教师拟定学习目标, 把团体总成绩作为衡量效果的标准。

综合各专家对合作学习的定义, 合作学习是以小组为单位, 学生通过学习活动来互帮互助, 以达到教师提出的学习任务为目的, 以小组利益为先的一种新的教学理念。

二、Java语言教学设计模式的选择

1. 教学模式问题

高职的Java语言教学目前主要有三种教学设计模式。以教为主的传统的教学系统设计, 基于构建主义理论指导的以学为主的教学系统的设计, 综合前两者的以教师为主导、学生为主体的双主导教学系统设计。

本文在基于以上三种教学模式上, 以教师为主导、学生为主体的“双主” (主导-主体) 教学系统设计流程为原型, 加以合作学习的概念特点, 最终确定了“Java语言程序设计”课程合作学习的教学设计方案流程, 如图1。

根据上述流程设计的Java语言合作学习的教学设计具有以下特征。依据Java语言教学内容和学生的自主认知情况灵活选择“传递-接受”或“合作学习”教学分支。在合作学习过程中, 要明确Java语言合作学习的目标, 教师提出适宜的教学任务去引导学生有意义的合作。Java语言合作学习的教学效果能对小组成员有激励作用, 合作学习的个人贡献直接决定了集体成绩, 反之也成为了合作成员的动力。不论是“传递-接受”还是“合作学习”的教学模式, 都要促进学生Java语言的知识迁移, 在“传递-接受”的模式中, 采用其他方式进行补充, 从而达到教学效果的最优化。

结合本校的“Java语言程序设计”教学大纲、教学内容以及合作学习理论, 列出了以下几种适合Java语言合作学习的教学内容。

学习资源的探索型部分。对于Java语言的合作学习不仅应用在上机编程部分, 还可应用在理论学习的部分, 通过小组成员的讨论、资源检索, 通过资源的共享和头脑风暴, 巩固加深对该知识的理解掌握。

学习资源的发散思维型部分。依据认知发展的理论, 个体认知世界时, 会将新知识与本身已有的认知结合, 有一定的片面性和局限性。为避免这一缺陷不足, 在Java语言的合作学习中, 利用与人交流, 增强合作学习意识, 来产生认知冲突, 加强对Java语言知识点的掌握与应用。

教学的重点、难点部分。Java语言合作学习的主要任务是Java的重点难点, 利用学生间的交流, 有利于缩短学习周期, 提高学习Java语言的效率。

易分解的教学内容部分。将可分解的部分细化, 再分配给具体的小组, 共同完成一个大的项目, 从合作学习中, 体会合作的重要性, 明白集体利益与个人息息相关, 能有效避免工作的“责任扩散”效应。在合作学习的Java语言学习中, 个体都有自己的责任, 积极有效的交流、合作, 最终完成较大目标。

2. 教学策略的设计

教学策略是在不同环境下, 利用不同的教学方式、方法、媒介来达到不同的教学效果。Java程序设计的实践操作时, 教师根据不同的教学内容、不同教学目标、不同教学对象来选择合适的Java学习的方法, 利用有效的环境顺利完成任务。按照Java学习的教学认知结构和内容, 将“Java程序设计”按照下列两种方式教学。

(1) Java语言小组合作学习。利用“组间同质, 组内异质”的原则将班级分组, 把类似的任务分给每个组, 组里选择组长, 由组长把任务下发分配;组内成员相互合作、协调, 共同完成Java语言的学习任务。教师则需要扮演指导者、管理者、监督者和参与者多种角色, 保证成员积极参与到Java语言的合作学习中去, 实现公平竞争, 顺利完成任务。

(2) Java语言的课堂教授教学。依据本院校“Java程序设计”课程教学大纲规定, 理论部分以教师讲授为主, 其他的方法作为辅助。针对课程内容多、授课学时相对较短的特点, 笔者以讲授为主, 并以演示、讨论、实例模仿为辅, 充分将Java语言的理论知识传授清楚, 为学生后续的实践操作打好基础。

三、教学实施

笔者对空军航空维修技术学院的2012级的计算机应用专业的学生采用Java语言合作学习的方式, 学习了Java的基础知识后, 利用基础理论知识来解决项目案例。

分组布置Java语言任务。班级选取出四个组长, 组长根据任务来挑选组员。此次是Java语言的综合项目实训, 对于基础知识不牢固的同学感觉比较困难。该任务是编写一个学籍管理系统, 笔者为该系统做了情景规定, 以此基础编写程序。

Java语言小组学习过程。小组围绕Java语言合作学习的任务展开工作。首先由组长分配任务, 组员按照自己的思维观点, 以word文档的形式阐述好, 其中包括需求分析, 编程的思路, 知识点以及分工说明等。全体小组成员最后必须在组内做成果展示, 组长和其他成员评分, 选出最有效最合理的解决方案。经过成员的一致分析认同后, 再具体分工, 组内成员则依据接受的Java语言的任务完成相关工作, 最终由一两名学生汇总系统。在整个的合作学习中, 有一名学生记录整个Java语言合作学习的过程。

教师指导。在合作学习中, 教师提供Java学习的资源、交流的平台, 给他们分析项目案例的过程, 指导学生Java编程的思路, 在讨论过程中, 促进学生的交流、沟通;在帮助学生解决Java编程问题时, 监督其学习方法, 做出有效的形成性的评价。

Java语言合作学习的成果展示及评价。进行完合作学习后, 各组之间相互展示自己的作品, 阐述自己Java语言系统设计成绩管理系统的构思及创新之处。各组之间互评、打分。最终的Java语言的小组合作学习成绩=小组得分*60%+教师评分*40%, 个人成绩=小组合作学习成绩*40%+组内得分*60%。

Java语言的合作学习能将教学细化成团队协同合作, 注重培养学生的沟通交流的能力, 在教授学生Java语言系统知识的同时, 培养学习的合作意识及社交能力。同时, 高职院校采用Java程序的合作学习, 能丰富教学策略, 激发了学生的学习兴趣, 为学生搜集资料、分析问题、解决问题提供了新的方式方法。然而, 在Java语言的合作学习的过程中, 也产生了一些问题, 比如, 有学生过于投入到合作学习中, 忽视了Java语言的系统学习;团队合作之初, 有若干矛盾产生等。总之, 新的经验、问题, 对我们探索更适合高职院校计算机课程的合作学习的教学模式非常有益。

参考文献

[1]景成文.高中化学教学中运用合作学习的实践研究[D].华中师范大学硕士论文2012.

[2]宋东清, 徐建奇, 刘电芝.合作学习中“责任扩散”效应的分析及教学对策[J].教育科学研究, 2003, (2) .

[3]何克抗.教学系统设计[M].北京师范大学出版社, 2002.

[4]刘振中.西方合作学习研究述评[J].上海教育科研, 1997, (4) .

Java编程语言基础总结 第5篇

2.Java包括编程语言和相关的技术。

3.Java主要用于开发,桌面应用程序和Internet应用程序。4.开发一个Java应用程序的基本步骤:编写源程序,编译程序和运行程序。源程序以.java为扩展名,编译后生成的文件以.class为扩展名。使用javac命令可以编译.java文件,使用java命令可以运行编译后生成的.class文件。

5.编写Java程序要符合Java编码规范,为程序编写注释可大大增加程序的阅读性。

6.MyEcplise是一个功能强大的集成开发环境(IDE)。它的各种窗口便于Java程序的开发,调试和管理。

第二章变量、数据类型和运算符

1.变量是一个数据存储空间的表示,它是存储数据的基本单元。变量的命名规则:

(1)必须以字母,“_”,“$”开头。(2)可以包括数字,但不能以数字开头(3)不能包括除“_”,“$”以外的特殊符号(4)不能使用Java语言关键字或者保留字(goto)

2.Java中数据类型分为基本数据类型和引用数据类型,基本数据类型有整型(int),双精度浮点型(double),字符型(char)和字符串(String)。3.变量要先声明并赋值,才能使用。4.Java提供各种类型的运算符,具体如下。

(1)赋值运算(=)(2)算术运算符(+,-,*,/,%)(3)关系运算符(>,>=,<,<=,==,!=)(4)条件运算符(条件?表达式1:表达式2)(5)逻辑运算符(&& , || ,!, & , |)&&(短路与)与&的区别:&&进行判断时,当第一个条件为假,则不需要判断第二个条件,结果为假。&进行判断时,即使第一个条件为假时,也需要判断完第二个条件才能给出结果为假。||(短路或)与|的区别:与上同理(5)位运算符(&, | , << , >> , >>>)5.数据类型转换是为了方便不同类型的数据之间进行运算

6.数据类型转换包括了自动类型转换和强制类型转换,自动类型转换需要满足类型兼容且目标类型大于源类型的条件

7.Java中使用boolean类型表示真假,boolean类型的两个值为true和false。

8.Java中的关系运算符可以用于来比较大小,高低,多少等,比较厚的结果是boolean类型。

9.Java提供Scanner类,可以实现从控制台获取键盘上输入的信息

第三章选择结构(一)Java中的if选择结构,包括以下形式

(1)基本的if选择结构:可以处理单一或组合条件的情况(2)if-else选择结构:可以处理简单的条件分支情况(3)多重if选择结构:可以处理连续区间的条件分支情况(4)嵌套if选择结构:可以处理复杂的条件分支情况

第四章选择结构(二)1.switch选择结构适用于进行等值判断

2.switch关键字后面小括号里表达式的值可以是int , short , byte , char , 枚举 , String(JDK1.7开始支持)

第五章循环结构(一)1.循环结构由循环结构和循环操作构成,只要满足循环条件,循环操作就会反复执行

2.使用循环结构解决问题问题的步骤:分析循环条件和循环操作,套用循环结构的语法写出代码,检查循环能否退出

3.while循环结构是先判断后执行,do-while是先执行,后判断。Do-while至少执行一次。

4.debug调试:设置断点,单步运行,观察变量

第六章循环结构(二)1.for循环结构的语法结构如下

for(表达式1:表达式2:表达式3){

} //循环体

表达式1:循环结构的初始部分,为循环变量赋初值 表达式2:循环结构的循环条件

表达式3:循环条件的迭代部分,通常用来修改循环变量的值 2.用break和continue语句控制流程

(1)break语句用于终止某个循环,程序跳转到循环体外的下一条语句。Break也可以在switch语句中使用

(2)continue语句用于跳出本次循环,进入下一次循环

(3)return可以结束当前方法的执行并退出,返回调用该方法的语句处

第七章数组

1.数组是可以在内存中连续存储多个元素的结构,数组中的所有元素必须属于相同的数据类型

2.数组中的元素通过数组的下标进行访问,数组的下标从0开始 3数组可用一个循环为元素赋值,或用一个循环输出数组中的元素信息

4.通过数组名.length可获得数组长度

5.利用Arrays.提供的sort()方法可以方便的对数组中的元素进行排序 6.二维数组实际上就是一个一维数组,他的每个元素又是一个一维数组。

第八章循环结构进阶

1.数组的输入排序,选择排序,冒泡排序

2.在二重循环中可以使用break、continue语句控制程序的执行 选择排序:

思路:每次循环得到最小值的下标,然后交换数据。如果交换的位置等于原来的位置,则不交换。插入排序:

Java语言课程 第6篇

(1)学习的目的是为了将来进行应用程序的开发,而不是进行语言理论研究,

(2)将来的应用开发是在成熟的平台上展开,而不是自己从底层开发平台。

一、掌握静态方法和属性

静态方法和属性用于描述某一类对象群体的特征,而不是单个对象的特征。Java中大量应用了静态方法和属性,这是一个通常的技巧。但是这种技巧在很多语言中不被频繁地使用。理解静态方法和属性对于理解类与对象的关系是十分有帮助的,在大量的Java规范中,静态方法和属性被频繁使用。因此学习者应该理解静态方法和属性。Java在方法和属性的调用上是一致的,区别只表现在声明的时候,这和c++是不同的。

二、重视接口

在面向对象早期的应用中大量使用了类继承。随着软件工程理论的不断发展,人们开始意识到了继承的众多缺点,开始努力用聚合代替继承。软件工程解决扩展性的重要原则就是抽象描述,直接使用的工具就是接口。接口近年来逐渐成为Java编程方法的核心。另一方面,就应用而言,大部分开发是建立在规范基础之上的,不需要自己建立复杂的继承关系和庞大的类。因此读懂规范和用好规范已经成为应用程序开发人员的首要任务,Java各项规范的主要描述手段就是接口。

三、学好集合框架

Java描述复杂数据结构的主要方式是集合框架。Java没有指针,而是通过强大的集合框架描述数组、对象数组等复杂的数据结构。学好这些数据结构的描述方法对于应用程序编写,特别是涉及到服务器、三层结构编程至关重要。程序员在这个时候不能再用诸如数据库结果集之类的结构描述数据了。

由于很多语言没有这么强大的集合框架体系,很多初学者不知所措,更不知道拿来做什么用,因此应该引起足够的重视。

四、例外捕捉

Java对例外捕捉的强调是空前的,它强迫程序员用显著的与逻辑方法完全不同的方式描述例外捕捉,对于程序描述的完整性和严谨性有很大的意义。c++也有类似的机制,但是我们看到很多c++程序员并不习惯使用这些机制。

Java的初学者应该充分学习好这种对外捕捉机制,养成良好的编程习惯。

五、多线程需要理解机理

很多Java程序员热衷于多线程程序编写,认为是对逻辑能力的挑战。其实在大量应用中根本就不需要编写多线程程序,或者说大多数编写应用程序的程序员不会去写多线程程序。这是因为多线程机制都内置到基础平台当中了。

程序员应该了解的是多线程原理和多线程安全,这对于今后准确地把握程序是至关重要的。

例如:JSP中编写到不同的位置对于多个用户环境的安全影响完全不同。又如著名的Super Servlet是每一个访问作为一个进程,但是每一个页面是一个线程,和Servlet正好相反,对程序的性能和安全的影响有天壤之别。

六、了解网络编程

Java语言课程 第7篇

《Java语言程序设计》是高职院校计算机类相关专业的一门应用性较强的专业核心课程之一,它主要是介绍Java相关知识,包含了Java语言基础、控制结构、数组、面向对象的程序设计、字符串处理、异常处理、输入输出处理、多线程、图形用户界面设计、数据库连接等内容。Java程序设计语言是一种面向对象跨平台应用的程序设计语言,具有较强的通用性、简单性、面向对象特性、健壮性、可移植特性,在当前全球云计算的专业环境下,Java具备了非常显著的优势和发展前景[1]。根Tiobe开发语言排行榜统计,Java是近十年来世界范围内流行最广泛的开发语言之一[2]。

当前许多高职院校都开设了《Java语言程序设计》这门课程,如果还是使用传统教学方法教授该门课程,已经无法满足时代要求,如何让学生在整个教学过程中更好地掌握好Java编程能力,不断提高学生的自我创新能力,是当前我们教师面前一项急需解决的关键问题。因此应做好《JAVA语言程序设计》教学改革让学生更好掌握并综合运用该门语言。

2 传统教学存在的问题(The problems of traditional teaching)

2.1 教学组织形式过于单一

前许多高职院校对于《Java语言程序设计》课程的学习安排都是先理论教学然后经过一定时间后进行上机实验操作,理论教学在多媒体教室完成,而上机实验操作在机房完成。从这种上课的形式来说,具有一定的优点。上理论课的时候可以让教师及学生分别注重理论知识的内容,上机操作的同时不但可以提高同学动手能力,还可以对理论知识进行强化。可是在实际的教学过程中,理论课与上机实验课的安排时间间隔过长,导致做实验的时候,许多同学基本已经遗忘了理论知识,造成上机实验效果较差。

2.2 师资队伍结构不合理,教师缺乏软件开发实战经验

目前许多高职院校的师资队伍存在着一定的不合理,许多教师都是来自刚刚毕业的研究生,他们具有较高的本专业科研能力,通过一定时间的学习,对本学科教学也具有了一定的素质能力,但是他们却对软件开发实战经验缺乏,而《JAVA语言程序设计》这门课程要求较强动手能力,要求具备一定的项目实战能力。如果缺乏这一点,那么教师在指导学生的上机实验教学方面,就会很难完成应用型人才实践教学要求[3]。

2.3 部分学生目标不明确,积极性不高

在整个《Java语言程序设计》学习过程中,发现部分学生对于该门课程的学习积极性不高,态度不明确。主要是由以下几个原因造成,一是《Java语言程序设计》课程相对其他课程来说,学习比较枯燥。Java语言学习没有捷径,只能一步一个脚印,掌握一定理论知识才能把实验做好,学习过程非常辛苦,部分学生忍受不了这种辛苦,不能端正态度,学习积极性急速下降。二是学生对Java语言学习认识欠缺。部分学生从本质上对Java语言学习认识不够,他们把该门课程当成为一门普通课程来看待,上课的时候认真程度不够,下课后又缺乏上机练习,经常抱着一种得过且过的态度,只要期末考试能通过就行。造成部分同学在上机时写不出简单的Java代码,即使能写出一些简单代码,但是花费时间过长。三是就业压力太大,现在许多高校都又计算机类专业,就业形势越来越严峻,是造成学生积极性不高的客观因素之一。

3 课程教学改革(The teaching reform of the course)

3.1 采用全机房教学形式,不断提高学生动手能力

将传统的教学形式多媒体教室+机房,改为全部在机房上课,传统的教学形式导致教师在上面讲,而学生只是在机械性的听,不能让学生很好的掌握学习内容,教学效果较差。根据《Java语言程序设计》课程特点,讲“以教为主”的教学理念转变为“以学习者为主”的教学理念,去打破传统的理论、实验课的硬性划分。这种教学形式提供了实验、理论课一体的教学环境,保证了每个学生都有一台电脑,为学生的学习提供了较好环境,因为基本上教师每次模块任务教学内容都包含了理论与实验两部分。对于每次的教学重点难点,教师都辅以一些例子来讲授,教师在讲授理论部分后,可以马上让学生在机房进行相对应知识点的上机操作练习,通过这样的教学方式,可以不断巩固学生的理论知识,同时不但提高学生的动手能力。

3.2 培养学生积极性为出发点。

在具体教学过程中,教师可以抓住学生的兴趣点予以引导,比如许多学生喜欢游戏,那么我们教师可以从一些简单的游戏编程着手,进行详细讲解,结合知识点进行程序设计,不断调动学生学习积极性。

3.3 项目教学法

学生在整个的学习过程中是一个不断创造的过程[4],项目教学法是当前一种新型的教学方法,它要求学生和教师共同参与,学生在教师的全程指导下去处理一个完整的项目过程,所有学生在这个过程中能够积极主动掌握教学计划内的知识,教师安排学习行为,让学生能不断解决项目中遇到的各种问题,不断激发学生学习积极性。教师可以督促学生按时完成学习任务,相互携手合作并保持良好协作关系,项目教学法真正做到了以学生为中心的一种教学方法。

3.4 师资队伍建设

教师在整个教学过程中承担着重要角色,是学生学习的引导者、激励者,教师应该在上课之外,不断加强自身学习,掌握Java领域的最新技术,并且可以利用假期到企业锻炼实践,学习IT企业软件开发的各种技术,不断提高自身的实战经验,才能培养出具有创新能力、综合技能的高素质人才。

4 结论(Conclusion)

Java语言课程 第8篇

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语言课程 第9篇

Java语言是工业信息化部和人事部共同组织的全国软件资格水平考试采用的二种考试语言之一。所以各高职高专计算机类各专业改革的目标也将Java语言作为计算机类专业的入门语言、基础性应用架构和开发平台。通过Java语言程序设计这门课程的学习, 使学生掌握Java语言的基础知识, 熟悉Java类库中主要的类, 掌握和面向对象程序设计的基本原则和特点。Java语言程序设计与数据库应用技术、网页设计等课程相互关联, 互为补充。给学生提供软件开发技能;基于Web的B/S开发技能;面向对象程序设计思想, Web数据库的应用开发技能。使学生能够利用Java语言提供的强大功能, 编写应用于计算机网络、企业级应用软件;能够利用Java语言的程序设计将Web数据库、动态网页信息有机地结合起来。使学生的编程技能得到综合、系统的训练和培养, 为实现有实践能力的创新应用型人才打下基础。

二、Java语言程序设计课程教学目标

Java教学目标有理解、编程、配置和应用四个方面。是Java程序设计课程关于知识与能力结构的基本要求, 其中理解指理解面向对象编程思想、基本概念、基本语法和编程规范;编程指学会面向对象编程、GUI编程、网络通信编程和数据库应用编程, 成为Java程序员;配置指掌握构建与配置JavaSE、JavaEE开发环境及选择高效的开发模式;应用指在学会JavaAPI基本应用的基础上, 将Java语言作为信息系统开发的平台, 能初步在网络环境中开发Java应用系统。Java程序设计课程教学改革的目的是将Java作为计算机类专业的面向对象编程的入门语言、基础性应用架构和开发平台, 形成特色鲜明的课程体系。

三、Java语言程序设计课程的教学体系

1、Java理论教学方面

本课程重点讲授Java语言基础知识、面向对象的编程技术、字符串与数组技术、常用JavaAPI的使用、异常处理、基本I/O技术、网络通信编程、数据库访问技术、GUI编程等;要突破的难点主要包括面向对象的编程思想方法、类变量和类方法的使用、各种输入输出流的应用、事件处理模型、多线程技术等。

在教学环节上, 按照高职高专院校的要求, 本课程主要包括理论课和实训课。一般开设18周, 周课时为理论课2节, 实训课2节。在基础的理论教学的基础上, 我们还增加了课外实训和模拟工作实训。课外实训的时间定为课程外的其他业余时间, 而模拟工作实训则单独开设2周。

2、Java实践教学方面

本课程实践教学体系根据创新人才培养模式, 与社会需求接轨。运用项目教学法创造职业情境。项目教学法是师生通过共同实施一个完整的项目工作而进行的教学活动。项目教学法属于行动导向教学法中的一种。行动导向教学的所有要求几乎都能在项目教学法中得到满足。其中, 项目以工作任务的形式出现。通过工作任务的完成, 能得到一个具体的、具有实际应用价值的产品或服务。通过这种方式, 可以充分发挥学生的能动性, 让学生在学中做, 在做中学, 较好地实现教、学、做, 三者合一。极大地提高学生的实践能力。

3、校企合作, 拓展实践教学体系

(1) 校内实验、实训环境

建成了环境友好、软硬齐备、性能优良、协作开发的软件开发实验实训室, 安装配置了Java系列开发平台和工具、应用服务器和数据库服务器等, 实验项目开出率达100%, 其中有设计性和综合性实验的课程占整个实践性课程的95%。此外, 开放实验室为完成课外实验, 培养学生自主探索性学习, 为提高创新设计能力提供了基本条件保障。

(2) 校外实习、实训基地

以培养实践能力为目标, 运用与肇庆中巴软件园的合作优势, 面向出口, 主动对接市场与企业需求, 与中巴软件园内的企业开发实习、实训基地, 拓展了实践教学体系。校企双方在人才培养、科学研究、技术革新、技术开发、资源互补、认证培训、学生就业等各个领域开展合作, 为学生专项培训、课程设计、毕业实习和毕业设计提供了优良的软件开发条件, 提高了毕业生的就业竞争力。

四、教学方法和教学手段改革

通过学习国内外的先进教学思想, 对照高职院校的实际情况, 以培养实践能力为目的。我们在教学中逐步应用任务驱动式教学法、案例教学法、小组讨论教学法等切合实际需要的教学方法。

1、任务驱动式教学法

采用任务驱动式教学法, 让学生在完成任务中学习知识, 培养能力。将全部教学内容分解成一个个小的任务, 几个小任务又合并一个大任务, 若干个大任务组成一个项目。学期开始, 就让学生明确本课程的目标与任务。每一节课都给学生布置明确的任务, 学生非常明确自己需要干什么, 应该干什么, 有着非常明确的目标。

2、案例教学法

根据课程特点和专业方向特点, 对实际企业项目中开发的应用系统进行适当的修改, 使之成为系统配置容易、操作简单的教学案例, 便于学生理解和掌握。

3、小组教学法

小组教学法是在教学实施过程中的一种组织形式, 是以组为单位的教学方法。教学班内的同学6人组成一个教学组确定一个组长组长直接对教师负责负责组织全组同学的学习和实践, 组内成员可以就学习的内容进行充分的交流和讨论。

4、启发式教学法

注意启发学生的思维。在课件中经常就某些问题进行提问, 启发学生思考, 同时这些问题也可以作为学生开展讨论的目标。

5、调整课程组织方式

从实用项目出发, 通过问题提出、实例引入、知识讲解、分析提高的递进方式讲解面向对象程序设计方法, 并通过项目拓展的方式, 启发学生对相关知识的学习, 以进一步掌握面向对象程序设计的思想。

6、调整学生评价机制

突出应用能力的考核注重学生的动手能力和素质的全面考核。根据课程特点, 改变传统的卷面考试, 侧重学生系统设计能力、程序调试能力的考查。

五、加强课程建设

“Java语言程序设计”于2008年被学校评为院级精品课程, 所以要进一步优化整合教学内容、革新教学方法、加强师资队伍、网络课程和教材建设。加强了课程立体化教学资源建设, 建成了Java程序设计在线教学系统, 开辟了网上答疑系统和Java技术论坛, 为学生提供个性化学习空间。面向应用修订完善了相关专业培养方案、教学大纲、实验大纲、考试大纲、考试考核办法。研制了多媒体电子课件、实验指导教程和试题库, 制作收集整理了大量的图文声像教学资料和开发案例, 及时更新优化教学内容, 反映最新的Java应用技术水平与发展趋势。这些扩充性资料既满足课程教学的需要, 又兼顾了学生课外自主学习的要求, 深受学生的欢迎, 效果良好。

六、加强“双师型”教师队伍建设

教师是教学改革的具体实践者, 师资队伍建设是保障改革顺利实施的关键。针对当前计算机技术发展快而教师教学任务重、缺乏提升自身业务水平机会的现状和青年教师多的特点, 特制定相应师资培养措施: (1) 改善职称结构, 合理规划、有计划的选派青年教师攻读硕士学位。目前课程组教师队伍共6人, 其中教授1人, 副教授2人, 讲师1人, 硕士2人。 (2) 学术会议、课程进修。积极支持教师参加各种高质量的教学会议和学术会议, 选派青年教师参加各种优秀课程培训, 到校企合作单位轮岗培训, 确保教学与社会需求接轨, 提升教师软件开发水平和科研实力。 (3) 教研活动、集体备课。定期开展集体备课、听课评课、示范公开课等多种形式的教学研讨活动, 由教学经验丰富、教学效果优秀的教师向青年教师传授教学方法、教学规范、教学艺术, 帮助青年教师练好教学基本功, 提高教学水平与能力。 (4) 传帮带、导师制。对首次开课的教师, 由经验丰富的教师担任其导师, 指导备课、随堂听课、及时辅导, 使之尽快掌握教学规律、站稳讲台。通过上述措施, 有效地提高了青年教师的教学水平和科研水平, “Java程序设计”课程教学团队已经成长为一支结构合理, 教学、学术水平高, 勇于创新的教学队伍。

七、结语

经过学院几年来的共同努力, 以学生实践能力的养成为终点, 对“Java语言程序设计”教学实施了系列的改革和实践, 朝着培养创新应用型人才的方向, 改革内容涉及理论教学、实践教学和实习基地三大方面。通过改革, 整合优化了理论教学体系, 强化了实践教学体系, 加强了实习基地、教材与师资队伍建设, 适应了可持续面向应用的人才培养需要, 整个教学实践效果好, 得到了学生和同事的好评, 提高了学生的应用软件设计开发能力, 提升了学生的就业竞争力。通过一系列改革举措, Java程序设计课程将真正成为培养学生职业核心技能的一门重要的专业基础课程。

参考文献

[1]董丽萍、刘宇:《面向应用型人才培养的实验教学体系研究》, 《实验技术与管理》, 2007年。

[2]朱艳红、何东彬:《实践性课程Java教学模式的研究》, 《计算机与信息技术》, 2005年。

[3]崔秀敏、黄子辉:《加强英语教学的实用性改革高职高专英语教学内容体系》, 《承德石油高等专科学校学报》, 2007年。

[4]任侠:《Java语言程序设计教学改革探讨》, 《电脑知识与技术》, 2007年。

Java语言课程 第10篇

1 基于工作过程的课程开发思路

根据专业、经济和产业的发展需求, 以科学的发展观为指导, 以学生就业为目标, 以岗位需要和职业标准为依据的原则, 按照实际工作任务、工作过程和工作情境组织教学。 具体按下面步骤进行开发: (1) 课程按基于工作过程进行开发的准备; (2) 基于工作过程的课程设置; (3) 实施基于工作过程的课程; (4) 基于工作过程的课程评价。

2 基于工作过程的课程设计

(一) 教学内容的选取于组织

基于工作过程的课程开发的重要环节是教学内容的选取与组织。 采用“课程定位与岗位能力要求” 的原则选取教学内容;采用“项目”为载体组织教学内容。

(1) “课程定位及岗位能力要求”原则选取教学内容

通过企业调研的方式了解相关专业的岗位群、 岗位能力要求等情况, 结合高职学生的实际情况确定高职软件开发专业主要面向软件开发领域的职业岗位, 培养掌握Java语言知识, 并具备数据库、网页设计等能力的专业技术人才。

(2) “项目”为载体组织教学内容

基于工作过程的课程开发中以“项目”为载体, 组织让学生在完成工作任务的过程学习和掌握相关理论知识和专业技能。以模块化思想设计和安排项目顺序, 以求达到由点到面、由简单到复杂、由使用到应用的目标。 以《Java语言程序设计》例, 项目设计的顺序为“Java语言程序设计基础”、“面向对象程序设计”、“数据与异常处理程序”、“图形用户界面程序设计”、“综合设计———企业即时通软件”。

(二) 创设学习情景

在教学设计中, 通常会设定学习情境。 学习情境是泛指一切作用于学习主体.并能引起学生产生一定情感反应的客观环境[1]。 目的是要让学生有身临其境的感觉, 增加学生的学习兴趣、激发学生的学习热情。 设计的学习情境要与主题涉及相关, 软件专业的学习情境设计一般采用案例法, 每个案例都解决一个具体的问题, 学生通过解决这个问题完成相应的学习任务。这种教学设计有利于提高学生对问题的分析和解决能力。

3 基于工作过程的课程开发实践

(一) 教学过程

本课程按照工作过程的行动模式进行教学实践, 工作过程的行动模式如图所示:

基于工作过程的《Java语言程序设计》一体化课程教学实施的教学过程在本文以“学生成绩计算程序设计”为例进行阐述。

首先, 教师提出教学任务。 对学生成绩进行统计计算, 参加考试的有6 名学生, 考试成绩分别为94.5、89.0、79.5、64.5、81.5、73.5, 计算考试的总分数并保存大于考试平均分的成绩信息, 将信息存入数组High Score中。

其次, 学生明确了学习任务后, 通过学习和理解教师布置的学习任务和参考资料以及上网搜索获取与Java数组相关的知识信息, 准备回答教师的一些引导性问题。 教师帮助理解学生搜索相关资料, 并解答学生遇到的问题, 对收集的资料进行抽检和讲评。 引导问题如下: (1) 一维数组的声明和创建方法; (2) 数组的初始化; (3) 数组的遍历; (4) 数组的排序; (5) Arrays类处理数组的方法。

学生完成信息获取后, 制定出“学生成绩计算程序设计”的工作计划和解决方案。 教师的主要任务是指导学生制订工作计划、答疑、抽检、优化。

解决方案确定后, 学生按着计划执行并完成学习任务, 记录与整理相关资料。 教师的任务是指导和启发学生、解答学生问题、规范并检查学生的操作流程。

(二) 教学方法

在实施基于工作过程的《Java语言程序设计》的课程中, 主要采用行动导向教学法, 以学生为中心、教师指导。

4 基于工作过程的课程开发反思与设想

在实施基于工作过程的《计算机网络安全》课程的一体化教学的过程中我们遇到了以下问题: 教学设备与教学场地存在不足, 严重缺乏一体化教师, 学生的综合素质能力较弱。

为了完善基于工作过程的《Java语言程序设计》课程一体教学, 解决遇到问题, 我们做如下设想:加强软件开发实训室建设, 创造软件开发的实际工作氛围;加强一体化师资队伍建设, 培养“双师型”教师队伍;注重培养学生的综合素质能力, 提高学生的自学能力、沟通交流能力、实际动手能力、组织协调能力、团队合作能力;建立配套的教学管理制度。 转变教学管理部门的观念, 让其职能转换为“指导和服务教学”;建立校企合作的一体化教学模式。 利于学校的课程改革和“双师型”教师的培养。

参考文献

[1]李政仪.基于工作过程导向的课程开发[J]天津职业大学学报, 2008 (08) .

Java语言课程 第11篇

关键词:程序设计语言Java语言程序开发

Java的语言功能很精炼,它强调了面向对象的特性,可以用来开发不同种类的软件,具有支持图形化的用户界面、支持网络通信,支持并发程序设计以及数据库连接等功能。

1.Java语言的主要特点

Java语言与传统的程序设计语言相比,主要有以下一些特点:

1.1Java语言是简单易学易用的

Java语言很简单,这里说的简单,是相对于C++而言的,因为它的语法和C++非常相似,但是它摒弃了C++中许多低级、困难、容易混淆、容易出错或不经常使用的功能,例如运算符重载、指针运算、程序的预处理、结构、多重继承等内容,这就有利于有程序设计基础的人员的学习和使用。Java语言所占的内存比较小,这给程序开发人员提供了一个良好的开发环境,另外Java还提供了自动的废料收集,使程序员不必为内存管理而担忧。

1.2Java语言是面向对象的

面向对象是程序员编写大型程序、有效控制程序的复杂手段。所有面向对象编程语言都支持三个概念:封装、多态性和继承,Java也不例外。Java语言的面向对象技术具备了封装性,继承性等特点,Java语言全面支持动态绑定,而C++语言只对虚函数使用动态绑定,这就让它的面向对象技术更加完善了,程序可以完全基于对象编写程序。这使得Java的面向对象更“纯”。

1.3Java语言是解释型的

C语言和C++等语言,都是针对CPU芯片进行编译,生成机器代码,该代码的运行就和特定的CPU有关。Java语言的源程序执行方法是先经过编译器编译,再利用解释器解释的方式来运行。但是Java语言不针对CPU芯片进行编译,而是把程序编译成一种字节码格式,然后Java平台中的Java解释器对这些字节码进行解释执行,执行过程中需要的类在链接阶段被载入到运行环境中。字节码是很接近机器码的文件,可以在提供了Java虚拟机(JVM)的任何系统上被解释执行。这使得Java程序有了很高的独立性。

1.4Java是多线程的

在Java语言中,线程是一种特殊的对象,又被称作轻量进程,比传统进程更小的可并发执行的单位,他必须由Thread类或其子类来创建。C和C++采用单线程体系结构,而Java提供多线程支持。Java在两个方面支持多线程,一方面,Java环境本身就是多线程,另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序的开发。Java的线程还包括一组同步原语,这些原语负责对线程实行并发控制。利用Java的多线程编程接口,程序开发人员可以方便的写出支持多线程的应用程序,提高程序执行的效率。但是Java的多线程在一定程度上受运行平台的限制,如果操作系统本身不支持多线程,那么Java的多线程可能就表现不出来。

2.Java语言的执行过程

(1)编写源文件,使用一个文本编辑器,如Edit或记事本,来编写源文件。不可使用Word编辑器,因为它含有不可见字符。将编好的源文件保存起来,源文件的扩展名必须是.java。

(2)编译Java源文件,使用Java编译器(Javac.exe)编译源文件得到字节码文件。

(3)运行Java程序,Java程序分为两类——Java应用程序和java小应用程序,Java应用程序必须通过Java编译器(java.exe)来解释执行器字节码文件;java小应用程序必须通过支持Java标准的浏览器来解释执行。

3.Java程序开发中涉及到的主要技术

(1)Java Database Connectivity技术。它的存在能让不同的数据库的访问统一化,同时让数据库之间可以进行相互连接。在具体的编程过程中,通过相应的调试就能够让数据库后台管理得以实现。另外这种技术为开发者带来了一致的接口,为复杂程序的构建提供了有利的技术保证。

(2)Java Annotation技术。这种技术让Java中的一些元素相互关联起来,同时还能让这些元素整合起来。这就能够让开发者根据不同的元素的不同特点来对这些元素进行合适的分类,同时改变它们的行为。

(3)Java Remote Method Invocation技术。该技术是构建分布式程序的基础,Java中的对象能够进行相应地调用,这样就能够让服务器和客户机相互关联起来。在该技术的支持下,可以让数据信息实现高度整合化。另外在分布式调试的基础上,可以让程序的安全性和完整性得到保证。

4.Java语言编程的优势

与平台无关是Java语言最大的优势,指用Java写的应用程序不用修改就可在不同的软硬件平台上运行。其他语言编写的程序面临的一个主要问题是操作系统的变化,处理器升级以及核心系统资源的变化,都可能导致程序出现错误或无法运行。Java虚拟机就成功的解决了这个问题,Java语言编写的程序可以在任何安装了Java虚拟机JVM的计算机上正确的运行,实现了“一次写成,处处运行”。

Java语言有着如此广泛的应用范围主要是其具备了良好的可移植性。对于一个程序员而言,写出的程序如果不需要修改就能同时在Windows、MacOS、UNIX等平台上运行,简直就是梦寐以求的事。近年来随着智能手机的兴起,越来越多的游戲应运而生,正是Java语言的良好移植性让手机游戏得到了很好的发展。

传统的编程语言难以胜任电子商务系统,Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。

很多开发者会选择Linux系统作为开发平台,这也就给Jave语言带来了很大的发挥空间。虽然C++也能进行模块化的编程,但是它移植性不佳,只能在Windows平台使用,这就使C++语言受到一定的制约。而Java语言能实现跨平台编译,这就让Java更受开发者的欢迎。

5.结语

这些年来智能手机的不断发展更是促进了Java软件的开发,让Java程序从PC机平台向手机平台进行转移。随着计算机及网络技术的水平的不断提高,相信java语音还将有更广阔的应用空间。

参考文献:

[1]刘正林.Java技术基础[M].武汉:华中科技大学出版社,2002.

Java语言课程 第12篇

JAVA作为一门重要的面向对象程序设计语言, 由于其本身具有与操作平台无关、安全性好、可移植性好、网络功能强、支持分布性等优点, 使这门课程在以培养应用型人才为主的计算机专业的高校里, 都作为一门主要的专业课开设。计算机专业学生通过对JAVA语言程序设计课程的学习, 即可以培养学生提高计算机思维和程序设计方法的能力, 又可以为学生从事软件开发和毕业设计打下坚实的基础, 特别是近些年来JAVA系列在编写网络软件方面优势的体现, 使得计算机软件行业对JAVA语言程序设计方面的程序员需求不断增加。所以对计算机类专业来说, JAVA类课程开设越来越重要。

2. 理论教学内容的选择

对于计算机专业学生来说, 他们在学习JAVA语言程序设计课程时, 都已经学过了C语言程序设计、C++面向对象程序设计课程, 多数学生对程序设计基础部分, 和面向程序设计的基础部分比较熟悉, 所以对这门课程的教学内容选择非常关键。教学内容的选择应该做到重点突出, 重点应该讲授: (1) 面向对象, 使学生深入理解面向对象的概念, 重点掌握类、接口、继承性、多态性等内容; (2) 图形用户接口, 使学生重点掌握窗口、控件、菜单的JAVA实现; (3) 输入输出流, 使学生重点掌握标准输入输出和文件操作; (4) 多线程, 使学生掌握多线程的概念, 并能用JA-VA语言实现多线程程序; (5) 网络编程, 使学生进一步掌握URL、Socket、UDP的基本知识, 重点掌握用JAVA语言实现URL、Socket、UDP的连接; (6) 数据库编程, 使学生重点掌握用JDBC实现和通用数据库的连接。而对于基本语法部分, 由于和C语言基本相似, 所以教师可以用很少的课时介绍一下不同之处, 以学生自学为主。

3. 实践教学内容的设置

对于任何一门计算机语言课程来说, 其实践教学部分更加重要。而对于计算机专业学生来说, JAVA语言实践教学内容的设置, 除了要达到培养学生提高计算机思维、程序设计方法的能力外, 最重要的是培养学生的软件开发能力, 从而为学生下一步的毕业设计打下良好基础。所以JAVA语言实践教学内容以项目驱动方式进行设置, 在这个环节要求学生要完成几个大的作业, 我们在实践教学中, 给学生布置的大作业题目是: (1) 用JA-VA语言实现年级学生综合测评程序; (2) 用JAVA语言模拟WINDOWS的记事本程序; (3) 用JAVA语言实现计算器程序; (4) 用JAVA语言实现模拟QQ程序。通过这4个大作业的完成, 学生用JAVA语言对界面、网络、数据库连接等内容得到了很好的掌握, 也为编写软件打下了良好的基础。

4. 教学方法的探索

对于JAVA语言程序设计这门课程来说, 除了注重理论教学内容的选择、实验教学内容的设置, 合理的教学方法也是非常重要的。在本课程的教学过程中, 为了激励学生, 采用了如下教学方法。

(1) 采用启发式编程思想, 要想使学生学好JAVA语言这门课程, 首先要使学生掌握编程思想, 找到编程感觉。教师在教学过程中要培养学生运用语言来解决实际问题的能力。

(2) 采用案例教学模式, 教师在讲授过程中, 尽量不采用传统的从知识点、概念等讲解的方式讲授JAVA语言课程, 而应该采用项目和程序代码等案例、实例来讲解, 这样更能增加学生学习JAVA语言课程的积极性。

(3) 循序渐进的学习程序设计, 教师在教学过程中采用循序渐进的方式进行教学, 使学生逐步学会JAVA语言程序设计, 真正达到"懂、编、用"的教学目标, 即要求学生首先是多读源代码, 读懂程序;然后是自己多动手编写程序;最后是, 会用JAVA语言编写软件来解决实际问题。

(4) 培养自主学习的能力, 对于JAVA语言程序设计这门课程来说, 如何培养学生的自主学习能力更加重要, 通过自主学习更能增强学生的学习兴趣。

5. 双语教学的探索

对于JAVA语言程序设计这门课程, 采用双语教学是非常必要的, 并且这门课程非常适合进行双语教学。采用双语教学给教师和学生都带来很多益处, 通过双语学习, 学生能够把英语当作学习专业知识的工具, 使学生提高运用英语的能力, 进一步提高学生的综合素质。通过开展双语教学, 教师也可以提高自己英语运用能力, 并通过对英文原版教材的研究, 提高教师的教学能力。JAVA语言也非常适合进行双语教学, JAVA语言课程是一门实践性非常强的课程, 课程本身适合于进行双语教学, 从开发软件的角度来说, 这门课程也非常需要进行双语教学, 一方面, 中国的软件外包业发展非常快, 要求编程人员即要精通编程技术又要精通英语;另一方面, 编程人员要想跟上最新技术的发展, 也必须精通英语。所以对于计算机专业来说, 双语教学的开展是非常重要的。

6. 结束语

对计算机专业的JAVA语言程序设计课程教学的改革是非常必要的, 可以增强学生的学习热情, 通过课程的学习, 培养学生提高计算机思维、程序设计方法的能力, 并为学生打下从事软件开发和毕业设计的基础, 最终达到"懂、编、用"的教学目标。

参考文献

[1].杨洋, 李杨继, Java语言教学模式探讨和研究, 四川经济管理学院学报, 2006, 4

[2].宋平, 王振, 提高Java语言教学效果的探索与实践, 沈阳农业大学学报, 2006, 8 (4)

[3].冯君, 庄波, "Java语言程序设计"双语教学的实践与思考, 福建电脑, 2008, 5

[4].贺建英, 如何提高高校学生Java语言的实践能力, 计算机教学与教育信息化, 2007, 12

[5].刘培强, 冯烟利, Java语言教学研究与探讨, 计算机教育, 2004, 6

上一篇:防雷技术的检测与维护下一篇:PB840呼吸机