日日夜夜撸啊撸,欧美韩国日本,日本人配种xxxx视频,在线免播放器高清观看

數(shù)據(jù)結(jié)構(gòu)實驗報告大全11篇

時間:2022-04-19 21:00:05

緒論:寫作既是個人情感的抒發(fā),也是對學術(shù)真理的探索,歡迎閱讀由發(fā)表云整理的11篇數(shù)據(jù)結(jié)構(gòu)實驗報告范文,希望它們能為您的寫作提供參考和啟發(fā)。

篇(1)

隨著計算機處理的數(shù)據(jù)量越來越大,數(shù)據(jù)之間的關(guān)系也越來越復雜。“數(shù)據(jù)結(jié)構(gòu)”這門課介紹最常用的數(shù)據(jù)結(jié)構(gòu),闡明數(shù)據(jù)結(jié)構(gòu)的內(nèi)在邏輯關(guān)系,討論它們在計算機中的存儲表示,并結(jié)合各種典型應用,說明它們在進行各種運算時的動態(tài)性質(zhì)及實際的執(zhí)行算法。“數(shù)據(jù)結(jié)構(gòu)”的研究不僅涉及到計算機硬件,還和計算機軟件密切相關(guān)。計算機科學各領(lǐng)域及有關(guān)的應用軟件都要用到數(shù)據(jù)結(jié)構(gòu)[1]。

1實驗教學在“數(shù)據(jù)結(jié)構(gòu)”教學中的地位

“數(shù)據(jù)結(jié)構(gòu)”的前導課是高等數(shù)學、高級語言程序設計、離散數(shù)學;它又是操作系統(tǒng)、編譯原理、數(shù)據(jù)庫原理、算法分析、人工智能、圖像處理等專業(yè)課程的前導課,具有承上啟下的作用。在計算機碩士研究生入學考試中都設有這門課,并且分值最高,所以該課被我校選入第一批重點建設課。它又是一門實驗性很強的課程,CC2001對該課程及相關(guān)內(nèi)容和相關(guān)度進行了明確的描述。“數(shù)據(jù)結(jié)構(gòu)”課程要讓學生掌握計算機處理非數(shù)值運算問題時的一般原理和方法,熟悉解決各種問題的基本模型,培養(yǎng)學生運用已有的算法語言編寫準確、清晰程序的能力。另外,通過本課程理論體系的學習,學生在設計軟件系統(tǒng)時應學會合理選擇數(shù)據(jù)結(jié)構(gòu),并能對所選模型進行初步評價,學生通過學習,能夠設計一個“好”的程序[2]。

實驗是學生檢驗所學理論知識是否牢固,并探索和運用知識的過程。通過實驗,學生不僅可以進一步理解數(shù)據(jù)結(jié)構(gòu)的基本知識,通過對不同存儲結(jié)構(gòu)和相應算法的對比及上機編程練習,提高根據(jù)求解問題性質(zhì)選擇合理的數(shù)據(jù)結(jié)構(gòu)并控制求解算法的時間、空間復雜度的能力,而且能進一步提高軟件設計和編程水平,提高學習的積極性和主動性,形成科學的思維方法和嚴謹?shù)目茖W態(tài)度[3-4],因此“數(shù)據(jù)結(jié)構(gòu)”的實驗十分重要。

2 “數(shù)據(jù)結(jié)構(gòu)”實驗教學的改革和實踐

2.1更新教材和實驗報告

要推進實驗教學的改革,首先要改革現(xiàn)有教材,應重視學生實驗能力的培養(yǎng),體現(xiàn)以學科為基礎(chǔ)的學科特色。在“數(shù)據(jù)結(jié)構(gòu)”教學中,重點是讓學生通過實驗環(huán)節(jié)學習數(shù)據(jù)結(jié)構(gòu),讓學生明白哪些知識是基本點,哪些是難點和重點,明確學習目的和作用。在這樣的指導思想下,我們在2005年組織課題組成員,按照CC2001的要求,結(jié)合我國計算機的發(fā)展和2009年考研大綱,編寫了C++描述的《數(shù)據(jù)結(jié)構(gòu)與算法》教材,于2008年秋季開始使用,效果良好。每過一學期,我們都根據(jù)當前情況和學生意見及時更新實驗報告。比如最初的實驗報告有一道字符串的實驗題,隨著計算機的發(fā)展,不論是C++語言還是Java語言,已經(jīng)有現(xiàn)成的字符串庫函數(shù),學生只要會使用庫函數(shù)即可,不需自己編寫,而且考研大綱也不作要求,所以我們及時更新了教學內(nèi)容和實驗內(nèi)容,并在實驗題目中增加了ACM大賽的實驗題,為學生參加程序設計大賽打下良好的基礎(chǔ)。

2.2設計合理的實驗題目

實驗報告是“數(shù)據(jù)結(jié)構(gòu)”實驗環(huán)節(jié)的重要內(nèi)容,題目的選取要符合學生的實際水平,而且要有跨度,否則會白白浪費學習時間。2001年,我們調(diào)研了清華、北大等各院校的教學改革情況,并征求了畢業(yè)生和已學過這門課的在校生意見,發(fā)現(xiàn)我們的教學沒有從學生的實際情況出發(fā),很難調(diào)動學生的學習興趣。為此,我們從2002年開始編寫實驗報告,把實驗題分成三個層次,有驗證(改進)型、綜合型和設計型題目。驗證型題目是對教科書上典型算法的實現(xiàn),也有驗證改進型的,即是對書上算法稍加修改,這就要求學生必須事先看懂書上的算法才能修改;綜合型題目是將不同的實驗進行組合,綜合解決較復雜的問題,要求學生利用各種知識解決新的問題;設計型題目是教師提出實驗目的和要求,學生自行設計,完成實驗內(nèi)容,要求學生的基礎(chǔ)比較好,一般安排在課外進行,極大豐富了第二課堂。學生可根據(jù)自己的能力選擇不同層次的實驗題目,大大提高了學習積極性。

我們還鼓勵學生對教材中的遺留問題進行自行設計,也鼓勵學生根據(jù)自己的愛好做一些小的系統(tǒng)實驗。這不但使學生的基本知識和實驗技能得到鞏固,還可以提高學生的創(chuàng)新能力。實驗報告的每道實驗題都有明確的“對問題的描述”、“實驗目的”、“實驗內(nèi)容及要求”、“測試數(shù)據(jù)”和“思考”,學生每做一道題,都明白實驗的目的和要求,完成后,教師還要根據(jù)“思考”題目及時向?qū)W生提出問題,學生可以自行設計實驗方法來解決,教師也可以引導學生設計疑問,主動將教材上的驗證性實驗轉(zhuǎn)變?yōu)樵O計性實驗,教會他們舉一反三,促進學生的思維向新和深的層次發(fā)展,加深他們對所學知識的理解。

實驗題目還要新穎、有趣。比如我們的實驗報告有猴子選大王、迷宮等問題,學生可以使用動態(tài)規(guī)劃、回溯法、分支限界法等算法,將幾個算法的實際執(zhí)行時間進行比較,從實驗結(jié)果證明理論分析的正確性。

2.3建立“以老帶新,青年為主”的教學梯隊

我們的教學梯隊平均年齡35歲,教授、副教授占40%,講師占40%,助教占20%。青年教師中有碩士和博士研究生,他們接受新鮮事物快,精力充沛且動手能力強,但缺乏教學經(jīng)驗,所以我們要求青年教師至少帶兩年的實驗輔導和習題課,在第一次主講之前至少要聽有經(jīng)驗教師一學期的課,而有經(jīng)驗的教師還要不斷試聽青年教師的課,指出不足之處,幫助他們盡快提高教學水平。經(jīng)過幾年的鍛煉,青年教師陸續(xù)登上講臺,共有3人在內(nèi)蒙古大學“青年教學技藝大賽”中獲得了1個一等獎和2個二等獎,其中1人獲得高等院校第四屆青年教師課題教學技能大賽理科組一等獎,成為這門課的骨干教師。

2.4加強上機輔導和課后輔導

編程是高強度的腦力勞動,不是聽會的,也不是看會的,而是自己練會的。剛開始,大部分學生上機前沒有編好程序,而是上機時現(xiàn)編程序,白白浪費寶貴的上機時間;有些教師輔導時發(fā)現(xiàn)學生的程序有錯,就動手幫助調(diào)試,而不是給學生指出錯誤的原因,讓學生明白后自己修改。結(jié)果雖然程序調(diào)試好了,但學生不知道是什么原因,以后再有錯誤時就依賴教師修改,輔導教師很累,而教學效果并不好,學生和教師都有怨言。針對這些情況,我們要求每個學生上機之前就把程序編好,上機調(diào)試過程中有問題要及時問老師,最大限度地利用上機時間;教師輔導時既要認真負責,又要講究方式方法,學生有問題,教師要指出錯誤所在,讓學生明白錯誤的原因,然后讓學生自己改。這樣既可以提高學生的編程能力,又使每個學生的問題都能及時解決。

每做一道實驗題前,教師都會大致解釋題目的含義、用到的知識模塊,有的還要引導學生查閱一些參考資料。每當一個模塊結(jié)束后(以一個邏輯結(jié)構(gòu)為一個模塊),我們都要把幾個班的學生組織在一起(平時上課是小班),對已經(jīng)驗收過的較好程序和普遍存在的問題進行統(tǒng)一講解和總結(jié)。通過總結(jié),學生加深對實驗的理解,知其然,也知其所以然。通過融會貫通已完成的各部分實驗,自然引出下一模塊的實驗。

由于現(xiàn)在學生都沒有固定教室,教師沒有輔導的固定地點,我們每周一至周四下午安排一名教師在辦公室答疑,哪個班的學生都可以到指定辦公室問問題,值班教師在辦公室的機器上修改學生的程序,這樣比在教室里單純講解理論的效果要好得多。

2.5加大對實驗環(huán)節(jié)的考核力度

學計算機的,不動手是學不會編程的,學不會編程也就等于沒有學會計算機,所以要提高學生的編程能力,就要加大對學生實驗環(huán)節(jié)的考核力度。在“數(shù)據(jù)結(jié)構(gòu)”課程考核中,平時成績、實驗成績和理論考試成績比例為1∶4∶5。為了杜絕考前突擊復習的現(xiàn)象,我們在第一節(jié)課就講清要求,讓學生從上課的第一天起就重視這門課,真正掌握這門課。在實驗環(huán)節(jié)的考核中,驗證型題目一般要求1周內(nèi)完成,綜合型題目一般要求2~3周內(nèi)完成,對于綜合型題目,學生先按2~3人分成一組,每人完成一個模塊,通過接口的調(diào)用組成一個完整的程序,最后隨機抽取小組中的一名代表講解編程的設計思路,演示程序執(zhí)行情況,輔導教師根據(jù)完成情況給出一個代表小組的分數(shù)。學生要在規(guī)定的時間請輔導教師驗收實驗題,過期不驗收,視為自動放棄,本次實驗題沒有成績。

經(jīng)過七年實驗教學的改革與實踐,我們?nèi)〉昧嗣黠@效果。2007年6月,在哈爾濱工業(yè)大學舉行的“東軟杯”ACM/ICPC中國•東北地區(qū)首屆大學生程序設計競賽中,我院選派了3支代表隊,結(jié)果分獲一、二、三等獎;2007年11月,在計算機學會、高等學校計算機教育專業(yè)委員會主辦,內(nèi)蒙古大學承辦的第二屆ACM/ICPC

大學生程序設計競賽中,我院分獲團體、一、二、三等獎;2008年,在ACM程序設計相關(guān)比賽中,我院獲自治區(qū)級一等獎、2個二等獎,獲東北賽區(qū)1個三等獎、2個優(yōu)秀獎。

實踐證明,這樣教學改革不僅能激發(fā)學生學習的積極性,還能鍛煉他們的團隊精神,讓他們學會軟件開發(fā)的整個過程,為他們編程能力的提高、畢業(yè)論文設計和走向工作崗位打下良好基礎(chǔ)。

3結(jié)束語

從2009年開始,計算機碩士研究生入學考試采取全國統(tǒng)考的方式,“數(shù)據(jù)結(jié)構(gòu)”是必考科目,而且占分值最大,這更能說明這門課在計算機專業(yè)中的重要性。這些年來,我們一直致力于這門課的建設,從教材選用、課程體系建設、師資隊伍、課程教學、實驗教學等各個環(huán)節(jié)進行了不斷的實踐和探索[5]。我們相信,通過加大對“數(shù)據(jù)結(jié)構(gòu)”教學,特別是實驗環(huán)節(jié)的改革和實踐,一定能進一步調(diào)動起學生學習這門課的積極性,激勵他們熱愛計算機,熱愛科學,成為IT業(yè)的優(yōu)秀人才。

參考文獻:

[1] 殷人昆. 數(shù)據(jù)結(jié)構(gòu)[M]. 北京:清華大學出版社,2007.

[2] 王昭榮,曾衛(wèi)東,魯興萌. 改革實驗教學及管理模式,培養(yǎng)創(chuàng)新型本科人才[J]. 高等理科教育,2007(1):63-65.

[3] 汪沁. 基于“數(shù)據(jù)結(jié)構(gòu)”實驗的探討和研究[J]. 中國教育信息化,2007(4):17-19.

[4] 徐大華. 程序設計語言教學方法探討[J]. 高等理科教育,2007(1):36-38.

[5] 趙艷紅,邵定宏.“數(shù)據(jù)結(jié)構(gòu)”教學的探索與研究[J]. 計算機教育,2008(9):131-132.

Reform and Practice in Data Structure Course’s Experimental Aspects

ZHAO Yu-lan

篇(2)

中圖分類號:G642文獻標識碼:A文章編號:1009-3044(2007)12-21712-01

Research on the Practice Teaching of Data Structure

CHEN Lan, GU Xiang

(School of Computer Science and Technology, Nantong University, Nantong 226019, China)

Abstract: The data structure is one of the most important core courses in computer science and technology. It is also a difficult course for a student to study. Aimed at the characteristics of data structure, such as strong logic, higher degree abstract etc., problems in practice teaching are set out. And the corresponding solved scheme is also discussed.

Key words: Data structure; Practice teaching; Teaching Method

1 引言

數(shù)據(jù)結(jié)構(gòu)作為計算機學科中一門核心專業(yè)課程,綜合了數(shù)學、計算機程序設計、軟件開發(fā)等課程的眾多知識,該課程為理解、應用和開發(fā)計算機應用程序提供了技術(shù)和方法支持,是計算機軟件開發(fā)的基礎(chǔ)。實踐教學對于數(shù)據(jù)結(jié)構(gòu)這門課程,有著十分突出的意義和價值。只有在實踐的過程中,才能使學生的編程能力得到切實鍛煉,讓他們在不斷的練習與嘗試中,把理論運用于實踐,設計編寫出結(jié)構(gòu)清晰明了、可讀性強、高質(zhì)量、高效率的計算機程序。最終使學生在用計算機解決實際問題時能有效地組織、存儲和處理數(shù)據(jù),為后續(xù)課程打下良好的理論基礎(chǔ)和實踐基礎(chǔ)。然而,在實際教學中,學生對該門課程的掌握并不理想,實踐環(huán)節(jié)不到位是其中一個重要的原因。

2 實踐教學中的問題

分析起來,在課程實踐教學中的問題可以歸納為教材、教師教學方法和學生這三個方面。

2.1 教材方面的問題

數(shù)據(jù)結(jié)構(gòu)實踐教學的教材較少,現(xiàn)有的一些實驗教材所設計選取的實驗題目難度較大,不適合學生使用。因為對于大多數(shù)剛剛學過一門程序設計語言的學生來說,將教材中用偽碼書寫的算法轉(zhuǎn)換成完整無錯的可以運行的程序代碼,都是一件相當困難的事情,更不用說自己設計數(shù)據(jù)結(jié)構(gòu)和算法去解決實際問題了。因此上機實驗的失敗便比比皆是,幾次實驗課下來,學生就會對這門課程的學習失去了興趣和信心,從而嚴重影響了教學效果。

2.2 教師的教學方法

一些教師在教學過程中,由于各種主客觀原因,往往會高估學生的高級語言程序設計的基礎(chǔ)。在大多數(shù)高等學校的教學計劃中,學生一般是在學完C語言(C++語言)后的學期里接著學習數(shù)據(jù)結(jié)構(gòu)的,他們的語言基礎(chǔ)并不牢靠。倘若僅按照教材而不顧及學生的現(xiàn)實水平,只會使學生越學越枯燥。

另外由于高校擴招,學生規(guī)模很大,一個教師同時上四個班(120人左右)的課是很常見的事情,這也使得實驗課中教師指導作用弱化,學生遇到問題不能及時得到解決。實踐教學的效果便也受到直接影響。

2.3 學生方面的問題

學生在學習數(shù)據(jù)結(jié)構(gòu)時,先修課程――程序設計語言的基礎(chǔ)相對薄弱。對C(C++)語言中的難點,如結(jié)構(gòu)體(類)、指針、函數(shù)(方法)等等內(nèi)容,理解不透徹,掌握不充分。而這些內(nèi)容恰恰是數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)。

其次,學生的編程能力與經(jīng)驗不足。多數(shù)學生僅僅學習過一門程序設計語言,并且也沒有很多的實際編寫程序的機會。他們沒有能夠很好的理解、掌握程序設計的方法和理論。

再有,學習上的困難導致學習熱情的缺乏。數(shù)據(jù)結(jié)構(gòu)這門課程理論性強,內(nèi)容枯燥,不大好學。學生學了不知道有什么用、怎么用。這樣,學習時間越久,越覺得辛苦,逐漸磨滅了學習興趣。

3 數(shù)據(jù)結(jié)構(gòu)實踐教學題目的設計要點

