计算机教学实验中心软件开发技术基础课程网站
欢迎访问西安交通大学计算机教学实验中心软件开发课程网站!
          教学大纲 | 实验大纲 | 教学进度 | 教学承诺 | 教师岗位细则
教学课件 | 教学录像 | 自学实验 | 教材参考                    
         课程实验 | 课程习题 | 知识百问 | 实验百问 | 在线测试 | 作业提交
电子教室| 创新作品| 网上实验平台| 创新实验管理平台| 多媒体演示| 软件文档标准| 常用工具
课程负责人| 教学队伍| 历史沿革| 教学内容| 教学条件| 教学方法| 教学效果| 自我评价| 课程规划| 佐证材料

教学内容

本课程定位与课程目标

110年来,我校形成了“起点高、基础厚、要求严、重实践”的办学传统和办学特色,成为集人才培养、科学研究和社会服务于一体的、推动社会发展的重要基地。我校的办学目标是:建设具有理工特色的世界一流综合性、研究型、国际化的世界一流大学,成为培养和造就高素质创造性人才的摇篮。

计算机基础教学是为非计算机专业学生提供的计算机知识、能力与素质方面的教育,旨在使学生掌握计算机、网络及其它相关信息技术的基本知识,培养学生利用计算机分析问题、解决问题的意识与能力,提高学生的计算机素质,为将来应用计算机知识与技术解决自己专业实际问题打下基础。

我校的学生入学时很多是各省市的高才生,是学校的学习尖子,学生素质普遍较高。结合我校的办学目标,学生不仅要有计算机办公软件的应用能力,应用专业工具软件解决本专业领域问题的能力,还应具有通过建模编程、在本专业领域中进行科学计算和软件开发的基本能力。

对理工科学生来说,应用计算机的核心是程序设计与软件开发,应用计算机水平的高低体现在软件开发能力上。“软件开发技术基础”课程是面向理工科非计算机专业学生开设的一门结合数据结构、操作系统、数据库、多媒体技术、网络技术、软件工程等基本理论和技术的基础课程,旨在让学生掌握软件开发涉及的各领域的基本原理和技术。通过实践,培养具有软件开发能力、创新意识和团队精神,能适应技术进步和社会需求变化的高素质人才。重点培养学生的上机动手能力、实际解决问题的能力、以及知识综合运用能力。

在课程内容设计的模块中,数据结构、操作系统是基础;数据库、网络、多媒体是应用;软件工程是更高层次上的概括。通过本课程的学习,学生应达到下列目标:

(1)能够使用基本的数据结构解决数据处理问题。

(2)了解操作系统内存、进程和设备的管理原理,掌握软件开发中内存和文件的使用方法。

(3)掌握数据库的基本原理和SQL语言的使用。

(4)理解网络体系结构的概念,掌握网络编程的基本原理和方法。

(5)能用一种软件开发工具,简单多媒体应用程序设计,如:用户界面设计、声音的简单处理、动画编程、媒体播放等。

(6)对软件开发过程形成系统的认识。

 
知识模块顺序及对应的学时

关于本课程的教学内容,由于进行了升级,以2005年为界:

12005年以前的知识模块

本课程有数据结构、操作系统、数据库和软件工程四大模块,面向48、56、64三种学时的对象开设。数据结构、数据库是核心,各学时教学比重都较大;48学时主要面向能动学院和管理学院,操作系统和软件工程要求降低;56学时和64学时上课学时差别不大,64学时增加了实验环节的力度。

2000-2004“软件基础”课程模块

知识模块

上课学时

48 学时

56 学时

64 学时

数据结构

12

20

16

操作系统

8

10

10

数据库系统

10

10

10

软件工程

6

8

8

合计

36

48

44

22005年以后的知识模块

根据学生的知识基础和课程体系改革的需要,增加了计算机网络和多媒体两个模块,讲授内容从理论过渡到软件开发,仍面向三种不同学时的学生开设。数据结构、操作系统和数据库是本课程的核心内容,各种学时都把它们放在重要位置; 56学时的对象主要是电气学院,通讯方面的知识要求较高,我们适当增加了计算机网络部分的学时,同时改变上课和上机的学比例;64学时的对象将网络和多媒体放在同等地位。

