云文档网 - 专业文章范例文档资料分享平台

软件技术基础教学大纲资料

来源:网络收集 时间:2024-05-02 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

《软件技术基础》教学大纲

课程编号:23000840 适用专业:电子信息类(非计算机专业) 学时数: 40 学分数: 2.5 开课学期:第4学期 先修课程:《C语言》 考核方式:笔试(闭卷)

执笔者: 沈晓峰 编写日期:2015年3月 审核人(教学副院长):

一、 课程性质和目标

授课对象:电子信息工程专业大学二年级本科生 课程类别:学科拓展课程 教学目标:

本课程是针对工科电子信息类本科生开设的一门学科拓展课程。着重培养学生在软件设计领域的基本素质,基本方法和设计理念。授课对象为大学二年级学生,课程任务是通过本课程的学习和相关实验的练习,使学生掌握数据结构、操作系统等软件技术的基本理论知识,具有一定的软件开发能力。

二、 教学内容和要求

1、课堂理论教学要求和学时安排(32学时)

1) C程序设计(4学时)

(1)C语言回顾,指针的基本概念、运算方法和使用(2学时)。 (2)结构体的基本概念和使用方法(2学时)。 2)数据结构(20学时)

(1)数据结构的基本概念(2学时):理解数据结构的基本概念;理解线性和非线性

结构的概念。

(2)线性数据结构(9学时):理解表、栈、队列等线性数据结构的概念,存储方式

及基于不同存储方式的相关操作的实现方法。

a.理解表的概念及顺序表的存储特点,掌握其创建、插入、删除等实现方法(2学时);

b.掌握单链表、双链表、循环链表的创建、插入、删除方法(2学时); c.理解栈的概念及结构特点,掌握顺序栈及链栈的出栈、入栈操作的实现方法(2学时);

d.理解队列的概念及特点,掌握顺序、循环队列的创建、出队、入队、判空、判满等操作。掌握链队列的创建及出队、入队(2学时);

e.理解数组的概念及二维数组的存放方式,掌握对称矩阵及稀疏矩阵的压缩存储方法(1学时)。

(3)非线性数据结构(5学时):了解典型非线性数据结构的基本概念、存储和访

问方式。

a.理解二叉树、满二叉树、完全二叉树的概念及基本性质(1学时); b.掌握二叉树的三种遍历算法、树和二叉树的转换方法(2学时);

c.理解图的基本概念及性质,掌握图的邻接矩阵、邻接图存储方式(2学时)。 (4)结构查找和排序(4学时):理解查找和排序的基本概念,掌握三种查找(顺

序、二分、分块)和三种排序(简单插入,简单选择和冒泡)方法和实现。

3)操作系统(8学时)

(1)操作系统的基本概念(2学时):了解操作系统的基本概念,操作系统发展的历

程和现代操作系统的基本特征。

(2)处理机管理(4学时);理解进程、进程的状态、描述方式、进程控制的手段,

进程的同步和互斥,进程通信和死锁等基本概念,理解进程调度的相关方法。 (3)作业管理(2学时):理解作业、作业的状态、描述方式、作业控制的手段,等

基本概念,理解作业调度的相关方法。

通过这一章的学习同学们应该理解一个用户作业提交给计算机之后,操作系统控制计算机来执行该用户作业的基本流程。 2、 实验安排(8学时)

共设置5组实验,分为上机实验和课外实验两部分:上机实验包括两个实验,课外实验包括3个实验,详细实验内容见实验教学大纲。

三、考核方式

课程最后成绩构成包括:期末考试卷面成绩(70%),平时成绩(10%),实验成绩(20%)。 实验部分的考核包含上机实验和课外实验,实验成绩采用实验出勤、实验考核、实验报告和实验程序验证相结合的方式给出。

四、教材和参考资料

1、 教材

《软件技术基础》,黄迪明,电子科技大学出版社,1998年 2、 参考资料

1)高质量C编程指南,林锐,附电子版

2)数据结构(C语言),严蔚敏,清华大学出版社

3)操作系统基础教程(第6版)William S.Dav 清华大学出版社

4)深入理解计算机系统 Randal E.Bryant,David O’Hallaron 著,龚奕利,雷迎

春译,中国电力出版社

《软件技术基础实验》教学大纲

一、实验项目基本信息

实验项目名称:软件技术基础实验 适用专业:电子信息类(非计算机专业) 学时数: 8 先修课程:《C语言》

考核方式:实验过程、实验报告、实验