針對上面所提出的問題,在現(xiàn)有條件下,只有通過精心設計、選取實踐教學題目,編寫能夠針對所教學生特點、適合他們自學、使用的實驗指導講義,才能在一定程度上彌補教材、教師教學和學生學習三個方面的缺陷,提高數(shù)據(jù)結(jié)構(gòu)的教學效果。

我們通過實際教學的不斷嘗試,逐步總結(jié)了在設計實踐教學題目時應該注意的幾個要點,簡要說明如下:

3.1 選擇典型算法,做到以點帶面

在選擇實踐教學題目時,應該盡量選擇一些典型算法。這些典型算法應該具有一定的代表性,能夠系統(tǒng)的體現(xiàn)某個數(shù)據(jù)結(jié)構(gòu)的基本特征;難度應該適中,能被絕大多數(shù)學生理解和掌握;還要有一定的綜合性,具備一定的理論深度,通過算法的實現(xiàn),不僅能幫助學生更好的學習和掌握數(shù)據(jù)結(jié)構(gòu),還能提高學生編寫程序的水平。表1中,給出了對應于某種數(shù)據(jù)結(jié)構(gòu)的一些可以選用的典型算法。

表1 數(shù)據(jù)結(jié)構(gòu)課程中的典型算法

3.2 注重示例程序,起好示范作用

把實驗中每種數(shù)據(jù)結(jié)構(gòu)的第一個算法的源程序提供給學生,使得他們能對該種數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)有更好的理解,同時還有一個可以參考模仿的范本。實踐表明,這樣做能夠極大地提高程序的成功率,增強學生的學習信心,提高了實驗效率。

3.3 與現(xiàn)實相結(jié)合,提高學生學習興趣

在設計實驗題目時,應力求與相關(guān)課程、實際生活相聯(lián)系。把理論和實際聯(lián)系起來,使得實驗題目生動、接近學習和生活實際,學生容易接受和理解,容易調(diào)動學習積極性。

比如消防武警選址實例:給定5個縣之間的交通網(wǎng),現(xiàn)要在5個縣中選擇一個縣建一個消防武警中隊,使得離消防隊最遠的縣到消防隊之間的路程最短。問這個消防隊應建在哪個縣?實際上,這個問題就是從5個縣中選出一個縣,使得它到其他4個縣的最短距離的最大值最小,而問題的關(guān)鍵就是頂點與頂點之間的最短路徑問題。解決該問題的經(jīng)典算法是弗洛伊德算法。

3.4 與學生實際水平相結(jié)合,設計不同層次的實驗題目

在設計實驗的過程之中,需要考慮學生的專業(yè)水平以及編程功底。由于不同的人對新知識的接受能力和認知能力存在差異,所以不可能用一兩個實驗就要學生們在對知識的了解程度上達到相同的層次。一個有效的辦法是,在一個實驗題目中,提出不同層次的任務要求,難度由低到高。這樣可以充分的調(diào)動所有同學的積極性,使得不同層次的學生可以在各自的層次上進行思考,并獲得收獲,提高學生的學習興趣并增強自己對學習這門課程的信心。

例如在堆棧這一實驗中,按照難易程度從低到高,可以設計出堆棧的實現(xiàn)(構(gòu)建堆棧、入棧操作、出棧操作)、使用堆棧模擬停車場、使用堆棧模擬鐵路調(diào)度站、算術(shù)表達式求值等四個難度不同的題目,供學生選用。

3.5 設計綜合實驗(課程設計),提高學生對所學知識的靈活掌握程度

綜合實驗的設計是將書本中多個知識點整合在一個實驗中,是對學生能力水平上的一種較高層次上的要求。學生在課程設計中,綜合的運用自己所學過的基礎(chǔ)知識,使用軟件工程的方法指導和要求整個實驗過程。在整個過程中,學生可以以兩到三個人為一個開發(fā)小組共同進行實驗。使得學生在相互學習相互促進中進一步掌握數(shù)據(jù)結(jié)構(gòu)的應用,提高學生分析問題,組織數(shù)據(jù),組織編程解決實際問題的能力。并在次過程中可以提高團隊意思,培養(yǎng)協(xié)作精神。當然,在題目的選取上,也可以設計難度層次不同的實驗,以適合不同需要的小組或個人。例如迷宮問題,教學計劃,校園導游咨詢等。

4 數(shù)據(jù)結(jié)構(gòu)實踐教學的實施

實踐教學題目設計完成以后,教學的組織實施是下一個重要的環(huán)節(jié)。在實施的各個階段,都必須向?qū)W生提出明確的要求,并進行必要的檢查。否則,依然會達不到預期的效果。

4.1 實驗預習

學生在上機實驗時臨時現(xiàn)編代碼是常見的事情。為此,在預習階段,就應該要求學生根據(jù)自己的情況,選擇一個適合的題目,并對完成此題目的算法進行較為透徹的研究:設計出算法所必需的數(shù)據(jù)結(jié)構(gòu),給出具體的函數(shù)聲明(如果是C++,則應給出類的定義)及函數(shù)實現(xiàn)流程。對于掌握得較差的學生,還應要求他們事先編寫好源程序。所有這些內(nèi)容構(gòu)成預習報告。

在實驗開始時,教師應該對學生的預習情況進行檢查,對于沒有很好完成實驗預習的學生,要直接取消其實驗資格,實驗成績記零。課程開始時,學生可能會不適應,但當養(yǎng)成習慣以后,他們就會深刻體會到預習工作的重要。

為了更好的調(diào)動學生的積極性,作為鼓勵,前次實驗完成得較好的學生,可以不作預習檢查。

4.2 實驗實施

教師在實驗進行中,所扮演的角色不應當是程序調(diào)試者,而應當是引導者。當學生在代碼執(zhí)行中發(fā)生錯誤而向教師求助時,教師只需指出可能導致此問題的原因即可,更多的工作應該留給學生自己去完成。這樣一方面可以節(jié)約教師的時間,從而能為更多的學生解決問題;另一方面也可以解除學生的依賴思想,鍛煉他們的代碼調(diào)試能力。

教師在實驗進行中的另一項重要工作,是觀察并提示學生的代碼書寫是否規(guī)范。從某種意義上說,代碼的規(guī)范比編程技巧更為重要。在課程前期,這將是教師在指導實驗時工作量最大的工作。

4.3 實驗報告

實驗完成后,學生必須撰寫實驗報告,實驗報告應附預習報告。實驗報告一般包含的內(nèi)容是[放參考文獻]:實驗題目、實驗目的、實驗任務和要求、實驗步驟(源程序)、實驗總結(jié)。

特別要強調(diào)的是實驗總結(jié),必須討論在實驗中遇到的問題以及是如何解決的,即使是語法錯誤也應該報告。這樣可以促使學生對錯誤不斷反思,從而逐步提高編程能力。可以明確告訴學生,這部分將是成績評定時最重要的考察因素。

4.4 成績評定

成績評定以鼓勵為主,只要學生確實付出了努力(這從實驗報告的實驗總結(jié)中可以看出),那就可以適當給以高分。另一個要考慮的因素是學生所選題目的難度,但這不應該是主要的。

5 結(jié)束語

文中所討論的是我們在數(shù)據(jù)結(jié)構(gòu)課程實踐教學中的一些成功經(jīng)驗的總結(jié)。實踐表明,這些經(jīng)驗對于提高實踐教學的效果是有益的,這也進一步促進了課程的理論教學。當然,這些經(jīng)驗還是初步的和粗淺的,還需要在實際教學中作進一步的研究。

參考文獻:

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

[2] 陳宇文. 注重源程序在《數(shù)據(jù)結(jié)構(gòu)》課程中的重要性[J]. 高教論壇,2004.(1):73-75.

篇(3)

關(guān)鍵詞:研究型教學;實驗教學;智力能力培養(yǎng);教學方法;數(shù)據(jù)結(jié)構(gòu)

社會的發(fā)展對當前我國高等教育提出了具體的要求,所培養(yǎng)的學生必須具備全面發(fā)展的素質(zhì),包括掌握科學的學習方法和具有會學習的本領(lǐng),具備積極創(chuàng)新的能力和生動活潑的特征。這一特征,使得高校教育改革應該不斷地向更高、更深刻、更全面的層次上發(fā)展。教學改革是教育改革中最為重要的一部分。如何創(chuàng)造良好的學習環(huán)境和條件,革新教學手段和方法,全方位地培養(yǎng)學生的智力和能力,關(guān)鍵是要轉(zhuǎn)變教育觀念,改革人才培養(yǎng)模式,改進教師的教學方式,增強學生學生的學習的主觀能動性,積極采取啟發(fā)式、研討式等研究型教學方式。

但是在高等教育過程中對研究型教學的認識程度還不夠高,開展的深度與廣度都還不夠,從而成為制約教學質(zhì)量進一步提高的一個瓶頸而引起了各高校的普遍關(guān)注。本文結(jié)合我們開展研究型教學的實踐,對《數(shù)據(jù)結(jié)構(gòu)》課程的實驗教學改革進行了一定的嘗試,取得了初步的教學效果。

一、研究型課程教學的基本理念

國內(nèi)研究型教學的實踐,一方面是對國外先進教育方式的借鑒,另一方面也是對國內(nèi)實施已久的高校學習與科技興趣小組活動乃至啟發(fā)式、討論式、發(fā)現(xiàn)法教學方式等經(jīng)驗的系統(tǒng)提升。

1、赫爾巴特“主知主義”課程理論。赫爾巴特的課程理論被稱為“主知主義”,它是以知識作用為本位的課程論,同時還明確主張學生從總體上對教師保持被動狀態(tài),強調(diào)教師的權(quán)威意志和主導責任。因而,人們把赫爾巴特視為“教師權(quán)威論”或“教師中心論”的代表人物。

2、杜威的“實用主義”課程。杜威主張教育要“以學生為中心”,要求教育的一切措施圍繞著學生來組織,以促進學生的個性發(fā)展。他認為學生的學習不應是被動接受知識的過程,而類似科學家研究發(fā)現(xiàn)知識的主動探究過程。杜威的教育思想深刻地影響了20世紀初至當代的全部教學論的發(fā)展。教育家陶行知先生是杜威的學生,他將社威的教育思想引入我國,并在國內(nèi)進行了卓有成效的教學實踐,創(chuàng)立了“知行統(tǒng)一”的課程理論,至今對我國教育界仍產(chǎn)生著深刻影響。

3、研究型課程理念。研究型課程教學的基本理念是:對歷史上傳統(tǒng)的教育學派的“主知主義”、“教師中心論”和進步教育學派的“實用主義”、“學生中心論”中合理的部分加以有機的整合,揚棄其狹隘、刻板僵化的部分,注重發(fā)揮教師的主導責任和學生的主體作用。它以促進學生的個性發(fā)展為宗旨,以改變學生單純地、被動地接受知識傳授的學習方式為著眼點,構(gòu)建一種開放的學習環(huán)境,為學生提供一個多渠道獲取知識,理解自然、個人、社會等問題,并將學到的知識綜合應用于實踐的機會。它在幫助學生進行接受式間接學習的同時,形成一種對知識的主動式直接探索,以提高其解決實際問題的能力的研究型學習形式。

二、研究型課程教學的指導思想和教學原則

《數(shù)據(jù)結(jié)構(gòu)》實驗教學是一種驗證型的教學模式,將課堂上所學的理論知識與計算機上機實踐相結(jié)合,通過利用高級語言環(huán)境對書本上的算法進行驗證,從而達到鞏固理論知識的目的。而研究型實驗教學的指導思想,不僅僅在于驗證書本知識和鞏固理論知識,而是更加重視理論知識的綜合應用,強調(diào)整個過程的參與和學習,發(fā)揮學生學習的主動性,激發(fā)學生的學習興趣和創(chuàng)造力,培養(yǎng)學生的團隊精神和協(xié)作意識。因此,全面培養(yǎng)學生的智力和能力,是研究型實驗教學的指導思想。

在上述教學思想指導下,在實驗教學過程中必須堅持的教學原則是:

1、教師指導與學生動手并重。雖然有效快捷的學習離不開教師的指導,但指導只是一種手段。在現(xiàn)代教學過程中,教師的指導旨在教會學生學會學習,這不僅是今后終身教育的要求,而且只有學會學習,掌握了科學的學習方法,學習主體才會真正具有一種參與到教學過程中去的能力。

2、面向結(jié)果的教學和面向過程的教學并重。面向結(jié)果的教學是指教師在教學活動中以使學生獲得令人滿意的結(jié)論作為教學的直接意義,它是傳統(tǒng)教學所強調(diào)的教學形式。面向過程的教學則是教師在教學活動中重視引導學生對知識形成過程的理解與實踐,并在理解和實踐中仔細體驗獲得這一知識的基礎(chǔ)和條件,以及它與其他知識的相互關(guān)系等。從主動學習的角度看,面向過程的教學會給學生主體帶來一種更高的價值。

3、一般能力的培養(yǎng)與創(chuàng)造品質(zhì)的形成并重。學生能力的培養(yǎng)已成為現(xiàn)代教育的重心,然而在促進學生的一般能力有較全面提高的同時,教師應該對學生的創(chuàng)造能力的發(fā)展給予特別關(guān)注,因為創(chuàng)造品質(zhì)已成為現(xiàn)代人素質(zhì)結(jié)構(gòu)中最重要的組成部分。

4、理論學習與實踐活動并重。理論來源于實踐,反過來又指導實踐。只有堅持理論聯(lián)系實際,才能有所發(fā)現(xiàn),有所創(chuàng)造。

5、接受式學習與探究式學習并重。接受式學習是一種被動的學習過程,而探究式學習則是一種主動的學習過程,只有發(fā)揮了學生主體的積極性,才能使得學習收到事半功倍的效果。近年來,我們對《數(shù)據(jù)結(jié)構(gòu)》實驗教學的研究型教學模式的探究,正是堅持了以上這些教學原則。

三、研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學環(huán)節(jié)的設計與實施

研究型教學依據(jù)其內(nèi)容的不同可分為認知理解類和實踐應用類。研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學屬于實踐應用類。主要憑借算法構(gòu)造思維方式,從具體操作規(guī)范入手,通過操作過程的構(gòu)造實施,解決特定問題,理解、習慣、掌握算法思維方法是一個構(gòu)造性、研究型方式的訓練過程,其核心內(nèi)容就是通過學習結(jié)構(gòu)技術(shù)的過程,培養(yǎng)學生算法設計能力以及創(chuàng)造性思維,培養(yǎng)舉一反三、觸類旁通的能力,以達到提高學生應用知識解決復雜問題的素質(zhì)能力和的目標。計算機的程序設計是一項創(chuàng)造性的智力勞動,讓學生深刻掌握這一套算法構(gòu)造思維方法,是實踐環(huán)節(jié)所要解決的核心問題。因此,我們注重為學生創(chuàng)設智力發(fā)展的環(huán)境與條件,設置智力因素和非智力因素相結(jié)合的條件。我們根據(jù)研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學的指導思想和教學原則,考慮到培養(yǎng)計劃的安排,我們對每一次實驗課都進行了精心地策劃,并要求寫出實驗報告。主要分為確立問題階段、實踐體驗階段和成果交流階段等三個階段來進行。這三個階段并不截然分開,而是相互交叉推進的。實施流程通常為:“引出問題,建立假設”——“研討探究,驗證假設”——“得出結(jié)論,切磋交流”——“歸納總結(jié),形成評價”。

⑴確立問題階段。教師介紹上機環(huán)境及算法在相應數(shù)據(jù)結(jié)構(gòu)中的地位和作用,包括使用的編程環(huán)境,在驗證算法過程中需要注意的問題,講解如何查找相關(guān)資料,并展示歷屆學生的實驗報告樣本。學生3—4人自由組合成立研究課題小組,選出組長;通過查找相關(guān)資料,擴展相關(guān)算法,提出研究課題,寫出實施計劃。在此基礎(chǔ)上,教師組織各小組進行答辯,組長對研究課題的目的、背景資料、理論依據(jù)、技術(shù)方法、計劃和目標等進行解答,并回答教師提出的有關(guān)問題。

⑵實踐體驗階段。教師根據(jù)實驗室條件、答辯情況和課題難易程度等,有重點地抽查6—7組作為本次實驗教學課的指導對象,并強調(diào)在上機實踐過程中的注意事項與具體要求,講解實驗報告格式和撰寫方法,并要求各組人員進行具體分工。學生利用4節(jié)課的時間上機實踐,并記錄編程調(diào)試過程中的相關(guān)數(shù)據(jù)和出錯信息。

⑶成果交流階段。實驗完畢得出結(jié)果后進行資料整理,并開始撰寫實驗報告。教師對各組的實驗報告進行初審,提出具體修改意見。各組學生對實驗報告認真修改和補充,做到報告格式化、標準化,并正式提交給教師再次審查,教師根據(jù)情況評定成績,作為期末成績總評的參考依據(jù),并在課堂上組織學生交流實驗感受及取得的成果。

通過實驗實踐內(nèi)容的訓練,突出構(gòu)造性、研究型思維訓練的特征,提高了學生組織數(shù)據(jù)與進行編寫大型程序能力;更好地理解和掌握了算法設計所需的技術(shù),為整個專業(yè)學習打下了良好的基礎(chǔ)。學生通過完成《數(shù)據(jù)結(jié)構(gòu)》實驗課程的設計任務,不僅把設計優(yōu)良算法與掌握面向?qū)ο蟮木幊碳记山Y(jié)合起來,而且能培養(yǎng)綜合運用所學知識來獨立解決實際問題的能力,給學生發(fā)展個性化以更加廣闊的天地。實驗教學的改革與實踐結(jié)果證明,貫穿于實驗教學環(huán)節(jié)的研究型實驗教學,使得理論教學與實驗教學有機的整合,收到了良好的教學效果。

四、研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學在人才培養(yǎng)過程中的作用

1、研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學有利于學生的智力開發(fā)和能力培養(yǎng)。

