JAVA程序设计课程教学大纲
课程编码:02212307
学时数: 90
课程性质:专业必修课
先修课程:《高级语言程序设计》、《数据结构》
适用专业: 计算机科学与技术
一、课程的性质、目的和任务
1、课程的性质
计算机科学与技术专业必修课,适合高年级学生。要求能够把基本概念、基本理论和项目技能融入到具体的Java 程序和集成开发环境中去介绍。通过项目实践性的案例教学,化繁为简、化难为易、深入浅出地介绍基本概念和理论。
2、课程的目的
让学生掌握这一在科研和市场应用方面非常重要的语言及其技术;通过本课程使学生掌握java技术的核心概念,编程方法;培养学生掌握面向对象的思想和程序设计方法;完成本课程的学习后能够熟练的、综合应用Java技术和面向对象的思想编写程序解决现实生活中的问题。
3、课程的任务
使学生掌握Java程序设计语言,理解面向对象程序设计的思路和方法,掌握网络编程的基本技术,培养学生的编程能力,养成良好编码的习惯,为将来参与实际项目的开发奠定坚实的基础。
二、课程教学内容及基本要求
第一章 Java语言概述
[学时分配] 2学时 + 1(课堂实践)=3课时
[主要内容]
1.Java的发展历史;
2.Java语言的特点;
3.与C和C++语言的异同;
4.Java的实际应用简介;
5.Java的实现和运行机制;
6.Java程序开发与运行环境;
7.Java程序类型和举例;
8.package和import语句的使用;
9.JavaAPI 文档。
[教学重点]
1.Java的实现和运行机制;
2.Java程序开发与运行环境;
3.Java程序类型和举例。
[教学难点]
1.Java程序开发与运行环境。
[教学要求]
1. 了解java 的发展;
2. 掌握java的特点;
3. 掌握Java的运行机制;
4. 掌握Java虚拟机的作用;
5. 了解常用的开发环境;
6. 掌握简单的Java程序开发方法。
第二章 Java语言基础
[学时分配] 5课时 + 2(课堂实践)=7课时
[主要内容]
1.基本数据类型、关键字和标识符介绍;
2.Java运算符和表达式;
3.简单数据类型程序举例;
4.数组;
5.分支语句;
6.循环语句;
7.其他语句。
[教学重点]
1. 基本数据类型、关键字和标识符;
2. Java运算符和表达式;
3.数组、分支语句、循环语句。
[教学难点]
1. 数组;
[教学要求]
1.掌握Java的基本数据类型的特征;
2.了解常用的保留字;
3.能够正确定义标识符;
4.掌握java 的运算符的使用;
5.掌握常用的控制语句的使用,分支语句,循环语句;
6.掌握与转移控制有关的语句,continue, break ,return 的使用。
第三章 类与对象
[学时分配] 6(讲课)+3(课堂实践)=9课时
[主要内容]
1.OOP简介
2.类的定义(包括成员变量和方法)
3.构造方法
4.方法的重载
5. 包(package和import)
6.类成员变量及方法的访问权限
7.实例成员和类成员
8.finalize()方法
[教学重点]
1. 类的定义(包括成员变量和方法);
2. 构造方法、方法的重载;
3.包(package和import);
4.类成员变量及方法的访问权限;
5.实例成员和类成员。
[教学难点]
1. 包(package和import)、类成员变量及方法的访问权限;
[教学要求]
1.掌握类、对象、属性的概念和定义;
2.掌握消息、方法的概念和定义;
3.掌握方法重载的使用;
4.掌握实例成员和类成员的特点;
5.掌握包的概念;
6.掌握封装性。
第四章 继承、多态和接口
[学时分配] 6(讲课)+4(课堂实践)=10课时
[主要内容]
1.继承(性);
2.final、this、super;
3.多态性(方法的覆盖);
4.Object,Class(两个类的说明);
5.抽象类和抽象方法 ;
6.接口;
7.嵌套类;
8.Jar文件的介绍。
[教学重点]
1. 继承(性)、多态性(方法的覆盖);
2. final、this、super;
3. 抽象类和抽象方法、接口。
[教学难点]
1. 继承(性)、多态性(方法的覆盖);
2. 抽象类和抽象方法、接口。
[教学要求]
1.掌握继承性和多态性;
2.掌握抽象类的使用;
3.掌握接口的使用和抽象类的区别。
第五章 常用系统类
[学时分配] 2(讲课)+2(课堂实践)=4课时
[主要内容]
1.字符串常量;
2.String类介绍;
3.StringBuffer类介绍;
4.StringTokenizer类的应用;
5.字符串与其他数据类型的转换;
6.Java.lang包中的主要类;
7.Java数据类型封装类;
8.Java集合框架;
9.Collection,Map,Set,List,Iterator等接口;
10.TreeSet,HashSet;
11.ArrayList,LinkedList,Vector;
12.HashMap,HashTable,TreeMap;
13.Collections;
14.其它工具类(Java.util.*);
15.Date,Calendar,Properties,Random 。
[教学重点]
1. 字符串常量;String类介绍;StringBuffer类介绍;
2. 字符串与其他数据类型的转换;
3. Java数据类型封装类、Java集合框架。
[教学难点]
1. 字符串与其他数据类型的转换;
2. String,StringBuffer类的使用。
[教学要求]
1.掌握字符串的表示;
2.掌握String,StringBuffer类的使用;
3.掌握“+”运算符在进行字符串操作时的内在原理;
4.了解Java.lang 包中的:System,Runtime,Math,Process等的含义;
5.掌握Java基本数据类型的封装类的使用;
6.能够简单应用Java集合框架。
第六章 Java Applet
[学时分配] 3(讲课)+2(课堂实践)=5课时
[主要内容]
1.Applet简介(编写一个Applet、装入Applet、Appet 生命周期与主要方法、Applet和Application);
2.Applet标记(包括旧版标记和新版标记);
3.AppletViewer ;
4.简单应用 ;
5.Java对多媒体的支持 ;
6.Applet的通信;
7.Applet的AWT绘制。
[教学重点]
1. Applet的创建和运行方法,Applet的组件绘制方法;
2. Applet的通信机制;
3. Applet和Application。
[教学难点]
1. Applet的创建和运行方法;
2. Applet的通信机制。
[教学要求]
1.理解什么是Applet ;
2.掌握Applet的创建和运行方法,Applet的组件绘制方法;
3.理解Applet的通信机制。
第七章 图形用户界面编程
[学时分配] 8(讲课)+4(课堂实践)=12课时
[主要内容]
1. Java图形界面概述;
2. Java.awt包;
3. 容器与组件;
4. 常用容器和布局管理器;
5. AWT事件模型 ;
6. 事件处理模型;
7. 事件对象和事件处理器;
8. AWT绘图;
9. 常用GUI标准组件;
10. 鼠标和键盘事件;
11. 菜单的使用;
12. 对话框的使用。
[教学重点]
1. 组件,容器,布局等概念;
2. AWT事件处理机制;
3. AWT绘图;
4.鼠标和键盘事件、菜单的使用。
[教学难点]
1. AWT事件处理机制。
[教学要求]
1.理解组件,容器,布局等概念;
2.掌握 AWT事件处理机制,并且能够熟练应用;
3.掌握在图形界面中的绘图方法;
4.理解swing组件模型。
第八章 异常处理
[学时分配] 2(讲课)+2(课堂实践)=4课时
[主要内容]
1. 什么是Java的异常;
2. 异常类的划分;
3. Java 的异常处理机制;
4. 异常的处理。
[教学重点]
1. 什么是Java的异常;
2. Java 的异常处理机制;
3. 异常的处理。
[教学难点]
1. Java 的异常处理机制;
2. 异常的处理。
[教学要求]
1. 掌握什么是Java的异常;
2. 掌握Java的异常处理机制;
3. 能够处理Java中的异常。
第九章 流式输入/输出与文件处理
[学时分配] 7(讲课)+4(课堂实践)=11课时
[主要内容]
1.I/O流的划分(包括基本的流类)
2.字节流处理
1)标准输入/出流System.in/out
2)文件类File
3)文件的顺序处理
4)随机存取文件
5)过滤流
3.字符流处理
1)Reader,Writer
2)字节流和字符流的转化(InputStreamReader,OutputStream- Writer)
3)文件字符流(FileReader,FileWriter)
4)从标准控制台读入特定类型的数据
5)其它字符流
4.串行化
[教学重点]
1. 流的概念和划分;
2. 字符流处理的方法,字符流和字节流之间的转换;
3. 文件描述,顺序处理,随机访问处理的方法。
[教学难点]
1. 流的概念;
2. 字符流处理的方法,字符流和字节流之间的转换。
[教学要求]
1.理解流的概念和划分;
2.掌握文件描述,顺序处理,随机访问处理的方法;
3.能够熟练的使用过滤流;
4.掌握字符流处理的方法,字符流和字节流之间的转换;
5.理解对象串行化的概念和方法。
第十章 多线程
[学时分配] 6(讲课)+4(课堂实践)=10课时
[主要内容]
1.线程概念
2.线程的创建(包括线程体的构造)
3.线程的状态和基本控制(包括优先级)
4.多线程的互斥与同步
1)临界资源和互斥锁(Synchronized)
2)多线程的同步(wait和notify)
[教学重点]
1. 线程的概念;
2. 线程的构造,调度,控制方法;
3. 多线程的互斥与同步。
[教学难点]
1. 线程的概念;
2. 线程的创建(包括线程体的构造)。
[教学要求]
1.理解线程的概念;
2.掌握线程的构造,调度,控制方法;
3.能够处理简单的多线程互斥和同步。
第十一章 JDBC技术与数据库应用
[学时分配] 2(讲课)+3(课堂实践)=5课时
[主要内容]
1.JDBC概述
1)特点
2)结构和应用模型
2.通过JDBC访问数据库
1)JDBC驱动程序的类型
2)连接数据库
3)查询数据库和检索结果集
4)更新数据库
5)使用输入和输出参数
[教学重点]
1. JDBC的特点,结构,应用模型;
2. 通过JDBC访问数据库执行SQL 语句的方法;
3. JDBC驱动程序的类型。
[教学难点]
1. 通过JDBC访问数据库执行SQL 语句的方法。
[教学要求]
1.理解JDBC的特点,结构,应用模型;
2.掌握通过JDBC访问数据库执行SQL 语句的方法:连接,查询,检索,更新,使用参数;
3.理解JDBC驱动程序的类型。
第十二章 Java的网络编程
[学时分配] 3(讲课)+3(课堂实践)=6课时
[主要内容]
1.URL概述
1)URL和URL类
2)URLConnection
2.Socket通信
1)创建Socket通信的方法
2)一个单客户Socket通信程序
3)多客户Socket通信程序
3.数据报通信
1)创建数据报通信程序的方式
2)一个简单的数据报通信程序
[教学重点]
1. URL的概念;
2. 创建Socket通信的方法;
3. 创建数据报通信程序的方式。
[教学难点]
1. Java数据库编程中常见错误的改正方法;
2. 创建Socket通信的方法。
[教学要求]
1.理解URL的概念;
2.掌握创建简单 Socket 通信的方法;
3.掌握创建简单数据报通信程序的方法。
第十三章 Swing编程
[学时分配] 2(讲课)+2(课堂实践)=4课时
[主要内容]
1.Swing包简介
2.Swing包中典型部件的使用
1)JFrame类
2)Swing中按钮和标签
3)流动窗格
4)工具栏
5)Swing中的对话框
6)选项卡(JTabbedPane)
[教学重点]
1. JFrame类;
2. Swing中按钮和标签;
3. 工具栏;
4.Swing中的对话框;
5.选项卡。
[教学难点]
1. Swing中的对话框、选项卡。
[教学要求]
1.了解Swing的由来;
2.掌握Swing包中典型部件的使用。
三、课程实践环节基本要求
[案例项目实践一]
1.项目实践题目:熟悉Java程序开发环境;
2.项目实践目的和要求。
目的:熟悉J2sdk集成环境的基本命令、功能和基本用法。并学会配置path 等环境变量。
要求:熟练掌握使用J2SDK环境进Java程序开发的全过程(包括:源程序的编辑、编译、调试、运行和结果查看)。
3.项目实践基本内容:
安装Jdk1.5.0集成环境,安装成功后,配置path,classpath路径,让用户在任何目录下均可用到Java的系统资源。
设置环境变量PATH和CLASSPATH(如果在autoexec.bat中没有进行设
置)。进入命令行(MS-DOS)方式,进行如下设置:
1)SET PATH=D:\JDK1.5.0\BIN;%PATH%
2)SET CLASSPATH=.; %CLASSPATH%
3)安装 Jdk 1.5.0 Doc, 并查看Jdk 1.5.0 Doc 文档中,和课堂教学有
关系的部分。在整个实验过程中都可以参考。
4)建立自己的工作目录如d:\user。以后的Java程序和过程文件均放置在
此目录下。
5)输入一个Application源程序,学习编辑、编译、运行程序的方法。
4.完成方式:课堂讲解+课后项目实践。
[案例项目实践二]
1.项目实践题目: 简单数据类型和流程控制。
2.项目实践目的和要求
目的:掌握Java语言的标识符和保留字,各简单数据类型变量以及有逻辑量
意义数据的表示方法以及表示条件的表达式的类型;熟练掌握while、do-while和for三种语句组成循环结构的基本方法。。
要求:把课堂上学到的理论用于实践,并验证理论的正确性,和发现新的问题。
3.项目实践基本内容
掌握标识符的定义规则、表达式的组成、各种数据类型及其使用方法、各种运算符的使用及其优先级控制。
掌握分支结构,循环结构,continue,break,语句标号等内容。
3. 完成方式:课堂讲解+课堂练习+课后作业+课后项目实践。
[案例项目实践三]
1.项目实践题目: 类、对象基础知识的应用。
2.项目实践目的和要求。
目的:理解面向对象的程序设计方法。
要求:掌握类、对象、成员、方法、构造方法、封装性,多态性的概念 。
3.项目实践基本内容
定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”,。定义主类,创建帐户类的对象,并完成相应操作。
4.完成方式:课堂讲解+课堂练习+课后作业+课后项目实践。
[案例项目实践四]
1.项目实践题目: 抽象类、接口与包的使用。
2.项目实践目的和要求。
目的:理解面向对象的程序设计方法。
要求:掌握抽象类、接口、包package、递归的概念。
3.项目实践基本内容
编写求解几何图形(如三角形,矩型,圆,多边型)的周长、面积的应
用程序,要求用到继承、多态、抽象类、接口、内部类等面向对象程序设计技术的特点。
要求三角形,矩型,圆,多边型的类放到不同的包中,用包的技术组织
程序的设计。同时要求程序能从键盘上接受数据以便求解不同的几何图形的周长面积。提示:从键盘上输入双精度数的一种方法(程序片段) 。
4.完成方式:课堂讲解+课堂练习+课后项目实践。
[案例项目实践五]
1.项目实践题目: 字符串处理及基础类库的应用
2.项目实践目的和要求。
目的:掌握字符串处理的方法及基础类库应用。
要求:掌握String类、StringBuffer类、字符串与其他数据类型的转换及Math类的使用。
3.项目实践基本内容
使用Java Aplication的命令行参数读入两个数据,计算它们的和,然后将和输出。如果参数的数目不足,显示相应提示信息并退出程序的执行。
4.完成方式:课堂讲解+课后项目实践。
[案例项目实践六]
1.项目实践题目: 异常处理的应用
2.项目实践目的和要求
目的:理解什么是例外。
要求:掌握java的例外处理机制和方法。
3.项目实践基本内容
使用Java Aplication的命令行参数读入两个数据,计算它们的和,然后将和输出。
编程自定义例外OnlyOneException与NoOprandException。如果参数的数目不足,显示相应提示信息并退出程序的执行。
4.完成方式:课堂讲解+课后项目实践。
[案例项目实践七]
1.项目实践题目: 流式输入输出处理。
2.项目实践目的和要求
目的:理解流的概念,流的划分。
要求:掌握文件描述,顺序处理,随机访问处理的方法及字符流处理的方法。
3.项目实践基本内容
定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"、”显示帐号”以及存储功能。
定义主类,创建帐户类的对象,并完成相应操作,要求能存储储户历史信息。
编写程序,能接收键盘输入的字符串,并将字符串的内容写入文件。
4. 完成方式:课堂讲解+课堂练习+课后项目实践。
[案例项目实践八]
1.项目实践题目: 线程的应用。
2.项目实践目的和要求
目的:理解线程的概念、线程的生命周期。
要求:掌握使用多线程机制。
3.项目实践基本内容
利用多线程编程实现一个正在旋转的地球。
将插入、冒泡排序算法设计成算法,启动两个以上不同的线程同时运行,计算不同排序的运行时间。
4.完成方式:课堂讲解+课后项目实践。
[案例项目实践九]
1.项目实践题目: 用户图形界面GUI标准组件及事件处理。
2.项目实践目的和要求
目的:掌握常用GUI控制组件的使用方法。
要求:掌握事件处理的方法。
3.项目实践基本内容
编程包含一个标签和一个按钮,单击按钮时,标签的内容在"你好"和"
再见"之间切换。
编程包含一个文本框和一个文本区域,文本框内容改变时,将文本框中
的内容显示在文本区域中;在文本框中按回车键时,清空文本区域的内容。
编程包含一个复选按钮和一个普通按钮,复选按钮选中时,普通按钮的
背景色为青色,未选中时为灰色。
编程包含一个单选按钮组和一个普通按钮,单选按钮组中包含三个单选,
文本说明分别为"普通"、"黑体"和"斜体"。选择文本标签为"普通"的单选按钮时,普通按钮中的文字为普通字体,选择文本标签为"黑体"的单选按钮时,普通按钮中的文字的字体为黑体,选择文本标签为"斜体"的单选按钮时,普通按钮中的文字的字体为斜体。
编程包含一个下拉列表和一个按钮,下拉列表中有10、14、18三个选项。
选择10时,按钮中文字的字号为10,选择14时,按钮中文字的字号为14,选择18时,按钮中文字的字号为18。
编程包含一个列表和两个标签,在第一个标签中显示列表中被双击的选
项的内容,在第二个标签中显示列表中被选中的所有选项的内容。
编程确定当前鼠标的位置坐标。
编程创建一个Frame,实现窗口的**接口。
编程使用BorderLayout布局方式放置5个按钮。
4.完成方式:课堂讲解+课堂练习+课后项目实践。
[案例项目实践十]
1.项目实践题目: Applet的编写。
2.项目实践目的和要求
目的:掌握Java Applet程序结构和开发过程。
要求:学会编写Applet对应的HTML文件,掌握从HTML文件向Applet传递参数的方法。
3.项目实践基本内容
输入一个applet源程序,学习编辑、编译、运行程序的方法。
写Applet,从HTML文件中获取两个字符串参数,并将它们在浏览器中鼠标单击的位置显示出来。
写Applet,显示heep://www.baidu.com的页面内容。
写Applet,包含一个文本框和一个按钮,单击按钮时,在浏览器的状态
行显示文本框中的内容。
写Applet,绘制直线、各种矩形、多边形、圆和椭圆等图形。
写Applet,显示不同大小不同风格、类型的字体。
写Applet,显示一排用随机定义的颜色所填充的小方块。
写Applet,在浏览器中显示图片文件,包括原图、缩小一半图、宽扁图和瘦高图。
4.完成方式:课堂讲解+课堂练习+课后项目实践。
[案例项目实践十一]
1.项目实践题目: Java网络编程技术。
2.项目实践目的和要求
目的:掌握URL的概念和编程。
要求:掌握TCP与UDP编程。
3.项目实践基本内容
使用InetAddress类的方法获取http://www.ytu.edu.cn/的主机的IP
地址;获取本地机的名称和IP地址。
使用Socket编程,客户机发送数据到服务器,服务器将接收到的数据返
回给客户机。
将上面的程序进行改写,使用多线程实现服务器能同时处理多个客户机
的请求。
使用UDP编程,客户机发送数据到服务器,服务器将接收到的数据返回
给客户机。
4.完成方式:课堂讲解+课后项目实践。
[案例项目实践十二]
1.项目实践题目: 综合设计实验。
2.项目实践目的和要求
目的:为了进一步巩固课堂上所学到的知识,深刻把握Java技术的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,特开设综合设计实验实验项目。
要求:掌握Java的语言规范,面向对象的核心概念和特性;Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序、Applet等;Java应用软件的开发环境和开发过程;面向对象的思想和程序设计方法。
3.项目实践基本内容
拼图游戏是一个简单的Java小程序(Applet),它的游戏规则如下:将一
张大图打散成9张小图,然后在游戏里任意挑8张图,贴在3行3列的矩阵中的任意位置。通过鼠标或键盘的方向键移动打乱的8张图片,让其复原成原来的顺序,玩家就胜利了,游戏就结束了。在游戏结束之后,会算出玩家的得分。
4.完成方式:课堂讲解+课后项目实践。
四、几点说明
1、制定本大纲的依据
本大纲依据高等工科院校四年本科计算机科学与技术专业的培养目标和毕业生基本要求以及培养计划而定。
2、本课程与前后课程的联系
前修课程:《高级语言程序设计》、《数据结构》
后续课程:《Java Web技术》
3、考核方法和成绩评定说明
(1)考核方式:闭卷
(2)出题方式:A、B卷
(3)时数: 2小时
(4)成绩评定:平时成绩(20%)上机实践(20%)期末(60%)
4、必要的教学手段说明
课堂讲授以PPT课件为主。
5、参考教材与文献
[1] 《Java 面向对象程序设计(第二版)》 (美)刘易斯等著 张琛恩等译电子工业出版社 2005
[2] 《Java程序设计教程》 H.M. Deitel著 清华大学出版社 2004
[3].《Java编程思想》 Bruce Eckel 著 陈昊等译 机械工业出版
[4]. 《Java2 核心技术第6版:基础知识》 (美)Cay S.Horstmann,Gary Cornell编 机械工业出版社 2003
[5].《Java语言实用教程》(第一版) 丁振凡 北京邮电大学出版社 2005
五、学时分配
序号 | 课程内容 | 学时 | 学时分配 | ||||
讲授 | 讨论 | 习题 | 实验 | 其他 | |||
一 | Java语言概述 | 3 | 2 | 1 | |||
二 | Java语言基础 | 7 | 3 | 1 | 1 | 2 | |
三 | 类与对象 | 9 | 4 | 1 | 1 | 3 | |
四 | 继承、多态和接口 | 10 | 5 | 1 | 4 | ||
五 | 掌握系统类 | 4 | 2 | 2 | |||
六 | Java Applet | 5 | 3 | 2 | |||
七 | 图形用户界面编程 | 12 | 6 | 2 | 4 | ||
八 | 异常处理 | 4 | 2 | 2 | |||
九 | 流式输入/输出与文件处理 | 11 | 5 | 2 | 4 | ||
十 | 多线程 | 10 | 5 | 1 | 4 | ||
十一 | JDBC技术与数据库应用 | 5 | 2 | 3 | |||
十二 | Java的网络编程 | 6 | 3 | 3 | |||
十三 | Swing 编程 | 4 | 2 | 2 | |||
总学时 | 90 | 44 | 2 | 8 | 36 |