中文久久久字幕|亚洲精品成人 在线|视频精品5区|韩国国产一区

歡迎來到優(yōu)發(fā)表網(wǎng),期刊支持:400-888-9411 訂閱咨詢:400-888-1571股權(quán)代碼(211862)

購物車(0)

期刊大全 雜志訂閱 SCI期刊 期刊投稿 出版社 公文范文 精品范文

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)范文

時(shí)間:2023-02-18 00:58:43

序論:在您撰寫數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)時(shí),參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)

第1篇

關(guān)鍵詞:課程內(nèi)容;結(jié)構(gòu)分析;教師素質(zhì);學(xué)習(xí)能力

隨著我國綜合實(shí)力的不斷增強(qiáng)和國際地位的不斷提升,大學(xué)計(jì)算機(jī)教育的重要性逐漸突顯出來,而計(jì)算機(jī)教育中數(shù)據(jù)結(jié)構(gòu)課程則是重中之重。進(jìn)入21世紀(jì),計(jì)算機(jī)科學(xué)與技術(shù)及相關(guān)的專業(yè)一度成為熱門專業(yè),而數(shù)據(jù)結(jié)構(gòu)是該學(xué)科的基礎(chǔ)課程,要想掌握良好的計(jì)算機(jī)技術(shù)就一定要打好基礎(chǔ),學(xué)好數(shù)據(jù)結(jié)構(gòu)課程。然而,數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容較為抽象、復(fù)雜,具有動(dòng)態(tài)性,學(xué)生在學(xué)習(xí)的過程中感覺無從下手,到實(shí)踐的過程中更是由于沒有理論知識的支持而感到疑惑重重。因此,培養(yǎng)學(xué)生的自信心,激發(fā)學(xué)生的熱情便成為當(dāng)務(wù)之急。筆者將在下文中結(jié)合自己幾年的執(zhí)教經(jīng)驗(yàn)對數(shù)據(jù)結(jié)構(gòu)課程進(jìn)行探究,不足之處,還請指教。

一、數(shù)據(jù)課程內(nèi)容及體系結(jié)構(gòu)分析

數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與應(yīng)用專業(yè)的基礎(chǔ)課程,該課程內(nèi)容主要是介紹了軟件設(shè)計(jì)中最常見的數(shù)據(jù)結(jié)構(gòu)及其儲存結(jié)構(gòu),本課程的難點(diǎn)是數(shù)據(jù)組織方面的動(dòng)態(tài)儲存結(jié)構(gòu)及遞歸技術(shù)。筆者認(rèn)為,可以從以下幾個(gè)方面進(jìn)行教學(xué):

1.做到學(xué)以致用

在進(jìn)行數(shù)據(jù)課程教學(xué)的過程中,教師可以結(jié)合實(shí)例向?qū)W生展示整個(gè)課程的內(nèi)容及每個(gè)章節(jié)的重難點(diǎn)知識,最大限度地激發(fā)學(xué)生的學(xué)習(xí)熱情和積極性,這樣不僅可以使學(xué)生對本課程有個(gè)大致的了解,使學(xué)生很好地掌握理論知識,還可以培養(yǎng)學(xué)生運(yùn)用理論知識解決實(shí)際問題的能力,真正做到學(xué)以致用。

2.為學(xué)生總結(jié)知識框架

教師要采用科學(xué)的方法對教學(xué)內(nèi)容進(jìn)行整理,為學(xué)生總結(jié)知識框架,這樣便于學(xué)生自主學(xué)習(xí)。知識框架要由多個(gè)相互關(guān)聯(lián)的模塊構(gòu)成,便于課程中多種知識的組合。

3.進(jìn)行嚴(yán)格的訓(xùn)練

由于數(shù)據(jù)課程知識較為抽象,對于一些難度較大,較難理解的知識一定要進(jìn)行及時(shí)、嚴(yán)格的訓(xùn)練,這樣可以很好地培養(yǎng)學(xué)生嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度,在試題之中,教師要適當(dāng)?shù)乜疾閷W(xué)生對知識的深入理解情況,便于掌握學(xué)生的學(xué)習(xí)情況。

4.對疑難點(diǎn)知識的補(bǔ)充教學(xué)及總結(jié)

針對數(shù)據(jù)課程中某些重難點(diǎn)知識,教師一定要進(jìn)行深入地剖析,并且可以根據(jù)實(shí)際情況對教材之中的原理部分進(jìn)行轉(zhuǎn)化便于學(xué)生接受,還可以對教材中未提及的簡易算法等進(jìn)行補(bǔ)充,使學(xué)生便于掌握、理解。

5.注重對學(xué)生能力的培養(yǎng)

數(shù)據(jù)課程具有較強(qiáng)的實(shí)踐性,在理論教學(xué)的過程中隱含了許多重要的技術(shù)知識,但教材中多是一筆帶過,使學(xué)生很難理解。針對這種情況,教師一定要對教材中沒有展開討論的重點(diǎn)技能性知識進(jìn)行解析,以培養(yǎng)學(xué)生解決問題的能力。

二、解析課程設(shè)計(jì)對計(jì)算機(jī)教師的要求

課程設(shè)計(jì)主要是針對學(xué)生的學(xué)習(xí)能力進(jìn)行的,教師一定要根據(jù)學(xué)生的實(shí)際情況及興趣愛好進(jìn)行,要注意課題的難度,盡量控制在通過學(xué)生的努力可以完成的范圍內(nèi),既不要太難,也不要過于簡單。需要注意的是,計(jì)算機(jī)教師一定要對整個(gè)過程進(jìn)行掌控,如果發(fā)現(xiàn)這個(gè)課題較難,學(xué)生花費(fèi)了很長的時(shí)間也不能解決,教師就是及時(shí)進(jìn)行指導(dǎo),幫助學(xué)生渡過難關(guān)。因?yàn)?,如果?jīng)過長時(shí)間的思考還沒有解決問題,學(xué)生的興趣和信心都會在一定程度上減弱,最終會出現(xiàn)消極心理,這非常不利于學(xué)生的發(fā)展;不僅如此,還要對數(shù)據(jù)結(jié)構(gòu)課程的設(shè)計(jì)進(jìn)行嚴(yán)格的驗(yàn)收,嚴(yán)謹(jǐn)?shù)膶Υ龑W(xué)生的成績評定。在設(shè)計(jì)完成后,教師要進(jìn)行現(xiàn)場評定,要充分地檢查各種數(shù)據(jù),明確指出設(shè)計(jì)之中存在的缺陷,以便于學(xué)生形成良好的治學(xué)態(tài)度,此外,對于學(xué)生設(shè)計(jì)中的閃光點(diǎn),教師也要及時(shí)肯定,不吝嗇鼓勵(lì)、表揚(yáng)的語言,使學(xué)生感受到教師對其的期望感,激發(fā)起學(xué)生的學(xué)習(xí)動(dòng)力。

通過對上文的論述可知,對數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)進(jìn)行探究具有重要的意義,對我國整體高校計(jì)算機(jī)教育事業(yè)的發(fā)展是大有裨益的。數(shù)據(jù)結(jié)構(gòu)課程作為計(jì)算機(jī)技術(shù)與應(yīng)用專業(yè)的基礎(chǔ)課程,對該專業(yè)學(xué)生的未來發(fā)展起到很大的作用,我們數(shù)據(jù)課程教師任重而道遠(yuǎn)。盡管在當(dāng)前的數(shù)據(jù)結(jié)構(gòu)教育中還存在很多問題,在未來探索的道路上更是阻礙重重,但我堅(jiān)信,天道酬勤,只要我們廣大高校計(jì)算機(jī)教育工作者恪盡職守,無私奉獻(xiàn),不斷對數(shù)據(jù)結(jié)構(gòu)課程進(jìn)行探究,一定能夠有效緩解我國當(dāng)前的教育現(xiàn)狀,為祖國培養(yǎng)出一批又批的綜合素質(zhì)較高的計(jì)算機(jī)專業(yè)人才,最終為祖國的發(fā)展和社會的進(jìn)步奉獻(xiàn)自己的一份力量。

參考文獻(xiàn):

[1]任雪萍,王立波,趙葆華.融入PIC-CDIO理念的“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)改革[J].計(jì)算機(jī)教育,2012(12).

[2]查建中.面向經(jīng)濟(jì)全球化的工程教育改革戰(zhàn)略:兼談CDIO工程教育模式實(shí)施[J].計(jì)算機(jī)教育,2010(11).

第2篇

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);微課;思維導(dǎo)圖

一、背景

數(shù)據(jù)結(jié)構(gòu)課程作為計(jì)算機(jī)專業(yè)的核心基礎(chǔ)課程,學(xué)好數(shù)據(jù)結(jié)構(gòu)才能為許多后續(xù)課程的學(xué)習(xí)打下良好的基礎(chǔ)。課程要求學(xué)生通過理論與實(shí)踐學(xué)習(xí)之后,能掌握各種數(shù)據(jù)結(jié)構(gòu)以及與之相關(guān)的算法的知識,并將這些知識應(yīng)用到對具體實(shí)際問題的分析中。參照ACM/IEEE-CS的《ComputeCurricula2001》報(bào)告中提出的數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容主題[1]有幾十個(gè),即課程的教學(xué)內(nèi)容多,覆蓋面廣,而且由于很多重要知識的理論性較強(qiáng),特別是一些難點(diǎn)知識比較抽象而難以理解,所以數(shù)據(jù)結(jié)構(gòu)是被學(xué)生廣泛認(rèn)為難學(xué)、難懂、難實(shí)踐的課程。學(xué)習(xí)的過程通常由“信息傳遞”和“吸收內(nèi)化”兩個(gè)階段構(gòu)成,采用信息化技術(shù)手段開展以微課、慕課、云課程、翻轉(zhuǎn)課堂為代表的數(shù)字化教學(xué)是實(shí)現(xiàn)知識信息傳遞的有效手段[2]。微課一般是在課堂教學(xué)之外,由學(xué)生主動(dòng)參與的輕量化、碎片化、結(jié)構(gòu)化的學(xué)習(xí)方式,通過良好的課程結(jié)構(gòu)設(shè)計(jì),結(jié)合短視頻、動(dòng)畫、語音等手段,能有效地將抽象的知識轉(zhuǎn)為形象化的內(nèi)容,從而高效促進(jìn)學(xué)生“吸收內(nèi)化”的進(jìn)程。

二、微課及設(shè)計(jì)方法

微課(Microlecture),是指運(yùn)用信息技術(shù)按照認(rèn)知規(guī)律,呈現(xiàn)碎片化學(xué)習(xí)內(nèi)容、過程及擴(kuò)展素材的結(jié)構(gòu)化數(shù)字資源[3]。微課課程平臺是學(xué)生在課堂教學(xué)外的細(xì)化教學(xué)知識,實(shí)現(xiàn)“自主學(xué)習(xí)”和“個(gè)性化學(xué)習(xí)”的環(huán)境,在微課平臺上,學(xué)生可按需選擇學(xué)習(xí),既可查漏補(bǔ)缺,又能強(qiáng)化鞏固知識,是課堂學(xué)習(xí)的一種重要補(bǔ)充和拓展。從邏輯結(jié)構(gòu)角度看,一個(gè)完整微課課程通常由一系列微課單元構(gòu)成,一個(gè)微課單元除了用來講述該教學(xué)主題知識點(diǎn)的課堂教學(xué)短視頻及與短視頻配套的描述或解釋的短文這一最重要的核心部分之外,通常還包含與該教學(xué)主題相關(guān)的練習(xí)測試及師生交流等輔教學(xué)資源,這些資源共同組成了一個(gè)主題式、半結(jié)構(gòu)化的微課教學(xué)單元。一個(gè)設(shè)計(jì)良好的微課單元通常具備主題選題精準(zhǔn)和內(nèi)容組織合理的特點(diǎn)。選題精準(zhǔn)就是一個(gè)微課單元是一個(gè)教學(xué)主題,在設(shè)計(jì)這個(gè)主題時(shí),要注意這個(gè)選題所覆蓋的知識或原理應(yīng)較為簡單[4],其涵蓋知識點(diǎn)可選2—3個(gè);內(nèi)容組織合理就是知識內(nèi)容的組織和分解簡明,將一個(gè)教學(xué)主題核心知識點(diǎn)和目標(biāo)分解為若干個(gè)子知識點(diǎn)或步驟,這個(gè)核心知識點(diǎn)的分解最好只要一層邏輯,盡量不要在子知識點(diǎn)下再分解。