教學的目的不僅要使學生獲得知識,而且更要使學生獲得智力的發(fā)展,要使學生掌握點石成金的方法。能力與智力是兩個相對獨立的概念,二者有區(qū)別,又有密切聯(lián)系。二者之間不一定成正比例關(guān)系。智力屬于認識活動的范疇,而能力屬于實際活動的范疇。智力是保證人們有效地認識客觀事物的較穩(wěn)定的心理特征的綜合,能力是保證人們成功地進行實際活動的較穩(wěn)固的心理特征的綜合。智力結(jié)構(gòu)由注意力、觀察力、記憶力、想象力和思維力5部分組成,能力結(jié)構(gòu)由組織能力、定向能力、適應能力、操作能力和創(chuàng)新能力5部分組成。研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學是全過程的教學,從給定的算法到算法擴展、從選題到實驗報告及其答辯的所有過程中,幾乎都是以學生為主體開展活動,教師僅僅負責組織和教學引導。特別是在科學研究方法和科技文獻的查找、科技報告的寫作訓練等方面,讓他們在低年級就能得到很好地鍛煉,為今后寫好畢業(yè)論文打下了堅實的基礎(chǔ)。所以,這種新型的教學方式對于全面培養(yǎng)學生的智力和能力是十分有利的。

2、研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學可激發(fā)學生的求知欲和創(chuàng)造力。

教師要善于采取相應的改革措施,創(chuàng)設智力發(fā)展的環(huán)境與條件,用生動的實踐活動來鞏固和強化學生的求知欲,激發(fā)學生的好奇心、興趣、想象力和創(chuàng)造力。因為興趣是推動學生求知欲的強大內(nèi)在動力,興趣往往是創(chuàng)造的先導,同時想象在人的智力活動中也占有極重要的地位。由于研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學與中小型軟件開發(fā)結(jié)合起來,使學生們很感興趣。他們本來對軟件開發(fā)充滿了好奇與想象,在學習了《數(shù)據(jù)結(jié)構(gòu)》以后,有了一定的算法理論基礎(chǔ),可以根據(jù)自己的興趣,充分發(fā)揮想象力和創(chuàng)造力,對軟件開發(fā)進行有益的嘗試。

3、研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學有利于培養(yǎng)學生動手動腦、理論聯(lián)系實際的能力。

研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學要求學生動手動腦,手腦并用,既應用了已掌握的知識,又促進了思維力、理解力和創(chuàng)造力的發(fā)展。所以,我們認為知識與智力上的綜合訓練是發(fā)展智力的重要條件。在實驗教學活動中,學生們不僅動手編制了相關(guān)的應用程序,而且還掌握了使用相關(guān)編程工具的方法,并通過實踐和反復總結(jié)后,理解了對同一算法可以從多種不同的角度來實現(xiàn)的深刻內(nèi)涵。

4、研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學能培養(yǎng)學生的團隊精神和協(xié)作意識。

學生積極參加研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學活動,不僅促進智力和能力的發(fā)展,而且能很好地培養(yǎng)學生的團隊精神和協(xié)作意識。由于我們的整個教學活動是以小組進行的,無論是在上機編程,還是在查閱資料、撰寫和修改實驗報告,各小組成員都能認真參與,并很好地配合組長工作,表現(xiàn)出良好的團隊精神和協(xié)作意識。最后,當順利完成實驗報告并通過教師驗收時,他們感到有一種來之不易的集體成就感和榮譽感。所有這些,使他們更加堅定了自信心,激發(fā)了學習興趣,鍛煉了能力,提高了智力。

當然,同傳統(tǒng)的實驗教學相比,研究型《數(shù)據(jù)結(jié)構(gòu)》實驗教學對教師的要求更高了,付出的也更多了,同時得到的也更多。因為這是一種過程的學習和參與,學生和教師都從中受益匪淺。因此,只要我們提高了對研究型實驗教學的認識,端正了態(tài)度,掌握了科學的指導方法,就會去不斷地創(chuàng)新,必將能培養(yǎng)出智力和能力全面發(fā)展的一流人才。

參考文獻

[1]文輔相. 素質(zhì)·方法·創(chuàng)新[J].高等教育研究,1999.

[2]陸國平,江瑩,李松.研究型大學與思想庫[J].高等教育研究,2001.

[3]沈顯生,尹路明,李樹美,楊捷頻. 研究型野外實習教學的設計與實踐[J].教育與現(xiàn)代化,2002.3.

篇(4)

近年來,在產(chǎn)業(yè)界急需大量軟件開發(fā)人員的情況下,普通本科院校計算機專業(yè)學生的就業(yè)率持續(xù)走低。網(wǎng)絡、報紙等媒體對計算機本科教育現(xiàn)狀多有批評,甚至出現(xiàn)了大學不如培訓公司的極端觀點,嚴重影響了學生對專業(yè)課程的學習興趣、動力和信心。數(shù)據(jù)結(jié)構(gòu)是計算機專業(yè)的核心基礎(chǔ)課程,上承程序設計語言、離散數(shù)學,下啟操作系統(tǒng)、編譯原理等課程,其重要性不言而喻。一方面,數(shù)據(jù)結(jié)構(gòu)學科具有難度大、抽象層次高、概念繁雜等特點,學生很難掌握,更不要說將抽象理論與就業(yè)實踐需求相結(jié)合。另一方面,國內(nèi)主流數(shù)據(jù)結(jié)構(gòu)教材和相應的傳統(tǒng)教學模式側(cè)重于培養(yǎng)學生的計算機學科基礎(chǔ)理論素養(yǎng),而將如何通過組織數(shù)據(jù)結(jié)構(gòu)教學活動積極推動就業(yè)的問題留給了任課教師[1]。這造成了學生學習數(shù)據(jù)結(jié)構(gòu)的目標不明、信心和動力不足。筆者面向就業(yè)需要明確了數(shù)據(jù)結(jié)構(gòu)的兩大主要教學目標,并在實際教學過程中實踐建構(gòu)式教育理論,嘗試解決學生對專業(yè)認識不清、學習興趣不足、編程基礎(chǔ)薄弱等問題。一些做法得到了學生的認可和配合,成功地激發(fā)了學生的學習主動性、在一定程度上培育了學生的創(chuàng)新精神。

1面向就業(yè)需求的數(shù)據(jù)結(jié)構(gòu)教學目標

教育要服務于社會生產(chǎn)需求。數(shù)據(jù)結(jié)構(gòu)教學也必須緊扣這一根本目標。本節(jié)從滿足就業(yè)需要的角度闡明了數(shù)據(jù)結(jié)構(gòu)教學的兩個主要目標:

1) 培養(yǎng)超越具體程序設計語言技巧的編程技術(shù)。

現(xiàn)階段是一個傳統(tǒng)的生產(chǎn)生活方式迅速向電子化、信息化轉(zhuǎn)變的時期。人們需要開發(fā)和維護更多、規(guī)模更大的計算機系統(tǒng)來滿足生產(chǎn)和生活的需要[2]。這就決定了具有熟練編程技術(shù)的程序員在很長時期內(nèi)都將受到產(chǎn)業(yè)界的青睞。大學對學生編程技術(shù)的培養(yǎng)始于程序設計語言的教學,如c語言,java語言等。但是現(xiàn)今編程語言繁多,各種新概念層出不窮,常常出現(xiàn)學生無所適從或者質(zhì)疑某門語言課程已經(jīng)過時無用的現(xiàn)象。甚至很多教師也在爭論講授何種編程語言。筆者看來掌握編程技術(shù)(而不僅僅是語言),回歸編程的本質(zhì)問題更加重要,無謂地追趕時髦不可取。作為編程語言課程的后續(xù),數(shù)據(jù)結(jié)構(gòu)教學的重要目標就是幫助學生理解編程的本質(zhì)、鍛煉編程技術(shù)以及學習提高編程技術(shù)的方法。

2) 培養(yǎng)圍繞復用的軟件開發(fā)方式。

隨著軟件規(guī)模的日益增大,軟件開發(fā)模式逐漸從“從無到有”的模式過渡到“從有到有”的模式,即復用現(xiàn)有的豐富的軟件資產(chǎn),開發(fā)新的應用系統(tǒng)。事實上,復用的思想已經(jīng)被廣泛的用于軟件開發(fā)實踐之中,從各種各樣的程序庫、軟件開發(fā)包、軟件構(gòu)件、web服務等各種可復用資產(chǎn)已經(jīng)簡化了軟件開發(fā)的難度、提高了軟件開發(fā)的效率也極大地改變了軟件開發(fā)的模式。數(shù)據(jù)結(jié)構(gòu)學科本身就是對軟件復用思想的一種實踐,它通過總結(jié)大量軟件系統(tǒng)中反復出現(xiàn)的數(shù)據(jù)結(jié)構(gòu)(如表、樹、圖、集合等),定義和實現(xiàn)處理這些數(shù)據(jù)結(jié)構(gòu)的基本操作,最終達到能夠在不同項目開發(fā)中反復應用的目的。這些基本數(shù)據(jù)結(jié)構(gòu)和算法已經(jīng)被實現(xiàn)為可復用的產(chǎn)品隨著程序設計語言,如c++ stl、c# collections, java collections等,并得到了廣泛的使用。因此,數(shù)據(jù)結(jié)構(gòu)教學的另一個重要目標就是引導學生習慣圍繞復用的軟件開發(fā)方式,能夠使用和定制已有的數(shù)據(jù)結(jié)構(gòu)和算法庫。

其他傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)教學目標,如培養(yǎng)學生面向?qū)嶋H問題進行算法設計和分析的能力,培養(yǎng)學生計算機學科的基本理論素養(yǎng)和思維方式等也非常重要。但普通本科院校學生對理論內(nèi)容的接受能力以及將理論和現(xiàn)實就業(yè)需求相聯(lián)系的能力相對較弱且教學時間有限[3],筆者認為重點突破本節(jié)給出的兩個更具體、更可達的教學目標,并在實現(xiàn)這種具體教學目標的過程中潛移默化地培育學生的計算思維和理論素質(zhì),將會取得更佳的效果。

2建構(gòu)式數(shù)據(jù)結(jié)構(gòu)教學

教學理論研究以及教學實踐反饋均表明,學生主動學習的效果遠較被動地接受老師灌輸?shù)男Ч玫亩唷R虼耍瑸閷崿F(xiàn)上述教學目標,在建構(gòu)式教育理論的指導下,筆者探索并采用了一系列建構(gòu)式教學措施,激發(fā)學生的主動性和興趣,取得了較好效果。

建構(gòu)主義認為,學習并非學習者對教師所授知識的被動接受,而是學習者以自身已有知識和經(jīng)驗為基礎(chǔ)的主動建構(gòu)過程[4]。知識不僅是通過教師傳授而得到,更是學習者在一定的情境中,利用必要的學習資料,通過同化新知識、順化自身知識結(jié)構(gòu)的方式而獲得。建構(gòu)主義提倡在教師指導下的、以學習者為中心的學習,也就是說,既強調(diào)學習者的認知主體作用,又不忽視教師的指導作用,教師是意義建構(gòu)的幫助者、促進者,而不僅僅是知識的傳授者與灌輸者。學生是信息加工的主體、是意義的主動建構(gòu)者,而不僅僅是外部刺激的被動接受者和被灌輸?shù)膶ο蟆O旅鎻睦碚摻虒W和實踐教學兩個方面介紹我們采用的一些教學措施。

2.1理論教學措施

課堂教學是數(shù)據(jù)結(jié)構(gòu)教學活動的主要部分,充分利用課堂教學時間,激發(fā)學生學習數(shù)據(jù)結(jié)構(gòu)的興趣和信心,幫助學生建立學習數(shù)據(jù)結(jié)構(gòu)的環(huán)節(jié)非常重要。我們采用了如下措施:

1) 組織小型討論。

好的開始是成功的一半,好的課堂教學須在上課之初就抓住學生的注意力,讓學生帶著輕松、愉快的心情聽課。我的做法是在課堂的前5分鐘,提出一個學生感興趣的話題,組織若干個有3~5位同學參與的小型討論。到一個學期結(jié)束時,每位同學都有至少一次的發(fā)言機會。討論的主題可以靈活設置,如時事、技術(shù)、社會熱點等。有時,課堂中間學生比較疲憊、注意力下降的時候,也可以穿插一點討論,改善課堂環(huán)境。大多數(shù)學生非常喜歡這種討論活動,積極參與其中,成為課堂的一部分,從被動上課轉(zhuǎn)變?yōu)橄矚g上課。

2) 重建理論知識所針對的問題。

國內(nèi)的經(jīng)典數(shù)據(jù)結(jié)構(gòu)教材側(cè)重嚴謹?shù)睦碚摚^少討論各種概念、算法出現(xiàn)的背景以及探討的問題是否仍然具有現(xiàn)實價值。而回答這些問題能夠幫助學生重建理論知識所針對的問題原型,重現(xiàn)解決方案的提出、發(fā)展乃至最終成熟的整個過程,更有助于培養(yǎng)學生解決實際問題的能力,養(yǎng)成批判性、創(chuàng)新性思考的習慣。眾所周知,關(guān)于樹的存儲方法很多,有雙親表示法,孩子表示法和二叉鏈表表示法[5],其中以樹的二叉鏈表表示法使用最廣,但其他存儲方法也有其適合的應用。例如,在利用樹表示各個集合,求集合中的等價類時,雙親表示法更為合適。每一個集合都用樹的雙親表示法存儲時,并設樹的根結(jié)點的值為集合名,集合中的每個成員都對應一個結(jié)點,這樣很容易找到一個元素所屬的子集(順著雙親指針找樹的根結(jié)點)。

3) 組織“我來講”活動。

數(shù)據(jù)結(jié)構(gòu)涉及很多抽象的概念和算法,初學者很難理解。而教師則對理論內(nèi)容比較精熟,常常傾向于從理論的角度逐步遞進、展開講解,這就增加了學生的學習難度。教師和學生在教學語言上的鴻溝是影響教學效果的一個重要障礙。教師當然可將抽象的理論概念與生活中更形象的概念進行類比,幫助學生理解,也可以將復雜的算法過程用多媒體動畫模擬出來,直觀地展示給學生,幫助學生掌握。但一方面,根據(jù)建構(gòu)主義理論,教師和學生的知識背景不同,由教師設計概念類比語境和算法模擬動畫實際上仍然是基于教師的知識結(jié)構(gòu)對知識點進行的同化和順化,而不是對學生知識體系的直接建構(gòu)。另一方面,教師的經(jīng)驗和智慧有其局限性,未必總能夠找到最適合的類比語境和動畫模擬。為此,筆者采用了充分發(fā)揮學生智慧的方法,組織“我來講”活動,要求學生通過設計算法的動畫模擬,創(chuàng)建概念的類比語境等方式進行學習,并隨機選擇學生走上講臺對抽象理論概念和復雜算法進行說明。這樣不但能夠調(diào)動學生思考問題,還能幫助那些無法完成自我知識體系建構(gòu)的同學從學生的視角去理解同一個問題。例如,對于n維數(shù)組是元素為n-1維數(shù)組構(gòu)成的線性表這一遞歸的類型定義,可采用符號推理的方式,培養(yǎng)學生的理論素養(yǎng),而同時可鼓勵學生根據(jù)自己的理解將抽象理論具體化,建立幫助理解和記憶的現(xiàn)實語境。

2.2實踐教學措施

數(shù)據(jù)結(jié)構(gòu)是幫助具有基本編程語言基礎(chǔ)的學生錘煉編程技術(shù)的關(guān)鍵課程。它揭示了程序設計的基本面,即如何處理相互之間存在一種或多種數(shù)據(jù)關(guān)系的數(shù)據(jù)元素所構(gòu)成的集合、如何設計算法并分析算法的優(yōu)劣。若沒有相應的配套實驗指導學生如何將理論應用于實際問題,只是泛泛而談、紙上談兵,學生容易迷失在數(shù)據(jù)結(jié)構(gòu)的一連串復雜概念和算法之中,而不知道學習數(shù)據(jù)結(jié)構(gòu)的意義何在。為實現(xiàn)教學目標,筆者鎖定實驗內(nèi)容設置和實驗考核等兩個關(guān)鍵環(huán)節(jié),實踐了如下措施,取得了較好效果。

2.2.1實驗內(nèi)容設置

實驗內(nèi)容設置是進行實踐教學的最重要部分。從覆蓋知識點的角度看,實驗內(nèi)容須面向數(shù)據(jù)結(jié)構(gòu)教學目標,即實驗內(nèi)容須能夠鍛煉學生的編程技巧,如算法設計、調(diào)試、測試以及調(diào)優(yōu)等能力,還能夠讓學生體會到圍繞復用開展軟件開發(fā)的威力以及思路。從覆蓋教育對象的角度來看,實驗內(nèi)容須面向大多數(shù)同學并充分考慮優(yōu)秀同學,即實驗內(nèi)容須劃分不同的層次,讓大多數(shù)學生能夠很容易入手,并讓有能力、有余力的學生能夠不斷地深入,直至形成綜合型課程設計。

基于以上考慮,并借鑒同行經(jīng)驗,筆者開展三個層次的實驗教學活動,一是要求所有學生都完成的實驗內(nèi)容,要求學生采用不同的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)同一個問題并進行對比分析,例如,分別使用靜態(tài)數(shù)組和動態(tài)分配的連續(xù)內(nèi)存區(qū)實現(xiàn)順序表,使用整型、字符型數(shù)組或者鏈表實現(xiàn)長整數(shù)的乘法,使用帶頭結(jié)點或不帶頭結(jié)點的循環(huán)鏈表模擬約瑟夫環(huán)等;二是組織程序設計競賽,讓部分學有余力的同學能夠在算法設計、程序?qū)崿F(xiàn)和調(diào)試、優(yōu)化等方面得到鍛煉和提高;三是設計綜合型課程設計鍛煉學生解決問題的綜合能力,并通過適當分組,培養(yǎng)學生團隊協(xié)作精神和能力,鍛煉學生解決問題的綜合能力的目標,最終達到以點帶面全面提高學生能力的目的。

