资源描述
平安编程技术
(Secure Programming Technology)
课程代码:5261055
学分:2
学时:32 (其中:课程教学学时:20,实验学时:12)
先修课程:计算机导论、程序设计基础
适用专业:计算机科学与技术
教材:无
开课学院:计算机与软件学院一、课程性质与课程目标
(-)课程性质
本课程为java编程技术的进阶课程,在熟悉和掌握java语言基本知识的基础上深入 理解java语言底层原理。课程内容主要包括内存管理,java中异常的分类和本质,多线程, 线程平安,反射概念以及编程技巧的掌握,类加载器的原理,一些基本常用的设计模式和泛 型本质分析等,其中重点和难点是多线程,线程平安的理解和掌握以及对java异常机制的 理解和运用。
(二)课程目标
课程目标包括知识目标和能力目标,具体如下:
课程目标1:要求学生在掌握java基本编程原理和思想的基础上深入理解java技术的各 项技术细节,深入理解java语言的异常处理,多线程编程,反射,类加载器等核心机制和 相关编程技巧以及如何在实际软件工程工程中合理使用数据结构防止潜在的平安性问题。
课程目标2:能够运用计算思维分析问题和解决问题,针对计算机领域复杂工程问题, 分析并抽象出涉及的数据元素以及它们内在的逻辑关系。
课程目标3:能够综合运用java语言的各种高级特性,在实践中熟练使用,防止一些常 见的平安性问题。
(三)课程目标与专业毕业要求指标点的对应关系
本课程支撑专业培养计划中的毕业要求指标点6.3, 7.3和8.3o
毕业要求指标点6.3:能够评价计算机科学与技术工程专业实践和解决方案对社会、健 康、平安、法律以及文化的影响,并理解应承当的责任。
毕业要求指标点7.3:正确认识计算机工程实践对于客观世界和社会的贡献和影响,理 解用技术手段降低其负面影响的作用与局限性。
毕业要求指标点8.3:能够在计算机科学与技术工程实践中理解并遵守工程职业道德和 规范,履行责任。
毕业要求输点^
课程目标1
课程目标2
课程目标3
毕业要求6.3
毕业要求7.3
Z
毕业要求8.3
二、课程内容及教学要求(按章撰写)
本课程为java程序设计的进阶课程,要求学生在掌握java基本编程原理和思想的基 础上深入理解java技术的各项技术细节,深入理解java语言的异常处理,多线程编程,反 射,类加载器等核心机制和相关编程技巧以及如何在实际软件工程工程中合理使用数据结构 防止潜在的平安性问题。
第1章内存管理(2)内存管理(1)
(1)了解内存和寄存器的区别;
(2)理解堆,栈,BSS区,Data区,代码区等的特点;
(3)掌握内存分配和管理的原理;
重点:内存分配和管理的原理
难点:理解堆,栈,BSS区,Data区,代码区等的特点java内存管理(学时数)(1)
(1)了解java垃圾回收机制的工作原理;
(2)理解产生内存泄露的原因;
(3)理解hashcode方法,掌握hashcode和equals方法的区别和联系;
重点:java垃圾回收机制
难点:,掌握hashcode和equals方法的区别和联系第2章 java的反射技术(2)
2.1 反射的基本概念(1)
(1) 了解 Class 类;
(2)理解反射相关的类比方Field, Method等类;
(3)掌握反射技术的运用;
重点:理解反射的概念
难点:掌握Class类反射技术实践(学时数)(1)
(1)了解反射相关的方法;
(2)理解为什么会需要使用反射技术,理解动态语言的特点;
(3)掌握如何使用反射技术对类成员变量和方法的调用;
重点:理解反射和动态语言的概念和特点
难点:,灵活掌握并运用反射技术第 3 章 HashSet, ArrayList 和 Hashcode 原理分析(2)
(1) 了解set和List基本概念;
(2)理解set和list各自存储的特点和机制;
(3)掌握hashcode方法的特点和用途
(4)
重点:hashcode方法的特点和用途
难点:理解Hashcode方法在的存储特点和实现方式第4章内省和JavaBean原理分析(2)
(1) 了解javaBean的简单内省操作;
(2)理解javaBean内省的复杂运用;
(3)使用 BeanUtils 工具操作 javabean
重点:内省的机制和原理
难点:javaBean的内省操作第5章了解和应用注释(2)
(1) 了解注解的概念和简单运用;
(2)注解的定义和反射调用
(3)为注解增加各种属性
(4)用注解控制方法的访问权限
重点:注解的反射调用
难点:用注解控制方法的访问权限第6章泛型的内部机制和运用(4)
6.1 泛型的概念和内部机制(2)
(1) 了解泛型的基本运用;
(2)理解泛型的内部机制,如何通过反射获得泛型的实际参数类型;
(3)掌握泛型的通配符扩展运用;
重点:泛型的内部机制的理解
难点:泛型的通配符扩展运用泛型的综合运用(学时数)(2)
(1)理解自定义泛型的概念和用法;
(2)理解自定义泛型和类型腿短;
(3)掌握自定义泛型的运用;
重点:自定义泛型的概念和用法
难点:,自定义泛型的运用第7章类加载器工作原理以及委托模式(2)
(1)掌握Class类的基本概念;
(2)理解类加载器的概念
(3)掌握类加载器的工作原理
(4)理解类加载器的委托模式
重点:类加载器的工作原理
难点:委托模式的理解和运用第8章多线程以及线程平安(4)
8.1 传统线程技术回顾(2)
(1)了解线程互斥技术;
(2)理解线程同步通信技术;
(3)掌握线程范围内共享变量的概念与作用;
重点:线程互斥技术的理解
难点:线程范围内共享变量的掌握java线程锁技术(学时数)(2)
(1)理解死锁和线程平安的概念;
(2)理解java线程锁技术;
(3)掌握java读写锁技术;
(4)掌握java条件阻塞和condition的应用;
重点:线程锁技术和读写锁技术的掌握和应用 难点:,条件阻塞的概念和运用三、本课程开设的实验工程
序号
工程名称
所需 学时
内容提要
工程要求
实验类型
必开
选开
实验一
反射技术的 综合运用
2
应用反射技术实现对 一个类的成员变量,方法
是
验证
的调用和修改
实验二
自定义泛型 的综合应用
2
编写一个应用自定义 泛型的类并测试
是
验证
实验三
注释的综合 运用
2
利用注释实现方法的 权限控制
是
综合
实验四
动态代理模 式实践
2
在代码中运用动态代 理模式
是
综合
实验五
javaBean 的
内省实践
2
熟练掌握javabean的 内省操作
是
综合
实验六
多线程以及 线程平安的 应用
2
通过实现一个多线程 售票系统来掌握多线程和 线程平安
是
综合
实验七
线程互斥与 线程锁的实 践
2
在实践编码过程中实 现线程互斥和线程锁
是
综合
实验1:反射技术的综合运用
1 .实验目的及要求
1) 了解反射技术的概念
2)理解反射的用途
3)利用反射技术解决问题
2 .实验主要内容
1)先自己写一个类,要求这个类又共有私有的成员变量和方法,和静态成员变量和方
2)使用反射技术访问调用这个类的所有成员方法和变量
3 .重点和难点
数量掌握反射技术
实验2:自定义泛型的综合应用
4 .实验目的及要求
1)掌握泛型概念
2)掌握自定义泛型的技术
3)熟练运用泛型技术
5 .实验主要内容
1)使用泛型实现一个类中的所有方法
2)定义一个自定义泛型的类
3)使用泛型技术处理int, double, float类型的数组排序
3,重难点掌握自定义泛型类
实验3:注释的综合运用.实验目的及要求
1 ) 了解注释的概念2)掌握自定义注释技术;
3)掌握自定义注释控制方法访问权限的技术.实验主要内容
1)访问自己的自定义注释2)读取自定义注释的内容
3)利用自定义注释控制访问全新啊.重难点
使用自定义注释控制方法访问权限实验4:动态代理模式实践
2 .实验目的及要求1)掌握代理的概念
2)掌握动态代理的概念3)实现动态代理模式
3 .实验主要内容1)实现一个普通代理类
2)实现一个动态代理类3)用动态代理实现访问数据库
4 .重难点掌握动态代理的实现技术
实验5: javaBean的内省实践.实验目的及要求
1) 了解javaBean的概念2)掌握使用javaBean实现基本功能。
2 .实验主要内容1)自己写一个javaBean的类
2)使用javaBean技术访问这个类3)使用这个类实现对数据库的访问
3 .重难点掌握javaBean的实现技术
实验6:多线程以及线程平安的应用.实验目的及要求
1)掌握多线程概念2)掌握死锁的概念
3)掌握线程同步概念.实验主要内容
1)自己实现一个多线程售票程序2)为售票程序加上防止死锁功能
3)实现线程同步.重难点
实现线程同步和防止死锁实验7:线程互斥与线程锁的实践
4 .实验目的及要求1)掌握线程互斥的概念
2)掌握线程通信技术3)如何使用锁来实现线程互斥
5 .实验主要内容1)实现生产者消费者模型
2)在模型中实现线程间通信3)防止线程死锁
6 .重难点线程通信的概念和技术
注:本课程为专业课,授课对象为大三学生,实验类型主要包括验证性和设计性实验, 均需要提交实验报告,实验报告主要包括实验目的、实验内容、预习内容、实验步骤、算法 的时间复杂度分析以及总结。实验评价内容和评分细那么参见附录lo四、学时分配及教学方法
章
教学形式及学时分配
主要教学方法
支撑的课程目 标
课堂 教学
实验
上机
课程 实践
小计
第一章内存管理
2
2
讲授、案例、演示
课程目标1, 2
第二章java的反射技术
2
2
4
讲授、案例、自学、 实验
课程目标L 2
第三章 HashSet, ArrayList 和Hashcode原理分析
4
4
讲授、比照、自学、 讨论、实验
课程目标1-3
第四章内省和JavaBean原
理分析
2
2
2
讲授、演示、自学、 实验
课程目标1, 2
第五章了解和应用注释
2
2
讲授、自学
课程目标1, 2
第六章泛型的内部机制和 运用
2
2
4
讲授、案例、演示、 讨论、自学、实验
课程目标1-3
第七章泛型的综合运用
2
2
4
讲授、案例、演示、 讨论、自学、实验
课程目标1-3
第八章类加载器工作原理 以及委托模式
2
2
讲授、案例、演示、 实验
课程目标1-3
第九章多线程以及线程安 全
2
4
6
讲授、案例、演示、 实验
课程目标1-3
合计
20
12
32
注:L课程实践学时按相关专业培养计划列入表格;
2.主要教学方法包括讲授法、讨论法、演示法、研究型教学方法(基于问题、工程、案 例等教学方法)等。
五、课程考核1.课程考核方式包括期末考试、平时作业和实验情况考核。
考核形式
考核要求
考核权重
备注
平时作业 及阶段测 试
课后完成10~15个习题,主要考核学生对每节课知识点 的复习、理解和掌握度,计算全部作业的平均成绩再按 15%计入总成绩;可让学生查阅资料,了解本课程相关 技术开展情况,自主学习并完成。
15%
根据平时作业得 分取平均值或结 合平时测试情况
实验
完成6个实验,主要训练学生应用所学知识构建实验系 统,并进行实验的能力,最后按15%计入课程总成绩。
15%
评分细那么见附录1
期末考试
试卷题型包括选择题、填空题、判断题、应用题、算法 题5大类,以卷面成绩的70%计入课程总成绩。其中考 核基础知识及应用能力的题占90%;考核能针对个人或 职业开展的需求,采用合适的方法,自主学习,适应发 展占比10% O
70%
期末考试采用闭
*忖m、斗
看毛成。
六、参考书目及学习资料
1. Java编程思想, [美]埃克尔,出版社:机械工业出版社,出版时间:2007年6月 2」ava语言程序设计, Y.DanielLiang,出版社:机械工业出版社,出版时间:2015年 月
3.深入分析Java Web技术内幕, 许玲波,出版社:电子工业出版社出版时间:2014 年月4,深入理解Java虚拟机:JVM高级特性与最正确实践, 周志明,出版社:机械工业出版,
七、大纲说明
1 .主要采用多媒体教学手段,主要知识点板书与多媒体相结合,多种教学手段综合运 用。
2 .课后共需完成近15道习题作业,以评价学生对所学内容的理解和应用情况。
附录1:实验考核方式及评分细那么
本实验以考查为主,考核的内容包括实验过程的表现(其中包含分析与解决问题的能力)、 实验报告的质量等。分析与解决问题的能力采用提问和现场操作的方式进行。实验成绩中出 勤、预习占10%,实验过程表现占60%、实验报告及思考题占30%。
成绩组成
考核/评价环节
分值
考核/评价细那么
对应的毕业 要求指标点
出勤、预 习10%
出勤状况, 预习评价
10
能按时到勤,遵守实验规定,不损坏实验设备(占 5%);能够预习,并理解实验原理及目的(占5%)。
6.3
实验过程 60%
实验中的表现
60
按照预设方案操作实验设备、仪表,正确完成实 验(占25%);实验结果的准确性(占20%);利 用所学知识分析解决问题的能力(占15%)o各 个实验在总分中所占权重系数以课时数为标准。
6.3
7.3
8.3
实验报告 30%
实验报告评价
30
主要考察学生对实验结果进行分析和实验数据 进行处理的能力。要求报告格式规范(占10%); 数据准确(占10%);并按要求完成相应思考题 (10%)o
6.3
8.3
展开阅读全文