三、數(shù)據(jù)結(jié)構(gòu)微課設(shè)計(jì)過程

數(shù)據(jù)結(jié)構(gòu)課程要求學(xué)生能合理選擇數(shù)據(jù)結(jié)構(gòu),并把與問題相關(guān)的數(shù)據(jù)組織起來實(shí)現(xiàn)準(zhǔn)確和高效計(jì)算處理,所以數(shù)據(jù)結(jié)構(gòu)的核心概念由數(shù)據(jù)的邏輯結(jié)構(gòu)及其定義在邏輯結(jié)構(gòu)上的運(yùn)算、數(shù)據(jù)的存儲結(jié)構(gòu)以及運(yùn)算的實(shí)現(xiàn)、運(yùn)算算法的復(fù)雜度分析三個(gè)方面構(gòu)成,而且在課程中數(shù)據(jù)的結(jié)構(gòu)又與其相關(guān)的算法纏繞在一起[5],使得在微課設(shè)計(jì)時(shí)所做的知識點(diǎn)分析必須循序漸進(jìn)地展開,采用由淺到深、由易到難的步驟,再從這個(gè)課程的知識體系出發(fā),選取其中的重點(diǎn)、難點(diǎn)、疑點(diǎn)、考點(diǎn)、易錯(cuò)點(diǎn)、熱點(diǎn)和擴(kuò)展點(diǎn),設(shè)計(jì)和制作一系列既相對獨(dú)立,又環(huán)環(huán)相扣的微課主題單元[6]。

(一)知識點(diǎn)分析與微課主題單元?jiǎng)澐?/p>

設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)課程的微課時(shí),首先按照課程內(nèi)容的知識結(jié)構(gòu)來完成各個(gè)主題單元的設(shè)計(jì)和劃分。我國的大部分?jǐn)?shù)據(jù)結(jié)構(gòu)與算法的教材[7-8]把課程的知識體系對應(yīng)到教學(xué)內(nèi)容之后,分成了基本概念和基礎(chǔ)知識、線性數(shù)據(jù)結(jié)構(gòu)及相關(guān)算法、樹形結(jié)構(gòu)及相關(guān)算法、圖結(jié)構(gòu)及相關(guān)算法四個(gè)教學(xué)組成部分,這四個(gè)組成部分又可分別分成若干子模塊,每個(gè)子模塊又可再分成若干主題單元;劃分方法可以使用表格或思維導(dǎo)圖來協(xié)助完成。思維導(dǎo)圖是表達(dá)發(fā)散性思維的有效圖形思維工具,能直觀地把各級主題的關(guān)系用相互隸屬與相關(guān)的層級圖表現(xiàn)出來[9]。借助思維導(dǎo)圖,我們能有效完成微課課程知識結(jié)構(gòu)的設(shè)計(jì)工作,圖1是我們設(shè)計(jì)線性數(shù)據(jù)結(jié)構(gòu)及相關(guān)算法部分的微課主題單元思維導(dǎo)圖。

(二)微課主題單元設(shè)計(jì)

在完成對課程的教學(xué)內(nèi)容主題劃分之后,開始對每個(gè)教學(xué)主題單元做設(shè)計(jì)。設(shè)計(jì)主題單元時(shí)要以學(xué)生為中心,其內(nèi)容選擇先考慮突出主題單元中的重點(diǎn)知識點(diǎn),同時(shí)需要保證學(xué)生能看懂、能聽懂,就是盡量以生動(dòng)形象的語言和動(dòng)畫表達(dá)知識點(diǎn),特別是難點(diǎn)和常見疑點(diǎn)必須演示或解釋得詳細(xì)清楚。這里以單鏈表主題單元為例。單鏈表是最簡單的鏈?zhǔn)酱鎯Y(jié)構(gòu),是深入學(xué)習(xí)樹與圖(非線性結(jié)構(gòu))的基礎(chǔ),其概念及其實(shí)現(xiàn)是本節(jié)教學(xué)的重點(diǎn)和難點(diǎn)內(nèi)容,我們按照內(nèi)容介紹的次序來繪制思維導(dǎo)圖,圖中帶星號的是重點(diǎn)知識點(diǎn)。在制作微課資源時(shí),可以針對不同特點(diǎn)的知識點(diǎn)采用不同的講解形式。對于概念性的內(nèi)容,只需用語言或文字以學(xué)生容易理解的方式講述清楚概念,而對一些抽象的內(nèi)容,可采用圖形、對比表格、動(dòng)畫等方法來講解。如單鏈表結(jié)點(diǎn)與單鏈表結(jié)構(gòu)的知識點(diǎn),我們采用的是圖形動(dòng)畫演示配合語音講解方法;在講解單鏈表的實(shí)現(xiàn)時(shí),我們采用了代碼單步執(zhí)行分析與圖形動(dòng)畫演示相結(jié)合的方法來講述,取得了較好的教學(xué)效果。

第3篇

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì);評價(jià)方式

中圖分類號:TP3 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)05-1088-02

數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容抽象,信息量大;在學(xué)習(xí)過程中所用到的技術(shù)多,而之前所介紹的專業(yè)性知識又不多,因而加大了學(xué)習(xí)難度;隱含在各部分的技術(shù)和方法豐富,也是學(xué)習(xí)的重點(diǎn)和難點(diǎn)。根據(jù)數(shù)據(jù)結(jié)構(gòu)課程本身的技術(shù)特性,設(shè)置數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)環(huán)節(jié)十分重要。通過實(shí)踐內(nèi)容的訓(xùn)練,能達(dá)到學(xué)生程序思維的訓(xùn)練和動(dòng)手上機(jī)調(diào)試程序能力的增強(qiáng) , 提高學(xué)生組織數(shù)據(jù)及編寫大型程序的能力。

1 概述

當(dāng)前我國工程教育面臨的普遍問題是:工程教育與社會和產(chǎn)業(yè)的需求脫節(jié),包括,工程教育的培養(yǎng)目標(biāo)與社會需求不一致;工程教育中的質(zhì)量評估結(jié)果不能真實(shí)的反映學(xué)生的能力;工程教育環(huán)境與職場環(huán)境相差甚遠(yuǎn)。當(dāng)前工程教育中,很少能體現(xiàn)課程體系,學(xué)科之間的關(guān)聯(lián)很少。關(guān)于課程評價(jià)和反饋,包括師生雙方地互評。老師評價(jià)學(xué)生的手段是在學(xué)期結(jié)束時(shí),給學(xué)生一個(gè)或好或差的成績。學(xué)生從這個(gè)結(jié)果中,無法得知他需要進(jìn)一步努力的方向。用人單位無法依據(jù)這份成績來判斷這個(gè)學(xué)生是否符合他們的需求。學(xué)生評教制度就是讓學(xué)生在某個(gè)時(shí)間段(比如第14周到第16周)給老師一份評價(jià)。學(xué)校根據(jù)這份評價(jià)來考核老師的教學(xué)工作是否合格。而評教的根本目的:促使教師改進(jìn)教學(xué),服務(wù)學(xué)生,滿足學(xué)生學(xué)習(xí)需求并實(shí)現(xiàn)學(xué)生學(xué)習(xí)利益,在很大程度上被忽略。

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)作為工程教育的一個(gè)環(huán)節(jié),同樣存在上述問題。另外總共32學(xué)時(shí)的課時(shí)太少,導(dǎo)致學(xué)生沒有充分時(shí)間去實(shí)施系統(tǒng)分析、設(shè)計(jì)和實(shí)施的完整過程。

學(xué)生的語言掌握程度較大程度地影響到數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的實(shí)施。往往系統(tǒng)實(shí)施的思路是正確的,由于語言不熟練,又缺乏正確的調(diào)試手段和調(diào)試方法,導(dǎo)致程序無法通過調(diào)試或者花費(fèi)大量時(shí)間進(jìn)行調(diào)試。由于沒有軟件工程的思想,系統(tǒng)事先沒有經(jīng)過周密的設(shè)計(jì),程序調(diào)試通過,驗(yàn)收時(shí)發(fā)現(xiàn)題目理解錯(cuò)誤,與老師的要求相差甚遠(yuǎn)。需要重新設(shè)計(jì),編寫代碼,造成學(xué)生大量時(shí)間的浪費(fèi)。

最后,學(xué)生的創(chuàng)新能力、溝通和團(tuán)隊(duì)協(xié)作能力有待于進(jìn)一步提高,而這些能力是作為一名工程型和創(chuàng)新型的計(jì)算機(jī)專業(yè)人才所必需具備的。比較顯著的就是溝通問題。在驗(yàn)收階段,一個(gè)簡單問題無法用恰當(dāng)?shù)恼Z言回答教師。

2 課程改革的理念和思路

課程改革的理念是充分利用本校本學(xué)院已有資源,結(jié)合CDIO理念,提高學(xué)生整體計(jì)算機(jī)專業(yè)能力,訓(xùn)練良好的思維方式,培養(yǎng)扎實(shí)的實(shí)踐能力,具備創(chuàng)新能力和團(tuán)隊(duì)合作精神。

課程改革的思路:課程改革從課時(shí)數(shù)、教學(xué)內(nèi)容、教學(xué)方法和評價(jià)與反饋等多方面展開。首先是在教學(xué)大綱上增加本門課程的學(xué)時(shí)數(shù)。在教學(xué)內(nèi)容上,把程序語言和軟件工程的內(nèi)容以恰當(dāng)?shù)匦问郊尤胝n程設(shè)計(jì)中。

在教學(xué)方法上,加強(qiáng)思維方式的訓(xùn)練,強(qiáng)調(diào)產(chǎn)學(xué)結(jié)合,增加學(xué)生工程經(jīng)驗(yàn),訓(xùn)練實(shí)踐能力。思維方式的訓(xùn)練從兩方面展開:在布置任務(wù)時(shí),提醒學(xué)生按照一定的方法進(jìn)行抽象,盡量避免手工操作(自動(dòng)化手段);在驗(yàn)收階段,針對具體的代碼和算法設(shè)計(jì)思路,教師提具體的改進(jìn)方案,并相應(yīng)地指出可能存在思維誤區(qū)。思維方式的形成不是一天就可以完成,希望經(jīng)過一學(xué)期的訓(xùn)練可以有效地改變部分同學(xué)的思維方式。工程實(shí)踐(包括工程開發(fā)各個(gè)環(huán)節(jié)的實(shí)踐)能力提高也是從兩方面展開:一是讓學(xué)生經(jīng)歷工程開發(fā)的整個(gè)過程;二是提業(yè)界真實(shí)地案例供學(xué)生模仿分析學(xué)習(xí)。

評價(jià)和反饋從師生雙方互評入手。教師對學(xué)生的評價(jià)要真實(shí)反映當(dāng)前的知識和能力,讓學(xué)生明白自己的優(yōu)勢和不足。學(xué)生對教師的評價(jià)真實(shí)反映這一學(xué)期教師的教學(xué)能力和教學(xué)態(tài)度。讓教師進(jìn)一步清楚學(xué)生具體的學(xué)習(xí)需求和自身能力提高的方向。

課程改革的目標(biāo)包括加深學(xué)生數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識的理解,拓展知識面,增強(qiáng)學(xué)生實(shí)踐動(dòng)手能力,激發(fā)學(xué)生的創(chuàng)新和團(tuán)隊(duì)協(xié)作能力,訓(xùn)練學(xué)生的溝通表達(dá)和思維能力,培養(yǎng)學(xué)生具備良好的職業(yè)素質(zhì),使學(xué)生成為一名工程型和創(chuàng)新型的優(yōu)秀計(jì)算機(jī)專業(yè)人才。

3 課程改革的內(nèi)容