2.2.2實驗考核手段

考核手段在教學環(huán)節(jié)中至關(guān)重要。考核手段是學生學習和鍛煉自身能力的風向標。為保證每位同學都能積極完成實驗并有所收獲,避免抄襲和敷衍的現(xiàn)象,筆者采取了綜合型的考核手段。其一,提交實驗成果,即程序及其運行結(jié)果;其二,記錄實驗過程、分析實驗結(jié)果以及總結(jié)實驗得失的實驗報告,對實驗報告進行選優(yōu)講評,培養(yǎng)學生撰寫科學實驗報告的能力;其三,每位同學必須面向教師講解自己編寫的程序,包括主要思路和細節(jié)性語法,優(yōu)秀的同學可走上講臺宣講自己的實驗方案和程序設計技巧。這就基本杜絕了學生相互之間抄襲程序和實驗報告的現(xiàn)象,使得學生真正能夠思考問題,并盡力動手完成實驗。綜合上述三種手段的綜合型考核方法既能夠達到督促大部分同學完成實驗、鍛煉動手能力目的,又能夠達到培養(yǎng)優(yōu)秀同學的目的。特別地,優(yōu)秀同學宣講活動能夠使學生觀摩到如何從學生的視角從無到有的解決問題的過程,這能夠培養(yǎng)學生解決實際問題的信心并激發(fā)其學習積極性。

3應用中遇到的問題

建構(gòu)式教學模式在應用和推廣過程中遇到的主要問題來自三個方面。其一,目前學生的課業(yè)負擔較重,習慣于被動“填鴨”而不習慣于主動“求索”,這是推動和開展建構(gòu)式教學模式的主要障礙。其二,建構(gòu)式教學活動,需要師生的密切交流,但現(xiàn)有師資不足難以滿足實際需求。一個可能的解決方法是綜合多門課程和多個老師,建構(gòu)整體的知識框架和學習體系,避免課程教學中的重復勞動,提高師資的利用率。另一個可能的解決方法是利用互聯(lián)網(wǎng)技術(shù),建立在線教學園地。其三,建構(gòu)式教學模式仍然處于探索階段,各學科缺乏建構(gòu)式教學素材。從筆者在實踐教學的體驗來看,應盡量從學生的學習背景和能力成長規(guī)律出發(fā)而不僅僅是從學科背景出發(fā),為學生建構(gòu)知識體系設計更平滑的路線。

4結(jié)語

筆者提出將“培養(yǎng)超越具體程序設計語言技巧的編程技術(shù)”和“培養(yǎng)圍繞復用的軟件開發(fā)方式”作為普通本科院校的數(shù)據(jù)結(jié)構(gòu)教學目標,在建構(gòu)式教育理論的指導下,設計并實踐了一系列建構(gòu)式教學措施,分析了應用建構(gòu)式教學模式所遇到的一些問題。

未來將開展兩個方面的工作。一是通過問卷調(diào)查、統(tǒng)計分析等手段定量地分析建構(gòu)式教學方法的實際效果;二是創(chuàng)造和積累建構(gòu)式教學素材,如研究數(shù)據(jù)結(jié)構(gòu)課程設計過程中不同類型學生的知識建構(gòu)路線,挖掘并推廣其中優(yōu)秀的知識建構(gòu)方法。

參考文獻:

[1] 教育部高等學校計算機科學與技術(shù)教學指導委員會. 高等學校計算機科學與技術(shù)專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行)[m]. 北京:高等教育出版社,2006:8-101.

[2] 蔡敏,鄭尚志,梁寶華.“數(shù)據(jù)結(jié)構(gòu)”課程教學改革之我見[j]. 計算機教育,2009(4):50-51.

篇(5)

作者簡介:周芳(1984-),女,江西撫州人,桂林電子科技大學生命與環(huán)境科學學院,助教。(廣西 桂林 541004)

中圖分類號:G642.0     文獻標識碼:A     文章編號:1007-0079(2012)04-0060-02

“數(shù)據(jù)結(jié)構(gòu)”是一門研究非數(shù)值計算程序設計中操作對象,以及這些對象之間的關(guān)系和操作的學科。該課程具有較強的理論性和實踐性,是一門公認的比較難學的課程,原因在于:本課程理論性和抽象性很強,需要學生從傳統(tǒng)的形象思維轉(zhuǎn)向科學的抽象思維,學習難度大,學習興趣低;教材采用類C語言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語言,有的學生由于前修C語言程序設計課程掌握得不好,影響到本課程的學習;本課程作為非計算機專業(yè)學生的專業(yè)限選課,共48課時,其中理論32課時,課時有限而課程內(nèi)容繁多。針對這些問題,本文介紹和探討了一些切實可行的解決方法。

一、把握課程內(nèi)容主線

為了整體把握好這門課,教師應弄清課程的基本內(nèi)容、基本結(jié)構(gòu)、各部分間的關(guān)系及貫穿全課程的基本線索。

“數(shù)據(jù)結(jié)構(gòu)”所選教材為人民郵電出版社出版的嚴蔚敏編寫的《數(shù)據(jù)結(jié)構(gòu)(C語言版)》。全書共八章,其中第一章為緒論,綜述數(shù)據(jù)、數(shù)據(jù)結(jié)構(gòu)和抽象數(shù)據(jù)類型等概念;第二章至第六章從抽象數(shù)據(jù)類型的角度,分別討論線性表、棧、隊列、數(shù)組、樹和二叉樹以及圖等基本類型的數(shù)據(jù)結(jié)構(gòu)及其應用;第七章和第八章分別討論查找和排序方法,除了介紹各種實現(xiàn)算法之外,還著重從時間復雜度、空間復雜度以及穩(wěn)定性等方面進行定性或定量的分析和比較。貫穿全書的主線為邏輯結(jié)構(gòu)、存儲結(jié)構(gòu)和數(shù)據(jù)運算,如圖1所示。邏輯結(jié)構(gòu)是從具體問題抽象出來的數(shù)學模型,從邏輯關(guān)系上描述數(shù)據(jù)。根據(jù)數(shù)據(jù)元素之間關(guān)系的不同特性,分為線性結(jié)構(gòu)和非線性結(jié)構(gòu)。存儲結(jié)構(gòu)是邏輯結(jié)構(gòu)在計算機中的表示,有順序存儲結(jié)構(gòu)和鏈式存儲結(jié)構(gòu)兩種。數(shù)據(jù)運算是指在某一類型數(shù)據(jù)結(jié)構(gòu)上涉及的基本操作,有插入、刪除、修改、排序和查找等。

抽象數(shù)據(jù)類型是指由用戶定義的、表示應用問題的數(shù)學模型,以及定義在這個模型上的一組操作的總稱,具體包括三部分:數(shù)據(jù)對象、數(shù)據(jù)對象上關(guān)系的集合以及對數(shù)據(jù)對象的基本操作的集合。在講解每一種數(shù)據(jù)結(jié)構(gòu)時都要緊扣課程主線,從抽象數(shù)據(jù)類型的觀點來討論。比如,將第二章線性表的知識點概括為兩大部分:線性表的抽象類型定義和線性表的應用,如圖2所示。定義中,數(shù)據(jù)元素之間邏輯上存在線性關(guān)系,在計算機中表示這種關(guān)系的兩類不同的存儲結(jié)構(gòu)是順序表和鏈表,如圖3所示。對于順序表,元素存儲的先后位置反映出其邏輯上的線性關(guān)系,借助數(shù)組表示,對順序表的基本操作實質(zhì)是對數(shù)組的操作。對于鏈表,是依靠指針來反映其線性邏輯關(guān)系的,對鏈表的基本操作實質(zhì)是對指針的操作。緊扣主線,教學思路清晰,學生學起來系統(tǒng)性強,容易掌握。

另外,作為一門專業(yè)限選課,“數(shù)據(jù)結(jié)構(gòu)”課時有限而課程內(nèi)容繁多,教師不應把所有內(nèi)容都填鴨式灌給學生,應啟發(fā)學生,拋磚引玉。比如,第八章排序方法很多,不可能一一講解。首先對其分類,每一類中講解一到兩種排序算法。重點是讓學生明白分類依據(jù),深刻理解排序方法的基本思想、特點、實現(xiàn)方法、改進創(chuàng)新之處以及其性能分析。

二、解決學生對C語言知識掌握的不足

教材中采用類C語言作為數(shù)據(jù)結(jié)構(gòu)和算法的描述語言。數(shù)據(jù)結(jié)構(gòu)上機實驗課上要求學生使用C語言環(huán)境編寫代碼,完成實驗內(nèi)容。因此,學生對C語言程序設計課程掌握的好壞直接影響數(shù)據(jù)結(jié)構(gòu)課程的教學效果。

C語言程序設計不僅理論性強,而且應用性和操作性更強,要求學生具備分析問題的能力、構(gòu)造算法的能力、編程的能力和調(diào)試程序的能力。C語言功能豐富、表達能力強、使用靈活方便,學生掌握不理想,而解決學生對C語言知識掌握的不足對數(shù)據(jù)結(jié)構(gòu)課程教學大有裨益。總結(jié)數(shù)據(jù)結(jié)構(gòu)課程中用到C語言的主要知識點有:

形參和實參概念,函數(shù)參數(shù)傳遞方式,包括按值傳遞、按地址―指針傳遞和按地址―引用傳遞三種方式;

地址和指針的概念,變量的指針,數(shù)組的指針;

定義結(jié)構(gòu)體變量方法,結(jié)構(gòu)體變量的引用,結(jié)構(gòu)體數(shù)組,指向結(jié)構(gòu)體類型數(shù)據(jù)的指針;

一維數(shù)組的定義和引用,二維數(shù)組的定義和引用。

以上四點是C語言難點,將這些知識點納入到教學內(nèi)容中。這樣既可以復習以前的知識,加深印象,強化理解,又可以為數(shù)據(jù)結(jié)構(gòu)課程的教學做鋪墊。

三、講好第一堂課

俗話說“好的開端是成功的一半”,第一堂課是“重頭戲”,好的開端能吸引學生的注意力,使學生產(chǎn)生強烈的求知欲,從而調(diào)動學生學習的主動性,從“要我學”變成“我要學”。

第一堂課多為緒論課,講解的內(nèi)容不僅涉及課程的性質(zhì)、地位和作用,課程的學科基礎(chǔ),主要內(nèi)容和知識結(jié)構(gòu),學習方法等方面,更側(cè)重強調(diào)它的應用前景。“數(shù)據(jù)結(jié)構(gòu)”主要研究如何合理地組織數(shù)據(jù)、高效地處理數(shù)據(jù),在現(xiàn)實世界中有很多應用,如線性表和學生信息管理系統(tǒng);棧和八皇后問題、Hanoi塔問題;隊列和食堂、加油站的順序服務;樹和人類的族譜、公司組織結(jié)構(gòu);圖和通訊網(wǎng)絡構(gòu)建、最短路徑。

興趣是最好的老師,而問題是興趣的源泉。學生真正關(guān)心的是學以致用,如何應用所學知識到現(xiàn)實世界中解決實際問題。因此,教師結(jié)合實際問題,激發(fā)學生學習的興趣,為以后的講課創(chuàng)造了良好條件。

四、加強實驗環(huán)節(jié)

“數(shù)據(jù)結(jié)構(gòu)”具有很強的操作性和實踐性,設置實驗環(huán)節(jié)十分重要。通過實驗內(nèi)容的訓練,一方面加深學生對課堂所學知識的理解,另一方面培養(yǎng)學生算法分析、算法設計的軟件開發(fā)思維模式,鍛煉學生上機編寫程序和調(diào)試程序的能力。

實驗課共8次,16學時,實驗內(nèi)容安排如表1所示。其中,實驗一和實驗二復習C語言中函數(shù)參數(shù)傳遞方式和結(jié)構(gòu)體使用;實驗三至實驗六涉及了順序表、單鏈表、棧以及隊列的基本操作及其應用;實驗七和實驗八分別是折半查找和排序方法。實驗內(nèi)容涵蓋理論課的主要內(nèi)容,使實驗課和理論課有機結(jié)合,相輔相成,加深學生對知識點的理解。

實驗課分為實驗預習、上機操作和實驗報告三部分。實驗前,學生閱讀實驗指導書,了解清楚本次實驗的目的、實驗要求和實驗內(nèi)容。實驗中,教師首先對實驗所涉及的知識點進行講解。然后學生根據(jù)實驗內(nèi)容完成算法分析、程序設計和調(diào)試測試,教師答疑指導。實驗結(jié)束后,要求學生完成實驗報告,重點體現(xiàn)知識點的總結(jié),實現(xiàn)算法的流程圖以及調(diào)試過程中問題是如何解決的。

實驗課應充分調(diào)動學生學習的積極性,讓學生收獲實驗成果的喜悅。筆者根據(jù)自己的教學體會,總結(jié)出以下四點心得:

讓學生參與講解,體會知識分享快樂,激發(fā)學習熱情;

強調(diào)程序調(diào)試的重要性,不要在心里懼怕程序出錯;

鼓勵多進行交流,通過團隊合作的方式幫扶基礎(chǔ)差的學生;

及時批改實驗報告,發(fā)現(xiàn)問題,在下一次實驗時進行講解。

五、結(jié)語

“數(shù)據(jù)結(jié)構(gòu)”課程由于受課時少和前修課程不足等因素的限制,教師想教好,學生想學好都有較大的難度。恰逢此時,為提升教師教學水平,筆者所在學校組織觀看北京理工大學龔紹文教授的“關(guān)于如何講好一堂課的十個問題”的培訓講座錄像,此次培訓使筆者受益匪淺,為此結(jié)合教學實踐從以上四個方面積極探索,取得了切實的效果。但對課程體系的建設,學生學習興趣的激發(fā),教學方法的改進等問題仍需進一步研究。總之,講好數(shù)據(jù)結(jié)構(gòu)課將是筆者今后追求的教學目標。

參考文獻:

[1]嚴蔚敏,李冬敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)(C語言版)[M].北京:人民郵電出版社,2011.

篇(6)

中圖分類號:TP3-4 文獻標識碼:A文章編號:1007-9599 (2011) 06-0000-01

Teaching Research on Data Structure Experiment

Zhang Xiujian

(Guangzhou University Sontan Collehe,Guangzhou 511370,China)

Abstract:Data structure is a course that emphasizes that exercise of logical thinking and programming ideas.In this paper,we argue that the appropriate experimental program and integration of software engineering can improve student’s innovative ability.

Keyword:Data Structure;Experiment;Programming;Teaching

《數(shù)據(jù)結(jié)構(gòu)》,是一門重要的理論學科。通過調(diào)研看出,該科目在各個院校的實驗教學情況存在較大差異。學生學習理解過程緩慢,教師教學也不能得心應手,尤其是實驗課,由于部分學生對編程語言掌握不熟練,實驗內(nèi)容抽象,而有較大畏難情緒,甚至不參加實驗課。雖然曾經(jīng)有些教師參考了任務驅(qū)動、實例教學等方法,但過于強調(diào)某種教法,也會影響教學效果。所以,該課程宜結(jié)合課程特點設計教學,切實通過貼近于實際的方法傳道授業(yè),結(jié)合實驗落實教學效果是非常重要的。

一、數(shù)據(jù)結(jié)構(gòu)課程實驗教學中問題所在

(一)實驗課時欠缺。有的學校壓縮實驗時間,讓位于理論教學,這對學習效果的落實來說是本末倒置。沒有足夠的實驗課時,學生就無法把理論知識加以系統(tǒng)地整理,進而在實驗中消化吸收。

(二)綜合性、創(chuàng)新性實驗科目欠缺,系統(tǒng)性不強。開設的數(shù)據(jù)結(jié)構(gòu)的實驗課程中,雖然安排了相關(guān)知識點的實例,但是對設計的創(chuàng)新性和綜合性上有待提高,要加強知識點的綜合運作。

(三)沒有很好地結(jié)合課堂教學和實驗教學。作為一門比較抽象的理論教學課,尤其要重視課堂和實驗教學相結(jié)合。實驗中要突出該課程的實踐性,教學中要注重理論和實踐的結(jié)合。現(xiàn)在,不少教師只重視知識的灌輸,在實驗中任務不明確,要求不明晰,讓學生在實驗中迷失了對理論的進一步實踐的方向。

二、實驗教學的改革探索

(一)教學模式的改變。基于數(shù)據(jù)結(jié)構(gòu)課程理論難于理解的特點,要突出實驗課的效果,要注重“課堂.一章的基礎(chǔ)性實驗.綜合實驗”相結(jié)合的框架。注意從邏輯機構(gòu)到存儲結(jié)構(gòu),再到實現(xiàn)基本算法,繼而具體應用的方法,一以貫之地落實到數(shù)據(jù)結(jié)構(gòu)教學中去。算法的講授要先分析算法,再運用編程語言演練算法,最后進一步分析算法。如能采用多媒體演示算法的步驟,會使學生更加清晰地理解。課堂教學始終要把應用的要求作為做種目標,輔以實驗訓練,加強學生動手編程和自我創(chuàng)新的能力。

(二)基礎(chǔ)實驗環(huán)節(jié)要重視。實驗環(huán)節(jié)要讓學生進一步理解數(shù)據(jù)結(jié)構(gòu)的特點,明確相關(guān)概念,熟練各種基本算法的實現(xiàn)。枯燥的理論講述的再多,也不如配合實驗讓學生一練,所以教學要重視基礎(chǔ)實驗環(huán)節(jié)。要想獲得扎實的教學效果,教師要提供實驗編程語言,Turbo C、Visual C++、Delphi等都可以。根據(jù)教材確定實驗方案,明確實驗目的、內(nèi)容、要點和必備注意事項,最后安排幾個演練題目,比如矩陣的遍歷、數(shù)據(jù)的折半查找等。實驗課程要貼近學生的編程水平,不可偏離太過。實驗中,學生有章可循,對要點有較強的針對性,實驗效率就會大大提高,使學生真正能舉一反三。

