目前,计算机辅助教学引起了社会的普遍关注。加强计算机基础教育,不仅是为了让学生学习掌握现代化的信息处理工具,同时也是对学生进行一种科学素质教育。为了加强信息学院非计算机专业学生的计算机应用能力,笔者所在学校在开设相应专业基础课和专业课以外,还开设了计算机软件技术基础课程这样的专业选修课程。 一、目前的教学情况 由于该门课程是为非计算机专业的学生开设的,因此在该课程的教学过程中,涉及到比较广泛的内容,包括软件工程、数据结构、操作系统和数据库系统四个部分的基础知识。其目的是通过该课程的学习,使学生能够全面系统地掌握计算机软件技术基础的基本知识,熟悉软件工程基础概念、数据结果基本概念和结构等,并且具有一定的软件系统设计的能力。 在近几年的教学中,笔者教授课程的目的是为了让学生对软件技术基础有一定的了解,因此在教学的过程中没有涉及到实验部分。但是,笔者发现这不能让学生达到巩固知识的目的。因此,在教学大纲的改编中,笔者增设了实验课内容。通过实验教学环节,能使学生在有限的教学学时内掌握更多的知识。 二、实验内容设计 1.数据结构 在该课程的学时分配中,数据结构的内容占据了最大的比例。众所周知,数据结构是计算机学科中最重要的课程之一。在计算机科学中,数据结构不仅是一般程序设计的基础,而且是设计和实现编译程序、操作系统、数据库系统及其它系统程序和大型应用程序的重要基础。现今计算机知识突飞猛进,计算机软件的规模越来越大,结构越来越复杂,所要编写的程序也就越来越多。这就需要程序设计者在编程时,不仅要考虑解决某一特定问题的算法,而且首先需要考虑对这些数据量大且关系复杂的数据如何组织的问题,也就是要研究数据的特性及其之间的相互关系,研究如何存储这些数据。以上就是数据结构的实质所在。因此,笔者将面向对象的编程思想引入计算机软件技术基础教程教学中,并且通过实验,让学生进一步了解和掌握数据结构的含义。 在数据结构中,包含了顺序表、链表、栈、队列、二叉树、图等结构的内容,每种结构又包含了诸多内容:第一,线性表的顺序存储、链式存储及相关算法,如建立、插入、删除、查找、输出等。第二,栈的顺序存储、链式存储及相关算法,如建空栈、判断栈空、栈满,入栈、出栈、输出等。第三,队列的顺序存储、链式存储及相关算法,如建空队、判断队空、队满,进队、出队、输出等。第四,二叉树的存储及相关算法,如建立、前序遍历、中序遍历、后序遍历以及二叉树查找等。第五,图的存储及相关算法,如建立、插入、删除、查找、输出节点,图的深度优先遍历、广度优先遍历等。 由于课时的限制,因此,在实验的分配上,学习二叉树的遍历。"遍历"是抽取数据结构中各个数据值。"二叉树遍历"是以固定的顺序,有系统地抽取二叉树中的各个节点,且每个节点均恰好被抽取一次。二叉树结构如图1所示。 二叉树结构中的每个节点均有左右两个分支,在遍历的过程中可以选择往左或往右走,遍历结束,每个节点均被抽取一次。事实上,二叉树遍历是以递归的方式进行的,依递归的调用顺序之不同,可分为三种不同的遍历方式:前序遍历、中序遍历和后序遍历。下面给出二叉树节点的数据类型及前序遍历的流程图。 二叉树节点的数据类型为: struct tree { struct tree*left; int data; struct tree *right; }; typedef struct tree treenode; typedef treenode b_ tree; 前序遍历思想是:先遍历根节点,再遍历左子树,最后才遍历右子树。图l所示的二叉树前序遍历顺序为:ABDECFGH。 二叉树前序遍历的程序流程图,如图2所示。 2.数据库系统 数据库技术,从20世纪60年代中期产生以来,得到了迅速的发展,是计算机科学技术中发展最快的技术之一。数据库技术在计算机辅助设计、人工智能、电子商务、工农业生产、行政管理、科学研究和工程技术等诸多领域得到了广泛应用,已经成为计算机信息系统和应用系统的核心技术和重要基础。通过学习,学生能够正确理解数据库的基本原理,熟练掌握数据库的设计方法和应用技术。因此,本着培养应用人才目的,针对学生过去存在的概念抽象、实践不足等情况,该部分内容除了理论讲解之外,也增加了利用Visual FoxPro进行上机练习的环节,让学生更直观、更直接地了解数据库的含义。 在数据库的实验中,笔者希望学生能够掌握基本的数据库表的操作,包括数据库表的建立,记录的显示、编辑、修改、插入和删除等操作。学生通过操作,了解数据库表的含义以及应用。 在该实验中,笔者选择了Visual FoxPro 6.0(VFP)软件。VFP是一种用来进行管理信息系统开发的常用工具。Visual Foxpro6.0学习起来较为简单,易于入门,而且操作方便,较为直观,学生容易理解。因此,笔者选择了Visual Foxpro6.0作为数据库的基础课程,旨在让学生通过学习,了解数据库的基本原理及应用技术。 (作者单位:重庆科技学院电子信息工程学院)