該綜合課程設(shè)計(jì)預(yù)計(jì)需要32學(xué)時(shí)。其中6學(xué)時(shí)用來幫助學(xué)生加強(qiáng)程序設(shè)計(jì)能力,先由老師講解部分的難點(diǎn)重點(diǎn)(主要是在數(shù)據(jù)結(jié)構(gòu)實(shí)施過程中常用的知識點(diǎn)),然后學(xué)生完成一個(gè)相對復(fù)雜的程序。

數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計(jì)占用中間的26學(xué)時(shí)。一學(xué)期的課程設(shè)計(jì)需要學(xué)生完成3到4個(gè)不同章節(jié)的題目。由于學(xué)生能力水平參差不齊,每章教師給出3到4個(gè)難度不同的題目供選擇。這些題目部分來自配套教材,部分由教師自行設(shè)計(jì)。學(xué)生根據(jù)自身能力選擇完成其中的一個(gè)題目(也可以自主選擇題目,經(jīng)教師審核后去實(shí)施),然后提交教師驗(yàn)收。在此過程中,誘導(dǎo)學(xué)生按照軟件工程的思想去完成各個(gè)題目。具體的手段是給學(xué)生一個(gè)合理的、按照軟件工程思想設(shè)計(jì)的課程設(shè)計(jì)指導(dǎo)書。(先設(shè)計(jì)后實(shí)現(xiàn))

充分利用學(xué)院已有資源,在ACM網(wǎng)站開辟一個(gè)數(shù)據(jù)結(jié)構(gòu)專區(qū),按照ACM競賽的模式設(shè)計(jì)一些題目供有余力的學(xué)生選擇。對于已完成教師安排任務(wù)的學(xué)生,建議他們注冊登錄學(xué)院ACM網(wǎng)站去完成額外的題目,以此增強(qiáng)他們的實(shí)踐動(dòng)手能力。

課程設(shè)計(jì)的其中一個(gè)重要環(huán)節(jié)是驗(yàn)收。它不僅起著評定成績的作用,而且還承擔(dān)著訓(xùn)練思維,提高算法設(shè)計(jì)和溝通表達(dá)能力的作用。程序測試通過后,教師選擇部分感興趣的代碼,要求學(xué)生解釋。如果得不到滿意的解釋,教師可以暫停此次驗(yàn)收。這個(gè)環(huán)節(jié)可以考驗(yàn)學(xué)生的溝通表達(dá)能力,以及對系統(tǒng)的理解程度。在一定程度上的杜絕拷貝這種現(xiàn)象,退一步,就算是拷貝也必須完全理解整個(gè)系統(tǒng),強(qiáng)制學(xué)生必須實(shí)際參與課程設(shè)計(jì)。

接著去提高代碼的質(zhì)量和效率。先一起分析具體的代碼,研究算法的效率有無進(jìn)一步提高的空間。若有該如何修改,教師根據(jù)學(xué)生的具體情況,討論確定方案后,交由學(xué)生完成。效率提高后的系統(tǒng),可以在下一次課再次要求驗(yàn)收。另外,教師需要明確指出明顯不符合計(jì)算思維的代碼,要求學(xué)生當(dāng)堂修改。

最后根據(jù)題目難度、完成的質(zhì)量以及驗(yàn)收時(shí)的表現(xiàn),給出一個(gè)成績并登錄在冊,作為最終成績的一部分。每個(gè)驗(yàn)收的系統(tǒng)必須提交一個(gè)配套的課程設(shè)計(jì)報(bào)告。課程設(shè)計(jì)報(bào)告能讓學(xué)生學(xué)會正確的測試和事后的分析總結(jié),起到部分的自我評價(jià)功能。每份課程設(shè)計(jì)報(bào)告也有成績,同樣登記在冊,作為評定最終成績的一個(gè)標(biāo)準(zhǔn)。

在課程設(shè)計(jì)結(jié)束時(shí),老師除了給每位學(xué)生的一個(gè)成績以外,再對出現(xiàn)的問題進(jìn)行分析總結(jié)并以文檔的形式反饋給學(xué)生。內(nèi)容包括語言的掌握程度以及還存在的問題;數(shù)據(jù)結(jié)構(gòu)的基本內(nèi)容掌握情況,提交程序的效率、有無按照軟件工程的思想完成,還需重點(diǎn)解決的問題;創(chuàng)新能力、溝通和團(tuán)隊(duì)協(xié)作能力如何等等。

參考文獻(xiàn):

[1] John Malmqvi st. The Application of CDIO Standards in the Evaluation of Swedish Engineering Degree Programmers[J].World Transaction on Engineering and Technology Education,2006,5(2):361-364.

[2] 查建中. 面向經(jīng)濟(jì)全球化的工程教育改革戰(zhàn)略[J].計(jì)算機(jī)教育,2010(11):2-7.

[3] 中國CDIO網(wǎng)站. CDIO簡介[EB/OL].http:///vNews.asp?typeID=30&parentID=29. 2011.

[4] 茍喜霞.車載導(dǎo)航系統(tǒng)最優(yōu)路徑規(guī)劃的研究[D]. 北京:北京交通大學(xué),2009.

[5] 任雪萍,王立波,趙葆華.融入PIC-CDIO理念的“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)改革[J].計(jì)算機(jī)教育,2012(7):29-32.

第4篇

數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)的基礎(chǔ)理論知識,也是軟件設(shè)計(jì)的技術(shù)基礎(chǔ)。本課程設(shè)計(jì)的性質(zhì)是檢驗(yàn)理論科學(xué)系的效果以及綜合運(yùn)用的能力,目的是訓(xùn)練學(xué)生進(jìn)行復(fù)雜程序設(shè)計(jì)的技能和培養(yǎng)良好的程序設(shè)計(jì)習(xí)慣。本課程設(shè)計(jì)的任務(wù)是要求學(xué)生使用C或C++語言編程,解決具有一定規(guī)模的、具有實(shí)際意義的應(yīng)用題,實(shí)現(xiàn)理論課所要求的數(shù)據(jù)組織、存儲、處理的基本方法。

二、課程設(shè)計(jì)所用到的工具

這次課程設(shè)計(jì)所用到的工具M(jìn)icrosoftvisualc++6.0PC機(jī)一臺。

三、這次課程設(shè)計(jì)我所選擇的兩個(gè)題目

1、一元多項(xiàng)式計(jì)算。

設(shè)計(jì)分析

一)一元多項(xiàng)式計(jì)算

1、需求分析

要求按照指數(shù)將序排列建立并輸出多項(xiàng)式;能夠完成兩個(gè)多項(xiàng)式的相加、相減,并將結(jié)果輸入。

2、概要設(shè)計(jì)

在分析題目要求的基礎(chǔ)上,我首先設(shè)計(jì)了一個(gè)結(jié)構(gòu)體,定義如下:

structpoly

{floatcoef;

intexp;

polytypenext;};

在這個(gè)結(jié)構(gòu)體中,定義了一個(gè)浮點(diǎn)型的系數(shù)coef,還定義了一個(gè)整形的指針exp。接下來要做的就是定義各個(gè)不同用途的函數(shù),以滿足課程設(shè)計(jì)的需要,所用到的函數(shù)定義如下:

polytypeCreate_Empty_Node(int);創(chuàng)建一個(gè)空鏈表

voidInput_Values(polytype,int);輸入值

voidInsert_Node(polytype,float,int);插入接點(diǎn)

voidAdd_Poly(polytype,polytype);將兩個(gè)多項(xiàng)式相加

voidSub_Poly(polytype,polytype);將兩個(gè)多項(xiàng)式相減

voidOutPut_Results(polytype);將結(jié)果在顯示器上顯示

3、源代碼

#include"stdio.h"

#include"stdlib.h"

typedefintdatatype;/*定義多項(xiàng)式節(jié)點(diǎn)的結(jié)構(gòu)*/

typedefstructnode

{floatcoef;/*系數(shù)*/

intexpn;/*指數(shù)*/

structnode*next;/*指向結(jié)構(gòu)體的指針*/

}PotyNode;/*建立連表,返回指向多項(xiàng)式頭節(jié)點(diǎn)的指針*/

PotyNode*Creat_PotyNodeTail()

{PotyNode*L,*s,*r;/*聲明結(jié)構(gòu)體指針*/

floatc;/*系數(shù)*/

inte;/*指數(shù),建立頭節(jié)點(diǎn),頭節(jié)點(diǎn)指針設(shè)置為空*/

L=(PotyNode*)malloc(sizeof(PotyNode));

L->next=NULL;/*是指針r指向頭節(jié)點(diǎn)*/

r=L;

printf("\ninputcoefandexpn:");

scanf("%f%d",&c,&e);

while(c!=0)/*輸入的第一項(xiàng)系數(shù)不允許為0,防止無意義的輸入*/

{/*初始化節(jié)點(diǎn)*/

s=(PotyNode*)malloc(sizeof(PotyNode));s->coef=c;s->expn=e;s->next=NULL;

r->next=s;/*連接節(jié)點(diǎn)*/

r=s;/*指針r指向當(dāng)前節(jié)點(diǎn),用于連接下一節(jié)點(diǎn)*/

printf("\ncoefandexpn:");

scanf("%f%d",&c,&e);

}returnL;

}/*獲得多項(xiàng)式的長度,參數(shù)為多項(xiàng)式頭節(jié)點(diǎn)指針*/

intGetlength(PotyNode*L)

{PotyNode*p;intcount=0;p=L->next;

while(p)

{count++;p=p->next;}

returncount;}/*獲得指向i節(jié)點(diǎn)的指針,在刪除節(jié)點(diǎn)的時(shí)候來獲得準(zhǔn)備刪除的前一節(jié)點(diǎn)*/

PotyNode*GetElem_PotyNode(PotyNode*L,inti)

{PotyNode*p;intj=0;p=L;

while(p->next&&j!=i)/*當(dāng)p不是尾節(jié)點(diǎn),并且不是第i個(gè)節(jié)點(diǎn)*/

{j++;p=p->next;}

if(i==j)

returnp;/*找到節(jié)點(diǎn)*/

else

returnNULL;/*沒有找到節(jié)點(diǎn)*/}/*刪除節(jié)點(diǎn)i*/

intDelete_PotyNode(PotyNode*L,inti)

{PotyNode*q,*p;/*獲得節(jié)點(diǎn)i的前一個(gè)節(jié)點(diǎn),便于刪除節(jié)點(diǎn)i*/

p=GetElem_PotyNode(L,i-1);q=p->next;

if(q)/*如果P為空,則說明節(jié)點(diǎn)p也就是節(jié)點(diǎn)i-1就是尾節(jié)點(diǎn),節(jié)點(diǎn)i實(shí)際并不存在*/

{p->next=q->next;

free(q);return1;}

else

return0;}/*對輸入的多項(xiàng)式LA,LB進(jìn)行相加,結(jié)果為LC,返回指向LC頭節(jié)點(diǎn)的指針*/

PotyNode*Add_PotyNode(PotyNode*LA,PotyNode*LB)

{PotyNode*LC,*q1,*q2,*r,*s,*p;

intx=1;q1=LA->next;q2=LB->next;LC=LA;

LC->next=NULL;/*指針r是當(dāng)前指針便于進(jìn)行各種操作*/

r=LC;

while(q1&&q2)/*當(dāng)多項(xiàng)式LA,和LB都沒有結(jié)束的時(shí)候*/

{if(q1->expn<q2->expn)

{s=q1;q1=q1->next;}

elseif(q1->expn>q2->expn)

{s=q2;q2=q2->next;}/*指數(shù)相同,相加*/

else{q1->coef+=q2->coef;

s=q1;q1=q1->next;q2=q2->next;}/*結(jié)果連接到多項(xiàng)式LC*/

s->next=NULL;r->next=s;r=s;}/*如果LB已結(jié)束,把LA剩余的部分連接到LC上*/

if(q1)r->next=q1;

if(q2)r->next=q2;/*去除多項(xiàng)式中系數(shù)為零的項(xiàng),我對代碼作了小的修改*/

p=LC->next;

while(p->next)

{if(p->coef==0)

{p=p->next;

Delete_PotyNode(LC,x);}

else

{p=p->next;x++;}}

returnLC;}/*打印多項(xiàng)式*/

voidprint_PotyNode(PotyNode*L)