(三)課程實驗要理論應用相結(jié)合。實驗要注意結(jié)合原理和應用,讓學生在解決實際問題時學會調(diào)用學過的知識點,養(yǎng)成動手練習語言編程的習慣,所以,這個層面的綜合實驗要求要高于普通的課下練習和基礎(chǔ)實驗,更貼近于應用。平時雖然側(cè)重練習簡單的算法程序,但綜合實驗課是軟件設計的高級訓練階段,融合了問題的分析,系統(tǒng)結(jié)構(gòu)設計、操作界面設計、編程技能技巧,是軟件設計的系統(tǒng)工程。教師分階段擬定數(shù)據(jù)機構(gòu)在實踐中的各種應用,比如:漢諾塔問題、約澀夫環(huán)問題、Huffman Coding方式、班級信息管理系統(tǒng)等,把任務分配給學生,讓學生組織課題公關(guān)。課題的結(jié)題要提供課題表述、基本要求、實驗數(shù)據(jù)、實現(xiàn)結(jié)果和關(guān)鍵實現(xiàn)步驟等內(nèi)容,這能協(xié)助學生破題解題,以免形成錯誤的認識,同時也講解了程序設計的基本路線,確保實驗目標的實現(xiàn)。最后每個課題組都集中展示實驗過程接結(jié)果。試試證明,這樣的實驗環(huán)節(jié),綜合了數(shù)據(jù)結(jié)構(gòu)知識、編程語言技能和軟件工程思想,讓學生系統(tǒng)地理解各門課程的聯(lián)系,融合相關(guān)專業(yè)課的精髓,鍛煉了學生的團隊合作互助精神,提高了組織能力和管理水平

三、重點組織好教學實驗的各個環(huán)節(jié)

(一)實驗題目的設計。鑒于實驗環(huán)節(jié)教學時間的限制,學生的編程基礎(chǔ)和技能較為薄弱,所以,設計和擬定合適的實驗題目尤為重要。實踐題目應該由易到難循序漸進:

1.常用算法練習。主要講解各章節(jié)知識點,深入貫徹算法理論的理解;2.基礎(chǔ)性應用練習。主要讓學生針對單一的數(shù)據(jù)結(jié)構(gòu)解決應用難題,其難度中等;3.綜合應用題目練習。要涵蓋多個章節(jié)的內(nèi)容,系統(tǒng)性強,難度較高,可以組織學生成立課題組,在課外實驗環(huán)節(jié)共同研討解決,再集中展示。課題的設計要注意:(1)常用算法的練習要有一定代表性,重點練習各個章節(jié)的知識點,難度較小,目的在于理論知識的掌握。課堂教學要和實驗環(huán)節(jié)對應,學生在試驗中重點演練課上講授的內(nèi)容。(2)基礎(chǔ)性應用練習難度要適中,既要帶動基礎(chǔ)薄弱的學生,又要注意發(fā)揮基礎(chǔ)好的學生的能動性,可以加以延伸,或是鼓勵提供多種解決方法,進行不同思路的性能的比較,讓各個層面的學生都能參與實驗。(3)綜合應用練習題不宜太難,但要引起學生的興趣,宜于結(jié)合實際中的事物或應用系統(tǒng),讓學生宜于接受和理解,這樣才能促進學生的積極性。

(二)實驗環(huán)境的搭建。現(xiàn)在很多學校選取譚浩強教授出版的《數(shù)據(jù)結(jié)構(gòu)(c語言版)》作為教材,應用C語言進行數(shù)據(jù)結(jié)構(gòu)的設計語言,用TC搭建實驗環(huán)境。而在實際教學中,應用C語言講解數(shù)據(jù)結(jié)構(gòu)常常對算法設計和實現(xiàn)上較為突出,對數(shù)據(jù)結(jié)構(gòu)的系統(tǒng)性容易忽視。如果用C++進行數(shù)據(jù)結(jié)構(gòu)的實驗練習,可以注重其整體性和系統(tǒng)性,先定義數(shù)據(jù)結(jié)構(gòu)的類,再分析其邏輯特性,然后把存儲結(jié)構(gòu)延伸到算法的實現(xiàn)中去,能幫助學生構(gòu)建數(shù)據(jù)機構(gòu)的概念。

(三)實驗過程的組織與實施。實驗中可以采取學生分組、一人負責的機制進行實驗。提倡互動探討和交流,既能讓學生接觸更多的實驗題目,也能提高學生的團隊合作精神。

(四)實驗結(jié)果的檢驗和考核。對實驗結(jié)果,教師要輔以必備的檢查來進行督導。對于實驗報告的書面匯報,要設計題目、要求、步驟、結(jié)構(gòu)、程序代碼和改進方法,以及最后的體會等。教師通過實驗報告書可以詳細了解學生的實驗情況,進而發(fā)現(xiàn)共性的問題集中解決。

(五)實驗問題的總結(jié)與彌補。通過實驗,教師對于學生學習中存在的問題要進行系統(tǒng)總結(jié)和分析加以更正,有些不良的編程習慣,教師要著重強調(diào)。

四、結(jié)束語

《數(shù)據(jù)結(jié)構(gòu)》的實驗課注重學生動手能力的培養(yǎng),強調(diào)創(chuàng)新思維的養(yǎng)成,通過實驗,結(jié)合應用案例,能夠進一步提高該課程的教學質(zhì)量,加深學生對知識點的理解,具有積極的現(xiàn)實意義。

篇(7)

關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu);教學內(nèi)容;組織形式;考核方式

中圖分類號:G642

文獻標識碼:B

利用計算機來解決實際問題的步驟是:給出問題描述,將問題抽象成數(shù)學模型,根據(jù)數(shù)學模型寫出求解問題的算法,再根據(jù)算法寫出程序代碼,最后上機調(diào)試并分析結(jié)果。在上述過程中,非數(shù)值的數(shù)學模型是數(shù)據(jù)結(jié)構(gòu)研究的主體,它操作實現(xiàn)主要是通過數(shù)據(jù)結(jié)構(gòu)的實驗教學環(huán)節(jié)來完成的,在該教學環(huán)節(jié)中作為教學主體的學生,首先要具備抽象思維能力和語言基礎(chǔ)。往往在環(huán)節(jié)實施過程中,語言基礎(chǔ)是薄弱環(huán)節(jié),以至于課時用完了,學生還是寫不出滿意的算法及代碼。鑒于此,我們在教學內(nèi)容、組織形式、考核方式等教學環(huán)節(jié)中進行了一些設計,與大家一起來探討。

1教學內(nèi)容

我們在教學內(nèi)容上,圍繞課內(nèi)、課外兩條主線進行改革,給學生較大的自主學習空間,有利于學生創(chuàng)新精神及實踐能力培養(yǎng)。整個實驗教學由淺入深,重在基礎(chǔ)、提高能力、挖掘潛力、拓展思路。在課時內(nèi)的教學主要以基礎(chǔ)性實驗為主,安排一個綜合性實驗;課時外的教學主要以設計性實驗和綜合性實驗為主。

1.1學時內(nèi)的教學內(nèi)容

在我校數(shù)據(jù)結(jié)構(gòu)課程共64學時,理論課48學時,實驗課16學時。安排了5個實驗項目,由于多數(shù)學生語言基礎(chǔ)不算太好,特別是指針的運用和結(jié)構(gòu)體的定義是薄弱環(huán)節(jié),所以在做實驗項目時,主要是從教材上的算法出發(fā),使得學生有章可循:

項目1:順序表的操作

主要訓練學生對順序存儲結(jié)構(gòu)的理解,掌握順序表的查找、插入和刪除等基本操作;同時引導學生對于靜態(tài)參數(shù)傳遞和動態(tài)參數(shù)傳遞的使用方法。

項目2:單鏈表的操作

主要是與順序存儲結(jié)構(gòu)進行比較,完成線性表在鏈式存儲結(jié)構(gòu)上的查找、求長度、插入、刪除等基本操作。

項目3:棧和隊列的應用―停車場的管理

深入了解棧和隊列的特征,以便在實際問題背景下靈活運用;利用兩個棧和一個隊列模擬停車場管理及相關(guān)操作。

項目4:二叉樹的遍歷

掌握二叉樹的結(jié)構(gòu)特征,以及二叉鏈表存儲結(jié)構(gòu)的特點;掌握二叉樹三種(先序、中序和后序)遍歷方法;熟悉并且掌握遞歸算法。

項目5:折半查找和快速排序

掌握折半查找和快速排序的方法,掌握要進行折半查找應該采取的存儲結(jié)構(gòu)形式。并進行對其進行時間復雜度的分析。

對于每個實驗項目的實驗目的和實驗要求,提前2周放在教學平臺上。在實驗前1周,利用輔導課時間,以測試的形式,讓學生寫出算法代碼,由于每個實驗基本上可以在教材中找到源代碼痕跡,所以難度不大。

在實驗教學過程中,采用任務驅(qū)動式的教學模式,首先從總體思路上講解10分鐘左右,邊輔導邊發(fā)現(xiàn)問題,每半個小時總結(jié)1次。由于學生已經(jīng)在課前作好了準備,在實驗室里他們贏得了更多的自主時間用來調(diào)試程序,分析結(jié)果。學生水平參差不齊,在上課過程中穿插實驗驗收考核,考核的形式是現(xiàn)場寫出主要操作的代碼,在規(guī)定的時間內(nèi)進行調(diào)試、分析。驗收完一個模塊,學生再進行下一個任務。教師通過講課、輔導、驗收使得實驗課堂充實起來,由于學生每個時間段都有活干,所以課堂氣氛非常活躍,討論熱烈。

1.2學時外的教學內(nèi)容

在學時外,以課程設計的形式,利用開放實驗室時間,嚴格按照軟件工程的思想進行訓練。

在課程設計時,教師列出多個設計課題,每個課題都有相應的要求或說明。各課題的難易度是有差異的,每個課題后以標準分的形式標出了難易度。例如:

課題1:設有n個人圍坐在圓桌周圍,現(xiàn)從某個位置m(1≤m≤n)上的人開始報數(shù),報數(shù)到k的人就站出來。下一個人,即原來的第k+1個位置上的人,又從1開始報數(shù),再報數(shù)到k的人站出來。依此重復下去,直到全部的人都站出來為止。試設計一個程序求出出列序列(難易度90)。

課題2:用遞歸算法和非遞歸算法實現(xiàn)下面問題,并比較其算法優(yōu)勢。把一只老鼠放進一個無蓋的大箱內(nèi), 箱內(nèi)設置若干隔板,使老鼠走動的方向受到阻礙,看其如何找到一條通道,走出大箱(難易度80)。

“難易度90”表示設計中的各項全部達到要求時的最高得分大致為90。因此,參加課程設計的學生首先要了解設計的任務,仔細閱讀各題的設計要求,然后根據(jù)自己的基礎(chǔ)和能力情況從中選擇一題。一般來說,選擇課題應以在規(guī)定的時間內(nèi)能完成,并能得到應有的鍛煉為基本原則。課程設計的總體思路是:數(shù)據(jù)模型選取構(gòu)造求解算法選擇存儲結(jié)構(gòu)編寫程序代碼調(diào)試測試總結(jié)分析。

在做課程設計時,不再拘泥于語言環(huán)境的限制和存儲結(jié)構(gòu)的限制,主要鍛煉學生的開放思維能力和綜合知識的應用能力。同時,引導學生從結(jié)構(gòu)化程序設計到面向?qū)ο蟪绦蛟O計的思考。例如學生正在學習C#,在做課題1時,除了傳統(tǒng)的設計方法外,可以引導學生畫出類圖和順序圖,寫出C#的代碼。

設計結(jié)束后要寫出課程設計報告,以作為整個課程設計評分的書面依據(jù)和存檔材料。主要包括:需求分析、概要設計、詳細設計、調(diào)試分析、用戶使用說明、測試結(jié)果、參考文獻等。課時外的訓練主要是為畢業(yè)設計打下基礎(chǔ),同時也培養(yǎng)了學生的團隊協(xié)作精神。

2組織形式

2.1學生的組織

對于學生進行分組,每組中按照好、中、差的學生進行搭配。由于學生水平參差不齊,早做完的學生,進行考核驗收。驗收合格,同時給出相關(guān)思考題,可以再對于思考題進行進一步的思考,鍛煉創(chuàng)新精神。同時,讓已完成任務的學生輔導未完成任務的學生,這樣培養(yǎng)了學生的團隊協(xié)作精神,課堂氣氛非常活躍,激發(fā)了學生學習的主動性。對于教師的工作也減輕了一些,教師主要是總體部署,分步考核,可以有充足的時間進行驗收,比較清楚地掌握總體情況,以便講評。這樣組織學生,可以解決“優(yōu)等生吃不飽,差等生吃不了”的局面,實現(xiàn)了“因才施教”。

2.2內(nèi)容的組織

對于每一個實驗項目的實驗目的、相關(guān)要求等,以實驗指導書的形式與學生見面,一本好的實驗指導書能給學生的上機實驗帶來事半功倍的效果。

首先,讓學生明確實驗目的和要求。每個實驗項目都給出了實驗目的,并且提出了具體要求。有了實驗目的,學生才有方向性;有了具體要求,學生實驗時才有章可循。對于要求,要按時間分塊執(zhí)行。比如單鏈表的操作為2學時,第一個學時完成建立、查找、部分主函數(shù)工作;第二學時在第一學時基礎(chǔ)上完成插入、刪除操作,完善主函數(shù)。每一個學時在最后進行驗收,若有問題通過小組完成。

其次,讓學生掌握實驗步驟。每一個實驗項目按照軟件工程的思想去組織,先需求分析,抽象出數(shù)據(jù)結(jié)構(gòu)模型,再明確數(shù)據(jù)類型,詳細設計,最后給出類C語言的算法描述。要求學生要嚴格遵循實驗步驟來思考問題,這樣,可以培養(yǎng)學生良好的工作作風和解決問題的方法,并且為后續(xù)課程做準備。

3考核方式

市場經(jīng)濟體制下的學生不如計劃經(jīng)濟體制下的學生好教育,特別目前高校擴招,入學的學生素質(zhì)參差不齊,基礎(chǔ)相對薄弱,自學能力不強,不少學生在學習上存在畏難心理。而對于高等教育也不能降低要求,這樣就要求在教學模式上進行革新,我校對教和學提出兩個轉(zhuǎn)變,“變學生管理為學習管理,變管理學生為服務學生”。對于課程教學,不能再采取應試教育下的考核形式。鑒于此,在數(shù)據(jù)結(jié)構(gòu)的教學過程中,特別是實驗教學,探索出了新的考核形式。

分數(shù)對學生來說是非常重要的,以此作為課程管理的抓手。對于教學計劃內(nèi)的實驗項目成績分成兩個部分,一個是個人成績,一個是小組成績。個人成績主要考核學生個人能力,小組成績主要是考核學生的團隊協(xié)作精神。對于個人成績考核形式有兩個方面,一個方面是學生的程序代碼調(diào)試技能的測試,一個方面是書寫實驗報告,從實驗報告上可以考查學生的邏輯組織能力。筆者把該考核模式稱為“實驗2+2”模式。每個實驗項目結(jié)束前進行驗收考核,經(jīng)常進行階段性考核,主要是激發(fā)學生的學習興趣,保證了課堂教學紀律,基本沒有缺勤的學生,讓學生找不出來不學習的理由,因為每處都與成績掛鉤,都在拼命的去“掙分”。

對于課程設計部分,實驗室開放時間結(jié)束時,由學生提交課程設計源代碼和設計總結(jié)報告。源代碼提交時,要生成可執(zhí)行文件,對文件進行壓縮,壓縮文件名為“學號+姓名”形式,發(fā)送到指定郵箱地址。課程設計成績根據(jù)學生設計任務完成情況、設計報告、設計成果的質(zhì)量以及答辯情況綜合評定。完成情況主要包括:功能實現(xiàn)情況和程序設計情況;設計報告包括課程設計報告格式,課程設計思路及設計過程,以及對設計的自我評價,收獲和體會等;答辯要求思路清晰,模塊關(guān)系清楚,回答問題敏捷。

對于學生的學業(yè)成績采用結(jié)構(gòu)化成績,把100分不再作為一個整體看待,把它融進教學的全過程中去。學生的學業(yè)成績由平時成績、副卷成績和主卷成績構(gòu)成,平時成績占20%,副卷成績占20%,主卷成績占60%。在平時成績中課程設計10分,作業(yè)和平時課堂表現(xiàn)5分,小考5分;副卷成績中個人成績15分(其中程序調(diào)試10分,實驗報告5分),小組成績5分。

4結(jié)論

通過實施驗證,效果是良好的。實驗的創(chuàng)新也帶動了整個課程的進步,特別是上課出勤率,基本上是全勤。課堂氣氛活躍,問題討論熱烈,學生的學習主動性大大提高了,網(wǎng)絡教學平臺登錄次數(shù)明顯增多。在問題答疑和考核驗收方面,雖然增加了教師的教學工作量,但是提高了教師的工作熱情。真正實現(xiàn)了“教”和“學”的良好互動,提高了教學質(zhì)量。

參考文獻:

篇(8)

