课程简介
 Course Introduction
	
	
 
 
 教学大纲
 Teaching Syllabus
	[程序设计实训]
本科课程教学大纲(理工医类/电气学院)
课程信息  | |||
开课单位  | 电气与计算机工程学院  | 开课学年学期  | 2018-2019学年第1学期  | 
授课年级  | 2017级  | 授课对象专业  | 计算机科学与技术、软件工程  | 
课程学分  | 2  | 课程学时  | 48  | 
课程性质  | √专业必修 ¨专业选修 ¨公共必修 ¨公共选修 ¨成长必修 ¨专业限选 ¨公共限选  | ||
先修课程要求  | Java程序设计、高级语言程序设计  | ||
教师信息  | |||
授课教师  | 联系电话  | 13560353102  | |
答疑地点  | 2教104  | 答疑时间  | 周三下午2:30  | 
电子邮件  | cihisa@126.com  | ||
主 审:
  
(一)课程描述
本课程是为计算机科学与技术专业学生开设的一门专业技能课。其主要内容是在学习高级语言程序设计、Java程序设计的基础上,为学生提供一个动手、动脑及独立实践的机会,将程序设计的理论知识和实际有机的结合起来,锻炼学生分析、解决实际问题的能力。该课程主要是在Java面向对象编程基础知识(包括界面编程、Socket编程),讲解Java的其它高级编程技术,如多线程和数据库编程,启动与实际联系紧密的中小型Java软件项目,采用增量式项目驱动的方式,让学生在项目的实践过程中,加深和拓宽Java相关的知识面,同时初步体会项目开发的流程,积累团队合作的经验。
本实训课程要求学生完成专项实训和综合实训,专项实训以车票预定为例子进行实践指导,要求学生自己完成请假管理系统;综合实训要求学生团队完成一个中型项目的开发。
(二)课程目标
毕业要求  | 具体指标点  | 课程教学目标  | 
1.2 掌握计算机专业的基础知识,能够运用所学知识对实际问题进行分析。  | 目标1:能够使用程序设计语言完成专项实验和综合实验,以解决实际问题。  | |
2.问题分析  | 2.1 能够针对某个问题,使用已学的专业理论知识与方法进行抽象分析与识别,通过某种模型抽象表达实际问题,能进行正确的推理、求解和证明; 2.3 能够使用计算机工程的方法对某个实际项目进行问题描述和需求分析。  | 目标2:能够对具体问题进行分析,找到解决该问题所用的方法,使用增量式项目开发方法设计该问题的解决方案。  | 
3.设计/开发解决方案  | 3.3能够根据实验(或实训)要求,综合运用所学计算机知识与技能,设计出具体的、符合实际复杂工程问题的解决方案(或算法),并能设计满足实际条件的软、硬件实验装置或系统。  | 目标3:能够综合运用所学程序设计语言基本知识,使用增量式的项目开发方法,编写程序完成专项实验和综合实验;设计能够解决实际问题的小型软件;将实验或实训的完成情况,撰写一份完整的实验报告。  | 
主要知识点:
1.1 开发环境
1.2 课程安排
1.3 专项实训项目介绍
1.4 专项实训项目:用户登录界面的设计与实现
教学要求:本次的实训通过开发环境的以及增量项目的介绍,给学生一次全部的课程的解释,并指导学生通过Swing的使用和可视化界面的使用,完成用户界面的设计与实现的实训
重点:开发环境的以及增量项目的介绍。
难点:用户登录界面的设计与实现。
采用的教学方法:例子讲授,增量式项目驱动
参考案例:车票预定系统
讲授学时:1学时
实践学时:2学时
(二)实训二 界面编程
主要知识点:
2.1 专项实训项目:车票预定系统(订票、车票)的界面设计
2.2 完成自选项目的界面设计
教学要求:本次的实训通过车票预定系统(订票、车票)的界面设计的例子,给学生课程讲解Swing界面的控件和布局设计,让学生完成自选项目的全部界面设计。
重点:车票预定系统(订票、车票)的界面设计。
难点:自选项目的全部界面设计。
采用的教学方法:例子讲授,增量式项目驱动
参考案例:车票预定系统
讲授学时:1学时
实践学时:2学时
(三)实训三 事件处理(1)
主要知识点:
3.1 专项实训项目:车票预定系统登录界面响应
3.2 完成自选项目的登录界面响应
教学要求:本次的实训通过车票预定系统(订票、车票)的界面响应的例子,给学生课程讲解ActionLister,MouseListenr,MouseAdapter等事件,让学生完成自选项目登录功能的实训。例子包括:假设用户名和密码应为XXX,读取用户名和密码进行对比,根据对比结果显示不同界面效果。
重点:车票预定系统登录界面响应。
难点:自选项目的登录界面响应。
采用的教学方法:例子讲授,增量式项目驱动
参考案例:车票预定系统
讲授学时:1学时
实践学时:2学时
(四)实训四 事件处理(2)
主要知识点:
4.1 专项实训项目:车票预定系统(订票、车票)的界面响应
4.2 完成自选项目的界面响应
教学要求:本次的实训通过车票预定系统(订票、车票)的界面响应的例子,给学生课程讲解ActionLister,MouseListenr,MouseAdapter等事件,让学生完成自选项目的全部界面响应。例子包括:车票预定、根据用户选中的班次显示信息车票、用户确认订票、取消订票。
重点:车票预定系统(订票、车票)的界面响应。
难点:自选项目的全部界面响应。
采用的教学方法:例子讲授,增量式项目驱动
参考案例:车票预定系统
讲授学时:1学时
实践学时:2学时
(五)实训五 数据库编程(1)
主要知识点:
5.1 专项实训项目:JDBC配置,连接建立
5.2 专项实训项目:登录:创建用户表
5.3 专项实训项目:直接从数据库中查询用户信息
5.4 可视化数据库 NaviCat的使用教学
教学要求:本次的实训通过车票预定系统的例子,给学生课程讲解Java数据库编程语言,并让学生完成自选项目的JDBC配置,建立连接,调用数据库等。
重点:JDBC配置,连接建立,数据库表的创建。
难点:数据库信息查询。
采用的教学方法:例子讲授,增量式项目驱动
参考案例:车票预定系统
讲授学时:1学时
实践学时:2学时
(六)实训六 数据库编程(2)
主要知识点:
6.1 专项实训项目:建立班车表成绩表
6.2 专项实训项目:班车查询、根据条件,从数据库中查询班车信息,把结果显示在查询界面中。
6.3 建立车票表,增加用户订票记录表
6.4 实现端到端的功能,即通过界面,完成对数据库的访问。
教学要求:本次的实训通过车票预定系统的数据库的例子,给学生课程讲解可视化数据库以及数据库常用编程语句,让学生完成自选项目的全部数据库功能。
重点:数据库表的建立和数据库的调用。
难点:实现端到端的功能。
采用的教学方法:例子讲授,增量式项目驱动
参考案例:车票预定系统
讲授学时:1学时
实践学时:2学时
(七)实训七 网络通信(1)
主要知识点:
7.1 专项实训项目:对象序列化
7.2 专项实训项目:TCP对象数据流通信
7.3 专项实训项目:使用对象数据流传输(测试应答消息,如echo消息)消息对象
7.4 在一般要求的基础上,要求完成端到端的功能
教学要求:本次的实训通过车票预定系统的数据通信的例子,给学生课程讲解对象序列化,TCP对象数据流通信以及对象数据流传输,要求学生完成对象数据流传输的简单交流。
重点:对象序列化,TCP对象数据流通信。
难点:实现端到端的功能。
采用的教学方法:例子讲授,增量式项目驱动
参考案例:车票预定系统
讲授学时:1学时
实践学时:2学时
(八)实训八 网络通信(2)
主要知识点:
8.1 完成对象数据流通信
8.2 完成端到端的功能,即通过界面,通过网络通信完成对数据库的访问
8.3 建立车票预定查询服务器软件(访问数据库)
8.4 利用对象数据流,实现C/S结构的用户登录
教学要求:本次的实训通过车票预定系统网络通信的例子,给学生课程讲解客户端与服务器之间数据流的处理,让学生通过网络通信编程完成自选项目的登录功能。
重点:对象数据流通信。
难点:实现端到端的功能,专项项目实现。
采用的教学方法:例子讲授,增量式项目驱动
参考案例:车票预定系统
讲授学时:1学时
实践学时:2学时
(九)实训九 网络通信(3)
主要知识点:
9.1 对象数据流通信
9.2 利用对象数据流,实现C/S结构的班车查询
9.3 利用对象数据流,实现C/S结构的成绩修改
教学要求:本次的实训通过车票预定系统网络通信的例子,给学生介绍客户端与服务器之间处理不同任务的过程代码,让学生完成自选项目的全部网络通信功能。
重点:对象数据流通信。
难点:专项项目的实现。
采用的教学方法:例子讲授,增量式项目驱动
参考案例:车票预定系统
讲授学时:1学时
实践学时:2学时
(十)实训十 多线程
主要知识点:
10.1 服务器端:新建用户服务线程类
10.2 服务器端:把上一节的客户处理代码移到用户服务线程类中;
10.3 服务器端:每成功收到一个客户端Socket连接,启动一个客户服务线程为其服务。
10.4 一般要求的基础上,要求完成端到端的功能,即通过界面,通过网络通信完成对数据库的访问
教学要求:本次的实训通过车票预定系统多线程的例子,给学生介绍多个客户端与服务器之间如何处理不同任务,让学生完成自选项目的多线程功能。
重点:多线程的编写。
难点:修改项目代码为多线程。
采用的教学方法:例子讲授,增量式项目驱动
参考案例:车票预定系统
讲授学时:1学时
实践学时:2学时
(十一)综合实训
主要知识点:
11.1 软件工程
11.2 团队合作
11.3 综合实训
教学要求:建议增量式、由简单到复杂地完成,每个功能都实现端到端的效果:如客户端、服务器(含客户服务线程)、网络通信、数据库。
开发进度安排:
选题、项目调查、项目分析
设置项目实现目标、开发计划(单位为周)和人员分工
第1部分功能:开发、测试、答疑
第2部分功能:开发、测试、答疑
中期演示(第14周)
第3部分功能:开发、测试、答疑
第4部分功能:开发、测试、答疑
综合项目验收(第16周)
重点:完成软件工程报告。
难点:实现项目。
采用的教学方法:小组讨论
参考案例:车票预定系统
实践学时:15学时
(十二)项目验收
验收内容:
12.1 源代码
12.2 综合设计报告
12.3 数据库设计报告
12.4 演示PPT或演示资料
12.5 软件使用说明(含安装、配置和使用方法)
采用的教学方法:团队项目展示。
讲授学时:0学时
实践学时:3学时
1、熟练掌握Java程序设计的基本技能;
2、能针对具体的问题,从多角度、整体上进行分析和设计;
3、提高分析问题和解决问题的能力;
4、提高查阅资料的能力;
5、提高综合运用所学知识和技能进行综合程序实践的能力;
6、提高团队合作的能力。
7、拥有项目开发能力
(一)出勤
学生应积极参与课堂教学并完成相关的作业、实验内容。
(二)阅读资料
学生应认真进行课前预习,阅读教材和指定参考书及重要的参考文献。
(三)课堂展示
根据时间及课堂班人数,在可能的情况下安排小组实验课程讨论与效果演示。
(四)课外实践
本课程是实训课程, 以完成9项专项实训以及综合实训为主。
(五)小考与期末考
课堂未安排期末考试。
(七)学术诚信
按中山大学南方学院相关规定执行。
(八)剽窃的定义以及相应的惩罚
剽窃是严重违反学校规章制度的行为。一经发现,将上报相关部门,并受到包 括开除学籍在内的严厉处罚。
(一)教科书-必读
1、苑俊英,谭志国等.Java程序设计实训——增量式项目驱动一体化教程.中山大学出版社,2015-08。
2、苑俊英,陈海山. Java程序设计及应用——一体化增量式项目教学[M]. 电子工业出版社, 2013-09.
(二)教科书-强烈推荐
1、周晓聪,李文军,李师贤.面向对象程序设计与Java语言[M].机械工业出版社, 2008-05.
2、 Bruce Eckel(美)著. 陈昊鹏译. Java 编程思想(Think in Java, Fourth Edition) [M]. 机械工业出版社, 2007-06.
3、於东军, 李千目. Java程序设计与应用开发[M]. 清华大学出版社, 2009-09.
(三)文章-必读
1、C/C++语言论坛,http://bbs.csdn.net/forums/CPPLanguage/。
2、Java论坛,https://bbs.csdn.net/forums/Java。
3、百度传课,http://www.chuanke.com/。
(四)文章-强烈推荐
我为什么走上编程之路,
(五)其他参考资料
1、实训邦,http://www.sxbang.net/。
2、CSDN,https://download.csdn.net/。
(一)教学活动
1、个人预习
2、课堂讲授
3、案例讨论
4、专项实验
5、综合实验
(二)对预期学习成果的考察
预期学习成果  | 教学活动  | |
实验内容:登录界面。  | ||
实训2 界面编程  | 1、2、3、4  | 实验内容:车票预定系统各界面。  | 
实训3 事件处理(1)  | 1、2、3、4  | |
实训4 事件处理(2)  | 1、2、3、4  | 实验内容:车票预定系统其它功能界面响应。  | 
实训5 数据库编程(1)  | 1、2、3、4  | 实验内容:车票预定系统JDBC数据库数据库建立及连接。  | 
实训6 数据库编程(2)  | 1、2、3、4  | 实验内容:车票预定系统数据库访问。  | 
1、2、3、4  | 实验内容:对象序列化,TCP对象数据流通信以及对象数据流传输。  | |
实训8 网络通信(2)  | 1、2、3、4  | 实验内容:客户端与服务器之间数据流的处理。  | 
实训9 网络通信(3)  | 1、2、3、4  | 实验内容:客户端与服务器之间处理不同任务的过程。  | 
实训10 多线程  | 1、2、3、4  | 实验内容:多个客户端与服务器之间如何处理不同任务。  | 
实训11 项目综合实训  | 1、2、3、5  | 实验内容:采用增量式项目开发方法完成综合实训项目。  | 
(一)评分体系
1、出勤率: 10%
2、课堂参与: 加分
3、专项实验: 40%
4、综合实验: 50%
(二)课程的教学目标与评估方式的对应关系
编号  | 课程教学目标  | 评估方式  | 
1  | 目标1:能够使用程序设计语言完成专项实验和综合实验,以解决实际问题。  | |
2  | 目标2:能够对具体问题进行分析,找到解决该问题所用的方法,使用增量式项目开发方法设计该问题的解决方案。  | 专项实验,综合实验。  | 
3  | 目标3:能够综合运用所学程序设计语言基本知识,使用增量式的项目开发方法,编写程序完成专项实验和综合实验;设计能够解决实际问题的小型软件;将实验或实训的完成情况,撰写一份完整的实验报告。  | 专项实验,综合实验。  | 
(三)评分标准及要求
1)考勤:3~5次,缺勤一次扣2分。  | 
加分项  | 
1)主动参与课堂讨论、回答问题:一次加1分,最多5分。  | 
专项实验 (40%)  | 
1)专项实验:完成每次专项实验课程任务,根据完成情况评定A+、A-、B+、B-等。  | 
综合实验 (50%)  | 
1) 综合实验:分组完成综合实验任务,并提交实训资料。 2) 成绩分配:项目20%+参与10%+开发文档10%+项目展示10%  | 
周次  | 课程要点  | 理论学时  | 实验学时  | 习题学时  | 
1  | 实训1 用户登录界面的设计与实现  | 1  | 2  | |
2  | 实训2 界面编程  | 1  | 2  | |
3  | 实训3 事件处理(1)  | 1  | 2  | |
4  | 实训4 事件处理(2)  | 1  | 2  | |
5  | 实训5 数据库编程(1)  | 1  | 2  | |
6  | 实训6 数据库编程(2)  | 1  | 2  | |
7  | 实训7 网络通信(1)  | 1  | 2  | |
8  | 实训8 网络通信(2)  | 1  | 2  | |
9  | 实训9 网络通信(3)  | 1  | 2  | |
10  | 实训10 多线程  | 1  | 2  | |
11-15  | 实训11 项目综合实训  | 15  | ||
16  | 综合项目验收  | 3  | ||
总学时  | 10  | 38  | ||