{inti;PotyNode*p=L->next;

for(i=0;i<Getlength(L);i++)

{printf("%fX%d",p->coef,p->expn);

if(p->next==NULL)

return;

elseprintf("+");

p=p->next;}}

voidmain()

{PotyNode*LA,*LB,*LC;

intx;

printf("inputLA(endby0):\n");

LA=Creat_PotyNodeTail();

printf("f(LA)=");

print_PotyNode(LA);

printf("\ninputLB(endby0):\n");

LB=Creat_PotyNodeTail();

printf("\n");

printf("f(LB)=");

print_PotyNode(LB);

printf("\n");

LC=Add_PotyNode(LA,LB);

printf("Afteraddf(LA)andf(LB),f(LC)is:");

print_PotyNode(LC);

scanf("%d",&x);}

3、運(yùn)行結(jié)果

提示輸入一個(gè)多項(xiàng)式LA(以0結(jié)束)然后輸入每項(xiàng)的系數(shù)和指數(shù),輸入后再提示輸入另一個(gè)多項(xiàng)式LB(以0結(jié)束)然后輸入每項(xiàng)的系數(shù)和指數(shù)。按回車鍵后得出f<LC>=f<LA>+f<LB>。

1、需求分析

1)輸入數(shù)據(jù)的形式和范圍:可以輸入大寫、小寫的英文字母、任何數(shù)字及標(biāo)點(diǎn)符號。

2)輸出形式:(1)分行輸出用戶輸入的各行字符;(2)分4行輸出“全部字母數(shù)”、

“數(shù)字個(gè)數(shù)”、“空格個(gè)數(shù)”、“文章總字?jǐn)?shù)”(3)輸出刪除某一字符串后的文章

2、概要設(shè)計(jì)

a、建立文本,存儲結(jié)構(gòu)用鏈表

voidCreateTXT(LINE*&head){

printf("\n請輸入文本,每行最多輸入80字符!\n");

printf("輸入Ctrl+E(^E)則結(jié)束輸入\n");

LINE*p=newLINE;//首先為鏈表建立一個(gè)附加表頭結(jié)點(diǎn)

head=p;//將p付給表頭指針

chartmp[80];

b、計(jì)算空格數(shù)

intCount_Space(LINE*&head){//統(tǒng)計(jì)空格數(shù)

LINE*p=head;

intasc_space=32;//空格的ASCIC碼值

intcount=0;

do

{intLen=strlen(p->data);//計(jì)算當(dāng)前data里的數(shù)據(jù)元素的個(gè)數(shù)

for(inti=0;i<Len;i++)

if(p->data[i]==asc_space)count++;}//計(jì)算空格數(shù)

while((p=p->next)!=NULL);//遍歷鏈表

returncount;}

c、統(tǒng)計(jì)數(shù)字?jǐn)?shù)

intCount_Num(LINE*&head){//統(tǒng)計(jì)數(shù)字?jǐn)?shù)

LINE*p=head;

intcount=0;

do

{intLen=strlen(p->data);//計(jì)算當(dāng)前data里的數(shù)據(jù)元素的個(gè)數(shù)

for(inti=0;i<Len;i++)

if(p->data[i]>=48&&p->data[i]<=57)count++;}//計(jì)算空格數(shù)

while((p=p->next)!=NULL);//遍歷鏈表

returncount;}

d、統(tǒng)計(jì)文章的總字?jǐn)?shù)

intCount_All_Word(LINE*&head){//統(tǒng)計(jì)文章的總字?jǐn)?shù)

LINE*p=head;//保存鏈表的首地址

intcount=0;//總字母數(shù)

do

{count+=strlen(p->data);}//計(jì)算當(dāng)前行內(nèi)的字符數(shù)!除''''\0''''結(jié)束符外!注意,該統(tǒng)計(jì)包含“空格的長度!”

while((p=p->next)!=NULL);//遍歷鏈表

returncount;}

3、源代碼

/*definemacrovariables*/

#definetrue1

#definefalse0

#include<stdlib.h>

#include<stdio.h>

#include<malloc.h>

#include<string.h>

#include<conio.h>

#defineSTACK_INIT_SIZE100/*variablesinthesavestoragespace*/

#defineSTACKINCREMENT10/*incrementofdistributioninthesavestoragespace*/

typedefstruct

{char*base;/*beforeandafterthecreatingoftheshed,baseisNULL*/

char*top;/*shedpointer*/

intstacksize;/*thesavestoragespacedistributivebytheelement*/

}SqStack;

SqStackS,q;

/*constructastructuerarray*/

typedefstruct{

charcc[9999];

intno;}Array;

/*definethewholebureauvarible*/

Arraya[10000];

intm,n,i,j;

charname[40];

chart=''''\n'''';

FILE*fp;

/*constructanemputyshed*/

voidInitStack()

{S.base=(char*)malloc(STACK_INIT_SIZE*sizeof(char));

if(S.base==NULL)

exit(1);

S.top=S.base;

S.stacksize=STACK_INIT_SIZE;}

/*usingcharactershed,acceptthedatafromtheterminal*/

voidpush(chare)

{if(S.top-S.base>=S.stacksize)

{/*applyanewroom*/

S.base=(char*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(char));

if(!S.base)

exit(1);

S.top=S.base+S.stacksize;

S.stacksize+=STACKINCREMENT;}

/*acceptthenextcharacter*/

*S.top++=e;}

/*carrythewholedatainthestackintothedatasection*/

charpop()

{chare;

if(S.top==S.base)

returnfalse;

e=*(--S.top);

returne;}

/*emptythedatainthestack*/

voidClearStack()

{S.top=S.base;/*letS.topandS.basepointtothesameplace*/}

/*destroythestack*/

voidDestroyStack()

{free(S.base);/*freethedatainthestack*/

S.top=S.base;}

/*judgetheemputyoftheshed*/

intStackEmpty()

{if(S.top==S.base)

returntrue;

returnfalse;}

/*takeoutthedatafromthestackandtheputinthestucterarray*/

voidBuffer(){

n=0;m=1;

/*movethedataintheshadeuntillthestackisempty*/

while(S.top!=S.base)

{n=n+1;

a[m].no=a[m].no+1;

a[m].cc[n]=*(S.top-1);

S.top--;}}

/*savethedata*/

voidsave()

{printf("\n\nfilename:");

scanf("%s",&name);

fp=fopen(name,"wb");

for(i=1;i<=m;i++)

{for(j=a[i].no;j>=1;j--)

{fwrite(&(a[i].cc[j]),1,1,fp);}

fwrite(&t,1,1,fp);}

fclose(fp);}

/*mainfunction*/

voidmain()

{charch,e;

printf("\n\n\n\t\t\twelcometousethewholescreeneditor");

printf("\n\npressF6ifyouwanttosavethefile,youcansavethefilewhenyousee\"^Z\"\n");

printf("\n******************************************************************************\n\n");/*SqStackS_stack,D_stack;*/

InitStack();/*InitStack(D_stack);*/

ch=getchar();

while(ch!=EOF)

{while(ch!=EOF&&ch!=''''\n'''')

{switch(ch)

{case''''#'''':e=pop();break;

case''''@'''':ClearStack();break;

default:push(ch);break;}

ch=getchar();}

Buffer();

ClearStack();

if(ch!=EOF)

ch=getchar();}

save();

DestroyStack();}

4、運(yùn)行結(jié)果

三、這次課程設(shè)計(jì)的心得體會

通過實(shí)習(xí)我的收獲如下

1、鞏固和加深了對數(shù)據(jù)結(jié)構(gòu)的理解,提高綜合運(yùn)用本課程所學(xué)知識的能力。

2、培養(yǎng)了我選用參考書,查閱手冊及文獻(xiàn)資料的能力。培養(yǎng)獨(dú)立思考,深入研究,分析問題、解決問題的能力。

3、通過實(shí)際編譯系統(tǒng)的分析設(shè)計(jì)、編程調(diào)試,掌握應(yīng)用軟件的分析方法和工程設(shè)計(jì)方法。

4、通過課程設(shè)計(jì),培養(yǎng)了我嚴(yán)肅認(rèn)真的工作作風(fēng),逐步建立正確的生產(chǎn)觀念、經(jīng)濟(jì)觀念和全局觀念。

根據(jù)我在實(shí)習(xí)中遇到得問題,我將在以后的學(xué)習(xí)過程中注意以下幾點(diǎn):

1、認(rèn)真上好專業(yè)實(shí)驗(yàn)課,多在實(shí)踐中鍛煉自己。

2、寫程序的過程中要考慮周到,嚴(yán)密。

3、在做設(shè)計(jì)的時(shí)候要有信心,有耐心,切勿浮躁。

第5篇

摘要:本文針對傳統(tǒng)數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)過程中出現(xiàn)的問題,提出一種案例驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)方式,以幫助學(xué)生理解和掌握分析問題、解決問題的方法,提高自主學(xué)習(xí)能力,鍛煉設(shè)計(jì)創(chuàng)新能力。實(shí)踐表明,此教學(xué)方式能夠彌補(bǔ)傳統(tǒng)教學(xué)的不足,開闊學(xué)生的思路,提高自主完成率,達(dá)到課程設(shè)計(jì)目的。

關(guān)鍵詞:課程設(shè)計(jì);數(shù)據(jù)結(jié)構(gòu);案例驅(qū)動(dòng);教學(xué)改革

中圖分類號:G642

文獻(xiàn)標(biāo)識碼:B

1引言

數(shù)據(jù)結(jié)構(gòu)課程是計(jì)算機(jī)相關(guān)專業(yè)的專業(yè)基礎(chǔ)課程,屬于專業(yè)課程體系中的核心課程。該課程著眼于對基本數(shù)據(jù)結(jié)構(gòu)進(jìn)行闡述和分析、講解基本數(shù)據(jù)結(jié)構(gòu)的應(yīng)用并介紹典型的基本算法等三個(gè)方面,內(nèi)容比較抽象枯燥,掌握起來相對困難。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是一門獨(dú)立的實(shí)驗(yàn)環(huán)節(jié),是對數(shù)據(jù)結(jié)構(gòu)課程教學(xué)理論的延伸和補(bǔ)充,是對理論知識的綜合應(yīng)用,其目的是發(fā)揮學(xué)生的主動(dòng)性,培養(yǎng)學(xué)生分析實(shí)際問題并加以解決的能力,鍛煉學(xué)生的設(shè)計(jì)創(chuàng)新能力。

傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)輕講授,主要以對學(xué)生的單獨(dú)輔導(dǎo)為主,督促學(xué)生完成課程設(shè)計(jì)。這種方式存在后文所提及的一些問題,隨著互聯(lián)網(wǎng)資源的日益豐富,部分問題更加突出了。為了能讓學(xué)生通過課程設(shè)計(jì)更好的掌握數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,我們設(shè)計(jì)了案例驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)改革,實(shí)踐證明,該項(xiàng)教改能夠填補(bǔ)傳統(tǒng)教學(xué)過程的不足。

2傳統(tǒng)教學(xué)過程中暴露的問題

(1) 缺乏駕馭全局的能力。本科二年級學(xué)生計(jì)算機(jī)建模能力弱,沒有軟件工程的思想,因而缺乏駕馭全局的能力。軟件工程課程一般都開設(shè)在數(shù)據(jù)結(jié)構(gòu)課程之后,在進(jìn)行數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)前,學(xué)生也基本沒有分析、編寫較大程序的經(jīng)驗(yàn),這種情況造成了學(xué)生拿到問題后不知該從何下手和如何規(guī)劃好課程設(shè)計(jì)的整個(gè)過程。

(2) 生搬硬套基本數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)教材中都是最原始的數(shù)據(jù)結(jié)構(gòu),不進(jìn)行擴(kuò)展和修改基本上是不能直接用到課程設(shè)計(jì)中解決實(shí)際問題的,而采用多種數(shù)據(jù)結(jié)構(gòu)解決問題并加以比較找尋最優(yōu)方案對于學(xué)生來說就更為困難。

(3) 對高級程序語言掌握不到位。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是需要用高級程序語言來編寫的,學(xué)生對該程序語言的掌握程度直接影響到課程設(shè)計(jì)的質(zhì)量,常見的問題包括:變量定義不規(guī)范、函數(shù)功能劃分不合理、代碼可讀性較差、文件讀寫掌握不好、調(diào)試程序能力較弱等。