近年來,在產(chǎn)業(yè)界急需大量軟件開發(fā)人員的情況下,普通本科院校計算機專業(yè)學生的就業(yè)率持續(xù)走低。網(wǎng)絡、報紙等媒體對計算機本科教育現(xiàn)狀多有批評,甚至出現(xiàn)了大學不如培訓公司的極端觀點,嚴重影響了學生對專業(yè)課程的學習興趣、動力和信心。數(shù)據(jù)結(jié)構(gòu)是計算機專業(yè)的核心基礎(chǔ)課程,上承程序設計語言、離散數(shù)學,下啟操作系統(tǒng)、編譯原理等課程,其重要性不言而喻。一方面,數(shù)據(jù)結(jié)構(gòu)學科具有難度大、抽象層次高、概念繁雜等特點,學生很難掌握,更不要說將抽象理論與就業(yè)實踐需求相結(jié)合。另一方面,國內(nèi)主流數(shù)據(jù)結(jié)構(gòu)教材和相應的傳統(tǒng)教學模式側(cè)重于培養(yǎng)學生的計算機學科基礎(chǔ)理論素養(yǎng),而將如何通過組織數(shù)據(jù)結(jié)構(gòu)教學活動積極推動就業(yè)的問題留給了任課教師[1]。這造成了學生學習數(shù)據(jù)結(jié)構(gòu)的目標不明、信心和動力不足。筆者面向就業(yè)需要明確了數(shù)據(jù)結(jié)構(gòu)的兩大主要教學目標,并在實際教學過程中實踐建構(gòu)式教育理論,嘗試解決學生對專業(yè)認識不清、學習興趣不足、編程基礎(chǔ)薄弱等問題。一些做法得到了學生的認可和配合,成功地激發(fā)了學生的學習主動性、在一定程度上培育了學生的創(chuàng)新精神。

1面向就業(yè)需求的數(shù)據(jù)結(jié)構(gòu)教學目標

教育要服務于社會生產(chǎn)需求。數(shù)據(jù)結(jié)構(gòu)教學也必須緊扣這一根本目標。本節(jié)從滿足就業(yè)需要的角度闡明了數(shù)據(jù)結(jié)構(gòu)教學的兩個主要目標:

1) 培養(yǎng)超越具體程序設計語言技巧的編程技術(shù)。

現(xiàn)階段是一個傳統(tǒng)的生產(chǎn)生活方式迅速向電子化、信息化轉(zhuǎn)變的時期。人們需要開發(fā)和維護更多、規(guī)模更大的計算機系統(tǒng)來滿足生產(chǎn)和生活的需要[2]。這就決定了具有熟練編程技術(shù)的程序員在很長時期內(nèi)都將受到產(chǎn)業(yè)界的青睞。大學對學生編程技術(shù)的培養(yǎng)始于程序設計語言的教學,如C語言,Java語言等。但是現(xiàn)今編程語言繁多,各種新概念層出不窮,常常出現(xiàn)學生無所適從或者質(zhì)疑某門語言課程已經(jīng)過時無用的現(xiàn)象。甚至很多教師也在爭論講授何種編程語言。筆者看來掌握編程技術(shù)(而不僅僅是語言),回歸編程的本質(zhì)問題更加重要,無謂地追趕時髦不可取。作為編程語言課程的后續(xù),數(shù)據(jù)結(jié)構(gòu)教學的重要目標就是幫助學生理解編程的本質(zhì)、鍛煉編程技術(shù)以及學習提高編程技術(shù)的方法。

2) 培養(yǎng)圍繞復用的軟件開發(fā)方式。

隨著軟件規(guī)模的日益增大,軟件開發(fā)模式逐漸從“從無到有”的模式過渡到“從有到有”的模式,即復用現(xiàn)有的豐富的軟件資產(chǎn),開發(fā)新的應用系統(tǒng)。事實上,復用的思想已經(jīng)被廣泛的用于軟件開發(fā)實踐之中,從各種各樣的程序庫、軟件開發(fā)包、軟件構(gòu)件、Web服務等各種可復用資產(chǎn)已經(jīng)簡化了軟件開發(fā)的難度、提高了軟件開發(fā)的效率也極大地改變了軟件開發(fā)的模式。數(shù)據(jù)結(jié)構(gòu)學科本身就是對軟件復用思想的一種實踐,它通過總結(jié)大量軟件系統(tǒng)中反復出現(xiàn)的數(shù)據(jù)結(jié)構(gòu)(如表、樹、圖、集合等),定義和實現(xiàn)處理這些數(shù)據(jù)結(jié)構(gòu)的基本操作,最終達到能夠在不同項目開發(fā)中反復應用的目的。這些基本數(shù)據(jù)結(jié)構(gòu)和算法已經(jīng)被實現(xiàn)為可復用的產(chǎn)品隨著程序設計語言,如C++ STL、C# collections, Java collections等,并得到了廣泛的使用。因此,數(shù)據(jù)結(jié)構(gòu)教學的另一個重要目標就是引導學生習慣圍繞復用的軟件開發(fā)方式,能夠使用和定制已有的數(shù)據(jù)結(jié)構(gòu)和算法庫。

其他傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)教學目標,如培養(yǎng)學生面向?qū)嶋H問題進行算法設計和分析的能力,培養(yǎng)學生計算機學科的基本理論素養(yǎng)和思維方式等也非常重要。但普通本科院校學生對理論內(nèi)容的接受能力以及將理論和現(xiàn)實就業(yè)需求相聯(lián)系的能力相對較弱且教學時間有限[3],筆者認為重點突破本節(jié)給出的兩個更具體、更可達的教學目標,并在實現(xiàn)這種具體教學目標的過程中潛移默化地培育學生的計算思維和理論素質(zhì),將會取得更佳的效果。

2建構(gòu)式數(shù)據(jù)結(jié)構(gòu)教學

教學理論研究以及教學實踐反饋均表明,學生主動學習的效果遠較被動地接受老師灌輸?shù)男Ч玫亩唷R虼耍瑸閷崿F(xiàn)上述教學目標,在建構(gòu)式教育理論的指導下,筆者探索并采用了一系列建構(gòu)式教學措施,激發(fā)學生的主動性和興趣,取得了較好效果。

建構(gòu)主義認為,學習并非學習者對教師所授知識的被動接受,而是學習者以自身已有知識和經(jīng)驗為基礎(chǔ)的主動建構(gòu)過程[4]。知識不僅是通過教師傳授而得到,更是學習者在一定的情境中,利用必要的學習資料,通過同化新知識、順化自身知識結(jié)構(gòu)的方式而獲得。建構(gòu)主義提倡在教師指導下的、以學習者為中心的學習,也就是說,既強調(diào)學習者的認知主體作用,又不忽視教師的指導作用,教師是意義建構(gòu)的幫助者、促進者,而不僅僅是知識的傳授者與灌輸者。學生是信息加工的主體、是意義的主動建構(gòu)者,而不僅僅是外部刺激的被動接受者和被灌輸?shù)膶ο蟆O旅鎻睦碚摻虒W和實踐教學兩個方面介紹我們采用的一些教學措施。

2.1理論教學措施

課堂教學是數(shù)據(jù)結(jié)構(gòu)教學活動的主要部分,充分利用課堂教學時間,激發(fā)學生學習數(shù)據(jù)結(jié)構(gòu)的興趣和信心,幫助學生建立學習數(shù)據(jù)結(jié)構(gòu)的環(huán)節(jié)非常重要。我們采用了如下措施:

1) 組織小型討論。

好的開始是成功的一半,好的課堂教學須在上課之初就抓住學生的注意力,讓學生帶著輕松、愉快的心情聽課。我的做法是在課堂的前5分鐘,提出一個學生感興趣的話題,組織若干個有3~5位同學參與的小型討論。到一個學期結(jié)束時,每位同學都有至少一次的發(fā)言機會。討論的主題可以靈活設置,如時事、技術(shù)、社會熱點等。有時,課堂中間學生比較疲憊、注意力下降的時候,也可以穿插一點討論,改善課堂環(huán)境。大多數(shù)學生非常喜歡這種討論活動,積極參與其中,成為課堂的一部分,從被動上課轉(zhuǎn)變?yōu)橄矚g上課。

2) 重建理論知識所針對的問題。

國內(nèi)的經(jīng)典數(shù)據(jù)結(jié)構(gòu)教材側(cè)重嚴謹?shù)睦碚摚^少討論各種概念、算法出現(xiàn)的背景以及探討的問題是否仍然具有現(xiàn)實價值。而回答這些問題能夠幫助學生重建理論知識所針對的問題原型,重現(xiàn)解決方案的提出、發(fā)展乃至最終成熟的整個過程,更有助于培養(yǎng)學生解決實際問題的能力,養(yǎng)成批判性、創(chuàng)新性思考的習慣。眾所周知,關(guān)于樹的存儲方法很多,有雙親表示法,孩子表示法和二叉鏈表表示法[5],其中以樹的二叉鏈表表示法使用最廣,但其他存儲方法也有其適合的應用。例如,在利用樹表示各個集合,求集合中的等價類時,雙親表示法更為合適。每一個集合都用樹的雙親表示法存儲時,并設樹的根結(jié)點的值為集合名,集合中的每個成員都對應一個結(jié)點,這樣很容易找到一個元素所屬的子集(順著雙親指針找樹的根結(jié)點)。

3) 組織“我來講”活動。

數(shù)據(jù)結(jié)構(gòu)涉及很多抽象的概念和算法,初學者很難理解。而教師則對理論內(nèi)容比較精熟,常常傾向于從理論的角度逐步遞進、展開講解,這就增加了學生的學習難度。教師和學生在教學語言上的鴻溝是影響教學效果的一個重要障礙。教師當然可將抽象的理論概念與生活中更形象的概念進行類比,幫助學生理解,也可以將復雜的算法過程用多媒體動畫模擬出來,直觀地展示給學生,幫助學生掌握。但一方面,根據(jù)建構(gòu)主義理論,教師和學生的知識背景不同,由教師設計概念類比語境和算法模擬動畫實際上仍然是基于教師的知識結(jié)構(gòu)對知識點進行的同化和順化,而不是對學生知識體系的直接建構(gòu)。另一方面,教師的經(jīng)驗和智慧有其局限性,未必總能夠找到最適合的類比語境和動畫模擬。為此,筆者采用了充分發(fā)揮學生智慧的方法,組織“我來講”活動,要求學生通過設計算法的動畫模擬,創(chuàng)建概念的類比語境等方式進行學習,并隨機選擇學生走上講臺對抽象理論概念和復雜算法進行說明。這樣不但能夠調(diào)動學生思考問題,還能幫助那些無法完成自我知識體系建構(gòu)的同學從學生的視角去理解同一個問題。例如,對于n維數(shù)組是元素為n-1維數(shù)組構(gòu)成的線性表這一遞歸的類型定義,可采用符號推理的方式,培養(yǎng)學生的理論素養(yǎng),而同時可鼓勵學生根據(jù)自己的理解將抽象理論具體化,建立幫助理解和記憶的現(xiàn)實語境。

2.2實踐教學措施

數(shù)據(jù)結(jié)構(gòu)是幫助具有基本編程語言基礎(chǔ)的學生錘煉編程技術(shù)的關(guān)鍵課程。它揭示了程序設計的基本面,即如何處理相互之間存在一種或多種數(shù)據(jù)關(guān)系的數(shù)據(jù)元素所構(gòu)成的集合、如何設計算法并分析算法的優(yōu)劣。若沒有相應的配套實驗指導學生如何將理論應用于實際問題,只是泛泛而談、紙上談兵,學生容易迷失在數(shù)據(jù)結(jié)構(gòu)的一連串復雜概念和算法之中,而不知道學習數(shù)據(jù)結(jié)構(gòu)的意義何在。為實現(xiàn)教學目標,筆者鎖定實驗內(nèi)容設置和實驗考核等兩個關(guān)鍵環(huán)節(jié),實踐了如下措施,取得了較好效果。

2.2.1實驗內(nèi)容設置

實驗內(nèi)容設置是進行實踐教學的最重要部分。從覆蓋知識點的角度看,實驗內(nèi)容須面向數(shù)據(jù)結(jié)構(gòu)教學目標,即實驗內(nèi)容須能夠鍛煉學生的編程技巧,如算法設計、調(diào)試、測試以及調(diào)優(yōu)等能力,還能夠讓學生體會到圍繞復用開展軟件開發(fā)的威力以及思路。從覆蓋教育對象的角度來看,實驗內(nèi)容須面向大多數(shù)同學并充分考慮優(yōu)秀同學,即實驗內(nèi)容須劃分不同的層次,讓大多數(shù)學生能夠很容易入手,并讓有能力、有余力的學生能夠不斷地深入,直至形成綜合型課程設計。

基于以上考慮,并借鑒同行經(jīng)驗,筆者開展三個層次的實驗教學活動,一是要求所有學生都完成的實驗內(nèi)容,要求學生采用不同的數(shù)據(jù)結(jié)構(gòu)實現(xiàn)同一個問題并進行對比分析,例如,分別使用靜態(tài)數(shù)組和動態(tài)分配的連續(xù)內(nèi)存區(qū)實現(xiàn)順序表,使用整型、字符型數(shù)組或者鏈表實現(xiàn)長整數(shù)的乘法,使用帶頭結(jié)點或不帶頭結(jié)點的循環(huán)鏈表模擬約瑟夫環(huán)等;二是組織程序設計競賽,讓部分學有余力的同學能夠在算法設計、程序?qū)崿F(xiàn)和調(diào)試、優(yōu)化等方面得到鍛煉和提高;三是設計綜合型課程設計鍛煉學生解決問題的綜合能力,并通過適當分組,培養(yǎng)學生團隊協(xié)作精神和能力,鍛煉學生解決問題的綜合能力的目標,最終達到以點帶面全面提高學生能力的目的。

2.2.2實驗考核手段

考核手段在教學環(huán)節(jié)中至關(guān)重要。考核手段是學生學習和鍛煉自身能力的風向標。為保證每位同學都能積極完成實驗并有所收獲,避免抄襲和敷衍的現(xiàn)象,筆者采取了綜合型的考核手段。其一,提交實驗成果,即程序及其運行結(jié)果;其二,記錄實驗過程、分析實驗結(jié)果以及總結(jié)實驗得失的實驗報告,對實驗報告進行選優(yōu)講評,培養(yǎng)學生撰寫科學實驗報告的能力;其三,每位同學必須面向教師講解自己編寫的程序,包括主要思路和細節(jié)性語法,優(yōu)秀的同學可走上講臺宣講自己的實驗方案和程序設計技巧。這就基本杜絕了學生相互之間抄襲程序和實驗報告的現(xiàn)象,使得學生真正能夠思考問題,并盡力動手完成實驗。綜合上述三種手段的綜合型考核方法既能夠達到督促大部分同學完成實驗、鍛煉動手能力目的,又能夠達到培養(yǎng)優(yōu)秀同學的目的。特別地,優(yōu)秀同學宣講活動能夠使學生觀摩到如何從學生的視角從無到有的解決問題的過程,這能夠培養(yǎng)學生解決實際問題的信心并激發(fā)其學習積極性。

3應用中遇到的問題

建構(gòu)式教學模式在應用和推廣過程中遇到的主要問題來自三個方面。其一,目前學生的課業(yè)負擔較重,習慣于被動“填鴨”而不習慣于主動“求索”,這是推動和開展建構(gòu)式教學模式的主要障礙。其二,建構(gòu)式教學活動,需要師生的密切交流,但現(xiàn)有師資不足難以滿足實際需求。一個可能的解決方法是綜合多門課程和多個老師,建構(gòu)整體的知識框架和學習體系,避免課程教學中的重復勞動,提高師資的利用率。另一個可能的解決方法是利用互聯(lián)網(wǎng)技術(shù),建立在線教學園地。其三,建構(gòu)式教學模式仍然處于探索階段,各學科缺乏建構(gòu)式教學素材。從筆者在實踐教學的體驗來看,應盡量從學生的學習背景和能力成長規(guī)律出發(fā)而不僅僅是從學科背景出發(fā),為學生建構(gòu)知識體系設計更平滑的路線。

4結(jié)語

筆者提出將“培養(yǎng)超越具體程序設計語言技巧的編程技術(shù)”和“培養(yǎng)圍繞復用的軟件開發(fā)方式”作為普通本科院校的數(shù)據(jù)結(jié)構(gòu)教學目標,在建構(gòu)式教育理論的指導下,設計并實踐了一系列建構(gòu)式教學措施,分析了應用建構(gòu)式教學模式所遇到的一些問題。

未來將開展兩個方面的工作。一是通過問卷調(diào)查、統(tǒng)計分析等手段定量地分析建構(gòu)式教學方法的實際效果;二是創(chuàng)造和積累建構(gòu)式教學素材,如研究數(shù)據(jù)結(jié)構(gòu)課程設計過程中不同類型學生的知識建構(gòu)路線,挖掘并推廣其中優(yōu)秀的知識建構(gòu)方法。

參考文獻:

[1] 教育部高等學校計算機科學與技術(shù)教學指導委員會. 高等學校計算機科學與技術(shù)專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行)[M]. 北京:高等教育出版社,2006:8-101.

[2] 蔡敏,鄭尚志,梁寶華.“數(shù)據(jù)結(jié)構(gòu)”課程教學改革之我見[J]. 計算機教育,2009(4):50-51.

[3] 揭安全,李云清,楊慶紅,等. 項目教學模式指導的“數(shù)據(jù)結(jié)構(gòu)與算法”教學改革[J]. 計算機教育,2008(22):21-23.

[4] 郝長勝,賈茹. 運用建構(gòu)主義理論構(gòu)建程序設計基礎(chǔ)的新型教學結(jié)構(gòu)[J]. 計算機教育,2007(1):24-25.

[5] 嚴蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語言版)[M]. 北京:清華大學出版社,2008:135-136.

Application of Constructivism Theory in Data Structures

SUN Lianshan, ZHAO Xiao

篇(9)

1. 引言