2006“软件开发技术基础”课程模块

知识模块

上课学时

48 学时教学

56 学时教学

64 学时教学

软件工程

4

4

4

数据结构

12

12

12

操作系统

6

8

10

数据库 技术应用基础

10

10

10

网络 编程基础

2

4

4

多媒体 技术应用基础

2

2

4

合计

36

40

44

 

下面以2006“软件开发技术基础”64学时的教学计划具体说明本课程的知识模块顺序及对应学时。

2006“软件开发技术基础”64学时教学计划

周次

日期

教学环节

内 容

课内学时

课外学时

备注
   

理论

软件概述、软件生命周期、软件工程概述

2

2  
   

理论

软件工程方法学、构件与复用技术、 C/S与B/S计算模式

2

2  
   

理论

数据结构基本概念、线性表、顺序表、链表

2

2  
   

理论

顺序栈、链栈、队列、循环队列、链式队列

2

2  
   

理论

树的基本概念、二叉树的概念 、二叉树的存储、二叉树的遍历、树的应用案例

2

2  
   

理论

图的基本概念 图的存储、图的遍历方法、图的应用案例

2

2  
   

理论

查找的概念,顺序、折半、二叉排序树查找

2

2  
   

理论

排序的概念,插入、选择、交换、快速排序算法

2

2  
   

理论

操作系统基本原理、处理器管理应用程序设计

2

2  
   

理论

Visual C++6.0 Windows编程基础

2

2  
   

理论

存储器管理应用程序设计

2

2  
   

理论

设备与文件管理应用程序设计

2

2  
   

理论

人机接口管理应用程序设计

2

2  
   

理论

数据模型、规范化理论

2

2  
   

理论

关系数据库标准语言SQL

2

2  
   

理论

数据库概念设计、数据库逻辑结构设计

2

2  
   

理论

数据库的连接技术、VC++数据库编程

2

2  
    理论 数据库编程应用案例 2 2  
    理论 网络协议与体系结构、Socket基础 2 2  
    理论 面向连接的客户/服务器编程、无连接的客户/服务器编程 2 2  
    理论 多媒体基础、多媒体控制接口、WAV文件结构 2 2  
   

理论

图形设备接口、位图文件结构、位图动画

2

2  

上课学时数

44

   

 

64学时实验安排

实验序号

周次

教学环节

内 容

课内学时

课外学时

1

 

实验

利用顺序表实现学生信息管理

2

2

2

 

实验

利用单链表实现学生信息管理

2

2

3

 

实验

二叉树的生成和遍历

2

 

4   实验 Windows常用系统命令的编程 2  
5   实验 编写模仿我的电脑功能的程序 2 2
6   实验 数据库的建立和操作 2 2

7

 

实验

数据库编程

4

2

8   实验 消息回声 2  

9

 

实验

音频文件的播放

2

2

实验学时数

20

 

 
课程的重点、难点及解决办法

1.课程教学重点

(1)掌握软件开发的系统化方法

学生在程序设计课程掌握的只是小规模、语法式、习题式的编程方法,没有开发完整的软件的经验,远远没有建立系统化、规范化的软件开发方法。而在科研和实际工作中,关键是运用最优化的软件开发方法去解决实际应用问题,因此,学生必须从小规模、语法式、习题式的程序编写过渡到系统化的、规范化的软件开发方法。

(2)掌握数据结构、数据库、编程接口等实用的软件编程技术 目前任何实用软件的开发都会涉及到数据结构、数据库、编程接口技术,它们是软件开发技术的核心,是基础的基础。学生掌握了这些技术,就具备了基本的软件开发的能力。

2.课程教学难点

(1)软件开发技术涉及面宽泛,学生在短时间内难以掌握消化。

(2)教师在软件开发技术方面不是“全才”,而新的教学内容需要每位教师补缺和充电,提升自身的实力,以便提高教学水平。