(4) 照搬、照抄他人課程設(shè)計(jì)的現(xiàn)象存在。由于完成課程設(shè)計(jì)的時(shí)間有限,有的學(xué)生在無法自主完成的情況下,通過網(wǎng)絡(luò)、書籍等方式來查找解題方法。本來通過查閱資料消化吸收他人的解題思路來求解自己的課程設(shè)計(jì)問題是毋庸置疑的正規(guī)途徑,然而一方面課程設(shè)計(jì)的題目每個(gè)學(xué)校每屆學(xué)生都相對比較固定,致使存在抄襲往屆學(xué)生程序的現(xiàn)象,另一方面互聯(lián)網(wǎng)的發(fā)展使得查找相似題目的課程設(shè)計(jì)源代碼并非難事。此外,市面上還存在著大量快餐式的課程設(shè)計(jì)書籍在售,這類書籍良莠不齊,多是搜集、羅列了若干課程設(shè)計(jì)題目,源碼、光盤附上,草草分析講解了事。許多學(xué)生也習(xí)慣了這種快餐式的學(xué)習(xí),能做到獨(dú)立思考、舉一反三的越來越少。

3案例驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)改革特點(diǎn)

案例驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)改革是將案例教學(xué)法引入數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)中,教師通過講解一個(gè)完整的案例分析解決過程,輔以多媒體的手段與學(xué)生交流、互動(dòng),達(dá)到培養(yǎng)學(xué)生分析并解決實(shí)際問題的能力,鍛煉學(xué)生的設(shè)計(jì)創(chuàng)新能力的目的,同時(shí)也彌補(bǔ)了目前數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)重實(shí)踐、輕講授的不足,豐富該項(xiàng)課程設(shè)計(jì)的教學(xué)內(nèi)容。該方法有以下特點(diǎn):

(1) 提前熟悉軟件工程思想。案例的分析解決過程就是一個(gè)實(shí)踐軟件工程思想的過程,學(xué)生可以在講解的過程中體會軟件開發(fā)的完整流程,進(jìn)而對自己的課程設(shè)計(jì)有全局性的考慮。

(2) 舉一反三,定制合適的數(shù)據(jù)結(jié)構(gòu)。對于案例講解中所涉及到的數(shù)據(jù)結(jié)構(gòu),教師將進(jìn)行細(xì)致的分析。采用不同數(shù)據(jù)結(jié)構(gòu)解決同一問題,在性能和功能上會有所區(qū)別,學(xué)生可以在與教師的互動(dòng)討論中提高對各種數(shù)據(jù)結(jié)構(gòu)的認(rèn)識,從而設(shè)計(jì)適合解決自己課程設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),甚至能夠采取多種解法。

(3) 養(yǎng)成良好的編程習(xí)慣。優(yōu)秀的代碼就像優(yōu)美的文章一樣能使閱讀者心情舒暢,教師講解的案例都是代碼級別的,定義規(guī)范、流程清楚、可讀性強(qiáng)、具備參考價(jià)值,這樣就促使學(xué)生養(yǎng)成良好的編程習(xí)慣。教師以多媒體手段演示代碼的編制調(diào)試過程,使學(xué)生對編程環(huán)境更加熟悉,能夠靈活運(yùn)用跟蹤、斷點(diǎn)等調(diào)試手段,開發(fā)過程事半功倍。

(4) 最大限度避免抄襲課程設(shè)計(jì)的現(xiàn)象。大多數(shù)學(xué)生事實(shí)上都希望能夠自主完成課程設(shè)計(jì),只是因?yàn)椴粫霾艑?dǎo)致抄襲往屆學(xué)生或是市售相關(guān)書籍源碼的現(xiàn)象存在。授之以魚不如授之以漁,通過對典型案例的講授,教師教給了學(xué)生解決課程設(shè)計(jì)的方法,學(xué)生找到了突破口,便愿意通過自己的努力完成任務(wù),自己能制作“大餐”,也就不再求助于“快餐”了。

4典型數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例分析

“活期儲蓄帳目管理”是常見的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目,下面以其講解過程為例簡單描述一下案例驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)的過程。

此課程設(shè)計(jì)需要實(shí)現(xiàn)的功能一般是:(1)采用交互工作方式;(2)實(shí)現(xiàn)儲戶開戶;(3)實(shí)現(xiàn)儲戶銷戶;(4)向某賬戶存款;(5)從某賬戶取款;(6)排序顯示所有賬戶信息;(7)查詢某賬戶余額;(8)查詢某賬戶交易記錄;(9)所有賬戶及其交易信息存儲至文件,程序運(yùn)行時(shí)從文件中讀入。該課程設(shè)計(jì)考察的知識點(diǎn)包括:選擇并構(gòu)造數(shù)據(jù)結(jié)構(gòu);使用與特定數(shù)據(jù)結(jié)構(gòu)相應(yīng)的算法來實(shí)現(xiàn)具體功能;對文件讀寫結(jié)構(gòu)化數(shù)據(jù);對程序設(shè)計(jì)語言的靈活運(yùn)用等。

首先應(yīng)對題目進(jìn)行大致的分析,該題目包括兩方面的信息。一方面是儲戶的信息,可設(shè)計(jì)為包含賬號、姓名和余額等字段;另一方面是交易記錄信息,可設(shè)計(jì)為包括賬號、存取時(shí)間、存取標(biāo)志、金額等字段,兩方面信息通過賬號字段關(guān)聯(lián)起來。使用順序存儲結(jié)構(gòu)、鏈?zhǔn)酱鎯Y(jié)構(gòu)或樹形結(jié)構(gòu)都可以存儲這些信息,但其中各有利弊。順序存儲結(jié)構(gòu)設(shè)計(jì)簡單,但容量固定,賬戶插入刪除需要進(jìn)行記錄的移動(dòng),單個(gè)賬戶的交易記錄信息存儲不易連續(xù)導(dǎo)致列舉時(shí)需要對全部交易記錄進(jìn)行完整遍歷,對已排序順序表查找某一記錄時(shí)可以采用特定算法(如二分法)提高效率,總體上來說實(shí)用性和整體效率相對較差。鏈?zhǔn)酱鎯Y(jié)構(gòu)設(shè)計(jì)略復(fù)雜,容量不設(shè)上限,賬戶插入刪除較方便,采用鏈?zhǔn)浇Y(jié)構(gòu)存儲的交易記錄形式上連續(xù),列舉時(shí)很方便,但在查找某一記錄時(shí)需要遍歷整個(gè)鏈表效率較低,總體上來說實(shí)用性和整體效率中上。樹形存儲結(jié)構(gòu)相對最復(fù)雜,容量也不設(shè)上限,插入、刪除算法也相對復(fù)雜,采用特殊樹形結(jié)構(gòu)(如二叉排序樹)能夠提高查找記錄時(shí)的效率,交易記錄仍可采用鏈?zhǔn)浇Y(jié)構(gòu)存儲,總體上來說實(shí)用性和整體效率較好,現(xiàn)實(shí)中的數(shù)據(jù)庫管理系統(tǒng)(DBMS)多是用樹形結(jié)構(gòu)來實(shí)現(xiàn)的。從實(shí)現(xiàn)難度上來說,順序存儲最簡單,鏈?zhǔn)酱鎯Υ沃瑯湫未鎯ψ铍y。因此,對學(xué)生一般要求其用鏈?zhǔn)酱鎯韺?shí)現(xiàn),對能力較強(qiáng)的學(xué)生可以鼓勵(lì)其用樹形存儲來實(shí)現(xiàn),以鏈?zhǔn)酱鎯槔^續(xù)討論。

賬戶信息和存取記錄之間是通過賬號來關(guān)聯(lián)的,在鏈?zhǔn)酱鎯Y(jié)構(gòu)中可以用指針來表示兩者的聯(lián)系,即每個(gè)賬戶節(jié)點(diǎn)(數(shù)據(jù)域可包含賬號、姓名和余額等字段)具有兩個(gè)指針域,一個(gè)指針指向下一個(gè)賬戶節(jié)點(diǎn),另一個(gè)指針域指向該賬戶的存取記錄鏈表(存取記錄節(jié)點(diǎn)的數(shù)據(jù)域可包含存取時(shí)間、存取標(biāo)志、金額等字段),如下圖所示。

從功能上分析,儲戶開戶、儲戶銷戶就是在賬戶鏈表中進(jìn)行插入和刪除操作;對賬戶存、取款時(shí),首先找到相應(yīng)賬戶,然后添加一條存取記錄,同時(shí)修正該賬戶的余額;排序顯示所有賬戶信息,就是對賬戶記錄依據(jù)某一關(guān)鍵字進(jìn)行排序并顯示排序結(jié)果;查詢某賬戶余額,就是遍歷賬戶鏈表,找到對應(yīng)記錄并顯示出來;查詢某賬戶交易記錄,就是先找到該賬戶,然后遍歷顯示該賬戶對應(yīng)的存取記錄鏈表??梢钥闯觯瑢~戶鏈表進(jìn)行遍歷查詢在賬戶存取款、查詢余額和查詢存取記錄是都有用到,因此在設(shè)計(jì)時(shí),可以考慮編寫查詢賬戶函數(shù),以供其他功能模塊調(diào)用。

在文件存取方面,存取時(shí)都是以存儲節(jié)點(diǎn)為單位進(jìn)行的,即一次性存取一個(gè)結(jié)構(gòu)體。該課程設(shè)計(jì)有其特殊之處,有兩種類型的結(jié)構(gòu)體需要存取,即賬戶信息和存取款記錄,這兩種結(jié)構(gòu)體所占用的空間不盡相同,若是都保存在一個(gè)數(shù)據(jù)文件中則需要一定的技巧。以保存記錄到文件為例,可以采用存一個(gè)賬戶信息,再存一個(gè)整形數(shù),該整形數(shù)的數(shù)值為此賬戶對應(yīng)存取記錄節(jié)點(diǎn)的數(shù)量,然后再逐一保存每條存取記錄,存儲完畢后再用相同方法保存下一個(gè)賬戶的記錄。讀取文件過程則是存儲過程的逆過程,這樣可以保證存取時(shí),賬戶信息和存取記錄一一對應(yīng),不至于混淆。

在確定了上述思路后,便可以著手編碼,值得注意的是數(shù)據(jù)結(jié)構(gòu)的定義。由于采用了鏈?zhǔn)浇Y(jié)構(gòu),許多同學(xué)便直接將鏈?zhǔn)浇Y(jié)構(gòu)的節(jié)點(diǎn)(包括指針域)直接存儲到文件中。事實(shí)上,這個(gè)指針域是沒有保存價(jià)值的,尤其在讀取時(shí)如果也將指針域讀出并賦值,將很有可能導(dǎo)致不可預(yù)知的錯(cuò)誤??梢圆扇〉姆椒ㄊ牵榷x只包含數(shù)據(jù)域的數(shù)據(jù)結(jié)構(gòu)體,再定義鏈表節(jié)點(diǎn)結(jié)構(gòu)體將數(shù)據(jù)結(jié)構(gòu)體封裝起來并加上指針域,在文件讀寫時(shí)只對數(shù)據(jù)結(jié)構(gòu)體進(jìn)行操作。給出該課程設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)參考定義如下:

typedef struct log //存取記錄

{

char DateTime[25]; //存取時(shí)間

char W_D; //存取標(biāo)志

float Amount; //存取金額

} log;

typedef struct node_log //存取記錄節(jié)點(diǎn)

{

log data; //存取記錄

struct node_log *next; //下一存取記錄節(jié)點(diǎn)指針

} node_log, *p_node_log;

typedef struct account //賬戶記錄

{

char ID[10]; //賬號

char Name[10]; //姓名

float Balance; //余額

} account;

typedef struct node_account //賬戶記錄節(jié)點(diǎn)

{

account data; //賬戶記錄

struct node_log *nlog; //存取記錄節(jié)點(diǎn)指針

struct node_account *next; //下一賬戶記錄節(jié)點(diǎn)指針

} node_account, *p_node_account;

其他功能模塊便可以參照數(shù)據(jù)結(jié)構(gòu)教材上的相關(guān)算法設(shè)計(jì)實(shí)現(xiàn)。

