《程序设计课程设计》课程教学大纲课程编号:课程名称:程序设计课程设计英文名称:CourseDesignforProgramming课程类型:专业必修课总学时:24学时理论课学时:8学时见习学时:16学时适用对象:信息管理与信息系统专业(卫生信息方向)本科一、课程性质、目的和任务性质:课程设计属于研究型、创新型、自主型学习,是课程教学中的一项重要内容,成为完成教学计划达到教学目标的重要环节,因而是教学计划中综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。《程序设计》是一门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。要求学生以个人或团队为单位,在教师指导下,运用理论课所学知识,借助参考书籍选择一个课题,使用C语言,完成一个功能相对完整,具有应用价值的软件。达到加深理解课堂教学内容,熟悉程序设计的基本流程、掌握程序设计基本方法基本技巧、并能综合运用,提高程序设计能力。通过本课程的实践,够运用C语言解决一个实际问题。目的:全面系统的学习程序设计的基本概念、基本语法和编程方法:提高学生在实际设计操作中系统分析、结构确定、算法选择、数学建模和信息加工的能力;提高学生的C语言程序设计能力:培养学生编写程序设计文档的能力:遵循软件过程的各个环节进行系统分析、设计、实现、集成、测试,并相应给出软件规格说明书等制品。任务:总学时24学时,其中理论讲授16学时(见正文部分),8学时见习。二、教学基本要求通过本课程的学习,学生应能达到下列要求:1.利用面向对象的方法进行系统分析,形成功能规格说明书;2.熟悉各种基本数据结构及其操作,学会根据实际问题要求来选择数据结构:3.掌握设计算法的步骤和算法分析方法。(1)掌握C/S和B/S模式基本概念,及在两种模式下信息系统工作原理。(2)熟练掌握一种以上计算机开发语言及常用算法。(3)掌握信息系统基本架构流程和方法:
《程序设计课程设计》课程教学大纲 课程编号: 课程名称:程序设计课程设计 英文名称:Course Design for Programming 课程类型:专业必修课 总学时:24 学时 理论课学时:8 学时 见习学时:16 学时 适用对象:信息管理与信息系统专业(卫生信息方向)本科 一、课程性质、目的和任务 性质:课程设计属于研究型、创新型、自主型学习,是课程教学中的一项重 要内容,成为完成教学计划达到教学目标的重要环节,因而是教学计划中综合性 较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的 实践和实际动手能力、提高学生全面素质具有很重要的意义。《程序设计》是一 门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。要求学 生以个人或团队为单位,在教师指导下,运用理论课所学知识,借助参考书籍, 选择一个课题,使用 C 语言,完成一个功能相对完整,具有应用价值的软件。达 到加深理解课堂教学内容,熟悉程序设计的基本流程、掌握程序设计基本方法, 基本技巧、并能综合运用,提高程序设计能力。通过本课程的实践,够运用 C 语言解决一个实际问题。 目的:全面系统的学习程序设计的基本概念、基本语法和编程方法;提高学生在实际设 计操作中系统分析、结构确定、算法选择、数学建模和信息加工的能力;提高学生的 C 语 言程序设计能力;培养学生编写程序设计文档的能力;遵循软件过程的各个环节进行系 统分析、设计、实现、集成、测试,并相应给出软件规格说明书等制品。 任务:总学时 24 学时,其中理论讲授 16 学时(见正文部分),8 学时见习。 二、教学基本要求 通过本课程的学习,学生应能达到下列要求: 1. 利用面向对象的方法进行系统分析,形成功能规格说明书; 2. 熟悉各种基本数据结构及其操作,学会根据实际问题要求来选择数据结构; 3. 掌握设计算法的步骤和算法分析方法。 (1) 掌握 C/S 和 B/S 模式基本概念,及在两种模式下信息系统工作原理。 (2) 熟练掌握一种以上计算机开发语言及常用算法。 (3) 掌握信息系统基本架构流程和方法;
(4)掌握数据库结构化查询语言(SQL)及E-R数据库设计方法。(5)掌握信息系统设计需求分析、设计、代码、测试、打包(发布)、维护等开发方法。(6)可以2-5人一个小组,选择一个题目,但要求有明确的分工,而且工作量要饱满。设计完成,将“课程设计任务书、课程设计说明书、程序设计代码”,(7)由班长收齐后,连同汇总表拷贝给指导教师。三、各教学环节学时分配其它教学小计内容课堂讲授习题课实验、见习课环节C基本知识1 学时1学时数据结构基本算法2学时数据库基本知识综合实例分析4学时下达课程设计任务4学时预设计实验阶段10学时设计总结结段2学时总计8学时16学时四、教学内容与要求第一章 C基本知识【教学目的】一、掌握C语言的基本知识、程序设计的基本方法。二、掌握C语言文件操作。【教学内容】回顾C语言中函数、指针、结构体的用法。二、掌握C语言中的有关文件的相关操作。三、掌握C库函数的使用。【教学时数】1学时第二章数据结构基本算法【教学目的】一、熟悉基本的数据结构类型。二、熟悉熟悉数据结构的典型算法。【教学内容】一、熟悉线性表、二叉树、图的基本算法。二、掌握查找算法和排序算法。【教学时数】1学时
(4) 掌握数据库结构化查询语言(SQL)及 E-R 数据库设计方法。 (5) 掌握信息系统设计需求分析、设计、代码、测试、打包(发布)、维护等开发 方法。 (6) 可以 2-5 人一个小组,选择一个题目,但要求有明确的分工,而且工 作量要饱满。 (7) 设计完成,将“课程设计任务书、课程设计说明书、程序设计代码”, 由班长收齐后,连同汇总表拷贝给指导教师。 三、各教学环节学时分配 内 容 课堂讲授 习题课 实验、见习课 其它教学 环节 小计 C 基本知识 数据结构基本算法 数据库基本知识 综合实例分析 下达课程设计任务 预设计 实验阶段 设计总结结段 1 学时 1 学时 2 学时 4 学时 4 学时 10 学时 2 学时 总 计 8 学时 16 学时 四、教学内容与要求 第一章 C 基本知识 【教学目的】 一、掌握 C 语言的基本知识、程序设计的基本方法。 二、掌握 C 语言文件操作。 【教学内容】 一、 回顾 C 语言中函数、指针、结构体的用法。 二、 掌握 C 语言中的有关文件的相关操作。 三、 掌握 C 库函数的使用。 【教学时数】1 学时 第二章 数据结构基本算法 【教学目的】 一、熟悉基本的数据结构类型。 二、熟悉熟悉数据结构的典型算法。 【教学内容】 一、熟悉线性表、二叉树、图的基本算法。 二、掌握查找算法和排序算法。 【教学时数】1 学时
第三章数据库基本知识【教学目的】一、掌握数据库的基本概念。二、掌握在编程时链接数据库的方法。【教学内容】一、数据库的基本概念。二、数据库和数据表的创建。【教学时数】2学时第四章综合实例分析【教学目的】1、通过一个实例的讲解,让学生了解软件设计的基本方法及步骤。2、理解分模块进行程序设计的含义。【教学时数】1.0学时【教学内容】烫手山芋问题:一群小孩编号为1,2,,n(n>0)围成一圈,有一个刚出锅的山芋在他们之间传递。假设刚开始由一号拿着山芋,然后依次计数把山芋交给下一个小孩,当数到某个特定的k时,拿着山芋的小孩退出游戏,然后从下一个小孩重新开始计数,如此不断,最后剩下的那个孩子就是幸运者。要求设计一个程序模拟此过程,并给出不同的n,k组合下那个幸运者是谁?【教学时数】4学时四、实践及见习项目一学生成绩统计1)实验类别:验证性、设计性实验。2)实验目的和要求:1.掌握学生成绩统计的设计和开发方法;2.掌握模块化开发思想。3)实验内容:学期考试结束,统计有N个班某班每个人的平均成绩,每门课的平均成绩,并按个人平均成绩从高到低的书序输出成绩,输出不及格人名单。输入、输出格式自定。考试课程有:高数、数据结构、网络、数据库、网页设计5门课程。将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程序的功能主要包括:①输入成绩到文件中②输出成绩③输出不及格学生名单
第三章 数据库基本知识 【教学目的】 一、掌握数据库的基本概念。 二、掌握在编程时链接数据库的方法。 【教学内容】 一、数据库的基本概念。 二、数据库和数据表的创建。 【教学时数】2 学时 第四章 综合实例分析 【教学目的】 1、通过一个实例的讲解,让学生了解软件设计的基本方法及步骤。 2、理解分模块进行程序设计的含义。 【教学时数】1.0 学时 【教学内容】 烫手山芋问题: 一群小孩编号为 1,2,.,n(n>0)围成一圈,有一个刚出锅的山芋在他们之间传递。 假设刚开始由一号拿着山芋,然后依次计数把山芋交给下一个小孩,当数到某个特定的 k 时,拿着山芋的小孩退出游戏,然后从下一个小孩重新开始计数,如此不断,最后剩下的那 个孩子就是幸运者。要求设计一个程序模拟此过程,并给出不同的 n,k 组合下那个幸运者 是谁? 【教学时数】4 学时 四、实践及见习 项目一 学生成绩统计 1) 实验类别:验证性、设计性实验。 2) 实验目的和要求: 1. 掌握学生成绩统计的设计和开发方法; 2. 掌握模块化开发思想。 3) 实验内容: 学期考试结束,统计有 N 个班某班每个人的平均成绩,每门课的平均成绩,并按 个人平均成绩从高到低的书序输出成绩,输出不及格人名单。输入、输出格式自定。 考试课程有:高数、数据结构、网络、数据库、网页设计 5 门课程。 将所有同学的成绩保留在文件中,对文件中的数据处理,输出所要求的内容,程 序的功能主要包括: ① 输入成绩到文件中 ② 输出成绩 ③ 输出不及格学生名单
④成绩排序③修改记录③删除记录?插入记录等主函数中对应功能进行选择,调用对应的函数完成。项目二医院门诊候诊的队列管理系统1)实验类别:验证性、设计性实验。2)实验目的和要求:1.掌握医院门诊候诊的队列管理系统的设计和开发方法;2.掌握软件模块化开发思想。3)实验内容:要求采用先来先就诊的排队方式(就诊顺序与挂号单编号无关),假设挂号室编码是连续的,但是由于同一个门诊科目有三个诊室,其中35岁(含35)以上的在第一诊室,35岁以下男患者进第二诊室,其它的进第三诊室,程序启动后显示下列菜单:①挂号②叫号③分诊室④显示各诊室队列信息③显示当天就诊患者情况(要求按性别进行统计和按任意年龄区段进行统计)③结束程序选1时,提示用户在一行内输入姓名及挂号单编号:选2时,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除:选3时,进行诊室分配;选4时,按队列顺序显示各诊室排队人的姓名、挂号单编号及所在诊室;选5时,进行两种统计方法的选择,并进行必要的统计计算;选6时,退出程序的运行。要求1~5中每一个步骤完成后都能重新显示此选择菜单。项目三单词统计1)实验类别:验证性、设计性实验。2)实验目的和要求:1.掌握单词统计的设计和开发方法;2.掌握软件模块化开发思想。3)实验内容:统计某篇英文小说中某些单词的出现次数。英文销售存储在一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后全部完成。输出的每个单词的出现次数。约定小说中的词汇一律不跨行,这样从文本文件中读入一行,就统计每个单词在这行中出现的次数,直到文件结束。要求在程序运行时才输入文本文件名和要统计的词汇
④ 成绩排序 ⑤ 修改记录 ⑥ 删除记录 ⑦ 插入记录等 主函数中对应功能进行选择,调用对应的函数完成。 项目二 医院门诊候诊的队列管理系统 1) 实验类别:验证性、设计性实验。 2) 实验目的和要求: 1. 掌握医院门诊候诊的队列管理系统的设计和开发方法; 2. 掌握软件模块化开发思想。 3) 实验内容: 要求采用先来先就诊的排队方式(就诊顺序与挂号单编号无关),假设挂号室编码是连 续的,但是由于同一个门诊科目有三个诊室,其中 35 岁(含 35)以上的在第一诊室,35 岁以下男患者进第二诊室,其它的进第三诊室,程序启动后显示下列菜单: ① 挂号 ② 叫号 ③ 分诊室 ④ 显示各诊室队列信息 ⑤ 显示当天就诊患者情况(要求按性别进行统计和按任意年龄区段进行统计) ⑥ 结束程序 选 1 时,提示用户在一行内输入姓名及挂号单编号; 选 2 时,显示排在队列中第一位患者姓名、挂号单编号,并将其从挂号序列中删除; 选 3 时,进行诊室分配; 选 4 时,按队列顺序显示各诊室排队人的姓名、挂号单编号及所在诊室; 选 5 时,进行两种统计方法的选择,并进行必要的统计计算; 选 6 时,退出程序的运行。 要求 1~5 中每一个步骤完成后都能重新显示此选择菜单。 项目三 单词统计 1) 实验类别:验证性、设计性实验。 2) 实验目的和要求: 1. 掌握单词统计的设计和开发方法; 2. 掌握软件模块化开发思想。 3) 实验内容: 统计某篇英文小说中某些单词的出现次数。 英文销售存储在一个文本文件中。待统计的词汇集合要一次输入完毕,即统计工作必须 在程序的一次运行之后全部完成。输出的每个单词的出现次数。约定小说中的词汇一律不跨 行,这样从文本文件中读入一行,就统计每个单词在这行中出现的次数,直到文件结束。 要求在程序运行时才输入文本文件名和要统计的词汇
项目四排序综合1)实验类别:验证性、设计性实验。2)实验目的和要求;1.掌握排序的的思想;2.掌握软件模块化开发思想。3)实验内容:利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法排序。至少采用5种方法实现上述问题,并把排序后的结果保存在不同的文件中。利用系统提供的时间函数,统计每一种排序方法的运行性能(以若干次运行程序所花费的平均时间为准进行对比),找出其中两种较快的方法。六、教学方法与手段本课程采用讲授与上机实践相结合的教学方式,理论课讲授采用多媒体教学。在教学过程中采用以下几种教学方法:1、启发式教学:教学活动关注的重点从结果转向过程。激发思维,师生互动,增强学生学习的主动性、积极性和创造性:2、民主式教学:以学生为主体,以学习为中心,强化学生的学习主人翁意识。鼓励讨论,课堂氛围宽松和谐;开放式教学:课上课下融合,培养学生发散思维,增大学生的学习自主权:3.4.研究式教学:变灌输式为研讨式、探索式。教师给思路,指点学生自主获取知识:5.实践性教学:充分利用实验室,通过上机实习,加强学生的实践能力。七、考核方式课程设计结束时,要求学生提交的内容包括:1、程序清单:代码应具有详细注释,用来说明程序的功能、结构,占40%;2、设计报告:报告中应包含上机时遇到的问题及解决办法,观察到的现象及其分析,对程序设计技巧的总结及分析等;程序的输出结果及对结果的分析:实验的心得体会,以及其它信息,占30%:3、提交时,须向指导教师说明:程序的使用方法,调用方法、操作步骤等:要求输入信息的类型及格式:出错信息的含义及程序的适用范围等,占30%。学生成绩以优、良、中、及格和不及格5个等级评定。八、推荐教材《C程序设计》,谭浩强主编,清华大学出版社。《数据结构》,李春葆主编,清华大学出版社。九、本大纲主要起草人、审阅人主要起草人:审阅人杨枢2015年7月3日
项目四 排序综合 1) 实验类别:验证性、设计性实验。 2) 实验目的和要求: 1. 掌握排序的的思想; 2. 掌握软件模块化开发思想。 3) 实验内容: 利用随机函数产生 N 个随机整数(20000 以上),对这些数进行多种方法排序。 至少采用 5 种方法实现上述问题,并把排序后的结果保存在不同的文件中。 利用系统提供的时间函数,统计每一种排序方法的运行性能(以若干次运行程序所花费 的平均时间为准进行对比),找出其中两种较快的方法。 六、教学方法与手段 本课程采用讲授与上机实践相结合的教学方式,理论课讲授采用多媒体教学。在教学过 程中采用以下几种教学方法: 1. 启发式教学:教学活动关注的重点从结果转向过程。激发思维,师生互动,增强学生学 习的主动性、积极性和创造性; 2. 民主式教学:以学生为主体,以学习为中心,强化学生的学习主人翁意识。鼓励讨论, 课堂氛围宽松和谐; 3. 开放式教学:课上课下融合,培养学生发散思维,增大学生的学习自主权; 4. 研究式教学:变灌输式为研讨式、探索式。教师给思路,指点学生自主获取知识; 5. 实践性教学:充分利用实验室,通过上机实习,加强学生的实践能力。 七、考核方式 课程设计结束时,要求学生提交的内容包括: 1、程序清单:代码应具有详细注释,用来说明程序的功能、结构,占 40%; 2、设计报告:报告中应包含上机时遇到的问题及解决办法,观察到的现象及其分析, 对程序设计技巧的总结及分析等;程序的输出结果及对结果的分析;实验的心得体会,以及 其它信息,占 30%; 3、提交时,须向指导教师说明:程序的使用方法,调用方法、操作步骤等;要求输入 信息的类型及格式;出错信息的含义及程序的适用范围等,占 30%。 学生成绩以优、良、中、及格和不及格 5 个等级评定。 八、推荐教材 《C 程序设计》,谭浩强主编,清华大学出版社。 《数据结构》,李春葆主编,清华大学出版社。 九、本大纲主要起草人、审阅人 主要起草人: 审 阅 人:杨枢 2015 年 7 月 3 日