(一)課程描述
本課程是為計算機科學(xué)與技術(shù)專業(yè)學(xué)生開設(shè)的一門專業(yè)技能課。其主要內(nèi)容是在學(xué)習(xí)Java等程序設(shè)計的基礎(chǔ)上,為學(xué)生提供一個動手、動腦及獨立實踐的機會,將程序設(shè)計的理論知識和實際有機的結(jié)合起來,鍛煉學(xué)生分析、解決實際問題的能力。該課程主要是在Java面向?qū)ο缶幊袒A(chǔ)知識(包括界面編程、Socket編程),講解Java的其它高級編程技術(shù),如多線程和數(shù)據(jù)庫編程,啟動與實際聯(lián)系緊密的中小型Java軟件項目,采用增量式項目驅(qū)動的方式,讓學(xué)生在項目的實踐過程中,加深和拓寬Java相關(guān)的知識面,同時初步體會項目開發(fā)的流程,積累團隊合作的經(jīng)驗。
(二)課程目標(biāo)
畢業(yè)要求 | 具體指標(biāo)點 | 課程教學(xué)目標(biāo) |
開發(fā)環(huán)境 | 主流開發(fā)平臺eclipse或myeclipse | 掌握主流開發(fā)平臺elipse和myeclipse |
需求分析 | 學(xué)會分析一個項目的需求 | 引導(dǎo)學(xué)生進行需求分析 |
GUI編程與事件處理 | 能開發(fā)GUI,正確處理事件 | 培養(yǎng)學(xué)生開發(fā)GUI界面編程和正確處理事件 |
數(shù)據(jù)庫編程 | 正確操作數(shù)據(jù)庫 | 培養(yǎng)學(xué)生對數(shù)據(jù)庫進程增刪改查操作 |
網(wǎng)絡(luò)通信編程 | 網(wǎng)絡(luò)交互數(shù)據(jù)正常 | 培養(yǎng)學(xué)生使用網(wǎng)絡(luò)編程的java API,網(wǎng)絡(luò)交互數(shù)據(jù)正確 |
綜合編程 | 綜合應(yīng)用編程技能,開發(fā)系統(tǒng) | 綜合訓(xùn)練學(xué)生編程 |
1. 開發(fā)環(huán)境
2. 課程安排
3. 專項實訓(xùn)項目介紹
4. 專項實訓(xùn)項目:用戶登錄界面設(shè)計與實現(xiàn)
5. 需求分析
實訓(xùn)要求:通過本章的學(xué)習(xí),使學(xué)生掌握主流開發(fā)平臺elipse和myeclipse, 了解項目的需求分析。
重點:安裝開發(fā)環(huán)境
難點:開發(fā)環(huán)境中的JDK版本問題
采用的教學(xué)方法:增量式項目驅(qū)動
參考案例:Hello World的開發(fā)環(huán)境搭建
第2章 :界面編程(3學(xué)時)
1. 專項實訓(xùn)項目:車票預(yù)定系統(tǒng)(訂票、車票)的界面設(shè)計
2. 完成自選項目的界面設(shè)計
實訓(xùn)要求:通過本章的學(xué)習(xí),使學(xué)生掌握基礎(chǔ)的界面編程。
重點:GUI
難點:GUI無法正確顯示的問題
采用的教學(xué)方法:增量式項目驅(qū)動
參考案例:車票預(yù)定系統(tǒng)(訂票、車票)的界面設(shè)計
第3章 :事件處理(3學(xué)時)
1. 一般要求:采用ActionListener
1) 專項實訓(xùn)項目:登錄:假設(shè)用戶名和密碼應(yīng)為XXX,讀取用戶名和密碼進行對比,根據(jù)對比結(jié)果顯示不同界面效果。
2) 專項實訓(xùn)項目:訂票、車票查詢,假定每天都只有3個班次
2. 高級要求:
1) 可以采用其它事件處理方法
實訓(xùn)要求:通過本章的學(xué)習(xí),使學(xué)生掌握基礎(chǔ)的事件處理編程。
重點:事件處理
難點:事件處理無法響應(yīng)的情況的處理辦法
采用的教學(xué)方法:增量式項目驅(qū)動
參考案例:訂票、車票查詢,假定每天都只有3個班次
第4章 :事件處理(3學(xué)時)
1. 一般要求:采用ActionListener
1) 專項實訓(xùn)項目:車票預(yù)定、根據(jù)用戶選中的班次顯示信息車票、用戶確認(rèn)訂票、取消訂票
2. 高級要求
1) 可以采用其它事件處理方法,例如:可以為班車表增加彈出菜單。
實訓(xùn)要求:通過本章的學(xué)習(xí),使學(xué)生掌握基礎(chǔ)的事件處理編程。
重點:事件處理
難點:事件處理無法響應(yīng)的情況的處理辦法
采用的教學(xué)方法:增量式項目驅(qū)動
參考案例:車票預(yù)定、根據(jù)用戶選中的班次顯示信息車票、用戶確認(rèn)訂票、取消訂票
第5章 :數(shù)據(jù)庫編程(3學(xué)時)
1. 一般要求:
1) 專項實訓(xùn)項目:JDBC配置,連接建立
2) 專項實訓(xùn)項目:登錄:創(chuàng)建用戶表;
3) 專項實訓(xùn)項目:直接從數(shù)據(jù)庫中查詢用戶信息。
2. 高級要求
1) 從登錄界面上,根據(jù)用戶名從數(shù)據(jù)庫中查詢用戶是否存在,用戶存在則驗證密碼是否正確,正確則進入班車查詢界面,否則提示登錄失敗
實訓(xùn)要求:通過本章的學(xué)習(xí),使學(xué)生掌握基礎(chǔ)的數(shù)據(jù)庫編程。
重點:JDBC的連接
難點:數(shù)據(jù)庫讀取失敗的情況處理
采用的教學(xué)方法:增量式項目驅(qū)動
參考案例:直接從數(shù)據(jù)庫中查詢用戶信息
第6章 :數(shù)據(jù)庫編程(3學(xué)時)
1. 一般要求:通過JDBC操作數(shù)據(jù)庫即可
1) 專項實訓(xùn)項目:建立班車表成績表
2) 專項實訓(xùn)項目:班車查詢、根據(jù)條件,從數(shù)據(jù)庫中查詢班車信息,把結(jié)果顯示在查詢界面中。
2. 高級要求
1) 在一般要求的基礎(chǔ)上,要求完成端到端的功能,即通過界面,完成對數(shù)據(jù)庫的訪問。
2) 建立車票表,增加用戶訂票記錄表
實訓(xùn)要求:通過本章的學(xué)習(xí),使學(xué)生掌握進階的數(shù)據(jù)庫編程。
重點:JDBC的連接
難點:數(shù)據(jù)庫讀取失敗的情況處理
采用的教學(xué)方法:增量式項目驅(qū)動
參考案例:班車查詢、根據(jù)條件,從數(shù)據(jù)庫中查詢班車信息,把結(jié)果顯示在查詢界面中。
第7章 :網(wǎng)絡(luò)通信(3學(xué)時)
1. 一般要求:
1) 專項實訓(xùn)項目:對象序列化
2) 專項實訓(xùn)項目:TCP對象數(shù)據(jù)流通信
3) 專項實訓(xùn)項目:使用對象數(shù)據(jù)流傳輸(測試應(yīng)答消息,如echo消息)消息對象
① 客戶端發(fā)一個測試消息給服務(wù)器端,
② 服務(wù)器端收到測試消息后,顯示收到的消息,然后把收到的消息原封不動的返回給客戶端,
③ 客戶端收到消息后,顯示收到的消息。
2. 高級要求:
1) 在一般要求的基礎(chǔ)上,要求完成端到端的功能,即通過界面,完成對數(shù)據(jù)庫的訪問。
實訓(xùn)要求:通過本章的學(xué)習(xí),使學(xué)生掌握基礎(chǔ)的網(wǎng)絡(luò)編程。
重點:客戶端和服務(wù)器直接的聯(lián)網(wǎng)
難點:網(wǎng)絡(luò)數(shù)據(jù)格式的解析和轉(zhuǎn)化
采用的教學(xué)方法:增量式項目驅(qū)動
參考案例:使用對象數(shù)據(jù)流傳輸(測試應(yīng)答消息,如echo消息)消息對象;服務(wù)器的數(shù)據(jù)解析
第8章 :網(wǎng)絡(luò)通信(3學(xué)時)
1. 一般要求:
只需完成對象數(shù)據(jù)流通信即可(可以固定消息內(nèi)容),不需要訪問數(shù)據(jù)庫;
2. 高級要求:
在一般要求的基礎(chǔ)上,要求完成端到端的功能,即通過界面,通過網(wǎng)絡(luò)通信完成對數(shù)據(jù)庫的訪問。
1) 專項實訓(xùn)項目:建立車票預(yù)定查詢服務(wù)器軟件(訪問數(shù)據(jù)庫)
① 把數(shù)據(jù)庫訪問的功能獨立出來作為服務(wù)器軟件;
② 為服務(wù)器增加一個簡單的管理界面,用于啟動服務(wù)器功能;
③ 原有的界面和事件處理作為客戶端;
2) 專項實訓(xùn)項目:利用對象數(shù)據(jù)流,實現(xiàn)C/S結(jié)構(gòu)的用戶登錄
① 創(chuàng)建一個用戶登錄驗證請求消息類和一個登錄驗證結(jié)果消息類;
② 客戶端在【登錄】按鈕的時間處理過程中,把用戶名和密碼保存在用戶登錄驗證請求消息對象中,通過輸出對象數(shù)據(jù)流,發(fā)給服務(wù)器;
③ 服務(wù)器端:服務(wù)器從輸入對象數(shù)據(jù)流中收到用戶登錄驗證請求消息,根據(jù)消息對象中的用戶名,從數(shù)據(jù)庫中檢查該用戶是否存在;
④ 服務(wù)器端:用戶存在,比較密碼是否正確,如果用戶存在并且密碼正確,創(chuàng)建登錄驗證結(jié)果消息對象,設(shè)置登錄狀態(tài)為成功,把該消息發(fā)給客戶端。
⑤ 服務(wù)器端:用戶不存在或者密碼不正確,設(shè)置登錄狀態(tài)為失敗,把該消息發(fā)給客戶端。
⑥ 客戶端:根據(jù)接收到的登錄驗證結(jié)果,顯示相應(yīng)界面。
實訓(xùn)要求:通過本章的學(xué)習(xí),使學(xué)生掌握基礎(chǔ)的網(wǎng)絡(luò)編程。
重點:客戶端和服務(wù)器直接的聯(lián)網(wǎng)
難點:網(wǎng)絡(luò)數(shù)據(jù)格式的解析和轉(zhuǎn)化
采用的教學(xué)方法:增量式項目驅(qū)動
參考案例:建立車票預(yù)定查詢服務(wù)器軟件
第9章 :網(wǎng)絡(luò)通信(3學(xué)時)
1. 一般要求:
只需完成對象數(shù)據(jù)流通信即可(可以固定消息內(nèi)容),不需要訪問數(shù)據(jù)庫;
2. 高級要求:
在一般要求的基礎(chǔ)上,要求完成端到端的功能,即通過界面,通過網(wǎng)絡(luò)通信完成對數(shù)據(jù)庫的訪問。
1) 專項實訓(xùn)項目:利用對象數(shù)據(jù)流,實現(xiàn)C/S結(jié)構(gòu)的班車查詢
① 創(chuàng)建一個班車查詢消息類和一個班車查詢結(jié)果消息類;
② 客戶端:把查詢條件存入(封裝進)一個班車查詢消息類對象,把該對象發(fā)給服務(wù)端;
③ 服務(wù)器端:收到一個班車查詢消息類對象,根據(jù)查詢條件,從數(shù)據(jù)看中查詢班車信息,把結(jié)果存入一個班車查詢結(jié)果消息類對象,發(fā)給客戶端。
④ 客戶端:收到一個班車查詢結(jié)果消息類對象,把結(jié)果顯示在界面上。
2) 專項實訓(xùn)項目:利用對象數(shù)據(jù)流,實現(xiàn)C/S結(jié)構(gòu)的成績修改
① 創(chuàng)建一個訂票修改請求消息類和一個訂票修改結(jié)果消息類;
② 客戶端:把班車ID和用戶ID和訂票信息存入(封裝進)一個訂票修改請求消息類對象,把該對象發(fā)給服務(wù)端;
③ 服務(wù)器端:收到一個訂票修改請求消息類對象,根據(jù)對象中信息存入數(shù)據(jù)庫,更新班車信息,把數(shù)據(jù)庫更新結(jié)果存入一個成績修改結(jié)果消息類對象,發(fā)給客戶端。
④ 客戶端:收到一個訂票修改請求結(jié)果消息類對象,把結(jié)果顯示在界面上。
實訓(xùn)要求:通過本章的學(xué)習(xí),使學(xué)生掌握進階的網(wǎng)絡(luò)編程。
重點:客戶端和服務(wù)器直接的聯(lián)網(wǎng)
難點:通過網(wǎng)絡(luò)通信完成對數(shù)據(jù)庫的訪問
采用的教學(xué)方法:增量式項目驅(qū)動
參考案例:建立車票預(yù)定查詢服務(wù)器軟件
第10章 :多線程
1. 一般要求:
1) 服務(wù)器端:新建用戶服務(wù)線程類
2) 服務(wù)器端:把上一節(jié)的客戶處理代碼移到用戶服務(wù)線程類中;
3) 服務(wù)器端:每成功收到一個客戶端Socket連接,啟動一個客戶服務(wù)線程為其服務(wù)。
4) 客戶端代碼不變。
2. 高級要求:
1) 在一般要求的基礎(chǔ)上,要求完成端到端的功能,即通過界面,通過網(wǎng)絡(luò)通信完成對數(shù)據(jù)庫的訪問。
實訓(xùn)要求:通過本章的學(xué)習(xí),使學(xué)生掌握多線程編程。
重點:啟動另外的線程
難點:多線程之間的資源讀取、死鎖
采用的教學(xué)方法:增量式項目驅(qū)動
參考案例:建立車票預(yù)定查詢服務(wù)器軟件
綜合應(yīng)用 11 - 16:綜合項目設(shè)計與開發(fā)階段(團隊)
1. 團隊人數(shù)
3~5人:按角色分工。
2. 開發(fā)計劃
建議增量式、由簡單到復(fù)雜地完成,每個功能都實現(xiàn)端到端的效果:如客戶端、服務(wù)器(含客戶服務(wù)線程)、網(wǎng)絡(luò)通信、數(shù)據(jù)庫。
3. 開發(fā)進度安排
1) 選題、項目調(diào)查、項目分析
2) 設(shè)置項目實現(xiàn)目標(biāo)、開發(fā)計劃(單位為周)和人員分工
3) 第1部分功能:開發(fā)、測試、答疑
4) 第2部分功能:開發(fā)、測試、答疑
5) 中期演示(第14周)
6) 第3部分功能:開發(fā)、測試、答疑
7) 第4部分功能:開發(fā)、測試、答疑
期末:綜合項目驗收
1. 源代碼
2. 綜合設(shè)計報告
3. 數(shù)據(jù)庫設(shè)計報告
4. 演示PPT或演示資料
5. 軟件使用說明(含安裝、配置和使用方法)
(一)在本門課程結(jié)束時,學(xué)生應(yīng)該能夠:
1、掌握Java面向?qū)ο缶幊袒A(chǔ);
2、熟練掌握Java界面編程、網(wǎng)絡(luò)通信、多線程和數(shù)據(jù)庫編程;
3、熟練掌握增量式項目驅(qū)動的開發(fā)方法;
4、熟悉Web編程相關(guān)技術(shù)。
項目的預(yù)期學(xué)習(xí)成果 | 課程預(yù)期學(xué)習(xí)成果 |
1、程序設(shè)計概述 | 1、2、3 |
2、界面編程 | 1、2、3 |
3、事件處理 | 1、2、3 |
4、數(shù)據(jù)庫編程 | 1、2、3 |
5、網(wǎng)絡(luò)編程 | 1、2、3 |
6、多線程 | 1、2、3 |
7、其他 | 1、4 |
利用所學(xué)知識分析并解決實際問題,并具有終身學(xué)習(xí)的能力,具備良好的社會道德和職業(yè)道德,具備適應(yīng)社會發(fā)展的綜合素質(zhì)和能力;學(xué)生畢業(yè)后,經(jīng)過實踐鍛煉和培養(yǎng)達到計算機應(yīng)用工程師的職業(yè)要求。
培養(yǎng)目標(biāo)在素質(zhì)和能力培養(yǎng)基礎(chǔ)上,注重個性化培養(yǎng),不斷轉(zhuǎn)變觀念,樹立符合時代要求和社會發(fā)展要求的教育理念,按照PIQE – CDIO(PIQE: Professional, Innovative and Qualitative Engineers)的教育模式,培養(yǎng)具有計算機專業(yè)的、創(chuàng)新型、高質(zhì)量的工程師,在加強學(xué)科和專業(yè)知識的基礎(chǔ)上,注重學(xué)生的實踐和創(chuàng)新能力培養(yǎng)。
(一)出勤
學(xué)生應(yīng)積極參與課堂教學(xué)并完成相關(guān)的專項實訓(xùn)、綜合實訓(xùn)。
(二)閱讀資料
學(xué)生應(yīng)認(rèn)真完成每次實訓(xùn)任務(wù),熟悉相關(guān)技術(shù)。
(三)工具使用
學(xué)生應(yīng)能熟練使用Java開發(fā)環(huán)境。
(四)課堂實驗
本課程注重實踐操作,課堂將安排相應(yīng)的專項實訓(xùn)。
(五)綜合實驗
團隊完成一個綜合實訓(xùn)任務(wù)。
(六)期末考試
考查,考查學(xué)生使用Java編程技術(shù)進行綜合項目開發(fā)能力、團隊寫作能力、撰寫文檔能力、增量式項目開發(fā)的能力。
(七)學(xué)術(shù)誠信
按中山大學(xué)南方學(xué)院相關(guān)規(guī)定執(zhí)行。剽竊的定義以及相應(yīng)的懲罰剽竊是嚴(yán)重違反學(xué)校規(guī)章制度的行為。一經(jīng)發(fā)現(xiàn),將上報相關(guān)部門,并受到包括開除學(xué)籍在內(nèi)的嚴(yán)厲處罰。
(一)教科書-必讀
苑俊英,譚志國等.Java程序設(shè)計實訓(xùn)——增量式項目驅(qū)動一體化教程.中山大學(xué)出版社,2015-08。
(二)教科書-強烈推薦
苑俊英,陳海山. Java程序設(shè)計及應(yīng)用——一體化增量式項目教學(xué)[M]. 電子工業(yè)出版社, 2013-09.
(三)文章-必讀
Java 簡易教程: http://www.runoob.com/java/java-tutorial.html
(四)文章-強烈推薦
Java 使用手冊 https://www.java.com/zh_CN/
(五)其他參考資料
Bruce Eckel(美)著. 陳昊鵬譯. Java 編程思想(Think in Java, Fourth Edition) [M]. 機械工業(yè)出版社, 2007-06.
Brian Goetz等. Java并發(fā)編程實戰(zhàn)[M], 機械工業(yè)出版社,2012年2月.
(一)教學(xué)活動
1、個人預(yù)習(xí)
2、課堂講授
3、課堂問答
4、習(xí)題講解
5、案例討論
6、課后實驗
7、小型實驗項目
8、期末考試
(二)對預(yù)期學(xué)習(xí)成果的考察
項目的預(yù)期學(xué)習(xí)成果 | 課程預(yù)期學(xué)習(xí)成果 | 項目的預(yù)期學(xué)習(xí)成果 |
1、程序設(shè)計概述 | 1、2、3、5、6、7 | 1、程序設(shè)計概述 |
2、界面編程 | 1、2、3、5、6、7、8 | 2、界面編程 |
3、事件處理 | 1、2、3、5、6、7、8 | 3、事件處理 |
4、數(shù)據(jù)庫編程 | 1、2、3、5、6、7、8 | 4、數(shù)據(jù)庫編程 |
5、網(wǎng)絡(luò)編程 | 1、2、3、5、6、7、8 | 5、網(wǎng)絡(luò)編程 |
6、多線程 | 1、2、3、5、6、7、8 | 6、多線程 |
(一)評分體系
1、出勤率: 15 %
2、專項實訓(xùn): 40 %
3、綜合實訓(xùn): 45 %
(二)評分標(biāo)準(zhǔn)及要求
課堂參與度 (20%) |
1)課前熟悉相關(guān)技術(shù)及開發(fā)方法 2)全勤 3)積極回答問題,參與課堂討論 |
作業(yè)、實驗 (40%) |
重點:專項實訓(xùn)的GUI、事件觸發(fā)、網(wǎng)絡(luò)編程、數(shù)據(jù)庫編程、多線程等的靈活運用 |
期末考試 (40%) |
1)20% 項目 2)10%開發(fā)文檔 3)10%項目展示 |
周次 | 課程要點 | 理論學(xué)時 | 實驗學(xué)時 | 習(xí)題學(xué)時 |
1 | 程序設(shè)計概述 | 3 | ||
2 | 界面編程 | 1 | 2 | |
3 | 事件處理 | 1 | 2 | |
4 | 事件處理 數(shù)據(jù)庫編程 | 1 | 2 | |
5 | 數(shù)據(jù)庫編程 | 1 | 2 | |
6 | 數(shù)據(jù)庫編程 | 1 | 2 | |
7 | 網(wǎng)絡(luò)編程 | 1 | 2 | |
8 | 網(wǎng)絡(luò)編程 | 1 | 2 | |
9 | 網(wǎng)絡(luò)編程 | 1 | 2 | |
10 | 多線程 | 1 | 2 | |
11 | 綜合實訓(xùn) | 3 | ||
12 | 綜合實訓(xùn) | 3 | ||
13 | 綜合實訓(xùn) | 3 | ||
14 | 綜合實訓(xùn) | 3 | ||
15 | 綜合實訓(xùn) | 3 | ||
16 | 綜合實訓(xùn) | 3 | ||
17 | ||||
18 | ||||
19 | ||||
總計 | 12 | 36 |
注:此表一式三份,于開學(xué)兩周內(nèi)填好,一份送教務(wù)與科研部,一份開課單位留存,一份自留。