5結(jié)果與結(jié)論

我們將來自3個(gè)不同專業(yè)(計(jì)算機(jī)、網(wǎng)絡(luò)工程、軟件工程)10個(gè)班級的57名同學(xué)分成了兩組,一組(試驗(yàn)組)通過上述方法進(jìn)行了課程設(shè)計(jì)教學(xué),一組(對照組)仍采用傳統(tǒng)方法教學(xué),課程設(shè)計(jì)題目相同。課程設(shè)計(jì)對比統(tǒng)計(jì)情況如下表,其中試驗(yàn)組優(yōu)良率達(dá)到44%,不合格率13%,對照組優(yōu)良率21%,不合格率26%。同時(shí),試驗(yàn)組采用了多種方式來實(shí)現(xiàn)了課程設(shè)計(jì),且雷同情況較少,對照組多數(shù)采用順序存儲方式實(shí)現(xiàn),程序雷同情況較多。很明顯,試驗(yàn)組的學(xué)生思路更加開闊,自主完成率更高。

時(shí)代在變遷,信息獲取更加便捷,部分學(xué)生的學(xué)習(xí)積極性在某種程度上也發(fā)生了蛻變,隨之的教學(xué)方式也應(yīng)有所改變,教師應(yīng)從正面加以引導(dǎo)。在以案例驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)改革實(shí)踐中,教師通過對典型案例的細(xì)致分析,比較不同數(shù)據(jù)結(jié)構(gòu)的優(yōu)缺點(diǎn),一方面使學(xué)生更加牢固的掌握了數(shù)據(jù)結(jié)構(gòu)知識,另一方面讓學(xué)生找到入手之門,激發(fā)學(xué)習(xí)興趣,提高動(dòng)手能力,更重要的是能讓學(xué)生掌握分析和解決問題的方法,自主完成課程設(shè)計(jì),這對今后其他課程的學(xué)習(xí)也是有所裨益的。

參考文獻(xiàn):

[1] 張培,肖天慶. 基于網(wǎng)絡(luò)環(huán)境下教學(xué)設(shè)計(jì)與課程開發(fā)的合作模式研究[J]. 電化教育研究,2007,(9):60-63.

[2] 吳宏偉,張殿龍,梅險(xiǎn). 高校網(wǎng)絡(luò)輔助教學(xué)的探索與實(shí)踐[J]. 計(jì)算機(jī)教育,2007,(7):18-21.

[3] 張敏霞. 程序設(shè)計(jì)語言課程教學(xué)方法改革的探索與實(shí)踐[J]. 中國高教研究,2004,(2):90.

第6篇

(中北大學(xué) 計(jì)算機(jī)與控制工程學(xué)院,山西 太原 030051)

摘要:介紹數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺的設(shè)計(jì)過程,說明其構(gòu)建思路、系統(tǒng)結(jié)構(gòu)和實(shí)現(xiàn)方法,闡述該平臺集內(nèi)容提供、多媒體資料庫瀏覽、流媒體播放和交流互動(dòng)于一身,采用Adobe Flex、PHP、MySQL、Apache和flash Media Server等技術(shù),以純Flash方式展現(xiàn),指出使用該平臺可以更好地發(fā)揮教師引導(dǎo)、啟發(fā)、監(jiān)控教學(xué)過程的主導(dǎo)作用,同時(shí)又能充分體現(xiàn)學(xué)生作為學(xué)習(xí)過程主體的主動(dòng)性和創(chuàng)造性,有利于教師啟發(fā)教學(xué)和學(xué)生自主建構(gòu)知識體系。

關(guān)鍵詞 :數(shù)據(jù)結(jié)構(gòu);課程設(shè)計(jì);教學(xué)平臺

基金項(xiàng)目:國家自然科學(xué)基金項(xiàng)目(61379125);山西省自然科學(xué)基金項(xiàng)目(2012011015-3);山西省高等學(xué)??萍紕?chuàng)新項(xiàng)目(2014143)。

第一作者簡介:龐曉瓊,女,講師,研究方向?yàn)樾畔踩c密碼學(xué),xqpang@nuc.edu.cn。

0 引言

數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)相關(guān)專業(yè)的核心基礎(chǔ)課程,根據(jù)教學(xué)大綱安排,各章節(jié)安排相應(yīng)教學(xué)內(nèi)容的驗(yàn)證性上機(jī)實(shí)驗(yàn),還設(shè)置針對課程內(nèi)容的綜合設(shè)計(jì)實(shí)驗(yàn)環(huán)節(jié),這是考查學(xué)生理論聯(lián)系實(shí)際動(dòng)手能力的重要環(huán)節(jié),對鍛煉學(xué)生發(fā)現(xiàn)問題、解決問題的能力也很有裨益。數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)實(shí)驗(yàn)步驟如下:需求分析——選擇并構(gòu)造合適的數(shù)據(jù)結(jié)構(gòu)——功能函數(shù)設(shè)計(jì)——具體編碼實(shí)現(xiàn)——運(yùn)行測試——完成課程設(shè)計(jì)說明書。在傳統(tǒng)的教學(xué)安排中,實(shí)驗(yàn)過程由學(xué)生獨(dú)立完成,教師的作用主要是答疑、過程監(jiān)督和成果驗(yàn)收等方面,這種強(qiáng)調(diào)學(xué)生的“學(xué)”而忽視教師主導(dǎo)作用的教學(xué)過程雖然會涌現(xiàn)出一些優(yōu)秀的作品,但也存在一些問題:一是學(xué)生自由度過大,容易偏離課程設(shè)計(jì)教學(xué)目標(biāo);二是部分學(xué)生由于缺乏專業(yè)訓(xùn)練,沒有形成正解的思維方法,拿到題目無從下手,只能生搬硬套基本數(shù)據(jù)結(jié)構(gòu);三是代碼編寫不夠規(guī)范,可讀性差,也不注重文檔的整理;四是存在照抄他人課程設(shè)計(jì)的現(xiàn)象 [1-3] 。

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)是個(gè)綜合性實(shí)踐環(huán)節(jié),不僅需要數(shù)據(jù)結(jié)構(gòu)知識,還是對計(jì)算機(jī)程序設(shè)計(jì)語言、離散數(shù)學(xué)和軟件工程等課程的綜合運(yùn)用。學(xué)生的自主學(xué)習(xí)和教師的主導(dǎo)學(xué)習(xí)相結(jié)合十分重要,為更好地發(fā)揮教師引導(dǎo)、啟發(fā)、監(jiān)控教學(xué)過程的主導(dǎo)作用,結(jié)合當(dāng)前互聯(lián)網(wǎng)應(yīng)用開發(fā)的主流技術(shù),我們設(shè)計(jì)實(shí)現(xiàn)了數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺,用于指導(dǎo)和幫助學(xué)生完成課程設(shè)計(jì)。

1 設(shè)計(jì)過程

1.1 目的與思想

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺的主要目的包括:①通過優(yōu)化學(xué)生自主學(xué)習(xí)環(huán)境,完善學(xué)習(xí)策略,充分發(fā)揮教師引導(dǎo)、啟發(fā)、監(jiān)控教學(xué)過程的主導(dǎo)作用;②為學(xué)生自主建構(gòu)知識體系創(chuàng)造條件,使學(xué)生系統(tǒng)掌握數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容、鍛煉和提高編程能力,充分體現(xiàn)學(xué)生的主動(dòng)性、創(chuàng)造性并得到成就感。設(shè)計(jì)思想主要體現(xiàn)在:①充分發(fā)揮互聯(lián)網(wǎng)作用,互聯(lián)網(wǎng)應(yīng)用已成為學(xué)生課余生活的重要組成部分,教師應(yīng)因勢利導(dǎo),利用互聯(lián)網(wǎng)對學(xué)生進(jìn)行指導(dǎo)和輔導(dǎo);②要激發(fā)學(xué)生的興趣,興趣是最好的老師,教學(xué)平臺的界面要美觀大方和簡潔明朗,注重多媒體組件的選擇和使用;③學(xué)習(xí)環(huán)節(jié)的設(shè)計(jì)要貫穿整個(gè)課程設(shè)計(jì)過程,覆蓋不同知識層面的學(xué)生;④注重新媒介和新技術(shù)的使用,緊跟時(shí)展步伐;⑤尊重互聯(lián)網(wǎng)規(guī)律,在知識大爆炸時(shí)代,微課堂、“短平快”是主流,注重化繁為簡和突出重點(diǎn)。

1.2 內(nèi)容構(gòu)建

(1)教師可結(jié)合數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)環(huán)節(jié)的特點(diǎn),挑選綜合性強(qiáng)、涉及知識面廣、適合學(xué)生自主創(chuàng)新的經(jīng)典案例,由教師制作成設(shè)計(jì)分析講解、代碼編寫講解和運(yùn)行測試講解等分段視頻,學(xué)生根據(jù)需要可自主點(diǎn)播。教師通過引導(dǎo)和啟發(fā),開拓學(xué)生思維,鼓勵(lì)學(xué)生自主構(gòu)造更合理的數(shù)據(jù)結(jié)構(gòu),實(shí)現(xiàn)更完善的功能。平臺選取的案例均可用多種數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn),適用于不同層次的學(xué)生,同時(shí)也考查學(xué)生對于算法設(shè)計(jì)、內(nèi)外排序、文件存取和實(shí)現(xiàn)效率等各方面知識點(diǎn)的掌握情況,是對學(xué)生綜合能力的考驗(yàn)。

(2)為了使學(xué)生能夠?qū)W以致用,教師可通過咨詢社會上相關(guān)領(lǐng)域的工程師、系統(tǒng)分析師和從業(yè)人員并對歷屆畢業(yè)、就業(yè)的學(xué)生進(jìn)行問卷調(diào)查,在資源選擇和案例講解中注重理論聯(lián)系實(shí)際,著力從項(xiàng)目管理、軟件工程、測試驅(qū)動(dòng)開發(fā)等方面?zhèn)魇趶臉I(yè)經(jīng)驗(yàn),為提高學(xué)生的就業(yè)能力打下堅(jiān)實(shí)基礎(chǔ)。

(3)在教學(xué)資源的運(yùn)用上,教師可提供視頻、音像、文檔、幻燈片、表格、圖形圖像和電子書籍等多種媒體形式,涵蓋數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)涉及的C語言程序設(shè)計(jì)、C++語言、算法設(shè)計(jì)、離散數(shù)學(xué)等資源內(nèi)容;尊重原創(chuàng)者的版權(quán),培養(yǎng)學(xué)生的版權(quán)意識,對所有引用的資源均詳細(xì)標(biāo)明來源及版權(quán)信息。

(4)注重有教無類,使不同能力水平的學(xué)生都能從中汲取養(yǎng)分。對于初級水平的學(xué)生,通過學(xué)習(xí)視頻講解、參考優(yōu)秀作品和閱讀教師點(diǎn)評,找到完成課程設(shè)計(jì)的入口,自主完成課程設(shè)計(jì);對于能力強(qiáng)、學(xué)有余力的學(xué)生,通過查看共享資源和在自主探索中挑戰(zhàn)自我,鍛煉駕馭問題的能力,規(guī)范編程風(fēng)格并實(shí)踐軟件工程。

(5)注重溝通交流,授人以漁。平臺中開設(shè)釋疑解惑欄目和課程設(shè)計(jì)論壇,預(yù)留微信公眾賬號,學(xué)生可以提出問題及求解,促進(jìn)和強(qiáng)化師生間、學(xué)生間的互動(dòng)交流,從點(diǎn)點(diǎn)滴滴中積累學(xué)習(xí)。

2 實(shí)現(xiàn)過程