“數(shù)據(jù)結(jié)構(gòu)”是軟件工程及其相關(guān)專業(yè)的一門重要專業(yè)基礎(chǔ)課程。它涉及數(shù)據(jù)在計算機的表示、組織和處理,以及相應結(jié)構(gòu)上的算法設計和初步的算法性能分析技術(shù),對培養(yǎng)學生良好的編程思想有很大的作用。我國“數(shù)據(jù)結(jié)構(gòu)”課程的開設始于20世紀80年代初期,經(jīng)過近三十年的建設,涌現(xiàn)出了多門國家級精品課程。缺憾的是大多是基于重點大學課程。我國的高等教育成功的從精英教育轉(zhuǎn)型到大眾教育,應用型本科的課程建設是擺在我們面前刻不容緩急需解決的重大課題。基于此我們從教學目標、教學方法和實踐教學等方面對數(shù)據(jù)結(jié)構(gòu)的教學加以改革,增強學生對該課程的理解和應用能力。

2. 應用型人才特點

應用型本科與重點大學的研究型本科有著很大的不同,除了在生源、師資、教學條件等方面的較大差別外,主要有以下幾個方面。

2.1多樣性

研究型本科承擔社會所需要的創(chuàng)新型、理論性人才的培養(yǎng)和基礎(chǔ)性、原創(chuàng)性科學研究任務;而應用型本科則承擔社會各種各樣人才需求的培養(yǎng)任務,尤其是適應經(jīng)濟發(fā)展需要的實踐應用型人才培養(yǎng)的任務。應用型人才更多的體現(xiàn)為一種人才培養(yǎng)目標的類型結(jié)構(gòu)而不是層次結(jié)構(gòu),這種應用性表現(xiàn)在多方面,也可以區(qū)分為學術(shù)型、工程型、技術(shù)型和技能型等四種應用性人才類型。

2.2綜合性

應用型本科教育要避免“重專業(yè)技能、輕綜合素養(yǎng)”、過分重視人的技術(shù)價值、工具價值,忽視人自我發(fā)展的價值,要把片面強調(diào)學生的職業(yè)素質(zhì)轉(zhuǎn)變?yōu)榧嬷鼐C合素質(zhì)。應用型本科人才不僅要有一定的理論知識,同時還要有較強的理論技能;不僅要有一定的操作實踐能力,還要有較強的創(chuàng)新能力。更要具有較強的理論知識和技術(shù)的應用能力,要培養(yǎng)學生構(gòu)建應用知識進行技術(shù)創(chuàng)新和技術(shù)的二次開發(fā)的能力、科學研究的能力。

2.3實踐性

高級應用型本科人才培養(yǎng)模式有別于研究型大學和中國傳統(tǒng)的專科教育。根據(jù)應用型本科人才多層次、多元化的能力特點,需要構(gòu)建分類設計、分層施教、分步實施、獨立設置的選修與必修相結(jié)合的實踐教學體系。圍繞著社會對人才的創(chuàng)新、創(chuàng)業(yè)精神和實踐能力的要求,需要構(gòu)建從課堂內(nèi)系統(tǒng)的、綜合性的實踐技能訓練到課外的自助式開放實驗、貫穿校內(nèi)學習全過程的專業(yè)素質(zhì)拓展訓練和校外實習相結(jié)合的培養(yǎng)體系。

2.4生產(chǎn)服務性

應用型本科的發(fā)展不同于研究型本科的追求以研究生培養(yǎng)為主,以原創(chuàng)性、基本性理論研究為主旨的發(fā)展路徑;也不同于我國傳統(tǒng)的高等教育以學術(shù)性本科生培養(yǎng)為主,以研究型大學為發(fā)展目標和參照依據(jù)的辦學模式,而是在強調(diào)必須的學術(shù)性和基礎(chǔ)理論性的同時,要更加強調(diào)面向市場現(xiàn)實需要和學生的實際與未來發(fā)展需求,主動積極的為地方經(jīng)濟建設和區(qū)域社會與行業(yè)發(fā)展服務,以服務求支持,以貢獻求發(fā)展。通過產(chǎn)學研合作教育培養(yǎng)高技能應用型人才的同時要積極從事應用技術(shù)研究和實踐開發(fā)研究,積極致力于把原創(chuàng)性研究成果和學術(shù)性實驗成果直接推向市場,轉(zhuǎn)化為現(xiàn)實生產(chǎn)力和直接貢獻力。

3. 應用型人才培養(yǎng)的教學改革

3.1結(jié)合人才培養(yǎng)方案調(diào)整課程目標定位

2006年教育部計算機專業(yè)分委員會根據(jù)國內(nèi)計算機科學與技術(shù)學科的現(xiàn)狀和發(fā)展趨勢,制定了計算機科學與技術(shù)學科《戰(zhàn)略研究報告》、《專業(yè)規(guī)范》和《評估方案》,為我國不同類型高校計算機科學與技術(shù)本科專業(yè)的改革提供了理論依據(jù)和參考執(zhí)行方案。文件的核心觀點是“分類培養(yǎng)”,即不同類型的學校應該有不同的培養(yǎng)方案、教學計劃和課程教學內(nèi)容。而數(shù)據(jù)結(jié)構(gòu)課程是一門理論與工程實踐密切相關(guān)的綜合性課程,在計算機學科教學中具有十分重要的作用。大力加強該課程的建設,提高該課程的教學質(zhì)量,有利于教學改革和教育創(chuàng)新,有利于創(chuàng)新人才的培養(yǎng)。結(jié)合應用型人才培養(yǎng)的特點,課程總體目標調(diào)整為通過本課程的學習,要求學生編寫的程序結(jié)構(gòu)清楚、正確易讀,符合軟件過程的規(guī)范,從而培養(yǎng)學生的數(shù)據(jù)抽象能力,真正提高學生編程解決實際問題的綜合能力。通過對學生情感的引導,學習策略和方法的交流,知識和技能的指導培養(yǎng)學生熱愛《數(shù)據(jù)結(jié)構(gòu)》課程,培養(yǎng)學生自學能力,獨立的程序分析能力和利用C語言開發(fā)實用系統(tǒng)的能力。

3.2授課過程設計

數(shù)據(jù)結(jié)構(gòu)課程的難點在于學生聽得懂、看的明白,但當動手設計算法,解決實際應用問題時會感到無從下手。該課程一般在本科低年級開設,對于僅學過一門高級程序設計語言的學生,理解和掌握其中的原理比較困難。學生在學習時,對“數(shù)據(jù)結(jié)構(gòu)”在計算機科學的算法理論和軟件設計中的重要性認識不足,缺乏學習興趣和學習動力。針對這些問題,注重課程設計、課程實驗等實踐環(huán)節(jié)設計是提高課程教學效果的主要措施。要精心選擇與課程教學內(nèi)容密切相關(guān)的典型案例,通過典型案例培養(yǎng)學生獨立分析解決問題的能力。可把課程必須掌握的技能點設定為必修實驗(設計),對于技能延伸性技能點設為選做實驗(設計),供學生自由選擇,給學生以個性化發(fā)展的空間。以基礎(chǔ)性與先進性、綜合性相結(jié)合為原則,篩除部分傳統(tǒng)課程體系內(nèi)的驗證性經(jīng)典實驗,加大綜合性或設計性實驗數(shù)量,通過實踐環(huán)節(jié),提高學生分析問題和解決問題的能力,強化學生的創(chuàng)新能力、技術(shù)開發(fā)能力培養(yǎng)。在實驗教學的方式上,要注重因果式引導、成果型訓練,刺激學生的成就感,激發(fā)學生的學習興趣與鉆研的好奇心。這種全方位、立體化、系統(tǒng)規(guī)范的培養(yǎng)模式創(chuàng)新和實踐,可使所培養(yǎng)人才符合社會對創(chuàng)新型、創(chuàng)業(yè)型人才的需要。

授課過程中注重理論與實踐的結(jié)合,采取CDIO模式。CDIO代表構(gòu)思(Conceive)、設計(Design)、實現(xiàn)(Implement)和運作(Operate) ,以產(chǎn)品研發(fā)到產(chǎn)品運行的生命周期為載體 ,讓學生以主動的、 實踐的、 課程之間有機聯(lián)系的方式學習工程。CDIO培養(yǎng)大綱將學生能力分為工程基礎(chǔ)知識、 個人能力、 人際團隊能力和工程系統(tǒng)能力四個層面。

3.3 課程設計思想與內(nèi)容

實踐教學既要注重對學生實踐能力的培養(yǎng),又要重視培養(yǎng)學生的科學思維能力和創(chuàng)新意識與能力。基于此,我們形成如下設計思想:

1、強化基本技能訓練,增加提高性實驗項目,加強對學生動手能力的指導。

2、用科學研究的思維方式合理組織實踐教學內(nèi)容和相關(guān)知識結(jié)構(gòu),強調(diào)理論聯(lián)系實際,將科學研究的方法引入實踐教學。

3、重視獨立實踐能力,團隊合作能力和嚴謹求是科學態(tài)度的培養(yǎng)。

4、強調(diào)以開放式教學模式指導實踐教學。

在實驗內(nèi)容的選取上,一是已有的經(jīng)典的材料,根據(jù)多年教學的積累和收集的經(jīng)典材料,加工整理形成實驗選材;二是來源于先進技術(shù),基于計算機科學發(fā)展的迅速性,學習積累學科前沿知識和先進技術(shù);三是對科研項目的提煉,根據(jù)教師承擔的有關(guān)課題進行提煉。使其既能體現(xiàn)教學中的重要知識點,又能激發(fā)學生的實驗興趣。通過通俗易懂的案例,敘述復雜的概念。

3.4 考核檢查方式改革

根據(jù)教學大綱所規(guī)定的教學內(nèi)容(包括實踐環(huán)節(jié)),改進了考試方式,采用了實驗與期末考試相結(jié)合的方法,強調(diào)了學生對計算機科學基本概念、核心問題以及基本方法的掌握。實驗考核注重學習過程。成績的考核包括平時實驗成績、實驗報告以及實驗考試成績四個部分,具體比例為:平時實驗成績占30%,實驗報告占30%,上機考試占40%。其中實驗報告以實驗課上講的主要知識點為主,平時實驗成績以實驗課的綜合作業(yè)為主,實驗考試采取抽簽的方式,要求在規(guī)定的時間內(nèi)完成規(guī)定的實驗內(nèi)容。

4. 結(jié)束語

數(shù)據(jù)結(jié)構(gòu)課程實踐性強,技術(shù)更新較快,同時又是計算機科學、計算機應用技術(shù)、網(wǎng)絡工程、信息工程等專業(yè)的基礎(chǔ)課程,如何動態(tài)調(diào)整教學內(nèi)容、教學模式,提高學生的實際操作能力、分析問題、解決問題的能力,是數(shù)據(jù)結(jié)構(gòu)教學改革的必由之路。

參考文獻:

[1]謝柏青,張銘.計算機基礎(chǔ)教學方式改革研究[J].計算機教育,2005(10).

篇(10)

近年來,隨著軍隊信息化建設步伐的加快,各軍校都致力于信息類專業(yè)的建設[1]。作為信息類專業(yè)基礎(chǔ)課程和專業(yè)課程的結(jié)合點,“數(shù)據(jù)結(jié)構(gòu)”的重要性不言而喻,我院也于2009年確定了“數(shù)據(jù)結(jié)構(gòu)”重點課程建設,教學對象主要是生長軍官學歷教育指揮類學員。以建構(gòu)主義教學理念[2]為指導,將“教員引導下的學員自主學習”教學思想貫徹于課程建設的全過程,把握合理的課程教學體系建設,是本重點課程建設的主要特色。下面,我們將就體現(xiàn)該特色的具體實踐過程及其所包含的教學內(nèi)容體系建設、教學方法改革以及教學團隊建設等組成環(huán)節(jié)進行闡述。

1教學內(nèi)容體系建設

在課程教學體系中,教學內(nèi)容是基礎(chǔ),不同的教學內(nèi)容決定著不同的教學形式與方法,對于學員的知識能力建構(gòu)的效率和效果也有著不同的影響。目前,各高校普遍壓縮了專業(yè)基礎(chǔ)課教學課時,因此,為了讓學員在有限的學時內(nèi)進行有效的學習,我們必須首先考慮課程教學內(nèi)容體系建設問題。

一般講,“數(shù)據(jù)結(jié)構(gòu)”課程包括線性結(jié)構(gòu)、樹型結(jié)構(gòu)、圖狀結(jié)構(gòu)、查找與排序等內(nèi)容,并以抽象數(shù)據(jù)類型、算法度量與評價貫穿其中[3]。各類院校根據(jù)其人才培養(yǎng)方案及學員特點,在課程內(nèi)容組織上也有明顯區(qū)別:有突出數(shù)據(jù)邏輯結(jié)構(gòu)的,有側(cè)重算法實現(xiàn)及度量的;有用C語言描述的,有用C++或Java描述的。結(jié)合我院信息類專業(yè)課程體系設置以及學員特點,根據(jù)ACM/IEEE CC2005[4]和教育部CCC2006[5]學科規(guī)范,我們在課程內(nèi)容體系建設方面主要實施了以下幾點措施。

1.1采用彈性課程內(nèi)容體系

由于“數(shù)據(jù)結(jié)構(gòu)”課程課時有限,本院數(shù)據(jù)結(jié)構(gòu)課程僅為50學時,課程內(nèi)容設置不可能面面俱到,必須結(jié)合建構(gòu)主義思想及學員的具體特點確定教學內(nèi)容。在此次課程建設中,我們在課堂講授和實踐教學環(huán)節(jié)中均采用了彈性內(nèi)容體系,在課程講授內(nèi)容設置上,我們主要采用了“基本模塊”+“擴充模塊”的體系,其中“基本模塊”包括算法度量基礎(chǔ)、線性結(jié)構(gòu)、字符串與模式匹配、樹、圖、排序、檢索等7個模塊共16個二級知識點,要求教員必須全部講解完成;“擴充模塊”則包括廣義表、AVL樹、倒排序及一些前沿應用譬如XML的DOM樹、OWL的分類樹等,由教員根據(jù)學員學習情況靈活掌握實施。

在實踐教學環(huán)節(jié),我們采用分層次的實驗內(nèi)容體系,自主編寫實驗教程,設立驗證性實驗、提高性實驗、課程設計等三層次實驗要求。其中最基礎(chǔ)的驗證性實驗指課本知識點的具體實現(xiàn),譬如,線性表存儲結(jié)構(gòu)以及其插入、刪除、替換、檢索等算法的實現(xiàn)等,側(cè)重加深學員對基本數(shù)據(jù)結(jié)構(gòu)的理解以及基本編程能力的培養(yǎng);提高性實驗則從實際問題解決出發(fā),綜合2至3個數(shù)據(jù)結(jié)構(gòu)的應用或?qū)ο嚓P(guān)數(shù)據(jù)結(jié)構(gòu)的算法擴展等,譬如銀行的多窗口排隊服務,多叉路口車輛調(diào)度等問題,需要將現(xiàn)實世界抽象成數(shù)據(jù)模型并應用相關(guān)數(shù)據(jù)結(jié)構(gòu)的知識解決,有一定建模與實現(xiàn)難度;實驗內(nèi)容體系的頂層是課程設計,以一定規(guī)模的實際問題解決為目標,以具體任務為驅(qū)動,覆蓋數(shù)據(jù)結(jié)構(gòu)的多種模型,鍛煉學員抽象建模和解決問題的能力。根據(jù)學時的要求及數(shù)據(jù)結(jié)構(gòu)教學目標的把握,共計設計了20個實驗,其中驗證性實驗12個,提高性實驗7個,課程設計性實驗1個,要求學員在數(shù)據(jù)結(jié)構(gòu)實踐過程中至少完成15個實驗,包括12個驗證實驗,任意4個提高性實驗以及參加課程設計。

1.2采用C++結(jié)合STL(Standard Template Library)框架的描述方法

根據(jù)CCC2006的建議,選擇面向?qū)ο笳Z言C++作為數(shù)據(jù)結(jié)構(gòu)描述語言,從數(shù)據(jù)結(jié)構(gòu)的邏輯描述到物理存儲及算法實現(xiàn)過程均采用面向?qū)ο蟮姆治雠c設計思路;同時考慮到主流編程語言C++、JAVA及C#等都不同程度地應用了STL框架并提供了常用的數(shù)據(jù)結(jié)構(gòu)類,譬如Vector、List、Set、Stack、Queue等,在數(shù)據(jù)結(jié)構(gòu)課程內(nèi)容中增加了對于主流語言中常用數(shù)據(jù)結(jié)構(gòu)模板類的分析與編程,以增強學員對數(shù)據(jù)結(jié)構(gòu)應用的理解。例如,對于STL中的Vector類,其實現(xiàn)功能為大小可動態(tài)增長的數(shù)組。教學中不僅僅要求學員能夠應用該類型,同時要求能夠分析理解該類型,譬如要求學員找出其動態(tài)增長性實現(xiàn)的代碼段,并對其插入、刪除算法進行歸納總結(jié)等。通過分析STL框架相關(guān)類的實現(xiàn),擴展講解面向?qū)ο笏枷肱c概念在實現(xiàn)該類過程中的應用,以提高學員面向?qū)ο蠓治雠c設計能力。

1.3規(guī)范化的教學文檔建設

教學是否符合先進的教學理念,是否采用了合理的教學方法,我們從教學文檔中就可以看出來,教學文檔的形式十分重要,而更重要是教學文檔的內(nèi)容。在本次課程建設中,我們采用了規(guī)范化的模板,對課程標準、課程設計、教學計劃、教學大綱、教案等進行了統(tǒng)一的設計與規(guī)范。譬如,在教案設計中,哪些內(nèi)容易于CAI展現(xiàn),哪些內(nèi)容適合傳統(tǒng)板書,我們都進行了仔細研究。譬如概念定義、背景知識、計算結(jié)論等,可以擬制要點并進行文本展示;公式定理推導過程如二叉樹的性質(zhì)推導,必須進行板書;原理與過程展示如遞歸過程分析、樹的遍歷、排序過程等,推薦使用動畫。同時,我們要求教員授課時必須將教材、課件、教案、教學實施表(包括課程標準、大綱、計劃)等文檔備齊并通過教學組審核。課建組認為:嚴格規(guī)范的教學文檔看似傳統(tǒng)的要求,實則是課程教學是否成功的前提條件。譬如,課程標準體現(xiàn)了課程的知識體系,即知識建構(gòu)的基礎(chǔ);教學計劃、課程設計與教案則體現(xiàn)了知識的傳遞體系,即合理地引導學員完成知識的掌握與新知識的建構(gòu)。通過教學文檔建設,提高了課程教學的規(guī)范化。

