羅 妤
目前,計(jì)算機(jī)輔助教學(xué)引起了社會(huì)的普遍關(guān)注。加強(qiáng)計(jì)算機(jī)基礎(chǔ)教育,不僅是為了讓學(xué)生學(xué)習(xí)掌握現(xiàn)代化的信息處理工具,同時(shí)也是對(duì)學(xué)生進(jìn)行一種科學(xué)素質(zhì)教育。為了加強(qiáng)信息學(xué)院非計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的計(jì)算機(jī)應(yīng)用能力,筆者所在學(xué)校在開(kāi)設(shè)相應(yīng)專(zhuān)業(yè)基礎(chǔ)課和專(zhuān)業(yè)課以外,還開(kāi)設(shè)了計(jì)算機(jī)軟件技術(shù)基礎(chǔ)課程這樣的專(zhuān)業(yè)選修課程。
一、目前的教學(xué)情況
由于該門(mén)課程是為非計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生開(kāi)設(shè)的,因此在該課程的教學(xué)過(guò)程中,涉及到比較廣泛的內(nèi)容,包括軟件工程、數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)和數(shù)據(jù)庫(kù)系統(tǒng)四個(gè)部分的基礎(chǔ)知識(shí)。其目的是通過(guò)該課程的學(xué)習(xí),使學(xué)生能夠全面系統(tǒng)地掌握計(jì)算機(jī)軟件技術(shù)基礎(chǔ)的基本知識(shí),熟悉軟件工程基礎(chǔ)概念、數(shù)據(jù)結(jié)果基本概念和結(jié)構(gòu)等,并且具有一定的軟件系統(tǒng)設(shè)計(jì)的能力。
在近幾年的教學(xué)中,筆者教授課程的目的是為了讓學(xué)生對(duì)軟件技術(shù)基礎(chǔ)有一定的了解,因此在教學(xué)的過(guò)程中沒(méi)有涉及到實(shí)驗(yàn)部分。但是,筆者發(fā)現(xiàn)這不能讓學(xué)生達(dá)到鞏固知識(shí)的目的。因此,在教學(xué)大綱的改編中,筆者增設(shè)了實(shí)驗(yàn)課內(nèi)容。通過(guò)實(shí)驗(yàn)教學(xué)環(huán)節(jié),能使學(xué)生在有限的教學(xué)學(xué)時(shí)內(nèi)掌握更多的知識(shí)。
二、實(shí)驗(yàn)內(nèi)容設(shè)計(jì)
1.數(shù)據(jù)結(jié)構(gòu)
在該課程的學(xué)時(shí)分配中,數(shù)據(jù)結(jié)構(gòu)的內(nèi)容占據(jù)了最大的比例。眾所周知,數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)學(xué)科中最重要的課程之一。在計(jì)算機(jī)科學(xué)中,數(shù)據(jù)結(jié)構(gòu)不僅是一般程序設(shè)計(jì)的基礎(chǔ),而且是設(shè)計(jì)和實(shí)現(xiàn)編譯程序、操作系統(tǒng)、數(shù)據(jù)庫(kù)系統(tǒng)及其它系統(tǒng)程序和大型應(yīng)用程序的重要基礎(chǔ)?,F(xiàn)今計(jì)算機(jī)知識(shí)突飛猛進(jìn),計(jì)算機(jī)軟件的規(guī)模越來(lái)越大,結(jié)構(gòu)越來(lái)越復(fù)雜,所要編寫(xiě)的程序也就越來(lái)越多。這就需要程序設(shè)計(jì)者在編程時(shí),不僅要考慮解決某一特定問(wèn)題的算法,而且首先需要考慮對(duì)這些數(shù)據(jù)量大且關(guān)系復(fù)雜的數(shù)據(jù)如何組織的問(wèn)題,也就是要研究數(shù)據(jù)的特性及其之間的相互關(guān)系,研究如何存儲(chǔ)這些數(shù)據(jù)。以上就是數(shù)據(jù)結(jié)構(gòu)的實(shí)質(zhì)所在。因此,筆者將面向?qū)ο蟮木幊趟枷胍胗?jì)算機(jī)軟件技術(shù)基礎(chǔ)教程教學(xué)中,并且通過(guò)實(shí)驗(yàn),讓學(xué)生進(jìn)一步了解和掌握數(shù)據(jù)結(jié)構(gòu)的含義。
在數(shù)據(jù)結(jié)構(gòu)中,包含了順序表、鏈表、棧、隊(duì)列、二叉樹(shù)、圖等結(jié)構(gòu)的內(nèi)容,每種結(jié)構(gòu)又包含了諸多內(nèi)容:第一,線(xiàn)性表的順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)及相關(guān)算法,如建立、插入、刪除、查找、輸出等。第二,棧的順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)及相關(guān)算法,如建空棧、判斷???、棧滿(mǎn),入棧、出棧、輸出等。第三,隊(duì)列的順序存儲(chǔ)、鏈?zhǔn)酱鎯?chǔ)及相關(guān)算法,如建空隊(duì)、判斷隊(duì)空、隊(duì)滿(mǎn),進(jìn)隊(duì)、出隊(duì)、輸出等。第四,二叉樹(shù)的存儲(chǔ)及相關(guān)算法,如建立、前序遍歷、中序遍歷、后序遍歷以及二叉樹(shù)查找等。第五,圖的存儲(chǔ)及相關(guān)算法,如建立、插入、刪除、查找、輸出節(jié)點(diǎn),圖的深度優(yōu)先遍歷、廣度優(yōu)先遍歷等。
由于課時(shí)的限制,因此,在實(shí)驗(yàn)的分配上,學(xué)習(xí)二叉樹(shù)的遍歷?!氨闅v”是抽取數(shù)據(jù)結(jié)構(gòu)中各個(gè)數(shù)據(jù)值?!岸鏄?shù)遍歷”是以固定的順序,有系統(tǒng)地抽取二叉樹(shù)中的各個(gè)節(jié)點(diǎn),且每個(gè)節(jié)點(diǎn)均恰好被抽取一次。二叉樹(shù)結(jié)構(gòu)如圖1所示。
二叉樹(shù)結(jié)構(gòu)中的每個(gè)節(jié)點(diǎn)均有左右兩個(gè)分支,在遍歷的過(guò)程中可以選擇往左或往右走,遍歷結(jié)束,每個(gè)節(jié)點(diǎn)均被抽取一次。事實(shí)上,二叉樹(shù)遍歷是以遞歸的方式進(jìn)行的,依遞歸的調(diào)用順序之不同,可分為三種不同的遍歷方式:前序遍歷、中序遍歷和后序遍歷。下面給出二叉樹(shù)節(jié)點(diǎn)的數(shù)據(jù)類(lèi)型及前序遍歷的流程圖。
二叉樹(shù)節(jié)點(diǎn)的數(shù)據(jù)類(lèi)型為:
struct tree
{
struct tree*left;
int data;
struct tree *right;
};
typedef struct tree treenode;
typedef treenode b_ tree;
前序遍歷思想是:先遍歷根節(jié)點(diǎn),再遍歷左子樹(shù),最后才遍歷右子樹(shù)。圖l所示的二叉樹(shù)前序遍歷順序?yàn)?ABDECFGH。
二叉樹(shù)前序遍歷的程序流程圖,如圖2所示。
2.數(shù)據(jù)庫(kù)系統(tǒng)
數(shù)據(jù)庫(kù)技術(shù),從20世紀(jì)60年代中期產(chǎn)生以來(lái),得到了迅速的發(fā)展,是計(jì)算機(jī)科學(xué)技術(shù)中發(fā)展最快的技術(shù)之一。數(shù)據(jù)庫(kù)技術(shù)在計(jì)算機(jī)輔助設(shè)計(jì)、人工智能、電子商務(wù)、工農(nóng)業(yè)生產(chǎn)、行政管理、科學(xué)研究和工程技術(shù)等諸多領(lǐng)域得到了廣泛應(yīng)用,已經(jīng)成為計(jì)算機(jī)信息系統(tǒng)和應(yīng)用系統(tǒng)的核心技術(shù)和重要基礎(chǔ)。通過(guò)學(xué)習(xí),學(xué)生能夠正確理解數(shù)據(jù)庫(kù)的基本原理,熟練掌握數(shù)據(jù)庫(kù)的設(shè)計(jì)方法和應(yīng)用技術(shù)。因此,本著培養(yǎng)應(yīng)用人才目的,針對(duì)學(xué)生過(guò)去存在的概念抽象、實(shí)踐不足等情況,該部分內(nèi)容除了理論講解之外,也增加了利用Visual FoxPro進(jìn)行上機(jī)練習(xí)的環(huán)節(jié),讓學(xué)生更直觀、更直接地了解數(shù)據(jù)庫(kù)的含義。
在數(shù)據(jù)庫(kù)的實(shí)驗(yàn)中,筆者希望學(xué)生能夠掌握基本的數(shù)據(jù)庫(kù)表的操作,包括數(shù)據(jù)庫(kù)表的建立,記錄的顯示、編輯、修改、插入和刪除等操作。學(xué)生通過(guò)操作,了解數(shù)據(jù)庫(kù)表的含義以及應(yīng)用。
在該實(shí)驗(yàn)中,筆者選擇了Visual FoxPro 6.0(VFP)軟件。VFP是一種用來(lái)進(jìn)行管理信息系統(tǒng)開(kāi)發(fā)的常用工具。Visual Foxpro6.0學(xué)習(xí)起來(lái)較為簡(jiǎn)單,易于入門(mén),而且操作方便,較為直觀,學(xué)生容易理解。因此,筆者選擇了Visual Foxpro6.0作為數(shù)據(jù)庫(kù)的基礎(chǔ)課程,旨在讓學(xué)生通過(guò)學(xué)習(xí),了解數(shù)據(jù)庫(kù)的基本原理及應(yīng)用技術(shù)。
(作者單位:重慶科技學(xué)院電子信息工程學(xué)院)