(一)课程描述
本课程是为计算机科学与技术专业学生开设的一门专业技能课。其主要内容是在学习Java等程序设计的基础上,为学生提供一个动手、动脑及独立实践的机会,将程序设计的理论知识和实际有机的结合起来,锻炼学生分析、解决实际问题的能力。该课程主要是在Java面向对象编程基础知识(包括界面编程、Socket编程),讲解Java的其它高级编程技术,如多线程和数据库编程,启动与实际联系紧密的中小型Java软件项目,采用增量式项目驱动的方式,让学生在项目的实践过程中,加深和拓宽Java相关的知识面,同时初步体会项目开发的流程,积累团队合作的经验。
(二)课程目标
毕业要求 | 具体指标点 | 课程教学目标 |
开发环境 | 主流开发平台eclipse或myeclipse | 掌握主流开发平台elipse和myeclipse |
需求分析 | 学会分析一个项目的需求 | 引导学生进行需求分析 |
GUI编程与事件处理 | 能开发GUI,正确处理事件 | 培养学生开发GUI界面编程和正确处理事件 |
数据库编程 | 正确操作数据库 | 培养学生对数据库进程增删改查操作 |
网络通信编程 | 网络交互数据正常 | 培养学生使用网络编程的java API,网络交互数据正确 |
综合编程 | 综合应用编程技能,开发系统 | 综合训练学生编程 |
1. 开发环境
2. 课程安排
3. 专项实训项目介绍
4. 专项实训项目:用户登录界面设计与实现
5. 需求分析
实训要求:通过本章的学习,使学生掌握主流开发平台elipse和myeclipse, 了解项目的需求分析。
重点:安装开发环境
难点:开发环境中的JDK版本问题
采用的教学方法:增量式项目驱动
参考案例:Hello World的开发环境搭建
第2章 :界面编程(3学时)
1. 专项实训项目:车票预定系统(订票、车票)的界面设计
2. 完成自选项目的界面设计
实训要求:通过本章的学习,使学生掌握基础的界面编程。
重点:GUI
难点:GUI无法正确显示的问题
采用的教学方法:增量式项目驱动
参考案例:车票预定系统(订票、车票)的界面设计
第3章 :事件处理(3学时)
1. 一般要求:采用ActionListener
1) 专项实训项目:登录:假设用户名和密码应为XXX,读取用户名和密码进行对比,根据对比结果显示不同界面效果。
2) 专项实训项目:订票、车票查询,假定每天都只有3个班次
2. 高级要求:
1) 可以采用其它事件处理方法
实训要求:通过本章的学习,使学生掌握基础的事件处理编程。
重点:事件处理
难点:事件处理无法响应的情况的处理办法
采用的教学方法:增量式项目驱动
参考案例:订票、车票查询,假定每天都只有3个班次
第4章 :事件处理(3学时)
1. 一般要求:采用ActionListener
1) 专项实训项目:车票预定、根据用户选中的班次显示信息车票、用户确认订票、取消订票
2. 高级要求
1) 可以采用其它事件处理方法,例如:可以为班车表增加弹出菜单。
实训要求:通过本章的学习,使学生掌握基础的事件处理编程。
重点:事件处理
难点:事件处理无法响应的情况的处理办法
采用的教学方法:增量式项目驱动
参考案例:车票预定、根据用户选中的班次显示信息车票、用户确认订票、取消订票
第5章 :数据库编程(3学时)
1. 一般要求:
1) 专项实训项目:JDBC配置,连接建立
2) 专项实训项目:登录:创建用户表;
3) 专项实训项目:直接从数据库中查询用户信息。
2. 高级要求
1) 从登录界面上,根据用户名从数据库中查询用户是否存在,用户存在则验证密码是否正确,正确则进入班车查询界面,否则提示登录失败
实训要求:通过本章的学习,使学生掌握基础的数据库编程。
重点:JDBC的连接
难点:数据库读取失败的情况处理
采用的教学方法:增量式项目驱动
参考案例:直接从数据库中查询用户信息
第6章 :数据库编程(3学时)
1. 一般要求:通过JDBC操作数据库即可
1) 专项实训项目:建立班车表成绩表
2) 专项实训项目:班车查询、根据条件,从数据库中查询班车信息,把结果显示在查询界面中。
2. 高级要求
1) 在一般要求的基础上,要求完成端到端的功能,即通过界面,完成对数据库的访问。
2) 建立车票表,增加用户订票记录表
实训要求:通过本章的学习,使学生掌握进阶的数据库编程。
重点:JDBC的连接
难点:数据库读取失败的情况处理
采用的教学方法:增量式项目驱动
参考案例:班车查询、根据条件,从数据库中查询班车信息,把结果显示在查询界面中。
第7章 :网络通信(3学时)
1. 一般要求:
1) 专项实训项目:对象序列化
2) 专项实训项目:TCP对象数据流通信
3) 专项实训项目:使用对象数据流传输(测试应答消息,如echo消息)消息对象
① 客户端发一个测试消息给服务器端,
② 服务器端收到测试消息后,显示收到的消息,然后把收到的消息原封不动的返回给客户端,
③ 客户端收到消息后,显示收到的消息。
2. 高级要求:
1) 在一般要求的基础上,要求完成端到端的功能,即通过界面,完成对数据库的访问。
实训要求:通过本章的学习,使学生掌握基础的网络编程。
重点:客户端和服务器直接的联网
难点:网络数据格式的解析和转化
采用的教学方法:增量式项目驱动
参考案例:使用对象数据流传输(测试应答消息,如echo消息)消息对象;服务器的数据解析
第8章 :网络通信(3学时)
1. 一般要求:
只需完成对象数据流通信即可(可以固定消息内容),不需要访问数据库;
2. 高级要求:
在一般要求的基础上,要求完成端到端的功能,即通过界面,通过网络通信完成对数据库的访问。
1) 专项实训项目:建立车票预定查询服务器软件(访问数据库)
① 把数据库访问的功能独立出来作为服务器软件;
② 为服务器增加一个简单的管理界面,用于启动服务器功能;
③ 原有的界面和事件处理作为客户端;
2) 专项实训项目:利用对象数据流,实现C/S结构的用户登录
① 创建一个用户登录验证请求消息类和一个登录验证结果消息类;
② 客户端在【登录】按钮的时间处理过程中,把用户名和密码保存在用户登录验证请求消息对象中,通过输出对象数据流,发给服务器;
③ 服务器端:服务器从输入对象数据流中收到用户登录验证请求消息,根据消息对象中的用户名,从数据库中检查该用户是否存在;
④ 服务器端:用户存在,比较密码是否正确,如果用户存在并且密码正确,创建登录验证结果消息对象,设置登录状态为成功,把该消息发给客户端。
⑤ 服务器端:用户不存在或者密码不正确,设置登录状态为失败,把该消息发给客户端。
⑥ 客户端:根据接收到的登录验证结果,显示相应界面。
实训要求:通过本章的学习,使学生掌握基础的网络编程。
重点:客户端和服务器直接的联网
难点:网络数据格式的解析和转化
采用的教学方法:增量式项目驱动
参考案例:建立车票预定查询服务器软件
第9章 :网络通信(3学时)
1. 一般要求:
只需完成对象数据流通信即可(可以固定消息内容),不需要访问数据库;
2. 高级要求:
在一般要求的基础上,要求完成端到端的功能,即通过界面,通过网络通信完成对数据库的访问。
1) 专项实训项目:利用对象数据流,实现C/S结构的班车查询
① 创建一个班车查询消息类和一个班车查询结果消息类;
② 客户端:把查询条件存入(封装进)一个班车查询消息类对象,把该对象发给服务端;
③ 服务器端:收到一个班车查询消息类对象,根据查询条件,从数据看中查询班车信息,把结果存入一个班车查询结果消息类对象,发给客户端。
④ 客户端:收到一个班车查询结果消息类对象,把结果显示在界面上。
2) 专项实训项目:利用对象数据流,实现C/S结构的成绩修改
① 创建一个订票修改请求消息类和一个订票修改结果消息类;
② 客户端:把班车ID和用户ID和订票信息存入(封装进)一个订票修改请求消息类对象,把该对象发给服务端;
③ 服务器端:收到一个订票修改请求消息类对象,根据对象中信息存入数据库,更新班车信息,把数据库更新结果存入一个成绩修改结果消息类对象,发给客户端。
④ 客户端:收到一个订票修改请求结果消息类对象,把结果显示在界面上。
实训要求:通过本章的学习,使学生掌握进阶的网络编程。
重点:客户端和服务器直接的联网
难点:通过网络通信完成对数据库的访问
采用的教学方法:增量式项目驱动
参考案例:建立车票预定查询服务器软件
第10章 :多线程
1. 一般要求:
1) 服务器端:新建用户服务线程类
2) 服务器端:把上一节的客户处理代码移到用户服务线程类中;
3) 服务器端:每成功收到一个客户端Socket连接,启动一个客户服务线程为其服务。
4) 客户端代码不变。
2. 高级要求:
1) 在一般要求的基础上,要求完成端到端的功能,即通过界面,通过网络通信完成对数据库的访问。
实训要求:通过本章的学习,使学生掌握多线程编程。
重点:启动另外的线程
难点:多线程之间的资源读取、死锁
采用的教学方法:增量式项目驱动
参考案例:建立车票预定查询服务器软件
综合应用 11 - 16:综合项目设计与开发阶段(团队)
1. 团队人数
3~5人:按角色分工。
2. 开发计划
建议增量式、由简单到复杂地完成,每个功能都实现端到端的效果:如客户端、服务器(含客户服务线程)、网络通信、数据库。
3. 开发进度安排
1) 选题、项目调查、项目分析
2) 设置项目实现目标、开发计划(单位为周)和人员分工
3) 第1部分功能:开发、测试、答疑
4) 第2部分功能:开发、测试、答疑
5) 中期演示(第14周)
6) 第3部分功能:开发、测试、答疑
7) 第4部分功能:开发、测试、答疑
期末:综合项目验收
1. 源代码
2. 综合设计报告
3. 数据库设计报告
4. 演示PPT或演示资料
5. 软件使用说明(含安装、配置和使用方法)
1、掌握Java面向对象编程基础;
2、熟练掌握Java界面编程、网络通信、多线程和数据库编程;
3、熟练掌握增量式项目驱动的开发方法;
4、熟悉Web编程相关技术。
项目的预期学习成果 | 课程预期学习成果 |
1、程序设计概述 | 1、2、3 |
2、界面编程 | 1、2、3 |
3、事件处理 | 1、2、3 |
4、数据库编程 | 1、2、3 |
5、网络编程 | 1、2、3 |
6、多线程 | 1、2、3 |
7、其他 | 1、4 |
利用所学知识分析并解决实际问题,并具有终身学习的能力,具备良好的社会道德和职业道德,具备适应社会发展的综合素质和能力;学生毕业后,经过实践锻炼和培养达到计算机应用工程师的职业要求。
培养目标在素质和能力培养基础上,注重个性化培养,不断转变观念,树立符合时代要求和社会发展要求的教育理念,按照PIQE – CDIO(PIQE: Professional, Innovative and Qualitative Engineers)的教育模式,培养具有计算机专业的、创新型、高质量的工程师,在加强学科和专业知识的基础上,注重学生的实践和创新能力培养。
(一)出勤
学生应积极参与课堂教学并完成相关的专项实训、综合实训。
(二)阅读资料
学生应认真完成每次实训任务,熟悉相关技术。
(三)工具使用
学生应能熟练使用Java开发环境。
(四)课堂实验
本课程注重实践操作,课堂将安排相应的专项实训。
(五)综合实验
团队完成一个综合实训任务。
(六)期末考试
考查,考查学生使用Java编程技术进行综合项目开发能力、团队写作能力、撰写文档能力、增量式项目开发的能力。
(七)学术诚信
按中山大学南方学院相关规定执行。剽窃的定义以及相应的惩罚剽窃是严重违反学校规章制度的行为。一经发现,将上报相关部门,并受到包括开除学籍在内的严厉处罚。
(一)教科书-必读
苑俊英,谭志国等.Java程序设计实训——增量式项目驱动一体化教程.中山大学出版社,2015-08。
(二)教科书-强烈推荐
苑俊英,陈海山. Java程序设计及应用——一体化增量式项目教学[M]. 电子工业出版社, 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]. 机械工业出版社, 2007-06.
Brian Goetz等. Java并发编程实战[M], 机械工业出版社,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、数据库编程 | 1、2、3、5、6、7、8 | 4、数据库编程 |
5、网络编程 | 1、2、3、5、6、7、8 | 5、网络编程 |
6、多线程 | 1、2、3、5、6、7、8 | 6、多线程 |
(一)评分体系
1、出勤率: 15 %
2、专项实训: 40 %
3、综合实训: 45 %
(二)评分标准及要求
课堂参与度 (20%) |
1)课前熟悉相关技术及开发方法 2)全勤 3)积极回答问题,参与课堂讨论 |
作业、实验 (40%) |
重点:专项实训的GUI、事件触发、网络编程、数据库编程、多线程等的灵活运用 |
期末考试 (40%) |
1)20% 项目 2)10%开发文档 3)10%项目展示 |
周次 | 课程要点 | 理论学时 | 实验学时 | 习题学时 |
1 | 程序设计概述 | 3 | ||
2 | 界面编程 | 1 | 2 | |
3 | 事件处理 | 1 | 2 | |
4 | 事件处理 数据库编程 | 1 | 2 | |
5 | 数据库编程 | 1 | 2 | |
6 | 数据库编程 | 1 | 2 | |
7 | 网络编程 | 1 | 2 | |
8 | 网络编程 | 1 | 2 | |
9 | 网络编程 | 1 | 2 | |
10 | 多线程 | 1 | 2 | |
11 | 综合实训 | 3 | ||
12 | 综合实训 | 3 | ||
13 | 综合实训 | 3 | ||
14 | 综合实训 | 3 | ||
15 | 综合实训 | 3 | ||
16 | 综合实训 | 3 | ||
17 | ||||
18 | ||||
19 | ||||
总计 | 12 | 36 |
注:此表一式三份,于开学两周内填好,一份送教务与科研部,一份开课单位留存,一份自留。