(3)在“程序设计”课程中,编程对学生一直是难点,而本课程又是编程能力的基础上的进一步提升软件开发能力,因此学生会对这门课更没有信心。

3.解决办法

(1)设计出了一批典型的应用案例和一批有实际应用背景的实验项目。通过的深入浅出的案例讲解和同步实验训练,让学生掌握各种各种软件开发技术的精髓。

(2)在课程组内,通过开设技术讲座的形式,请各位老师传授所专长的软件开发技术,达到教师之间优势互补,提高每位教师的技术水平。与此同时,通过研讨重点、难点的教学方法,提高教师的教学水平。

    

     “专长老师”讲课栩栩如生              “老师学生”听讲聚精会神

(3)通过“精讲多练”的方法,提高学生的兴趣和信心。所谓“精讲”,重点讲述各种开发技术的核心概念和关键点,强调要讲精讲透;所谓“多练”,采取渐进式、递推式的实验项目训练,学生比较容易地在计算机上实现,提高学生的成就感。另外在教材中提供各种算法的完整源程序,以便学生自学。

 
实践教学的设计思想与效果

1.实验教学设计背景

本课程的对象是非计算机专业学生,学习“软件开发技术基础”的目的是进行与本专业有关的程序设计和应用软件开发,为将来的科研工作和应用工作铺平道路。而学生在程序设计方面的困难是“不知如何下手”。由于软件开发技术只有通过实践才能掌握,简单的听课不能达到好的教学效果,所以实践教学一直是本课程的关键。从实际应用角度讲解软件开发技术也是这门课程的主要特色。

2.实验教学设计思想与原则

我们的思想是带领学生分析一些小的软件项目并实现,让他们逐步学会分析问题、解决问题方法。我们在实验设计、实验辅导,特别是大作业项目中贯穿了这一思想。??实验的设计原则是:

●   每个知识大类都应有一定数量的实验

●   实验要体现基本原理,实验要留给学生思考的余地

●   实验要有可操作性,不能对实验环境提出过高的要求,方便实现

●   实验有分层次,课程教学实验应达到基本要求

●   有不同类别的开放实验题目,以便学生根据兴趣选择并发挥主动性和创造力

●   实验内容应有趣味性,能激发学生兴趣

3.实验教学内容与实施

本课程按三大类开展实验教学。在实验内容体系上,分为5个知识大类,每个知识大类又分为若干个知识点,为保证分类分层次培养方案,又将这些知识点分为基础、中级、高级等不同的类。共设计实验 53个,其中基本验证型实验12个,综合设计型实验10个,研究创新型实验31个,见下表:

“软件开发技术基础”课程实验项目表

目的

实验内容

数据结构与算法

单链表的生成、插入和删除

二叉树的生成和遍历

排序二叉树的建立的查找

学生成绩的查找和排序

利用顺序表实现学生信息管理

利用单链表实现学生信息管理

表达式计算器的设计与实现

操作系统及程序设计

Windows 操作系统及应用

Windows 常用系统命令的编程

操作系统综合演示系统的设计与实现

编写模仿我的电脑功能的程序

编写供两个人玩的五子棋游戏程序

数据库及程序设计

数据库的建立和操作

数据库设计与应用

数据库编程

学生成绩管理系统

网络程序设计

消息回声

访问计数器

网络选课

多媒体程序设计

音频文件的播放

BMP 文件的处理

BMP 位图动画

综合训练

网站建设

软件基础课程辅导网站

视频点播网站

二手书交流网

BBS 论坛

动画制作

链表操作的动画

顺序表的操作动画

栈结构的操作动画

循环队列结构动画

字符串的操作动画

数组的存储方式动画

二叉树的生成和遍历动画演示

图的生成和遍历动画。

排序、查找动画

内存管理的动画

进程管理的动画

设备管理的动画

关系数据库运算的动画

数据管理类

设备管理系统

学生学籍管理系统

图书馆动态藏书管理

网络数据库管理

编程类

设计和开发一个跳棋游戏程序

设计和开发一个企业年产值表格、饼图和直方图程序

设计和开发一个 VC 源程序编辑程序