2教學方法改革

在本次“數(shù)據(jù)結(jié)構(gòu)”重點課程建設中,教學方法改革是研究重點。傳統(tǒng)“教員教,學員學”的方法已不能適應“以學員為中心”的學習需要;而照本宣科式的“PPT課件播放朗讀”已嚴重束縛了學員學習過程中的主動性與創(chuàng)造性,與素質(zhì)教育目標背道而馳。對此,我們在本次課程建設中以建構(gòu)主義理念為指導,結(jié)合“信息化教學”的特點,提出了“網(wǎng)絡化協(xié)作學習方法”、“基于興趣的學習模式”兩種教學方法并進行了研究嘗試。

2.1網(wǎng)絡化協(xié)作學習方法

“網(wǎng)絡化協(xié)作學習”是一種以WEB網(wǎng)站和信息資源為依托的新型學習方式[6],在信息資源平臺面前,教員和學員、學員和學員之間更加平等,它提高了學員的學習自主性,有利于以學員為中心的學習。在“數(shù)據(jù)結(jié)構(gòu)”重點課程建設中,我們通過引入“網(wǎng)絡化協(xié)作學習”,引導學員在課后進行有效的自主學習,從而達到能力培養(yǎng)的要求。在“網(wǎng)絡化協(xié)同學習”教學方法實施過程中,我們始終把握兩個要點:網(wǎng)絡課堂的開設與網(wǎng)絡化協(xié)同學習的實踐。

2.1.1信息資源建設與網(wǎng)絡課堂開設

開設網(wǎng)絡課堂主要依賴網(wǎng)絡教學平臺和課程信息資源。此次“數(shù)據(jù)結(jié)構(gòu)”網(wǎng)絡課堂建設采用了總部統(tǒng)一配發(fā)的網(wǎng)絡課程教學平臺,該軟件平臺不僅提供了章節(jié)知識點的構(gòu)建、關(guān)聯(lián)、、檢索,而且可以通過公共信息、小組信息、點對點的信息支持交互,該平臺能夠較好滿足教員與學員之間、學員與學員之間的協(xié)同學習。基于該網(wǎng)絡教學平臺,以“數(shù)據(jù)結(jié)構(gòu)”課程的內(nèi)容體系為依據(jù),課題組將該課程的章、節(jié)、知識點進行了統(tǒng)一的組織,不僅設定了章、節(jié)、知識點的隸屬關(guān)系,還以數(shù)據(jù)的邏輯結(jié)構(gòu)為線索,將相關(guān)知識點進行了關(guān)聯(lián),形成了“數(shù)據(jù)結(jié)構(gòu)”課程的知識網(wǎng),這樣做有利學員整體把握該課程;同時,為每一章、節(jié)都設置了教學目的、學習方法、學習進度、習題參考、實驗練習等欄目,這有利于學員進行自主學習。

2.1.2網(wǎng)絡化協(xié)同學習方法實踐

信息資源的建設是基礎(chǔ),而基于信息資源的“網(wǎng)絡化協(xié)作學習”實踐則是該教學方法改革的重點。 “網(wǎng)絡化協(xié)作學習”方法實質(zhì)上是一種建構(gòu)主義理念指導下的信息化教學方法,它即不同于遠程教育模式,也有異于絕大多數(shù)的自學網(wǎng)站,“網(wǎng)絡化協(xié)同學習”強調(diào)在教員引導下的學員自主學習和協(xié)作學習。在該方法學習中,教員是“導演”,是“總指揮”,教員需要完成學習場景組織、學習進度管理、學習效果評價等活動;學員則可扮演“演員”與“分隊指揮”雙重角色。作為“演員”,學員需要提出學習計劃、實施自主學習;作為“分隊指揮”,學員需要組織學習小組、分解學習任務、合成工作成果。

例如,針對模擬實現(xiàn)XML解析器這樣的實際應用問題,教員的活動應包括:1)提出應用問題:模擬實現(xiàn)XML文件的DOM存儲機制(要求模擬程序能讀入、存儲XML文件并將XML文件中節(jié)點關(guān)系按樹型顯示);2)提示講解內(nèi)容:XML文件的DOM存儲原理;3)提示學習任務:樹型結(jié)構(gòu)的邏輯表示與存儲方法、樹型結(jié)構(gòu)的遍歷、樹型結(jié)構(gòu)的顯示;4)分配任務給各學習小組,明確學習進度要求;5)驗收并講評學員實驗報告等。學員的活動應包括:1)學習任務計劃;2)樹型結(jié)構(gòu)相關(guān)知識學習與交流;3)XML解析器設計;4)XML解析器實現(xiàn);5)撰寫并提交實驗報告和相關(guān)代碼。以上學習活動,主要通過網(wǎng)絡課堂所提供的信息、信息瀏覽、BBS、文件傳送進行支持,并通過教員策劃組織、學員協(xié)作實施的方式完成,是一種有效的“網(wǎng)絡協(xié)作學習”方法。

2.2基于興趣的學習模式

“基于興趣的學習模式”以教育心理學為理論基礎(chǔ),結(jié)合“數(shù)據(jù)結(jié)構(gòu)”課程內(nèi)容特點,從課程引入、課程展開以及課堂氣氛營造等方面進行以提高學員學習興趣為目標的相關(guān)方法研究。該模式的詳細論述見文獻[7],此處作一簡介。

在課程引入階段,我們將“數(shù)據(jù)結(jié)構(gòu)”與學員所學專業(yè)領(lǐng)域問題相結(jié)合,讓學員認識到學習“數(shù)據(jù)結(jié)構(gòu)”課程的現(xiàn)實意義,引發(fā)學員的學習興趣。在課程展開階段,我們采用“循序漸近式教學”與“任務驅(qū)動式學習”兩種方法增強學員學習興趣。“循序漸近式教學”主要指重視先導課與當前課程的銜接,讓學員“能夠?qū)W”;而“任務驅(qū)動式學習”則通過應用情景創(chuàng)設提高學員學習知識、解決問題的興趣,讓學員“有興趣學”。“基于興趣的學習模式”的第三個主要措施即課堂氣氛營造,通過多種方法譬如小組競賽、知識競答、結(jié)對互助活躍課堂學習氣氛,使學員“樂于學”。

3教學團隊建設

加強教學團隊建設是重點課程建設一項重要內(nèi)容。教學隊伍建設的質(zhì)量,直接關(guān)系到課程教學的質(zhì)量和人才培養(yǎng)的水平。因此,在課程建設初期,我們根據(jù)教研室和課建設小組的具體情況制定了“引進

來,走出去”的教學團隊建設策略和具體的教員培養(yǎng)計劃,在兩年內(nèi)引進教員2~3名,送學培養(yǎng)2~3名。目前,我們已引進3名具有碩士學位的教員,其中1名教員加入課程建設小組;選送2名教員攻讀博士,1名教員攻讀碩士學位,其中,1名脫產(chǎn)2名在職;我們還通過短期培訓的方式選送教員學習相關(guān)專業(yè)知識,拓寬視野;通過參加學術(shù)會議的方式選派教員參與交流,學習兄弟院校的先進經(jīng)驗。上述措施使教員整體業(yè)務水平有了明顯提高,教員隊伍培養(yǎng)計劃圓滿完成。此外,通過課程建設活動,我們培養(yǎng)了一批年輕教員,其中有些教員已成為教學骨干。在兩年的課程建設中,我們大膽啟用年輕教師,每年都有意識地安排部分年輕教員承擔“數(shù)據(jù)結(jié)構(gòu)”的課程教學任務,積極推薦和支持他們參加院舉辦的各類教學競賽活動,并指派經(jīng)驗豐富的老教員進行跟蹤指導。在這些年輕教員中,先后有5人在課件制作、教學研究以及優(yōu)質(zhì)授課比賽中獲獎,并取得了一定成績。

4結(jié)語

此次“數(shù)據(jù)結(jié)構(gòu)”重點課程建設以建構(gòu)主義教學理念為指導,在教學內(nèi)容、教學方法、考核方式及教學團隊等方面進行了改革與實踐,特別是一些改革后的、具有通用性的內(nèi)容和方法,如“數(shù)據(jù)結(jié)構(gòu)”課程彈性內(nèi)容體系、基于興趣的“數(shù)據(jù)結(jié)構(gòu)”學習模式以及網(wǎng)絡化協(xié)作學習方法在本次課程建設得到應用,它為下一階段的軟件基礎(chǔ)類課程群的建設打下了基礎(chǔ)。

參考文獻:

[1] 候喜貴. 軍隊信息化建設研究[M]. 北京:出版社,2002:17-19.

[2] 張建偉,陳琦. 從認知主義到建構(gòu)主義[J]. 北京師范大學學報:社會科學版,1996(4):75-82.

[3] 嚴蔚敏,吳偉民. 數(shù)據(jù)結(jié)構(gòu)(C語言版)[M]. 北京:清華大學出版社,2001:2-3.

[4] ACM/AIS/puting Curricula 2005[EB/OL].(2007-05-08)[2010-12-20]./education/

curric_vols/CC2005-March06Final.pdf.

[5] 教育部高等學校計算機科學與技術(shù)教學指導委員會. 高等學校計算機科學與技術(shù)專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行) [M]. 北京:高等教育出版社,2006:38-40.

[6] 陳文漢,張建奇. 高等教育網(wǎng)絡化教學研究綜述[J]. 比較教學研究,2003(9):46-52.

[7] 張立,王偉嘉,石巖,等. 基于學習興趣開展數(shù)據(jù)結(jié)構(gòu)教學[J]. 計算機教育,2010(13):95-97.

Key Course Construction for Data Structure Base on Innovative Teaching Ideology

ZHANG Li,SHI Yan,ZHANG Hongping,WANG Weijia,YU Congbin

篇(11)

中圖分類號:G642 文獻標識碼:B

文章編號:1672-5913(2007)12-0053-03

數(shù)據(jù)結(jié)構(gòu)課程是信息與計算科學專業(yè)的主要基礎(chǔ)課程之一,其實驗課的教學是整個教學環(huán)節(jié)中的一個重要子系統(tǒng)。但是,傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)實驗教學是“灌輸式”的,從實驗目標、內(nèi)容、步驟、注意事項,甚至程序的調(diào)試以及可能的實驗結(jié)果都面面俱到地由老師講解,然后由學生“按方抓藥”地操作。這使學生處于消極被動的地位,影響其學習主觀能動性的發(fā)揮,嚴重阻礙了學生的全面綜合素質(zhì)的培養(yǎng)。為了能在實驗教學中充分培養(yǎng)學生的動手能力和創(chuàng)造能力,使其掌握基本的算法設計與程序設技能,提高綜合素質(zhì),我們在教學內(nèi)容、教學方法及實驗考核體系等方面做了改革。

1更新教學內(nèi)容:實現(xiàn)實驗課程與設計課程分學期開設

由于基礎(chǔ)實驗課程的教學重點是打基礎(chǔ),主要是為將來高年級綜合性的專業(yè)實驗課或科研工作提供基本方法、基本技能和科學思維的保障。因此,教學內(nèi)容必須要立足于基本技能、基本方法的講授,不能片面追求革新而動搖“雙基”教學。我們的具體調(diào)整方法是將基礎(chǔ)實驗內(nèi)容進行優(yōu)化、組合,使其具有從易到難、由基礎(chǔ)到綜合的獨立系統(tǒng)性。同以往相比,它打破了實驗課依附于一門相應的理論課的教學模式,既不受理論課教學進程的制約,而又與理論課教學相互配合。

數(shù)據(jù)結(jié)構(gòu)設計課程是學生在學完C/C++語言和數(shù)據(jù)結(jié)構(gòu)兩門課后,進行知識綜合訓練的一個實踐環(huán)節(jié)。其教學目的主要是培養(yǎng)學生的知識綜合能力、軟件開發(fā)能力和軟件的調(diào)試技術(shù)。數(shù)據(jù)結(jié)構(gòu)實驗課和設計課是面向本科二年級學生開設的基礎(chǔ)實踐課程。但這兩門課程各具特點而教學側(cè)重點有所不同。數(shù)據(jù)結(jié)構(gòu)實驗課是一種驗證型的教學模式,將課堂上所學的理論知識與計算機上機實踐相結(jié)合,通過利用高級語言環(huán)境對書本上的算法進行驗證,從而達到鞏固理論知識的目的。而數(shù)據(jù)結(jié)構(gòu)設計課教學的指導思想是重視理論知識的綜合應用,強調(diào)整個過程的參與和學習,發(fā)揮學生學習的主動性,激發(fā)學生的學習興趣和創(chuàng)造力,培養(yǎng)學生的團隊精神和協(xié)作意識。根據(jù)上述特點,我們于2006年將這兩門實踐課程分別在不同的學期開設。數(shù)據(jù)結(jié)構(gòu)實驗課在前,重基礎(chǔ),重驗證;數(shù)據(jù)結(jié)構(gòu)設計課在后,重綜合,重設計。通過適當調(diào)整實踐內(nèi)容,使得前后科學合理地銜接。從實際教學情況來看,我們的改革取得了成功。通過這種獨立的連續(xù)實踐課程的學習,學生無論是在實踐基本功還是在綜合實踐能力方面都得到了明顯提高。

數(shù)據(jù)結(jié)構(gòu)實驗課的傳統(tǒng)教學內(nèi)容以驗證型實驗為主,幾乎沒有綜合型或設計型實驗。我們考慮到本學科的特色,刪除了部分落后的驗證型實驗項目,保留有價值的驗證型和技能型實驗內(nèi)容,大幅度地增加新的探索型實驗內(nèi)容,或?qū)⒃鹊尿炞C型實驗改為探索型實驗。例如,以前在做“Huffman樹及Huffman編碼”實驗時,從算法的理解、算法的實現(xiàn)過程以及可能的輸出結(jié)果等都由教師詳細講解,學生只要在計算機上編輯并調(diào)試通過就可以了。現(xiàn)在,我們要求學生在教師上課講解相關(guān)理論知識后,自己動手編輯、調(diào)試并出結(jié)果,尤其是選擇其中權(quán)值最小的兩個結(jié)點的簡單算法,需要學生自己編寫,同時要求學生思考有幾種不同的方法實現(xiàn)Huffman編碼算法。做完實驗后,還引導學生思考Huffman編碼的解碼算法應該如何設計和實現(xiàn)。由于學生須獨立地完成這一系列過程,不僅掌握了較復雜算法的驗證及實現(xiàn)方法,還體驗了算法設計的過程,了解了與Huffman編碼算法相關(guān)聯(lián)其它知識,更重要的是鍛煉了學生的動手能力,培養(yǎng)了他們的探索精神和創(chuàng)新能力,使我們的教學取得了事半功倍的效果。

2革新教學方法:充分調(diào)動實驗過程中的學習主體

華裔科學家楊振寧先生在比較中美的教學方法時指出:中國傳統(tǒng)的教學方法重演繹、推理、按部就班,所以嚴謹認真,基礎(chǔ)扎實,但缺少創(chuàng)新意識;美國的教學方法重歸納、分析、滲透、綜合,是一種“體會式”的教學方法,其效果是獨立思考能力和創(chuàng)造能力強,易于較快地進入科學發(fā)展的前沿,但根基不扎實。如何讓兩種教學方法取長補短,充分調(diào)動學生的主觀能動性,激發(fā)學生創(chuàng)造性思維,這就要求我們對傳統(tǒng)的教學方法進行一系列的改革。我們根據(jù)數(shù)據(jù)結(jié)構(gòu)實驗教學的指導思想和教學原則,考慮到培養(yǎng)計劃的要求,對每一次實驗課都進行精心地策劃,主要從課前預習階段、實踐體驗階段和成果交流階段等三個階段共五個方面進行改革:

2.1課前預習階段

要求學生課前充分預習,并要求學生初步了解實驗目的和原理、實驗環(huán)境的使用、操作方法和實驗步驟等。教師在講課之前或講課過程中通過提問以檢查預習的情況,經(jīng)常鼓勵學生自由發(fā)言,大家共同探討實驗原理、實驗方案以及實驗技術(shù)難點等,必要時還要介紹上機環(huán)境及算法在相應數(shù)據(jù)結(jié)構(gòu)中的地位和作用,包括使用的編程環(huán)境,在驗證算法過程中需要注意的問題,講解如何查找相關(guān)資料,并展示歷屆學生的實驗報告樣本等。通過課前預習,保證了學生在實驗前有了足夠的理論儲備,使學生在實驗中思路清晰,能及時發(fā)現(xiàn)問題,其分析問題和解決問題的能力也得到增強,也就更易于取得實驗的成功。

2.2實踐體驗階段

主站蜘蛛池模板: 北川| 新野县| 靖安县| 大安市| 海淀区| 惠安县| 明星| 军事| 谢通门县| 资中县| 通河县| 璧山县| 佛学| 郎溪县| 炉霍县| 天长市| 渝北区| 措美县| 安陆市| 武城县| 禹城市| 道真| 内黄县| 牡丹江市| 深泽县| 霍城县| 利川市| 会理县| 镇江市| 宁都县| 米脂县| 沽源县| 滨海县| 永安市| 黑山县| 锡林郭勒盟| 阿合奇县| 涿鹿县| 蓬溪县| 松滋市| 石楼县|