二、实验项目的性质和任务 1、 实验项目的性质

本实验是本科生学科拓展课程《软件技术基础》的实验部分,属软件设计的范畴。

2、 实验项目的目的和任务

通过上机实验,要求学生对常用数据结构的基本概念及其不同的实现方法的理论得到进一步的掌握,并对在不同存储结构上实现不同的运算方式和技巧有所体会。培养学生在软件设计方面的知识基础,同时也提供必要的技能训练。

3、 实验内容和要求

《软件技术基础实验》是与理论课程《软件技术基础》配套开出的,主要包含两个数据结构部分的基本上机实验和三个课外实验,着重培养同学进行软件设计的基本能力。

(1)上机实验内容:

实验一:顺序表和单链表基本操作上机实验 4学时

实验目的:理解线性结构的基本概念,掌握两种基本的存储结构:顺序存储结构(顺

序表)和链式存储结构(单链表);用C语言实现在两种存储结构上的对应操作(包括创建、删除插入元素、遍历等),巩固强化C程序设计的基本方法和能力。

实验内容:

1、顺序表的创建、元素删除、遍历等操作:

有序的一组整数{1,2,3,4,6},设计顺序表并实现以下操作: A.初始化一个空的顺序表;

B.从键盘依次输入上述数据添加到顺序表中; C.删除表中的第四个数据元素; D.显示B、C操作后顺序表中的内容。

2、现有有序的一组整数{1,2,2,3,4,6,6},设计单链表,分别编写函数实现以下操作:

A.初始化一个空链表。

B.依次添加上述一组数据(结点),生成该链表。 C.统计该链表的长度。

D.在表中查找数据为3和7的结点,并返回其位置(若找不到返回 -1)。 E.删除中间重复结点,使链表变为 1-2-3-4-6。 F.显示经B,E操作后,链表的内容。

实验二:基本查找排序操作上机实验 4学时

实验目的:掌握两种基本的查找算法(顺序查找、二分查找)和三种基本排序算法

(简单插入排序、简单冒泡排序、简单选择排序)的原理及C语言实现。

实验内容:

现有一顺序表,表中元素分别为{51,38,79,22,91,105,33,52,16,112},分别编写函数实现以下操作:

A、采用简单插入排序法实现对顺序表的排序,显示每一趟的排序结果; B、采用简单冒泡排序法实现对顺序表的排序,显示每一趟的排序结果; C、采用简单选择排序法实现对顺序表的排序,显示每一趟的排序结果; D、对上述排序后的顺序表采用顺序查找方法,查找关键字为52和关键字为36的元素,分别显示查找结果;

E、对上述排序后的顺序表采用二分查找方法,查找关键字为22的元素,显示查找结果。

(2)课外实验内容:

本环节设置了三个相对较复杂的课外实验,旨在进一步巩固学生对数据结构相关知识点的理解和掌握,提高软件开发能力。

实验三:较复杂的顺序表操作

实验目的:进一步掌握复杂顺序表的相关操作及编程实现。 实验内容:

图书资料管理问题,设一本书有编号、书名、作者、价格等信息,如下表所示:

编号 1 2 3 4 书名 Basic VB C delphi 作者 zhang Li Wang Zhao 价格 15 20 18 23 设计顺序表并实现以下操作: A、初始化线性表; B、向表中添加一条新记录; C、删除表中的第三条记录;

实验提示:本实验中图书信息的数据类型可定义如下:

