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 |