课程简介 Course Introduction
本课程是为计算机科学与技术专业学生开设的一门专业技能课。其主要内容是在学习Java等程序设计的基础上,为学生提供一个动手、动脑及独立实践的机会,将程序设计的理论知识和实际有机的结合起来,锻炼学生分析、解决实际问题的能力。该课程主要是在Java面向对象编程基础知识(包括界面编程、Socket编程),讲解Java的其它高级编程技术,如多线程和数据库编程,启动与实际联系紧密的中小型Java软件项目,采用增量式项目驱动的方式,让学生在项目的实践过程中,加深和拓宽Java相关的知识面,同时初步体会项目开发的流程,积累团队合作的经验。
教学大纲 Teaching Syllabus

一、课程描述及课程目标

(一)课程描述

本课程是为计算机科学与技术专业学生开设的一门专业技能课。其主要内容是在学习Java等程序设计的基础上,为学生提供一个动手、动脑及独立实践的机会,将程序设计的理论知识和实际有机的结合起来,锻炼学生分析、解决实际问题的能力。该课程主要是在Java面向对象编程基础知识(包括界面编程、Socket编程),讲解Java的其它高级编程技术,如多线程和数据库编程,启动与实际联系紧密的中小型Java软件项目,采用增量式项目驱动的方式,让学生在项目的实践过程中,加深和拓宽Java相关的知识面,同时初步体会项目开发的流程,积累团队合作的经验。

(二)课程目标

毕业要求

具体指标点

课程教学目标

开发环境

主流开发平台eclipsemyeclipse

掌握主流开发平台elipsemyeclipse

需求分析

学会分析一个项目的需求

引导学生进行需求分析

GUI编程与事件处理

能开发GUI,正确处理事件

培养学生开发GUI界面编程和正确处理事件

数据库编程

正确操作数据库

培养学生对数据库进程增删改查操作

网络通信编程

网络交互数据正常

培养学生使用网络编程的java API,网络交互数据正确

综合编程

综合应用编程技能,开发系统

综合训练学生编程

二、课程内容

1 :概述(3学时)

1. 开发环境

2. 课程安排

3. 专项实训项目介绍

4. 专项实训项目:用户登录界面设计与实现

5. 需求分析

实训要求:通过本章的学习,使学生掌握主流开发平台elipsemyeclipse, 了解项目的需求分析。

重点:安装开发环境

难点:开发环境中的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、程序设计概述

123

2、界面编程

123

3、事件处理

123

4、数据库编程

123

5、网络编程

123

6、多线程

123

7、其他

14

利用所学知识分析并解决实际问题,并具有终身学习的能力,具备良好的社会道德和职业道德,具备适应社会发展的综合素质和能力;学生毕业后,经过实践锻炼和培养达到计算机应用工程师的职业要求。

培养目标在素质和能力培养基础上,注重个性化培养,不断转变观念,树立符合时代要求和社会发展要求的教育理念,按照PIQE CDIOPIQE: 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、程序设计概述

123567

1、程序设计概述

2、界面编程

1235678

2、界面编程

3、事件处理

1235678

3、事件处理

4、数据库编程

1235678

4、数据库编程

5、网络编程

1235678

5、网络编程

6、多线程

1235678

6、多线程

七、评估的程序和方法

(一)评分体系

1、出勤率: 15 %

2、专项实训: 40 %

3、综合实训: 45 %

(二)评分标准及要求

课堂参与度 (20%)

1)课前熟悉相关技术及开发方法

2)全勤

3)积极回答问题,参与课堂讨论

作业、实验 (40%)

重点:专项实训的GUI、事件触发、网络编程、数据库编程、多线程等的灵活运用

期末考试 (40%)

120% 项目

210%开发文档

310%项目展示

八、教学进度与学时分配表

周次

课程要点

理论学时

实验学时

习题学时

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


注:此表一式三份,于开学两周内填好,一份送教务与科研部,一份开课单位留存,一份自留。



  • 参与互动
    Interaction

  • 扫码加入课程
    Scan QR Code
请输入以下信息:
  • 学号号:
  • 班级选择:

扫一扫二维码,快速加入本课程!

放大二维码 查看使用方法
课程
引导