typedef struct {

long int number; // 书号

char name[50]; // 书名 char author[20]; // 作者 int price; // 价格 } bookinfo;

因此顺序表的定义也应作相应的变化: typedef struct {

bookinfo data[MAXNUM];

int num; } listtype;

请同学们思考,插入和删除的函数要做怎样的修改?

实验四:栈和队列的操作实现

实验目的:理解栈和队列的基本概念,栈和队列操作的基本方法以及其编程实现。

通过本实验的两个项目的编程、调试和运行结果的比较,分析栈和队列的差别。

实验内容:

1、 设计一个容量为4的循环队列,编程实现如下操作,并显示各步骤操作后队列

的内容:

A、队列初始化为空;

B、将1、2、3三个数据依次做入队操作; C、做两次出队操作(1、2出队); D、将4、5、6三个数据依次做入队操作; E、将数据7做入队操作;

2、设计一个容量为4的顺序栈,编程实现如下操作,并显示各步骤操作后栈的内容:

A、栈初始化为空;

B、将1、2、3三个数据依次做入栈操作; C、做两次出栈操作;

D、将4、5、6三个数据依次做入栈操作; E、将数据7做入栈操作;

实验五:查找和排序操作实验

实验目的:理解在线性表中的各种基本的查找和查找方法的原理,实现方法,适用条

件,掌握各种基本查找和排序方法编程实现。

实验内容:设计一个描述学生成绩信息的线性表,用于存放学生的相关信息,学生成

绩表的基本信息如下:

姓名 成一鸣 傅强之 郭志川 姜博文 巨乐 李帅 ‥‥‥ 学号 2602302001 2602302002 2602302003 2602302004 2602302005 2602302006 ‥‥‥ 成绩 英语 73 65 87 51 69 76 ‥‥ 模电 82 76 86 78 68 62 ‥‥ 高数 83 73 91 62 78 58 ‥‥ C语言 77 82 83 60 72 63 ‥‥ 物理 92 84 81 80 79 73 ‥‥

要求编程实现以下功能:

A、 用顺序表存储以上学生成绩表;

B、 添加一个同学的相关信息;

C、 用顺序查找方法查找有某科成绩高于90分或某科成绩不及格的同学信息,

并显示相应查找结果;

D、 以英语成绩为排序码,利用简单选择排序方法对学生成绩表进行排序,并

显示排序结果;

E、 以高数成绩为排序码,利用简单插入排序方法对学生成绩表进行排序,并

显示排序结果;

F、 以C语言成绩为排序码,利用冒泡排序方法对学生成绩表进行排序,并显

示排序结果;

G、 再利用二分查找的方法在已经排序后的成绩表中查找C语言成绩为x的学

生信息(x为键盘输入分数值)。

4、 实验项目涉及核心知识点:

对最典型的线性数据结构(线性表)采用不同的存储结构时的基本算法的C语言实现;栈和队列的基本操作C语言实现,查找和排序的操作C语言实现;

5、重点和难点

重点在理解数据结构的本质,学会用数据结构中的分析方法来刻画和解决实际问题,并利用C语言为工具来编程验证这些数据结构中的基本算法;

6、实验步骤

A、问题分析和任务的定义

明确问题要求做什么,限制做什么(本步强调做什么,而不是怎么做)。对问题的描述应避开算法和所涉及的数据类型,而是所完成的任务做出明确的回答。如输入数据的类型、值的范围以及输入的形式;输出数据的类型、值的范围及输出的形式;这一步还应该为调试程序准备好测试数据,包括合法的输入数据和非法形式的输入数据。

B、数据类型和系统设计

在设计这一步骤中分为逻辑设计和详细设计两步实现。逻辑设计指 的是,为问题的描述中涉及的操作对象定义相应的数据类型,并按照以数据结构为中心的原则划分模块,定义主模块和各抽象数据类型;详细设计则为定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统的功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据的封装,基本操作的规格说明尽可能的明确和具体。作为逻辑设计的结果。应写出每个抽象数据类型的

定义(包括数据结构的描述和每个基本操作的规格说明),各个主要模块的算法,并画出模块之间的调用关系图。详细设计的结果是对数据结构和基本操作的规格说明做出进一步的求精,写出数据存储结构的类型定义,按照算法书写规范用类C语言写出函数形式的算法框架。 C、编码实现和静态检查; D、上机准备和上机调试; E、总结和整理上机实验报告;

7、使用教材和参考资料

教材名称及教材性质:

《软件技术基础》,黄迪明,电子科技大学出版社;

附:实验报告规范

实验题目

班级 姓名 学号 日期

一、需求分析

1、 程序的要实现的基本功能; 2、 输入输出的要求; 3、 测试数据。 二、概要设计

1、本程序所用的抽象数据类型的定义; 2、主程序的流程及各程序模块之间的层次关系。 三、

详细设计

1、 采用c语言定义相关的数据类型; 2、 写出各模块的伪码算法; 3、 画出函数的调用关系图。 四、

调试分析

1、 调试中遇到的问题及对问题的解决方法; 2、 算法的时间复杂度和空间复杂度。

五、 六、

使用说明或测试结果 源程序(带注释)

百度搜索“yundocx”或“云文档网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,云文档网,提供经典教师教学软件技术基础教学大纲资料在线全文阅读。

软件技术基础教学大纲资料.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.yundocx.com/wenku/235125.html(转载请注明文章来源)
Copyright © 2018-2022 云文档网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219