2.1 系統(tǒng)架構(gòu)

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺的系統(tǒng)架構(gòu)如圖1所示。

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺Web服務(wù)器采用Apache服務(wù)器,以純Flex技術(shù)實(shí)現(xiàn),數(shù)據(jù)庫采用MySQL,由PHP從數(shù)據(jù)庫中讀取數(shù)據(jù)形成XML文件提供給Flex使用,用戶通過瀏覽器以HTTP協(xié)議訪問該平臺。媒體播放采用兩種形式:一是普通的媒體文件,均以Flash形式提供,包括幻燈片、課件、文檔和書籍等;二是流媒體,通過FMS(Adobe Flash Media Server)流媒體服務(wù)器以RTMP協(xié)議向客戶端推送。相對于下載后觀看的網(wǎng)絡(luò)播放形式而言,流媒體的典型特征是把連續(xù)的音頻和視頻信息壓縮后放到網(wǎng)絡(luò)服務(wù)器上,用戶可以邊下載邊觀看。采用流媒體方式和流媒體服務(wù)器還可以減輕服務(wù)器的訪問壓力,使得平臺能夠同時(shí)處理更多的用戶視頻點(diǎn)播請求。

2.2 技術(shù)特點(diǎn)

(1)平臺是一個(gè)典型的富互聯(lián)網(wǎng)應(yīng)用(rich internet application,RIA),RIA的好處在于比用HTML能實(shí)現(xiàn)的接口更加健壯,反應(yīng)更加靈敏,可視化特性更加出色。RIA的實(shí)現(xiàn)技術(shù)包括Ajax、Flex和Silverlight等,本平臺使用的是Flex技術(shù)。Flex結(jié)合了音頻、視頻和實(shí)時(shí)通訊,用戶體驗(yàn)極佳,具備桌面應(yīng)用程序的用戶交互感和傳統(tǒng)網(wǎng)絡(luò)應(yīng)用的部署便利性。

(2)平臺開發(fā)堅(jiān)持跨平臺、跨瀏覽器的特性,使用技術(shù)及組件包括Adobe Flex、Apache、PHP、MySQL、Adobe Flash Media Server等,均具備良好跨平臺特性,后臺服務(wù)器支持Windows、Linux和Unix等不同操作系統(tǒng)。平臺以純粹的Flash形式展現(xiàn),具備良好跨瀏覽器特性,只要裝有Flash Player的瀏覽器都能夠正常瀏覽,支持所有主流瀏覽器,如IE、火狐、UC、Chrome等,客戶端支持Windows、Linux等主流操作系統(tǒng),同樣也支持移動(dòng)互聯(lián)網(wǎng)以及基于Android、iOS的平板電腦、手機(jī)等便攜設(shè)備。

(3)平臺中使用到的視頻、音像、文檔、幻燈片、表格、圖形圖像和書籍等統(tǒng)一轉(zhuǎn)換為flv格式文件,用戶只需要通過瀏覽器就可以在線查看上述各種形式的媒體資源,不需安裝任何其他插件或應(yīng)用軟件(如Word、 Excel、 Powerpoint等),充分考慮了客戶端的跨平臺和多樣性。

(4)視頻點(diǎn)播和視頻直播中采用了FMS(Adobe Flash Media Server)流媒體服務(wù)器,該技術(shù)是主流的視頻傳播實(shí)現(xiàn)技術(shù)。通過FMS,流媒體文件將通過RTMP協(xié)議向客戶端推送,圖像壓縮率更高,播放流暢清晰。與下載視頻文件到本地后觀看的網(wǎng)絡(luò)播放形式相比,流媒體的典型特征是用戶可以邊下載邊觀看,瀏覽速度快,播放中支持拖拽和定位。此外,F(xiàn)MS還具備良好的可擴(kuò)展能力,可根據(jù)用戶群規(guī)模增加邊緣服務(wù)器(edge server)迅速提高訪問能力。

(5)流媒體視頻講解中充分利用了電子黑板軟件,結(jié)合數(shù)位板硬件,在多媒體教學(xué)結(jié)合“板書”講解,既“現(xiàn)代”又“傳統(tǒng)”,讓教師能夠把握教學(xué)的主線,學(xué)生有充分的消化時(shí)間,彌補(bǔ)了多媒體教學(xué)中的不足。

(6)設(shè)計(jì)細(xì)節(jié)上注重界面設(shè)計(jì),功能分區(qū)清晰、導(dǎo)航明確、操作簡便、提示信息豐富;而Flash的動(dòng)態(tài)特點(diǎn)可以增強(qiáng)平臺的動(dòng)感效果,使得顏色搭配賞心悅目、色調(diào)把握得當(dāng)并以CSS樣式表統(tǒng)一平臺的風(fēng)格,提高學(xué)生的使用興趣。

2.3 功能模塊

平臺目前具備7個(gè)模塊,分別是首頁、影音中心、堂件集萃、資源共享、自主探索、優(yōu)秀作品和釋疑解惑,如圖2所示。

1) 首頁模塊。

首頁模塊(如圖3所示)是平臺的門面,介紹平臺的目的和特色,展示最新的信息和媒體介紹。首頁分為4個(gè)功能區(qū)域:1是新聞區(qū),用來最新的通知、相關(guān)信息、教師布置的作業(yè)等;2是最新媒體資源展示區(qū);3是平臺的菜單導(dǎo)航區(qū);4是網(wǎng)絡(luò)資源鏈接區(qū)。

2) 影音中心模塊。

影音中心模塊(如圖4所示)集中展現(xiàn)平臺中所有的媒體資源,包括flv形式的流媒體視頻,F(xiàn)lash形式的教學(xué)堂件、幻燈片,F(xiàn)lash形式的文檔、表格、書籍、代碼和資料,分為3個(gè)功能區(qū)域:1是資源類目區(qū),以樹型結(jié)構(gòu)展示;2是媒體放映區(qū),支持各種格式的文檔(如圖5所示),也能進(jìn)行視頻點(diǎn)播和在線視頻直播;3是資源區(qū),顯示當(dāng)前類目對應(yīng)的視頻、幻燈和文檔資源。

3) 堂件集萃模塊。

堂件集萃模塊(如圖6所示)以圖像列表方式展現(xiàn)理論課堂教學(xué)和案例視頻教學(xué)中的堂件,每個(gè)堂件均配有標(biāo)題、所屬類目、內(nèi)容介紹等文字信息。所有堂件都是以Flash的形式展現(xiàn),支持聲音、動(dòng)畫、切換等功能(如圖7所示)。

4) 資源共享模塊。

資源共享模塊匯集教師和學(xué)生提供的電子書、國內(nèi)外經(jīng)典數(shù)據(jù)結(jié)構(gòu)教材等信息資源和學(xué)習(xí)輔助材料,每個(gè)文檔均注明資源名稱、來源、所屬類目、內(nèi)容介紹、版權(quán)信息等情況。該模塊以文字列表形式展現(xiàn),通過點(diǎn)擊單條記錄可在線閱覽相應(yīng)文檔。所有文檔資料均采用FlashPaper形式提供在線閱讀,不需安裝其他插件或軟件。

5) 自主探索模塊。

自主探索模塊提供一些課程設(shè)計(jì)實(shí)踐環(huán)節(jié)要求之外的、富有挑戰(zhàn)性的課題,方便學(xué)生開拓思維、勇攀高峰、鍛煉挑戰(zhàn)自我能力,促進(jìn)學(xué)生自學(xué)。

6) 優(yōu)秀作品模塊。

優(yōu)秀作品模塊提供歷屆學(xué)生的優(yōu)秀作品,這些作品均完成得較為出色且富有創(chuàng)新性,具有參考價(jià)值,可供廣大學(xué)生下載和學(xué)習(xí)。每個(gè)作品都包含作者信息,詳細(xì)注明題目要求和設(shè)計(jì)內(nèi)容,有些還附有教師點(diǎn)評。

7) 釋疑解惑模塊。

釋疑解惑模塊(如圖8所示)是師生之間、學(xué)生與學(xué)生間互助學(xué)習(xí)的園地,分為3個(gè)功能區(qū)域:1區(qū)顯示既往學(xué)生提出的問題及教師的答復(fù);2區(qū)是學(xué)生向教師提出問題的區(qū)域;3區(qū)提供“中北大學(xué)數(shù)據(jù)結(jié)構(gòu)論壇”的鏈接。

3 結(jié)語

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)輔助教學(xué)平臺已在3屆計(jì)算機(jī)、網(wǎng)絡(luò)工程、軟件工程專業(yè)學(xué)生的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)過程中使用。通過指導(dǎo)教師和每個(gè)學(xué)生進(jìn)行一對一答辯的結(jié)果來看,學(xué)生的課程設(shè)計(jì)水平有了明顯提高,對數(shù)據(jù)結(jié)構(gòu)的運(yùn)用更加靈活,思路也更加開闊,達(dá)到了建設(shè)該輔助教學(xué)平臺的初衷。下一步,我們將設(shè)計(jì)開發(fā)與該平臺對應(yīng)的微信公眾賬號,使平臺成為師生課余交流的重要途徑。

參考文獻(xiàn):

[1] 龐曉瓊. 案例驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)教學(xué)改革實(shí)踐[J]. 計(jì)算機(jī)教育, 2009(1): 53-55.

[2] 馬巧梅, 龐曉瓊, 楊秋翔. 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)案例教程[M]. 北京: 人民郵電出版社, 2012: 1-3.

第7篇

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);課程設(shè)計(jì);教學(xué)過程;實(shí)施方法;評價(jià)標(biāo)準(zhǔn)

中圖分類號:TP311.12 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2013)22-5101-02

數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的一門必修的專業(yè)基礎(chǔ)課,是計(jì)算機(jī)理論與技術(shù)的重要基石。該課程的主要特點(diǎn)是實(shí)踐性很強(qiáng),不僅要學(xué)習(xí)基本理論知識,更要注重上機(jī)實(shí)踐,通過上機(jī)實(shí)踐驗(yàn)證算法的正確性,掌握和鞏固所學(xué)理論知識。該課程的主要目的是通過學(xué)習(xí),使學(xué)生學(xué)會分析研究計(jì)算機(jī)加工的數(shù)據(jù)結(jié)構(gòu)的特性,以便為涉及的數(shù)據(jù)選擇適當(dāng)?shù)倪壿嫿Y(jié)構(gòu)、存儲結(jié)構(gòu)及相應(yīng)的算法,并初步了解對算法的時(shí)間分析和空間分析技術(shù);另一方面,通過算法設(shè)計(jì)和上機(jī)實(shí)踐的訓(xùn)練,培養(yǎng)學(xué)生的數(shù)據(jù)抽象能力和程序設(shè)計(jì)的能力,為后續(xù)課程,特別是軟件類課程打下堅(jiān)實(shí)的基礎(chǔ)。

數(shù)據(jù)結(jié)構(gòu)課程要求學(xué)生掌握各種常用數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)、存儲結(jié)構(gòu),及相關(guān)操作的算法,而學(xué)生在算法設(shè)計(jì)或程序設(shè)計(jì)方面還不具備足夠的技巧,因而會感到難以理解和掌握。學(xué)生理解教材上的基本概念并不難,然而,他們在解決具體問題時(shí)就會感覺到力不從心,特別是對那些有一定難度的算法設(shè)計(jì)題更顯得無從下手[1-2]。因此,培養(yǎng)學(xué)生的學(xué)習(xí)興趣和自信心,提高其學(xué)習(xí)的主動(dòng)性、創(chuàng)新性及應(yīng)用能力,是數(shù)據(jù)結(jié)構(gòu)課程教學(xué)中的重要任務(wù)。

數(shù)據(jù)結(jié)構(gòu)課程一般是在大學(xué)二年級上學(xué)期開設(shè),而數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)在大學(xué)二年級下學(xué)期開設(shè)。作為一個(gè)重要的實(shí)踐教學(xué)環(huán)節(jié),該課程是數(shù)據(jù)結(jié)構(gòu)課堂理論教學(xué)的延續(xù)與補(bǔ)充,其基本目標(biāo)是運(yùn)用所學(xué)知識,對實(shí)際問題進(jìn)行分析,選取合適的數(shù)據(jù)結(jié)構(gòu),獨(dú)立地進(jìn)行設(shè)計(jì)相對應(yīng)的存儲結(jié)構(gòu),并用算法加以實(shí)現(xiàn),從而解決所提出的問題[3-4]。在此過程中,進(jìn)一步鞏固、加深和融合所學(xué)的專業(yè)課程知識,鍛煉學(xué)生獨(dú)立思考的能力、分析問題和解決問題的能力、綜合設(shè)計(jì)能力、開拓創(chuàng)新能力、自學(xué)能力,以及團(tuán)隊(duì)協(xié)作能力等。因此,課程設(shè)計(jì)對全面提高學(xué)生綜合素質(zhì)具有重要意義。

