论文部分内容阅读
摘要:目前,Java这门课是各大高校计算机专业的专业必修课,对于学生今后工作或者继续深造都是非常重要的。如何学好这门课,提高学生的学习兴趣成为重点。由于以前java的课程都是以教师课堂讲授和上机实验课,这样的教学方式让学生学起来非常的枯燥,缺乏兴趣。而且实验课也流于形式,练习的题目都太基础,根本不能有效地提高学生编写程序的水平。该文主要探讨以案例的方式来讲解java这门课,从而使学生能更好地掌握使用java理论知识解决实际问题的能力,让学生更积极地学习这门课程。
关键词:Java;教学方式;案例;探讨
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)28-0123-03
The Discussion of Case based Java Teaching
DU Chun
(Jinjiang College,Sichuan University,Meishan 620860,China)
Abstract: At present, Java is a major compulsory course for computer majors in Colleges and universities, and it is very important for students to work in the future or continue to upgrade. How to learn this course and improve students’ interest in learning has become the focus. Since the previous Java courses are taught by teachers and computer lab classes, such teaching methods make students learn very boring, lack of interest. And the experimental class is also formalized, the exercises are too basic, can not effectively improve the level of students to write programs. This article mainly discusses the way of case study to explain the java course, so that students can better grasp the ability to use Java theory to solve practical problems, so that students can learn the course more actively.
Key words: java; Teaching methods;case;discussion
《Java语言程序设计》是一门计算机专业的专业必修课,也是各大专院校计算机专业都开设的课程。但是在教学过程中,太注重理论而忽视了实践操作的教学[1],学生上课能听懂,但实际编程应用程序时却不知从何入手,正由于这些现状,本文对《Java语言程序设计》这门课提出了以案例驱动的形式来实施教学【3】,将所学知识融入案例中,以提高学生的学习积极性和提高学生实际编程水平。
1 Java教学现状
目前是信息化时代,网络信息的传输已经在我们生活中起着很重要的作用,而Java语言作为一门网络编程语言,对于计算机专业的学生来说就显得举足轻重。经过几年的Java教学后,总结出了一些经验,发现Java教学仍存在一些问题。灌输式的教学方法还在被普遍的使用[3]。由于教学的填鸭式灌输知识的方式,不利于学生缺乏创新意识的培养以及发挥学生的想象力,同时也降低了学生学习的积极性,因而教学效果不是很理想,因此本文提出了一种以案例驱动的Java教学方式。
2 案例教学改革
基于案例的Java教学方法是把各章节知识点以案例的形式进行讲解,具体分為以下5个模块,如图1所示。
2.1 Greenfoot小游戏
Greenfoot是一款游戏工具软件[4],采用图形化的界面来开发游戏,是一种所见即所得的开发工具。在“类和对象”这一章节,将使用Greenfoot软件来讲解游戏的开发,意在让学生能将所学理论知识运用到实际的开发中,并能以开发小游戏的形式来激发学生的学习积极性,达到学与玩结合的教学效果。如图2所示,是一个青蛙吃虫子的小游戏。
通过Greenfoot工具来开发小游戏,能使学生更易更深入地理解类和对象的概念,以及如何在游戏中通过创建类的方法来使角色移动或旋转等。在该游戏中我们创建了一只青蛙和一些虫子,并分别为青蛙和虫子都设置了一些方法,比如它们都具有移动和旋转的方法。其中当青蛙遇到虫子之后,
2.2 GUI
随着计算机技术的发展,计算机越来越平民化、傻瓜化,这主要归功于图形用户界面的使用和普及。GUI的英文全称是Graphics User Interface,即图形化用户界面,因特有的亲和力和易用性普遍受到人们的欢迎。本章将使用一个计算器案例来进行讲解,如图3所示。
该计算器外部是使用一个JFrame窗口,内部使用了两个面板,这两个面板上下放置,上面一个面板中有一个输入框,和一个按钮,输入框用来输入用户输入的运算数和运算符,当用户输入数据后,点击按钮就会计算出结果显示到最右边的一个文件标签控件上。上面的面板采用的是横向的线性布局,从左往右分别是一个文本框、按钮和一个文本标签。下面的面板采用4行4列的格子布局,用来放置10个数字按钮和加、减、乘、除、取余运算符以及一个清除按钮。当然本案例还使用了事件响应,事件响应主要是依靠类ActionListenner接口来实现的,主要代码如下: public class Caculator extends JFrame implements ActionListener
/*实现ActionListener接口*/
{
@Override
public void actionPerformed(ActionEvent e)/*重写actionPerformed方法*/
{
/*完成事件的功能代码*/
}
}
2.3 文件操作
在java中,文件操作主要是通过输入和输出类来实现的[5]。一个完整的应用程序应该由输入、处理、输出3个部分组成。针对输入与输出,Java语言提供了专门用于文件操作和输入/输出功能的包java.io,该包是Java语言的核心包之一,其中包含许多类和接口,有大量的方法用来访问文件系统、创建文件和目录、读取文件信息、处理文件的数据以及存储数据到文件中。本章将使用一个贪吃蛇游戏来进行讲解,游戏界面如图4所示。
本案例中采用了文件来保存玩家每一关的得分记录。主要代码如下:
import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
public class Fileopt extends Thread{
public static File file1; /*文件对象*/
public static BufferedReader br=null; /*文件缓冲输入流*/
public static BufferedWriter bw=null; /*文件缓冲输出流*/
public void createFile() throws IOException
{
file1=new File("C:\\Windows\\score.txt"); /*创建一个文件*/
if(!file1.exists()) /*如果文件不存在,就创建一个*/
{
try {
file1.createNewFile();
}
catch (IOException e) /*捕获异常*/
{
e.printStackTrace();
}
}
}
2.4 多线程编程
进程一般是对操作系统而言的。例如,你打开word编辑文档,同时打开邮箱收取邮件,这时系统内有两个进程在运行,即多个程序在同一时间执行多个任务。线程是比进程还小的单位,一个进程可以包含一个或多个线程。线程是对某一程序而言的。如上例,当打开邮箱收新邮件的同时,还可以看已经下载的邮件,这两件事没有相互干扰,那么我们说此时这一程序中至少有两个线程在运行[6]。即每一个程序在同一时间内执行多个任务。 本章将采用一个射击游戏来进行讲解,游戏的界面如图5所示。
本射击游戏中有一架玩家的飞机和许多架敌机。玩家的飞机和敌机都同时在移动,而且玩家飞机发出的子弹也是同时在移动,所以玩家的飞机、敌机和子弹都是分别是一个线程,故这里采用了多线程技术,主要代码如下:
public class test extends Frame implements Runnable,ActionListener {
/*主程序,游戏的主界面*/
private static plane p; /* 玩家飞机*/
static ArrayList buList; /* 子彈集合,动态控制子弹的个数*/
static ArrayList enemyList; /* 敌人的飞机集合,也同上用static*/
public static Image map1; /* 地图1*/
public static Image map2; /* 地图2*/
public static int map1Y; /* 地图1的y坐标*/
public static int map2Y; /* 地图2的y坐标*/
static Music music=new Music(); /*音乐类*/
public static boolean status=true;/*为true表示正在运行,false表示暂停*/
public static boolean died=false; /* false表示飞机是活的,值为true表示飞机挂了,游戏结束*/
creatEnemy ce; /* 动态产生敌机群*/
private MenuBar mb; /* 菜单栏*/
private Menu menu,menu1,menu2; /* 菜单*/
private MenuItem mi1,mi2,mi3,mi4; /* 子菜单*/
public test(){ /*构造函数,对玩家的飞机进行初始化*/ p=new plane(500,500);
ce=new creatEnemy(); Thread thce=new Thread(ce);
thce.start();}
2.5 網络编程
网络编程在如今的分布式计算机时代扮演着重要的角色[7],我们用到的应用程序或多或少都需要一些其他进程的支持或协助,这些进程可能运行在本地也可能运行在其他计算机上,这就需要应用程序能够支持网络编程[2]。在现实生活中,比如网上购物、QQ聊天、网络银行交易等都涉及到网络编程。本章我们将采用一个网络五子棋游戏的案例来进行相关知识的讲解,五子棋游戏的界面如图6所示。
3 结论
Java语言是一门理论与实践并重的课程,对于应用型本科学生来说,既要夯实理论基础,又要重视实践开发,将理论与实践相结合,只有这样才能提升学生的编程水平。对于这样一门编程语言课,传统的填鸭式的教学方式并不能很好的调动学生的学习积极性和兴趣,只有采用以案例的方式,将学与玩紧密结合才能让学生在玩中学,在学中玩,主动地去学习,这样能提高教学效果。我们的总体目标是,针对程序设计能力培养的启蒙入门、发展提高和开发、应用三个阶段[8],让学生能学以致用,达到举一反三,理论与实践相结合。经过使用这种案例教学的方式以后,学生的成绩明显得到了提高,学习态度也有了很显明的变化,以下是按普通教学方式和案例驱动方式教学的对比,如表1所示。
参考文献:
[1] 孙麒,韩永华,庄巧莉.基于创新能力培养的Java教学改革[J].电气电子教学学报,2017(5):50-52.
[2] 强小利,蓝雯飞.面向计算思维的Java程序设计课程教学探讨[J].计算机时代,2015(5):87-89.
[3]王英存.JAVA 教学方法改进探讨[J]. 教育现代化,2018,5(21):63-64.
[4] 王宝妍,刘乔佳.Java教学改革探讨[J].信息系统工程,2015(8):151.
[5] 龙艳彬,张学东,王亚伟,等.Java教学改革探讨[J].课程教育究,2013(25):136-137.
[6] 时雷,虎晓红,席磊,张浩. Java程序设计课程教学分析[J].计算机教育,2010(14):104-106.
[7] 王岩,黄岚,杜伟. Java课程教学体系构建探索[J].计算机教育,2013(18):83-86.
[8] 朱恒,伟张琦. Java课程教学改革的研究与探索[J].时代农机,2017(11):204.
【通联编辑:王力】
关键词:Java;教学方式;案例;探讨
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2018)28-0123-03
The Discussion of Case based Java Teaching
DU Chun
(Jinjiang College,Sichuan University,Meishan 620860,China)
Abstract: At present, Java is a major compulsory course for computer majors in Colleges and universities, and it is very important for students to work in the future or continue to upgrade. How to learn this course and improve students’ interest in learning has become the focus. Since the previous Java courses are taught by teachers and computer lab classes, such teaching methods make students learn very boring, lack of interest. And the experimental class is also formalized, the exercises are too basic, can not effectively improve the level of students to write programs. This article mainly discusses the way of case study to explain the java course, so that students can better grasp the ability to use Java theory to solve practical problems, so that students can learn the course more actively.
Key words: java; Teaching methods;case;discussion
《Java语言程序设计》是一门计算机专业的专业必修课,也是各大专院校计算机专业都开设的课程。但是在教学过程中,太注重理论而忽视了实践操作的教学[1],学生上课能听懂,但实际编程应用程序时却不知从何入手,正由于这些现状,本文对《Java语言程序设计》这门课提出了以案例驱动的形式来实施教学【3】,将所学知识融入案例中,以提高学生的学习积极性和提高学生实际编程水平。
1 Java教学现状
目前是信息化时代,网络信息的传输已经在我们生活中起着很重要的作用,而Java语言作为一门网络编程语言,对于计算机专业的学生来说就显得举足轻重。经过几年的Java教学后,总结出了一些经验,发现Java教学仍存在一些问题。灌输式的教学方法还在被普遍的使用[3]。由于教学的填鸭式灌输知识的方式,不利于学生缺乏创新意识的培养以及发挥学生的想象力,同时也降低了学生学习的积极性,因而教学效果不是很理想,因此本文提出了一种以案例驱动的Java教学方式。
2 案例教学改革
基于案例的Java教学方法是把各章节知识点以案例的形式进行讲解,具体分為以下5个模块,如图1所示。
2.1 Greenfoot小游戏
Greenfoot是一款游戏工具软件[4],采用图形化的界面来开发游戏,是一种所见即所得的开发工具。在“类和对象”这一章节,将使用Greenfoot软件来讲解游戏的开发,意在让学生能将所学理论知识运用到实际的开发中,并能以开发小游戏的形式来激发学生的学习积极性,达到学与玩结合的教学效果。如图2所示,是一个青蛙吃虫子的小游戏。
通过Greenfoot工具来开发小游戏,能使学生更易更深入地理解类和对象的概念,以及如何在游戏中通过创建类的方法来使角色移动或旋转等。在该游戏中我们创建了一只青蛙和一些虫子,并分别为青蛙和虫子都设置了一些方法,比如它们都具有移动和旋转的方法。其中当青蛙遇到虫子之后,
2.2 GUI
随着计算机技术的发展,计算机越来越平民化、傻瓜化,这主要归功于图形用户界面的使用和普及。GUI的英文全称是Graphics User Interface,即图形化用户界面,因特有的亲和力和易用性普遍受到人们的欢迎。本章将使用一个计算器案例来进行讲解,如图3所示。
该计算器外部是使用一个JFrame窗口,内部使用了两个面板,这两个面板上下放置,上面一个面板中有一个输入框,和一个按钮,输入框用来输入用户输入的运算数和运算符,当用户输入数据后,点击按钮就会计算出结果显示到最右边的一个文件标签控件上。上面的面板采用的是横向的线性布局,从左往右分别是一个文本框、按钮和一个文本标签。下面的面板采用4行4列的格子布局,用来放置10个数字按钮和加、减、乘、除、取余运算符以及一个清除按钮。当然本案例还使用了事件响应,事件响应主要是依靠类ActionListenner接口来实现的,主要代码如下: public class Caculator extends JFrame implements ActionListener
/*实现ActionListener接口*/
{
@Override
public void actionPerformed(ActionEvent e)/*重写actionPerformed方法*/
{
/*完成事件的功能代码*/
}
}
2.3 文件操作
在java中,文件操作主要是通过输入和输出类来实现的[5]。一个完整的应用程序应该由输入、处理、输出3个部分组成。针对输入与输出,Java语言提供了专门用于文件操作和输入/输出功能的包java.io,该包是Java语言的核心包之一,其中包含许多类和接口,有大量的方法用来访问文件系统、创建文件和目录、读取文件信息、处理文件的数据以及存储数据到文件中。本章将使用一个贪吃蛇游戏来进行讲解,游戏界面如图4所示。
本案例中采用了文件来保存玩家每一关的得分记录。主要代码如下:
import java.io.*;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
public class Fileopt extends Thread{
public static File file1; /*文件对象*/
public static BufferedReader br=null; /*文件缓冲输入流*/
public static BufferedWriter bw=null; /*文件缓冲输出流*/
public void createFile() throws IOException
{
file1=new File("C:\\Windows\\score.txt"); /*创建一个文件*/
if(!file1.exists()) /*如果文件不存在,就创建一个*/
{
try {
file1.createNewFile();
}
catch (IOException e) /*捕获异常*/
{
e.printStackTrace();
}
}
}
2.4 多线程编程
进程一般是对操作系统而言的。例如,你打开word编辑文档,同时打开邮箱收取邮件,这时系统内有两个进程在运行,即多个程序在同一时间执行多个任务。线程是比进程还小的单位,一个进程可以包含一个或多个线程。线程是对某一程序而言的。如上例,当打开邮箱收新邮件的同时,还可以看已经下载的邮件,这两件事没有相互干扰,那么我们说此时这一程序中至少有两个线程在运行[6]。即每一个程序在同一时间内执行多个任务。 本章将采用一个射击游戏来进行讲解,游戏的界面如图5所示。
本射击游戏中有一架玩家的飞机和许多架敌机。玩家的飞机和敌机都同时在移动,而且玩家飞机发出的子弹也是同时在移动,所以玩家的飞机、敌机和子弹都是分别是一个线程,故这里采用了多线程技术,主要代码如下:
public class test extends Frame implements Runnable,ActionListener {
/*主程序,游戏的主界面*/
private static plane p; /* 玩家飞机*/
static ArrayList
static ArrayList
public static Image map1; /* 地图1*/
public static Image map2; /* 地图2*/
public static int map1Y; /* 地图1的y坐标*/
public static int map2Y; /* 地图2的y坐标*/
static Music music=new Music(); /*音乐类*/
public static boolean status=true;/*为true表示正在运行,false表示暂停*/
public static boolean died=false; /* false表示飞机是活的,值为true表示飞机挂了,游戏结束*/
creatEnemy ce; /* 动态产生敌机群*/
private MenuBar mb; /* 菜单栏*/
private Menu menu,menu1,menu2; /* 菜单*/
private MenuItem mi1,mi2,mi3,mi4; /* 子菜单*/
public test(){ /*构造函数,对玩家的飞机进行初始化*/ p=new plane(500,500);
ce=new creatEnemy(); Thread thce=new Thread(ce);
thce.start();}
2.5 網络编程
网络编程在如今的分布式计算机时代扮演着重要的角色[7],我们用到的应用程序或多或少都需要一些其他进程的支持或协助,这些进程可能运行在本地也可能运行在其他计算机上,这就需要应用程序能够支持网络编程[2]。在现实生活中,比如网上购物、QQ聊天、网络银行交易等都涉及到网络编程。本章我们将采用一个网络五子棋游戏的案例来进行相关知识的讲解,五子棋游戏的界面如图6所示。
3 结论
Java语言是一门理论与实践并重的课程,对于应用型本科学生来说,既要夯实理论基础,又要重视实践开发,将理论与实践相结合,只有这样才能提升学生的编程水平。对于这样一门编程语言课,传统的填鸭式的教学方式并不能很好的调动学生的学习积极性和兴趣,只有采用以案例的方式,将学与玩紧密结合才能让学生在玩中学,在学中玩,主动地去学习,这样能提高教学效果。我们的总体目标是,针对程序设计能力培养的启蒙入门、发展提高和开发、应用三个阶段[8],让学生能学以致用,达到举一反三,理论与实践相结合。经过使用这种案例教学的方式以后,学生的成绩明显得到了提高,学习态度也有了很显明的变化,以下是按普通教学方式和案例驱动方式教学的对比,如表1所示。
参考文献:
[1] 孙麒,韩永华,庄巧莉.基于创新能力培养的Java教学改革[J].电气电子教学学报,2017(5):50-52.
[2] 强小利,蓝雯飞.面向计算思维的Java程序设计课程教学探讨[J].计算机时代,2015(5):87-89.
[3]王英存.JAVA 教学方法改进探讨[J]. 教育现代化,2018,5(21):63-64.
[4] 王宝妍,刘乔佳.Java教学改革探讨[J].信息系统工程,2015(8):151.
[5] 龙艳彬,张学东,王亚伟,等.Java教学改革探讨[J].课程教育究,2013(25):136-137.
[6] 时雷,虎晓红,席磊,张浩. Java程序设计课程教学分析[J].计算机教育,2010(14):104-106.
[7] 王岩,黄岚,杜伟. Java课程教学体系构建探索[J].计算机教育,2013(18):83-86.
[8] 朱恒,伟张琦. Java课程教学改革的研究与探索[J].时代农机,2017(11):204.
【通联编辑:王力】