《软件技术基础》课程教学大纲 课程英文名称:Software Technology 课程代码:R1014720 学时数:32 学分数:2 课程类型:专业选修课程 适用学科专业:航空航天大类 先修课程:C语言程序设计 执笔者:刘民岷 编写日期:2020.10.4 审核人:李波 一、课程简介 软件技术基础课程内容涵盖了软件开发整个过程中的相关知识,包括数据结构、操作系统、软 件工程、数据库及计算机网络技术。该课程是探测制导与控制技术专业计算机基础课程教学系列(本 专业选修课)中的第二门课程,理论性和实用性都较强,是本专业学生今后设计、开发和应用各种 软件系统的基础。课程训练学生的创新思维及方法,培养其有效地思考、交流、做出恰当判断和辨 别价值等通识能力,成为具有家国情怀、人文情怀、科学家精神的中国特色社会主义合格建设者和 可靠接班人。学生应该在修习完成℃语言程序设计”后修习本课程。 Course Description: The course covers relevant knowledge throughout the whole process of software development, including data structures,operating systems,software engineering,database and computer network technology.The course is the second one in the list of foundation courses of computer for students majored in Probing Guidance and Control Technology,with strong theoretical and practical characteristics, thus it is fundamental for students to design,develop and use all sorts of software system in the future. Students should be trained to master mathematical innovation way of thinking and methods from the perspective of scientific and cognitive law,and to form capability of liberal education on effective thinking,communication,appropriate judgments and distinguishing values.Students are cultivated to be qualified socialist builders and reliable successors with Chinese characteristics in aspects of family sentiment,humane feeling,and scientist spirit.This course should be taken after the "C Programming Language" 二、课程目标 本专业旨在培养德、智、体全面发展,基础知识扎实、专业能力强,工程实践及创新能力强, 具有系统工程思维和国际化视野的复合型技术人才。要求该专业的学生掌握电子、控制、通信、计 算机等基础理论知识。本课程旨在培养学生掌握计算机软件应用及开发相关的全面知识,通过学习
《软件技术基础》课程教学大纲 课程英文名称:Software Technology 课程代码:R1014720 学 时 数 :32 学 分 数:2 课程类型:专业选修课程 适用学科专业: 航空航天大类 先修课程:C 语言程序设计 执 笔 者:刘民岷 编写日期:2020.10.4 审 核 人: 李波 一、课程简介 软件技术基础课程内容涵盖了软件开发整个过程中的相关知识,包括数据结构、操作系统、软 件工程、数据库及计算机网络技术。该课程是探测制导与控制技术专业计算机基础课程教学系列(本 专业选修课)中的第二门课程,理论性和实用性都较强,是本专业学生今后设计、开发和应用各种 软件系统的基础。课程训练学生的创新思维及方法,培养其有效地思考、交流、做出恰当判断和辨 别价值等通识能力, 成为具有家国情怀、人文情怀、科学家精神的中国特色社会主义合格建设者和 可靠接班人。学生应该在修习完成“C 语言程序设计”后修习本课程。 Course Description: The course covers relevant knowledge throughout the whole process of software development, including data structures, operating systems, software engineering, database and computer network technology. The course is the second one in the list of foundation courses of computer for students majored in Probing Guidance and Control Technology, with strong theoretical and practical characteristics, thus it is fundamental for students to design, develop and use all sorts of software system in the future. Students should be trained to master mathematical innovation way of thinking and methods from the perspective of scientific and cognitive law, and to form capability of liberal education on effective thinking, communication, appropriate judgments and distinguishing values. Students are cultivated to be qualified socialist builders and reliable successors with Chinese characteristics in aspects of family sentiment, humane feeling, and scientist spirit. This course should be taken after the "C Programming Language". 二、课程目标 本专业旨在培养德、智、体全面发展,基础知识扎实、专业能力强,工程实践及创新能力强, 具有系统工程思维和国际化视野的复合型技术人才。要求该专业的学生掌握电子、控制、通信、计 算机等基础理论知识。本课程旨在培养学生掌握计算机软件应用及开发相关的全面知识,通过学习
本课程,同学能够了解掌握计算机软件相关的基本概念、基本原理和软件设计的基本方法,并运用 所学方法进行较为规范的软件系统开发工作。 Teaching Objectives: The major aims of this course are to cultivate compound technology talents who have system engineering thoughts and international views and with strong professional ability,strong capabilities in engineering practice and innovation and solid basic knowledge as well.This course requires a prior mastery of knowledge in electronics,controlling,communication,computer and other basic theories.This course is designed to train students to master computer software applications and a comprehensive knowledge related to the software development.Through this course,students could understand the basic concepts related to computer software,the basic principles and basic methods of software design and apply the methods they studied to develop software system more standardly. 三、课程内容安排和要求 (一)教学内容、要求及教学方法 本课程教学内容包括5个方面的内容:概述、数据结构和算法、操作系统、数据库和软件工程。 教学方法主要采用计算机多媒体课件演示和黑板板书的方法配合课堂讲授的方法进行课堂教学再 辅以上机实验。 该门课程总学时32学时,课堂教学22学时,课内上机10学时。其中概述部分占2学时:数 据结构部分是基础,约占16学时:操作系统部分占8学时:数据库技术部分占4学时:软件工程 2学时。 1.概述(2学时) (1)计算机发展历史:了解计算机软硬件发展历史简介,建立计算机系统由硬件系统和软件 系统两部分构成的认知。 (2)基于二进制的信息描述:了解二进制的由来,以及基于二进制的信息描述,包括基于二 进制的数值、文字及多媒体信息的表述。 (3)计算机工作原理:了解计算机的简单结构及工作原理:了解冯诺依曼体系结构的基本概 念。 2.数据结构和算法(16学时,其中上机8学时) (1)线性结构:掌握数据结构的定义、作用,对于数据结构及相关术语要达到掌握层次,对 于数据结构的三个层次及三个层次间的要达到理解层次。掌握线性结构(顺序、链接)的特点,熟 练掌握用顺序方式和链接方式实现各种线性表的算法:掌握栈的定义、特点,顺序栈、链栈的入栈 和出栈算法,能够利用栈的特点解决简单问题:掌握队列的定义、特点,循环队列的特点:能利用
本课程,同学能够了解掌握计算机软件相关的基本概念、基本原理和软件设计的基本方法,并运用 所学方法进行较为规范的软件系统开发工作。 Teaching Objectives: The major aims of this course are to cultivate compound technology talents who have system engineering thoughts and international views and with strong professional ability, strong capabilities in engineering practice and innovation and solid basic knowledge as well. This course requires a prior mastery of knowledge in electronics, controlling, communication, computer and other basic theories. This course is designed to train students to master computer software applications and a comprehensive knowledge related to the software development. Through this course, students could understand the basic concepts related to computer software, the basic principles and basic methods of software design and apply the methods they studied to develop software system more standardly. 三、课程内容安排和要求 (一)教学内容、要求及教学方法 本课程教学内容包括 5 个方面的内容:概述、数据结构和算法、操作系统、数据库和软件工程。 教学方法主要采用计算机多媒体课件演示和黑板板书的方法配合课堂讲授的方法进行课堂教学再 辅以上机实验。 该门课程总学时 32 学时,课堂教学 22 学时,课内上机 10 学时。其中概述部分占 2 学时;数 据结构部分是基础,约占 16 学时;操作系统部分占 8 学时;数据库技术部分占 4 学时;软件工程 2 学时。 1. 概述(2 学时) (1)计算机发展历史:了解计算机软硬件发展历史简介,建立计算机系统由硬件系统和软件 系统两部分构成的认知。 (2)基于二进制的信息描述:了解二进制的由来,以及基于二进制的信息描述,包括基于二 进制的数值、文字及多媒体信息的表述。 (3)计算机工作原理:了解计算机的简单结构及工作原理;了解冯诺依曼体系结构的基本概 念。 2. 数据结构和算法(16 学时,其中上机 8 学时) (1)线性结构:掌握数据结构的定义、作用,对于数据结构及相关术语要达到掌握层次,对 于数据结构的三个层次及三个层次间的要达到理解层次。掌握线性结构(顺序、链接)的特点,熟 练掌握用顺序方式和链接方式实现各种线性表的算法;掌握栈的定义、特点,顺序栈、链栈的入栈 和出栈算法,能够利用栈的特点解决简单问题;掌握队列的定义、特点,循环队列的特点;能利用
队列的特点解决简单问题:理解二维矩阵数据元素的存储方法及其压缩方法:了解串的特点和串的 存储结构。 (2)非线性结构:理解非线性结构的定义和特征:掌握树结构的定义和相关术语:掌握二叉 树的定义和实现,理解二叉树的几种类型及特点:掌握二叉树的顺序存储结构、链接存储结构:理 解二叉树的遍历算法:理解二叉排序树的创建:理解树、森林和二叉树的转换:掌握图的定义和相 关术语。理解邻接矩阵存储图和邻接表存储图,能简单应用:掌握图的深度优先和广度优先遍历算 法。 (3)查找和排序:掌握查找算法中的顺序查找、二分查找、分块查找,理解他们的区别与各 自的适用范围。掌握二叉排序树的查找过程,查找算法。理解哈希查找,掌握哈希函数的构造方法, 哈希表的构造及冲突的解决方法。理解排序的基本概念,掌握简单排序、快速排序、归并排序的排 序过程、排序算法、排序效率分析。 (4)重点和难点: 重点:算法的基本特征和要素,描述方式和复杂度:栈、队列、链表、数组、矩阵的结构特点、 基本运算方法及应用;基本排序与查找技术,常用排序技术的算法表示和实现。 难点:算法的复杂度分析:复杂数据结构(树、图)基本概念、运算方法:哈希表与树查找相 关的算法。 3.操作系统(8学时) (1)操作系统功能及分类:理解操作系统的定义了解其发展状况,理解操作系统的功能、特 征和分类。 (2)处理机管理:理解处理机管理的概念和方法:包括理解进程的概念,理解进程的控制和 调度方法,掌握实现进程互斥与同步的方法和PV操作,了解进程的通信方法,理解死锁的概念、 成因和解除方法。 (3)存储管理:理解存储管理的概念和功能,掌握分区存储管理、虚拟存储管理、分页存储 管理、分段存储管理、段页式存储管理的方法和特点。 (4)重点和难点: 重点:操作系统基本功能和任务,进程及进程间通信,内存储器管理技术。 难点:多道程序的组织,存储器的组织与管理。 4.数据库(4学时,其中上机2学时) (1)数据库基础:理解数据库的概念和数据库系统的组成,理解信息、数据与数据处理的含 义,了解数据管理的发展历程,了解数据和数据联系的描述方法
队列的特点解决简单问题;理解二维矩阵数据元素的存储方法及其压缩方法;了解串的特点和串的 存储结构。 (2)非线性结构:理解非线性结构的定义和特征;掌握树结构的定义和相关术语;掌握二叉 树的定义和实现,理解二叉树的几种类型及特点;掌握二叉树的顺序存储结构、链接存储结构;理 解二叉树的遍历算法;理解二叉排序树的创建;理解树、森林和二叉树的转换;掌握图的定义和相 关术语。理解邻接矩阵存储图和邻接表存储图,能简单应用;掌握图的深度优先和广度优先遍历算 法。 (3)查找和排序:掌握查找算法中的顺序查找、二分查找、分块查找,理解他们的区别与各 自的适用范围。掌握二叉排序树的查找过程,查找算法。理解哈希查找,掌握哈希函数的构造方法, 哈希表的构造及冲突的解决方法。理解排序的基本概念,掌握简单排序、快速排序、归并排序的排 序过程、排序算法、排序效率分析。 (4)重点和难点: 重点:算法的基本特征和要素,描述方式和复杂度;栈、队列、链表、数组、矩阵的结构特点、 基本运算方法及应用;基本排序与查找技术,常用排序技术的算法表示和实现。 难点:算法的复杂度分析;复杂数据结构(树、图)基本概念、运算方法;哈希表与树查找相 关的算法。 3. 操作系统(8 学时) (1)操作系统功能及分类:理解操作系统的定义了解其发展状况,理解操作系统的功能、特 征和分类。 (2)处理机管理:理解处理机管理的概念和方法:包括理解进程的概念,理解进程的控制和 调度方法,掌握实现进程互斥与同步的方法和 PV 操作,了解进程的通信方法,理解死锁的概念、 成因和解除方法。 (3)存储管理:理解存储管理的概念和功能,掌握分区存储管理、虚拟存储管理、分页存储 管理、分段存储管理、段页式存储管理的方法和特点。 (4)重点和难点: 重点:操作系统基本功能和任务,进程及进程间通信,内存储器管理技术。 难点:多道程序的组织,存储器的组织与管理。 4. 数据库(4 学时,其中上机 2 学时) (1)数据库基础:理解数据库的概念和数据库系统的组成,理解信息、数据与数据处理的含 义,了解数据管理的发展历程,了解数据和数据联系的描述方法
(2)数据模型和$SQL:了解数据模型中的非关系模型,理解关系模型的含义以及关系运算的 规则。掌握SQL语言的基本使用方法,特别是进行数据查询的方法。 (3)重点和难点: 重点:数据描述和数据模型,关系代数及数据库设计。 难点:关系数据库语言SQL的特点及应用。 5.软件工程(2学时) (1)软件工程基本概念:了解软件工程学的形成和发展,理解软件危机和软件工程科学的产 生:理解软件的概念及软件生命周期:掌握瀑布模型及其优缺点: (2)现代程序设计技术:了解流行的高级程序设计语言:了解面向对象分析设计及编程技术: 了解常用的测试技术和测试方法: (3)重点和难点: 重点:设计表达、结构化设计与分析方法。 难点:理解测试和调试,理解软件开发新技术。 (二)自学内容和要求 1.操作系统部分:了解作业的概念和调度控制方法。自学操作系统的设备管理和文件管理, 了解数据传送的控制方式、虚拟设备管理方法,以及文件系统的概念、文件的目录、组织 等基本概念。 2.现代软件工程部分:了解软件工程方法中有关生存周期、需求分析的基本概念,了解面向 对象的软件设计思路和统一建模语言(UML)的特点以及软件测试维护的基本方法。 (三)实践性教学环节和要求 本课程实践性教学环节涉及数据结构和数据库两部分上机实验,总学时数为16学时。 1.数据结构部分上机实验:8学时 实验内容:在C语言环境下(Microsoft Visual Studio6),练习实现基本的数据结构及算法。 内容包括:1)掌握建立顺序表和单链表的方法:2)掌握实现插入和删除等基本操作函数的方法: 3)掌握建立二叉树的方法以及先序、后序、中序遍历的操作实现:4)查找和排序算法实现。 实验要求:要求学生通过上机实验进一步深刻理解数据结构及算法的重要性,并能够利用掌握 的程序设计语言实现数据结构和相应算法。 2.数据库部分上机实验:2学时 实验内容:在MySQL环境下,练习创建数据库、创建数据表和数据表查询操作
(2)数据模型和 SQL:了解数据模型中的非关系模型,理解关系模型的含义以及关系运算的 规则。掌握 SQL 语言的基本使用方法,特别是进行数据查询的方法。 (3)重点和难点: 重点:数据描述和数据模型,关系代数及数据库设计。 难点:关系数据库语言 SQL 的特点及应用。 5. 软件工程(2 学时) (1)软件工程基本概念:了解软件工程学的形成和发展,理解软件危机和软件工程科学的产 生;理解软件的概念及软件生命周期;掌握瀑布模型及其优缺点; (2)现代程序设计技术:了解流行的高级程序设计语言;了解面向对象分析设计及编程技术; 了解常用的测试技术和测试方法; (3)重点和难点: 重点:设计表达、结构化设计与分析方法。 难点:理解测试和调试,理解软件开发新技术。 (二)自学内容和要求 1. 操作系统部分:了解作业的概念和调度控制方法。自学操作系统的设备管理和文件管理, 了解数据传送的控制方式、虚拟设备管理方法,以及文件系统的概念、文件的目录、组织 等基本概念。 2. 现代软件工程部分:了解软件工程方法中有关生存周期、需求分析的基本概念,了解面向 对象的软件设计思路和统一建模语言(UML)的特点以及软件测试维护的基本方法。 (三)实践性教学环节和要求 本课程实践性教学环节涉及数据结构和数据库两部分上机实验,总学时数为 16 学时。 1. 数据结构部分上机实验:8 学时 实验内容:在 C 语言环境下(Microsoft Visual Studio 6),练习实现基本的数据结构及算法。 内容包括:1)掌握建立顺序表和单链表的方法;2)掌握实现插入和删除等基本操作函数的方法; 3)掌握建立二叉树的方法以及先序、后序、中序遍历的操作实现;4)查找和排序算法实现。 实验要求:要求学生通过上机实验进一步深刻理解数据结构及算法的重要性,并能够利用掌握 的程序设计语言实现数据结构和相应算法。 2. 数据库部分上机实验:2 学时 实验内容:在 MySQL 环境下,练习创建数据库、创建数据表和数据表查询操作
实验要求:要求学生通过上机实验掌握基本的建表方法以及利用SQL语言建立简单查询的方 法。 四、考核方式 1.平时考核占60%:研讨成绩(15分)、报告文档成绩(5分)、SPOC单元作业(10分)、 SPOC单元测试成绩(10分)及最终小组项目(20分) 2.实验考核10% 3.期末考核占30%:考试形式为闭卷考试 五、建议教材及参考资料 (一)教材: 软件技术基础,黄迪明,电子科技大学出版社,第四版,2014 (二)参考资料: 1.计算机科学概论(第11版),J.Glenn Brookshear著,人民邮电出版社,2013. 2.数据结构与算法分析C语言描述(第二版),维斯著,机械工业出版社,2004 3.数据结构(C语言版),严蔚敏著,清华大学出版社,1997 4.Modern Operating System(The3 d Edition),Andrew S.Tanenbaum著,机械工业出版社, 2009 5.计算机操作系统教程,张尧学,清华大学出版社,2000. 6.软件工程理论与实践,S.L.P1 leeger,清华大学出版社,2003 7.数据库系统概念(第四版),Abraham Silberschatz著,高等教育出版社,2003 8. 数据库原理与应用,周燕飞,机械工业出版社,2003
实验要求:要求学生通过上机实验掌握基本的建表方法以及利用 SQL 语言建立简单查询的方 法。 四、考核方式 1. 平时考核占 60%:研讨成绩(15 分)、报告文档成绩(5 分)、SPOC 单元作业(10 分)、 SPOC 单元测试成绩(10 分)及最终小组项目(20 分) 2. 实验考核 10% 3. 期末考核占 30%:考试形式为闭卷考试 五、建议教材及参考资料 (一)教材: 软件技术基础,黄迪明,电子科技大学出版社,第四版,2014 (二)参考资料: 1. 计算机科学概论(第 11 版),J.Glenn Brookshear 著,人民邮电出版社,2013. 2. 数据结构与算法分析——C 语言描述(第二版),维斯著,机械工业出版社,2004. 3. 数据结构(C 语言版),严蔚敏著,清华大学出版社,1997. 4. Modern Operating System(The 3rd Edition),Andrew S.Tanenbaum 著,机械工业出版社, 2009. 5. 计算机操作系统教程,张尧学,清华大学出版社,2000. 6. 软件工程理论与实践,S.L.Pfleeger,清华大学出版社,2003. 7. 数据库系统概念(第四版),Abraham Silberschatz 著,高等教育出版社,2003. 8. 数据库原理与应用,周燕飞,机械工业出版社, 2003