崔彩霞 菅小艷 龐天杰
摘要:針對地方高校計算機類專業(yè)“算法與數(shù)據(jù)結構”實踐教學的現(xiàn)狀,分析“算法與數(shù)據(jù)結構”實踐教學改革實施的原因,提出適合地方高校計算機類專業(yè)“算法與數(shù)據(jù)結構”實踐教學的改革方案,經(jīng)過這幾年的教改試驗,得出該實踐教改方案的可行性和有效性。
關鍵詞:算法與數(shù)據(jù)結構;實踐教學;課程設計;CDIO
1.地方高校計算機類專業(yè)“算法與數(shù)據(jù)結構”實踐教學現(xiàn)狀和問題分析
通過調查山西省高校(如山西大學、太原理工大學、太原師范學院、山西大同大學等)計算機類專業(yè)“算法與數(shù)據(jù)結構”的教學情況可知,理論課和實驗課的課程比例有以下幾種:3:2,3:1,4:1,個別學校不開實驗課,但大部分學生和老師反映實踐教學沒有達到預期效果,有以下幾點原因:
(1)實驗形式單一,項目陳舊。
(2)實驗成績多以實驗報告為主要內容來確定,導致學生忙于應付實驗報告,未能積極面對實踐環(huán)節(jié)中出現(xiàn)的問題。
(3)學生對程序設計課程的學習不夠深入,普遍編程能力較差,導致實踐環(huán)節(jié)不能達到預期效果。
(4)學生對數(shù)據(jù)結構在實際問題中的應用缺乏了解,大多數(shù)同學沒有見過具有實際意義的題目,更不知道如何用“算法與數(shù)據(jù)結構”來解決實際問題。
2.地方高校計算機類專業(yè)“算法與數(shù)據(jù)結構”實踐教學的改革方案
針對行業(yè)、企業(yè)對計算機類專業(yè)人才的要求進行了調查。調查顯示,相關企業(yè)人力資源主管較為青睞擁有編程能力、操作系統(tǒng)知識和數(shù)據(jù)庫知識的人才;而項目主管則更青睞編程能力、數(shù)據(jù)結構知識和算法知識3種技能。此外,依次具備數(shù)據(jù)庫知識、軟件工程知識和操作系統(tǒng)知識的人才也是備受市場青睞的主要人才。值得注意的是,畢業(yè)生的實踐經(jīng)驗也是相關企業(yè)招聘員工時要考察的要素之一,一些企業(yè)甚至要求應聘者有項目研發(fā)的相關實踐經(jīng)驗(見表1)。
鑒于以上對計算機類專業(yè)人才的要求,結合“算法和數(shù)據(jù)結構”課程的實踐教學,做出以下的教學改革方案。
2.1實踐教學環(huán)節(jié)改革
多年來,“算法與數(shù)據(jù)結構”課程的實踐教學只是單純的課內實驗,由“線性表的操作”“棧和隊列的操作”“二叉樹的操作”“圖的操作”和“查找、排序的操作”等5個實驗項目,12個課時組成,都屬于驗證性實驗。為了能夠培養(yǎng)出滿足社會需求的計算機人才,筆者進行了幾輪“算法與數(shù)據(jù)結構”實踐教學環(huán)節(jié)改革,摸索出了多層次、多環(huán)節(jié)的實踐教學方案。
“算法與數(shù)據(jù)結構”實踐教學總體分為兩個環(huán)節(jié):課內實驗環(huán)節(jié)和課程設計環(huán)節(jié)。課內實驗環(huán)節(jié)安排在各章理論課學習完后進行,包含驗證性實驗、綜合性實驗和創(chuàng)新性實驗3個層次。課程設計環(huán)節(jié)專門利用一周時間進行。以上各個環(huán)節(jié)相互銜接、相互滲透。多層次的實踐環(huán)節(jié)能夠提供給學生不同的體驗,激發(fā)學生的興趣,同時,分組課程設計鍛煉了學生團隊合作、分析問題和解決問題的能力,從而加強了學生面對實際問題時實戰(zhàn)能力的培養(yǎng)。
2.2實驗教學內容改革
首先,對“算法與數(shù)據(jù)結構”課程的計劃課時做了調整,理論和實驗比例調整為3:1,隨之,將實驗項目也做了調整。對應于每一部分的理論課程學習內容,線性結構、樹形結構、圖狀結構為驗證性實驗,同時為了讓學生了解對應的應用,設置項目時,答案在教材中,問題在生活中,建立面向問題求解的實踐教學模式,以實際問題求解為最終目標來組織和設計實踐教學內容。例如,在線性表的實驗中,為了驗證線性表的基本操作,提出了一個日常生活中常見的問題——通信錄的各種操作。見到這個題目,第一,學生首先要分析通信錄是否符合線性表的所有特點;第二,學生根據(jù)線性表的基本操作完成通信錄的各種操作;第三,學生不能完全抄襲書上的算法,需要適當?shù)淖兺?。這樣,既驗證了教材中所學的理論和算法,激發(fā)學生的興趣,同時還能了解線性表在實際生活中的應用。
對應于查找、排序這兩部分的內容,設置一些綜合性實驗,例如成績管理系統(tǒng)、家譜管理系統(tǒng)等,旨在全面地應用“算法與數(shù)據(jù)結構”中學到的理論和算法。
最后,為了培養(yǎng)學生的創(chuàng)新能力,要求學生根據(jù)所學知識,自己找到感興趣的問題,編寫一個小型的系統(tǒng),題目自擬。
2.3實驗教學考核改革
以往的實驗成績是5個項目的平均分,而每個項目的成績由出勤和實驗報告組成,沒有體現(xiàn)出學生實驗課上的具體表現(xiàn),實驗報告也只是把運行代碼抄一遍。鑒于以上原因,對實驗教學的考核進行如下改革:第一,注重實驗過程;第二,實驗報告中要求寫出運行結果與分析。
2.4基于CDIO理念的課程設計
“算法與數(shù)據(jù)結構”的課程設計在課程結束后,專門用一周時間進行,作為一門獨立的實踐課程,占1學分。這一階段主要目標:一是加深學生對算法與數(shù)據(jù)結構的理解,能應用學習過的數(shù)據(jù)結構,根據(jù)實際問題定義數(shù)據(jù)結構,培養(yǎng)學生的應用能力;二是培養(yǎng)學生的實踐能力、團隊合作能力和創(chuàng)新能力。
在“算法與數(shù)據(jù)結構”課程設計教學中,融入CDIO理念。CDIO于2000年由美國麻省理工學院和瑞典皇家工學院等4所大學聯(lián)合提出,是將“做項目中學習”貫穿工程項目構思(Conceive)、設計(Design)、實現(xiàn)(Implement)和運轉(Operate)4個生命過程的教育創(chuàng)新模式。它是一種“基于項目的教育和學習”方式,讓學生主動地、實踐地參與到理論到實踐的轉化過程中來,更加重視學生實踐的積極性和主動性,更加注重培養(yǎng)學生的團隊意識和創(chuàng)新能力。
具體實施方案:
第一步,由“算法與數(shù)據(jù)結構”課程組提出一些備選題目,每個備選題目給出基本要求、要實現(xiàn)的基本功能。
第二步,為了全面提升學生的綜合能力,學生首先按照自愿的原則分組,4-5人一組,并選派1人擔任組長,采用組長負責制;組長組織小組成員選題(當然學生也可以自己構思一個項目),討論題目的要求、用到的數(shù)據(jù)結構、需要實現(xiàn)的基本功能、還需拓展的功能,對設計任務進行責任劃分安排,每個成員都有需要自己獨立完成的具體任務,做到每個模塊相對獨立,模塊間相互聯(lián)系,分工合作。小組成員編寫完自己的模塊程序,組長集合大家將各個模塊程序組合在一起,準備接受指導教師的驗收。教師在整個過程中做好監(jiān)督和輔導工作。在這個過程中,學生做到完成了CDIO中的構思、設計和實現(xiàn)。
第三步,項目完成后,課程設計的考核采取小組答辯的形式。指導教師不僅要查看整個項目功能的完整性,對其中的問題提出質疑,還要讓小組成員敘述自己的部分,以防有“渾水摸魚”的學生。
2.5課程后續(xù)實踐環(huán)節(jié)——程序設計競賽
部分學生經(jīng)過“算法與數(shù)據(jù)結構”課程的學習,實驗與課程設計的實踐訓練,已經(jīng)能夠在規(guī)定時間內,在面對實際問題時能夠通過分析問題,建立數(shù)學模型、選擇合適的數(shù)據(jù)結構以及設計具體算法策略,并在計算機上編程實現(xiàn)嘲。為了檢驗學生解決問題能力和編程能力,應鼓勵學生參加各級各類程序設計競賽。2010年至今,太原師范學院計算機科學與技術系經(jīng)過實踐教學改革的學生參加了藍橋杯省賽和全國決賽,分別獲得了一等、二等、三等和優(yōu)秀獎數(shù)十項。
3.結語
經(jīng)過幾輪“算法與數(shù)據(jù)結構”實踐教改的摸索和試驗,實踐環(huán)節(jié)更加多樣化,實驗內容也在不斷地更新和完善。通過這幾輪一系列的實踐教學改革,增加了學生的學習興趣,開拓了學生的視野,培養(yǎng)了學生的應用能力、發(fā)展能力、團隊合作能力和創(chuàng)新能力,積累了學生的實踐經(jīng)驗,同時也為各類與程序設計相關的競賽培養(yǎng)了大量人才。