设计和开发一个热线电话系统

设计一个电子图书馆系统

设计一个电子词典

设计和开发一个迷宫生成程序

设计和开发一个翻译 HTML 文件程序

设计和开发一个屏幕保护程序

设计和开发一个 C/S 聊天程序


 

基础实验在课内学安排,采用学生上机,教师辅导的形式。同时在网上提供参考资料供学生学习、查阅。

2001年开始的开放创新实验要求学生以小组为单位,完成一个实际的软件项目,我们成为“大作业”。软件类型包括:网络编程与应用、数据库系统开发及应用、创建专题网站、专题动画、多媒体编程与应用、科学计算及应用、专业领域场景模拟实现、教学课件等。学生自己拟订实现目标(题目),自行选择开发平台、工具、技术和方法,最终提交可运行的软件。旨在发挥学生的学习主动性,在学习过程中的创作性和团队协作精神。

大作业在开学第一节课安排,任课教师引导学生编写软件开发计划、系统分析说明书、系统设计说明书、软件测试报告等文档,监督检查学生按部就班完成软件开发的全过程体验。以大作业组为单位,在教学过程中组长和组员带着问题学习、讨论、研究解决问题的方案和实现方法,集体讨论答辩和提交作品等一系列实际问题。以学生为主体,教师起教练员的作用。大作业的实现主要靠学生自己。学生遇到问题,可以随时通过网络答疑室或电子邮件进行答疑,最后组织学生答辩。教师通过检查各组软件项目完成情况、每个学生答辩情况及个人在项目开发中的贡献评定成绩。大作业成绩在课程综合成绩中的比例占到30~50%。

4.实践教学效果

我们在课程教学中坚持开展“大作业”实践环节。由于“大作业”题目密切联系实际,加之“大作业”成绩在课程综合成绩中的比例较大,极大调动了学生参加该项活动的积极性。同学们在该活动中投入较大的精力,该活动也得到了同学们的极高评价。下面的语言来自同学的项目总结。

...我确实学到了很多东西,软件的开发也在我脑中摒弃了其枯燥的形象,变得越来越有趣。 ——电商22 张洁(02084008)

我学到了很多新的知识和软件方面的应,对C++也有了些认识,我的C语言也有了提高。...这次软件基础大作业对我来说不仅是一次作业那么简单,它让我有了一个全方位的提高,对我有了很大影响。 ——工商21邵寒冰(02081019)

经过这次大作业的练习,学到了很多东西。通过编程和调试,进一步熟悉和巩固了VC++编程结构和编程风格,新学会了许多类和空间的用法,增强了我对编程的兴趣。而且这次大作业加强了小组成员的团对精神,同时也锻炼了我的组织和协调能力。 ——电气22 李新华(02041048)

在开发过程中的另一个比较有收获的就是处理问题的能力得到了提高。我们学会了仔细研究过程中可能出现的每一个环节,找出为什么,怎样会产生这样的问题,然后针对不同的文艺制定不同的解决方法,许多难题都是这样解决的。 ——能动22 洪慧(02031043)

在能力方面,我们锻炼了自己的动手能力、编程能力、思维能力,最重要的是我们增强了自己挑战困难、战胜困难的能力。 ——管工13 任素宏(01083074)

我学到的不仅仅是相关的基本知识,更是如何发现问题,解决问题,如何学习新知识的方法。这对于我来说才是最大的收获 ——电商22 党姣(02084031)

多年来涌现出一大批优秀的大作业及学生团队。到上学期,完成项目1698个,有415个项目获优秀。下图是“大作业”的部分文档及同学们参加该活动的情景

学生参加“大作业”创新活动

学生大作业文档                       文档汇编

结果表明:重基础、强实践、突出能力考核可以更充分的调动学生学习的积极性,教学效果提高了、综合应用能力提高了,课程及格率自然也提高了。下图是2004年电气21-24班实验成绩和大作业成绩的分布情况。达到良以上的占70.59%。

2004年电气21-24班实验成绩和大作业成绩的分布情况




西安交通大学计算机教学实验中心
2007-2011