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