主题2:封装——类主题3:类成员及其访问控制※主题4:静态(static)与非静态类成员※主题5:方法重载和构造方法※主题6:包※主题7:继承※主题8:接口和抽象类※主题9:多态※主题10:内部类主题11:UML简介主题12:面向对象分析与设计简介课堂实践:通过上机实践,练习定义类和使用对象,重点练习继承和多态相关内容,理解多态在面向对象程序设计中的意义,进而逐步掌握以面向对象编程思想解决程序设计问题的基本方法。专题四:Java异常处理(2学时,其中实践1学时)主题1:Java中异常概念主题2:Java中异常的分类※主题3:异常捕获和处理※主题4:抛出异常主题5:自定义异常课堂实践:通过上机实践,验证使用了异常的例程,初步理解和体会异常处理对于构建具有鲁棒性和良好用户体验的应用程序的重要意义。专题五:Java常用的类(6学时,其中实践3学时)主题1:Object类※主题2:String和StringBuffer类※主题3:正则表达式相关类及其基本用法主题4:基本类型包装类主题5:Math、File和日期类等主题6:集合(容器)相关类、接口和算法※主题7:泛型课堂实践:通过上机实践,练习使用JDK中提供的常用类,尤其是Object和容器(集合)类,同时培养学生查阅JDKAPI手册和网络资源的习惯。专题六:Java图形用户界面(GUI)编程基础(4学时,其中实践2学时)主题1:AWT/Swing组件和容器概述※主题2:Java布局管理器※主题3:Java事件处理※主题4:Java绘图基础课堂实践:通过上机实践,练习Java使用基本的图形界面元素,重点理解Java图形用户编程的基本原理和机制(事件)。专题七:Java输入/输出流(4学时,其中实践2学时)主题1:Java输入流与输出(I/0)流原理24
24 主题 2:封装——类 主题 3:类成员及其访问控制※ 主题 4:静态(static)与非静态类成员※ 主题 5:方法重载和构造方法※ 主题 6:包※ 主题 7:继承※ 主题 8:接口和抽象类※ 主题 9:多态※ 主题 10:内部类 主题 11:UML 简介 主题 12:面向对象分析与设计简介 课堂实践:通过上机实践,练习定义类和使用对象,重点练习继承和多态相关内容,理 解多态在面向对象程序设计中的意义,进而逐步掌握以面向对象编程思想解决程序设计问题 的基本方法。 专题四:Java 异常处理 (2 学时,其中实践 1 学时) 主题 1:Java 中异常概念 主题 2:Java 中异常的分类※ 主题 3:异常捕获和处理※ 主题 4:抛出异常 主题 5:自定义异常 课堂实践:通过上机实践,验证使用了异常的例程,初步理解和体会异常处理对于构建 具有鲁棒性和良好用户体验的应用程序的重要意义。 专题五:Java 常用的类(6 学时,其中实践 3 学时) 主题 1:Object 类※ 主题 2:String 和 StringBuffer 类※ 主题 3:正则表达式相关类及其基本用法 主题 4:基本类型包装类 主题 5:Math、File 和日期类等 主题 6:集合(容器)相关类、接口和算法※ 主题 7:泛型 课堂实践:通过上机实践,练习使用 JDK 中提供的常用类,尤其是 Object 和容器(集 合)类,同时培养学生查阅 JDK API 手册和网络资源的习惯。 专题六:Java 图形用户界面(GUI)编程基础(4 学时,其中实践 2 学时) 主题 1:AWT/Swing 组件和容器概述※ 主题 2:Java 布局管理器※ 主题 3:Java 事件处理※ 主题 4:Java 绘图基础 课堂实践:通过上机实践,练习 Java 使用基本的图形界面元素,重点理解 Java 图形用 户编程的基本原理和机制(事件)。 专题七:Java 输入/输出流 (4 学时,其中实践 2 学时) 主题 1:Java 输入流与输出(I/O)流原理
主题2:JavaI/0流分类※主题3:常用节点流※主题4:常用处理流※主题5:Object流——对象序列化课堂实践:通过上机实践,练习使用各种javaI/0流,促进理解JavaI/O流的类型及其应用场景。专题八:Java线程编程基础(2学时,其中实践1学时)主题1:线程的概念主题2:Java中线程的创建和启动※主题3:线程的调度和优先级主题4:级线程的状态控制主题5:多个线程的同步※课堂实践:通过上机实践,验证使用了Java线程的例程,初步了解线程的基本概念和特性及其在Java程序中的应用。专题九:Java网络编程(2学时,其中实践1学时)主题1:网络基础知识主题2:URL主题3:Socket通信(TCP)主题4:数据报通信(UDP)主题5:SSL网络程序设计课堂实践:通过上机实践,验证Java网络编程的例程,初步了解网络编程的基本概念和特性及其在Java程序中的应用。专题十:Java数据库编程星(2学时,其中实践1学时)主题1:JDBC编程基本原理主题2:数据库简介主题3:SQL简介主题4:Java数据库程序设计基础课堂实践:通过上机实践,验证Java数据库编程的例程,初步了解数据库编程的相关基本概念(数据库和SQL)及其在Java程序中的应用。三、课程教学方法本课程是一门既有理论性,又有很强的实践性和应用性的课程,而且解决实际问题更是本课程的主要目标。所以,本课程拟采用理论与实践相结合、课内与课外学习相结合的教学方式。本课程的课堂教学将充分利用多媒体资源,讲解与演示相结合,力图在理论教学过程中培养学生面向对象程序设计的思维方式和方法。而在实践教学环节中,设计并布置一系列与课堂教学同步的编程练习和作业以供学生上机操作,目的是在巩固课堂教学效果的同时,也能提高学生编程实践的能力。25
25 主题 2:Java I/O 流分类※ 主题 3:常用节点流※ 主题 4:常用处理流※ 主题 5:Object 流——对象序列化 课堂实践:通过上机实践,练习使用各种 java I/O 流,促进理解 Java I/O 流的类型及 其应用场景。 专题八:Java 线程编程基础 (2 学时,其中实践 1 学时) 主题 1:线程的概念 主题 2:Java 中线程的创建和启动※ 主题 3:线程的调度和优先级 主题 4:级线程的状态控制 主题 5:多个线程的同步※ 课堂实践:通过上机实践,验证使用了 Java 线程的例程,初步了解线程的基本概念和 特性及其在 Java 程序中的应用。 专题九:Java 网络编程 (2 学时,其中实践 1 学时) 主题 1:网络基础知识 主题 2:URL 主题 3:Socket 通信(TCP) 主题 4:数据报通信(UDP) 主题 5:SSL 网络程序设计 课堂实践:通过上机实践,验证 Java 网络编程的例程,初步了解网络编程的基本概念 和特性及其在 Java 程序中的应用。 专题十:Java 数据库编程 (2 学时,其中实践 1 学时) 主题 1:JDBC 编程基本原理 主题 2:数据库简介 主题 3:SQL 简介 主题 4:Java 数据库程序设计基础 课堂实践:通过上机实践,验证 Java 数据库编程的例程,初步了解数据库编程的相关 基本概念(数据库和 SQL)及其在 Java 程序中的应用。 三、课程教学方法 本课程是一门既有理论性,又有很强的实践性和应用性的课程,而且解决实际问题更是 本课程的主要目标。 所以,本课程拟采用理论与实践相结合、课内与课外学习相结合的教学方式。本课程的 课堂教学将充分利用多媒体资源,讲解与演示相结合,力图在理论教学过程中培养学生面向 对象程序设计的思维方式和方法。而在实践教学环节中,设计并布置一系列与课堂教学同步 的编程练习和作业以供学生上机操作,目的是在巩固课堂教学效果的同时,也能提高学生编 程实践的能力
四、课程教学评价(一)平时成绩(教师评价+学生自评+小组互评):共30分,其中课堂作业20分,课堂作业要求在课程的实践环节完成并作出评价:期末综合作业10分(以2-3人小组合作形式完成一个工作量适合的编程任务,在组内由学生自已给出基于任务贡献的人员排序,并以此作为教师评价的依据之一)。(二)期末考试(教师评价):占70分,笔试,以闭卷方式进行。六、课程学习资源(一)主要参考书目[1]JY.DanielLiang.Java语言程序设计一基础篇(第八版)机械工业出版社,2011.[2]StuartReges,Java程序设计教程(第三版):机械工业出版社,2014.[3]KathySierra.HeadFirstJava.中国电力出版社,2007.[4]孙卫琴.Java面向对象编程.电子工业出版社,2006.[5]JoshuaBloch.EffectiveJava(第二版).机械工业出版社,2009(二)其它学习资源1.期刊资源[1]程序员主办单位:中国社会科学院[2]电脑编程技巧与维护主办单位:信息产业商会2.网站资源[1]Java开发文档:http://docs.oracle.com/javase/8/docs/api/index.html[2]中国软件开发联盟:http://www.csdn.net/[3]】IT问答网站:http://stackoverflow.com/[4]JavaMagazine:http://www.oracle.com/technetwork/java/javamagazine][5]MIT开放课程:http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-092-introduction-to-programming-in-java-january-iap-2010/七、课程学习建议(一)自主学习由于图书馆和Internet上的Java程序设计资源非常丰富,建议学生通过图书馆、网络自主查阅课程中涉及的学习资源,独立规划自己的课程学习计划。(二)程序设计实本课程的主要目的是要使用程序代码来解决实际问题,因此,上机编码是提高学生实际动手能力最直接的手段,建议学生课上以及课后要加强上机编程练习,熟悉编程语言的同时也要熟练使用各种编程工具(NetBeans和Eclipse等)。26
26 四、课程教学评价 (一)平时成绩(教师评价+学生自评+小组互评):共 30 分,其中课堂作业 20 分,课 堂作业要求在课程的实践环节完成并作出评价;期末综合作业 10 分(以 2-3 人小组合作形 式完成一个工作量适合的编程任务,在组内由学生自己给出基于任务贡献的人员排序,并以 此作为教师评价的依据之一)。 (二)期末考试(教师评价):占 70 分,笔试,以闭卷方式进行。 六、课程学习资源 (一)主要参考书目 [1]Y.Daniel Liang.Java 语言程序设计—基础篇(第八版). 机械工业出版社,2011. [2]Stuart Reges. Java 程序设计教程(第三版). 机械工业出版社,2014. [3]Kathy Sierra. Head First Java. 中国电力出版社,2007. [4]孙卫琴.Java 面向对象编程. 电子工业出版社,2006. [5]Joshua Bloch. Effective Java(第二版). 机械工业出版社,2009. (二)其它学习资源 1. 期刊资源 [1]程序员主办单位:中国社会科学院 [2]电脑编程技巧与维护 主办单位:信息产业商会 2. 网站资源 [1]Java 开发文档: http://docs.oracle.com/javase/8/docs/api/index.html [2]中国软件开发联盟: http://www.csdn.net/ [3] IT 问答网站: http://stackoverflow.com/ [4] Java Magazine: http://www.oracle.com/technetwork/java/javamagazine/ [5] MIT 开放课程: http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-09 2-introduction-to-programming-in-java-january-iap-2010/ 七、课程学习建议 (一)自主学习 由于图书馆和 Internet 上的 Java 程序设计资源非常丰富,建议学生通过图书馆、网络 自主查阅课程中涉及的学习资源,独立规划自己的课程学习计划。 (二)程序设计实践 本课程的主要目的是要使用程序代码来解决实际问题,因此,上机编码是提高学生实际 动手能力最直接的手段,建议学生课上以及课后要加强上机编程练习,熟悉编程语言的同时 也要熟练使用各种编程工具(NetBeans 和 Eclipse 等)
《算法与程序设计实践》教学大纲课程类别:专业主干课课程编码:1151712008308课程英文名:AlgorithmandProgramDesignPractice预修课程编码:无总学时数:36(实践学时:9)建议修读学期:第2学期一、课程性质、目标与要求本课程为计算机科学与技术专业的专业主干课,2学分,共36学时,其中9学时为实践学时。课程于第2学期开设,其先修课程是计算机导论,C语言程序设计等。通过本课程的教学,强化学生程序设计的基础理论知识,使学生掌握基本的程序设计方法及常见的算法设计方法。通过学习,学生能够利用常见的算法设计方法来解决软件开发中的实际问题。培养学生对问题进行正确分析的能力,利用所学语言编程实现奠定坚实的理论基础,培养扎实的专业知识和基本技能和从事应用软件开发和测试的能力。二、教学内容、重难点和学时安排专题一:程序设计基础(2学时)主题1:C语言的基本规范主题2:在线程序实践平台主题3:程序调试专题二:算法基础(2学时)主题1:算法概述主题2:算法性质主题3:算法分析※主题4:算法描述专题三:简单数据处理(4学时,其中实践1学时)主题1:基础知识主题2:简单数据处理案例实践项目:分层次选择实践题目进行在线编写专题四:字符及字符串处理(4学时,其中实践1学时)主题1:字符、字符串的输入输出主题2:字符处理函数主题3:字符串和内存操作函数主题4:字符串转换函数※主题5:字符串处理案例实践项目:完成3道字符串处理的问题的分析与程序设计。专题五:进制转换(4学时,其中实践1学时)主题1:相关概念27
27 《算法与程序设计实践》教学大纲 课程类别:专业主干课 课程编码:1151712008308 课程英文名:Algorithm and Program Design Practice 预修课程编码:无 总学时数:36 (实践学时:9 ) 建议修读学期:第 2 学期 一、课程性质、目标与要求 本课程为计算机科学与技术专业的专业主干课,2 学分,共 36 学时,其中 9 学时为实 践学时。课程于第 2 学期开设,其先修课程是计算机导论,C 语言程序设计等。通过本课程 的教学,强化学生程序设计的基础理论知识,使学生掌握基本的程序设计方法及常见的算法 设计方法。通过学习,学生能够利用常见的算法设计方法来解决软件开发中的实际问题。培 养学生对问题进行正确分析的能力,利用所学语言编程实现奠定坚实的理论基础,培养扎实 的专业知识和基本技能和从事应用软件开发和测试的能力。 二、教学内容、重难点和学时安排 专题一:程序设计基础 (2 学时) 主题 1:C 语言的基本规范 主题 2:在线程序实践平台 主题 3:程序调试 专题二:算法基础(2 学时) 主题 1:算法概述 主题 2:算法性质 主题 3:算法分析※ 主题 4:算法描述 专题三:简单数据处理(4 学时,其中实践 1 学时) 主题 1:基础知识 主题 2:简单数据处理案例 实践项目:分层次选择实践题目进行在线编写 专题四:字符及字符串处理 (4 学时,其中实践 1 学时) 主题 1:字符、字符串的输入输出 主题 2:字符处理函数 主题 3:字符串和内存操作函数 主题 4:字符串转换函数※ 主题 5:字符串处理案例 实践项目:完成 3 道字符串处理的问题的分析与程序设计。 专题五:进制转换 (4 学时,其中实践 1 学时) 主题 1:相关概念
主题2:各种常见的进制主题3:进制转换※主题4:进制转换案例实践项目:完成3道进制转换的问题的分析与程序设计。专题六:日期和时间处理(4学时,其中实践1学时)主题1:基础知识主题2:日期和时间处理案例实践项目:完成2道日期和时间处理问题的分析与程序设计。专题七:模拟(4学时,其中实践1学时)主题1:基础知识主题2:模拟案例实践项目:完成2道模拟问题的分析与程序设计。专题八:枚举(4学时,其中实践2学时)主题1:基础知识主题2:枚举案例实践项目:完成3道枚举问题的分析与程序设计。专题九:高精度计算(4学时,其中实践2学时)主题1:基础知识主题2:高精度计算案例实践项目:完成3道高精度计算问题的分析与程序设计。三、课程教学方法采用多种现代教学媒体,实现在线教学与面对面讲授、交流方式的混合。重视师生互动与小组活动,倡导理论与实践相结合、课内与课外学习相结合,尤其加强实践教学环节以落实对学生实践能力的培养。四、课程教学评价(一)平时成绩(教师评价+学生自评):共50分,其中课堂表现10分(含出勤考核),课后作业10分;课堂练习20分,期中考试10分。(二)期末上机考试(教师评价):占50分。六、课程学习资源(一)主要参考书目[1](美)BrianW.KernighanRobPike.派克译。程序设计实践。机械工业出版社,2002年1月[2](美)AnanyLevtin著.算法分析与设计基础(第二版),潘彦译,清华大学出版社,2007年1月[3]】李文新,郭炜,余华山.程序设计导引及在线实践,清华大学出版社,2007年1月[4]】王晓东.算法设计与分析,清华大学出版社,2003年1月[5]】王晓东.计算机算法设计与分析(第3版),清华大学出版社,2007年1月28
28 主题 2:各种常见的进制 主题 3:进制转换※ 主题 4:进制转换案例 实践项目:完成 3 道进制转换的问题的分析与程序设计。 专题六:日期和时间处理(4 学时,其中实践 1 学时) 主题 1:基础知识 主题 2:日期和时间处理案例 实践项目:完成 2 道日期和时间处理问题的分析与程序设计。 专题七:模拟 (4 学时,其中实践 1 学时) 主题 1:基础知识 主题 2:模拟案例 实践项目:完成 2 道模拟问题的分析与程序设计。 专题八:枚举 (4 学时,其中实践 2 学时) 主题 1:基础知识 主题 2:枚举案例 实践项目:完成 3 道枚举问题的分析与程序设计。 专题九:高精度计算 (4 学时,其中实践 2 学时) 主题 1:基础知识 主题 2:高精度计算案例 实践项目:完成 3 道高精度计算问题的分析与程序设计。 三、课程教学方法 采用多种现代教学媒体,实现在线教学与面对面讲授、交流方式的混合。重视师生互动 与小组活动,倡导理论与实践相结合、课内与课外学习相结合,尤其加强实践教学环节以落 实对学生实践能力的培养。 四、课程教学评价 (一)平时成绩(教师评价+学生自评):共 50 分,其中课堂表现 10 分(含出勤考核), 课后作业 10 分;课堂练习 20 分,期中考试 10 分。 (二)期末上机考试(教师评价):占 50 分。 六、课程学习资源 (一)主要参考书目 [1] (美)Brian W.Kernighan Rob Pike. 派克译。程序设计实践。机械工业出版社, 2002 年 1 月 [2](美) Anany Levtin 著. 算法分析与设计基础(第二版),潘彦译,清华大学出版 社,2007 年 1 月 [3] 李文新,郭炜,余华山. 程序设计导引及在线实践,清华大学出版社,2007 年 1 月 [4] 王晓东. 算法设计与分析,清华大学出版社,2003 年 1 月 [5] 王晓东. 计算机算法设计与分析(第 3 版),清华大学出版社,2007 年 1 月