筆者在多年的教學(xué)實(shí)踐中體會到,數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的教學(xué)要循序漸進(jìn),如何讓學(xué)生理解課程內(nèi)容與較好地解決實(shí)際問題兩者相結(jié)合是本門課程教學(xué)的主要目標(biāo)。為了讓學(xué)生準(zhǔn)確理解并鞏固所學(xué)的基本概念、原理和方法,將所學(xué)的基本知識、基本技能用于解決實(shí)際問題,達(dá)到具備今后軟件了開發(fā)工作所需的能力,最重要的是讓他們勤加苦練。經(jīng)過循序漸進(jìn)地練習(xí),使學(xué)生掌握更多的程序設(shè)計(jì)技巧和方法,提高他們分析、解決問題的能力,培養(yǎng)他們的團(tuán)隊(duì)協(xié)作精神。接下來,筆者就如何激發(fā)學(xué)生的興趣,提高數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的教學(xué)效率和效果,闡述幾點(diǎn)感受與體會,與同行一起探討。

1 課程設(shè)計(jì)教學(xué)過程中的體會

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)比教學(xué)實(shí)驗(yàn)復(fù)雜一些,涉及的深度更廣些,而且更加實(shí)用一些。教學(xué)過程中,教師根據(jù)學(xué)校的特點(diǎn)和教學(xué)計(jì)劃選擇相應(yīng)的課程設(shè)計(jì)內(nèi)容,幫助學(xué)生系統(tǒng)掌握數(shù)據(jù)結(jié)構(gòu)這門課的主要內(nèi)容,從而順利完成教學(xué)任務(wù)。為實(shí)現(xiàn)課程教學(xué)目標(biāo),筆者結(jié)合自身的教學(xué)經(jīng)驗(yàn)和研究成果,就教學(xué)過程中課程設(shè)計(jì)內(nèi)容的選題,實(shí)施方法,以及評價(jià)標(biāo)準(zhǔn)等方面談?wù)勛约旱囊恍w會。

1.1 課程設(shè)計(jì)內(nèi)容的選題

數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)應(yīng)遵循以下原則:堅(jiān)持以能力為本位,以學(xué)生為主體,教師角色轉(zhuǎn)換為倡導(dǎo)者。選題時(shí)盡量達(dá)到以下特點(diǎn):新穎性、實(shí)用性、難度適中、各有所需。

一個(gè)好的選題既可以反映課程設(shè)計(jì)大綱的要求,又能反映本學(xué)科新技術(shù)的發(fā)展前沿,還能通過本課程設(shè)計(jì)訓(xùn)練,培養(yǎng)學(xué)生分析問題、解決問題的能力,從而掌握數(shù)據(jù)結(jié)構(gòu)這門課程的主要內(nèi)容。首先,選題要新穎,因?yàn)樾路f的選題能進(jìn)一步激發(fā)學(xué)生的學(xué)習(xí)興趣,調(diào)動(dòng)其學(xué)習(xí)的積極性。其次,選題應(yīng)具有實(shí)用性,接近實(shí)際工程的需要,引導(dǎo)學(xué)生根據(jù)需求分析,利用所學(xué)知識去解決與日常生活中密切相關(guān)的問題。再次,選題難易程度要適中。課程設(shè)計(jì)的內(nèi)容基本上能讓大多數(shù)同學(xué)接受,難度過大會讓學(xué)生產(chǎn)生一種消極,甚至是抵觸的情緒;難度過于簡單也同樣達(dá)不到預(yù)期目標(biāo)。最后,選題范圍要足夠廣泛,讓不同層次水平的學(xué)生都有問題可想,為學(xué)生提供發(fā)揮其創(chuàng)新性思維的平臺;同時(shí),工程大的選題在一定程度上更能鍛煉學(xué)生獨(dú)立思考的能力和團(tuán)隊(duì)協(xié)作能力。對某些課程設(shè)計(jì)提出部分需要改進(jìn)或進(jìn)一步完善的要求,供那些學(xué)有余力的學(xué)生來拓寬自己的設(shè)計(jì)思路,提高自身的解題能力及水平。當(dāng)然,學(xué)生也可以自主設(shè)計(jì)一些有挑戰(zhàn)性的題目。

1.2 課程設(shè)計(jì)的實(shí)施方法

本課程是在保證基礎(chǔ)理論教學(xué)質(zhì)量的前提下,進(jìn)一步加強(qiáng)學(xué)生解決實(shí)際問題的動(dòng)手實(shí)踐能力的培養(yǎng)。根據(jù)課程設(shè)計(jì)的實(shí)際情況,給出一些具有一定規(guī)模的問題,并對課程設(shè)計(jì)內(nèi)容做系統(tǒng)安排,具體實(shí)施過程如下。

1.2.1 分組

以設(shè)計(jì)小組形式,每3~5人組成一組,同一班級自由組合;如需要跨班組合,可向指導(dǎo)教師提出申請。每個(gè)小組選出一名基礎(chǔ)較好且具有一定組織能力的學(xué)生擔(dān)任組長,組長負(fù)責(zé)本小組的選題,系統(tǒng)模塊劃分和任務(wù)安排,使每位小組成員負(fù)責(zé)一部分功能的實(shí)現(xiàn)。

1.2.2 選題與分工

各小組成員共同協(xié)商選擇合適的題目,然后進(jìn)行分工。小組之間也可以相互合作,將各自的系統(tǒng)模塊進(jìn)行整合,以解決更大規(guī)模的問題。指導(dǎo)教師根據(jù)各個(gè)學(xué)生的實(shí)際情況作適當(dāng)調(diào)整,保證工作量的合理分配,以確保各小組設(shè)計(jì)工作的順利進(jìn)行。

1.2.3 定期檢查

定期檢查或抽查每個(gè)學(xué)生的完成情況,了解各個(gè)小組的課程設(shè)計(jì)進(jìn)展;督促學(xué)生積極思考,比如,描述要解決的問題,根據(jù)操作對象選擇相應(yīng)的數(shù)據(jù)結(jié)構(gòu),建立模型,定義抽象數(shù)據(jù)類型,畫出算法流程圖,引導(dǎo)他們鍛煉自己的分析問題和解決問題以及編程實(shí)現(xiàn)的能力。

1.2.4 提交實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)報(bào)告的正文必須至少包括以下內(nèi)容:

1)問題描述:根據(jù)自己的理解,描述選題要實(shí)現(xiàn)的功能。

2)數(shù)據(jù)結(jié)構(gòu):為處理所需要的功能,自己設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu),包括各自完成的有關(guān)數(shù)據(jù)類型,操作的定義,以及存儲結(jié)構(gòu)。

3)算法描述:根據(jù)問題的要求和所設(shè)計(jì)的數(shù)據(jù)結(jié)構(gòu),描述算法過程。

4)效果與測試情況:給出系統(tǒng)的測試情況與最終效果,可通過截取一些界面用于解釋說明。給出測試數(shù)據(jù)結(jié)構(gòu)的使用手冊,以及完成其他數(shù)據(jù)類型的測試與測試報(bào)告。

5)分析與討論:分析所采用算法的優(yōu)缺點(diǎn),時(shí)間復(fù)雜度,算法實(shí)現(xiàn)過程中遇到問題,所采用的解決方法,自己提出的算法的改進(jìn)方案。本課程設(shè)計(jì)的不足之處,改進(jìn)思路,以及實(shí)驗(yàn)過程體會。

6)參考資料:文中所引用的參考資料撰寫格式參照國家標(biāo)準(zhǔn)(GB-T 7714-2005)。

7)致謝:感謝在完成本課程設(shè)計(jì)報(bào)告過程中對自己提供幫助的個(gè)人/集體。

8)附錄:附上結(jié)構(gòu)完整的程序,帶有詳細(xì)注釋的源程序清單。

1.3 課程設(shè)計(jì)的評價(jià)標(biāo)準(zhǔn)

課程設(shè)計(jì)完成后,應(yīng)對每位學(xué)生提交的課程設(shè)計(jì)報(bào)告進(jìn)行評價(jià),可分為小組互評和指導(dǎo)教師評價(jià)兩個(gè)過程。

1.3.1 小組互評

小組互評包括自評和組長評價(jià)兩部分。首先,每位組員根據(jù)各自參與程度、完成的工作量、效果在小組內(nèi)自評,自評分值占50%。其次,組長在報(bào)告封面上描述組內(nèi)每位組員的具體工作,并為組內(nèi)各成員打分,組長評分值占50%,同時(shí)規(guī)定:組長100分,排名靠后的組員的成績與前一位組員的成績分?jǐn)?shù)差距為6~10分。課程設(shè)計(jì)采用分組形式的宗旨是鼓勵(lì)合作,但反對掛名。

1.3.2 指導(dǎo)教師評價(jià)

小組互評之后,由指導(dǎo)教師組織學(xué)生進(jìn)行課程設(shè)計(jì)報(bào)告的現(xiàn)場答辯,答辯過程包括:以小組為單位進(jìn)行現(xiàn)場演示,解答教師或其他組的同學(xué)所提出的問題?,F(xiàn)場演示檢查可以提高學(xué)生對課程設(shè)計(jì)方法的理解,鍛煉他們對相關(guān)問題的表達(dá)能力。而在現(xiàn)場提問環(huán)節(jié)中,小組成員可以通過協(xié)商共同解答他人的提問,以此提高學(xué)生的臨場應(yīng)變能力和相互協(xié)作能力。指導(dǎo)教師對課程設(shè)計(jì)報(bào)告要進(jìn)行認(rèn)真的評判,評分時(shí)各部分的分值比例如下:選題難度,包括完成目標(biāo)的難度,占20%;完成質(zhì)量,主要考慮其設(shè)計(jì)方法和實(shí)現(xiàn)技術(shù),占30%;實(shí)驗(yàn)報(bào)告撰寫質(zhì)量,占30%;演示效果,占20%。上述分值比例及評定方法可根據(jù)實(shí)際情況適當(dāng)調(diào)整。

指導(dǎo)教師評價(jià)學(xué)生的設(shè)計(jì)時(shí)采用如下標(biāo)準(zhǔn):

1)若完成的課程設(shè)計(jì)特別優(yōu)秀,且創(chuàng)新性強(qiáng),可給予90分以上,但嚴(yán)格控制90分以上的數(shù)量。

2)若能保證程序完全正確,則可獲得80~84分;如果學(xué)生設(shè)計(jì)算法有自己獨(dú)特的見解,并通過代碼實(shí)現(xiàn),而且具有一定的創(chuàng)新性,則可考慮加分到85~89分。

3)若在設(shè)計(jì)算法和代碼實(shí)現(xiàn)的過程中出現(xiàn)極少的錯(cuò)誤,則應(yīng)給予70~79分。

4)若設(shè)計(jì)錯(cuò)誤不算太多,大部分算法與實(shí)現(xiàn)程序都能通過,則應(yīng)給予60~69分。

5)若程序中有比較多的錯(cuò)誤,不能達(dá)到規(guī)定的要求,則其成績給予不及格。

2 結(jié)論

課程設(shè)計(jì)是讓學(xué)生綜合運(yùn)用所學(xué)知識解決實(shí)際問題的重要教學(xué)實(shí)踐環(huán)節(jié)。如何通過課程設(shè)計(jì)環(huán)節(jié)實(shí)踐,培養(yǎng)學(xué)生分析并解決具有一定規(guī)模的實(shí)際問題的能力,提高數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的教學(xué)效率和效果,是教師一直在不斷研究和探討的問題。筆者根據(jù)自己在教學(xué)中的體會,介紹并探討了對課程設(shè)計(jì)內(nèi)容的選取,組織與實(shí)施,以及評價(jià)標(biāo)準(zhǔn),并將其應(yīng)用到本校數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)的實(shí)際教學(xué)中,取得了較好的教學(xué)效果,為同行提供一定的可參考價(jià)值。

參考文獻(xiàn):

[1] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:清華大學(xué)出版社,2006.

[2] 蘇仕華.數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2005.