貴州大學計算機科學與信息學院 馬 丹
《數據庫課程設計》是計算機專業本科生在學過《數據庫系統概論》課程之后開設的一門綜合性較強的實踐課程。其主要任務就是使學生進一步鞏固和理解所學的數據庫基本理論知識和技術,培養學生運用所學的知識和技術設計數據庫系統的能力。在實踐中,我們采用了項目化教學法進行數據庫課程設計,該方法使得學生對知識的掌握和理解、解決問題的能力等方面都得到了極大的提高。但是學生在進行數據庫設計時,也常常存在著一些問題。這些問題不糾正,將導致學生在系統設計中養成一些不好的習慣,設計出的系統也存在不實用,不穩定等問題。
項目化實驗教學法是通過實施一個完整的項目而進行的實驗教學活動,其目的是在實驗教學中以學生為中心,把理論與實踐教學有機地結合起來,充分發掘學生的自主創新能力,提高學生解決實際問題的綜合能力。項目化實驗教學法,是由教師提出開發目標,學生以小組為單位進行項目選題,在教師的指導下完成項目開發,學生通過親身實踐,自覺運用已學的知識,有效探究和學習新的知識,從而提高專業技能,并體會探究的樂趣和協作的精神。這是一種“以學生為主體、以教師為主導”的建構主義教學模式,它強調項目任務的真實性、教師指導的目標指引性、學生學習的積極主動性、實踐過程的探究性和合作性、評價的過程性和反思性等[1]。
項目化實驗教學法最顯著的特點是“以項目為主線,教師為主導,學生為主體”,改變了傳統教學中“教師講,學生聽”的被動教學模式,創造了學生主動參與、協同合作、探索創新的新型教學模式。
由于課程設計的選題工作是在數據庫課程設計開始時才進行,因此,有的同學把課程設計的題目設計得很大,然而課程設計安排的時間比較少,學生投入的精力也有限,所以導致學生做出的系統虎頭蛇尾。
學生在做數據庫課程設計之前,已經做過一些課程設計。比如在學習C、C++或Java之后,利用C、C++或Java所做的課程設計。那些課程設計內容是使用高級語言設計和編寫小軟件,在那些課程設計中,程序編寫是一項非常重要的工作,因為那些課程設計是以熟練應用某高級語言為目的[2]。而在數據庫課程設計中,編寫程序工作與需求分析、總體設計和詳細設計等工作相比較,重要程度降低了。因為數據庫課程設計不是以熟練運用某高級語言為目的,而是以熟悉和運用數據庫系統設計知識為目的。
但是學生往往認為程序編寫工作重要,而認為需求分析、總體設計和詳細設計等工作無關緊要。當確定課程設計題目后,有些學生不認真作需求分析、總體設計和詳細設計等工作,匆匆忙忙開始編寫程序,這種行為與數據庫課程設計的目的不相符。
在系統開發的過程中,學生對系統沒有全局規劃[3],往往是把時間都花在需求分析和系統實現上,在最后階段,由于時間倉促,很多學生甚至沒有做系統測試,草草收場,這樣開發出來的系統將會出現很多問題,究其原因,主要是學生在系統開發各階段,缺乏一個整體的統籌規劃。
4.熟悉常用技術和工具
在《數據庫原理》課程中,我們介紹了數據庫設計的傳統方法,例如:概念設計中ER圖的畫法,以及如何將ER圖轉化為邏輯模型等數據庫的設計方法。由于現在數據庫技術發展很快,在軟件公司實際的數據庫系統開發中,書上介紹的這些技術方法已經過時。有很多工具可以直接完成從數據庫概念模型到物理模型的設計和轉化。如果我們還使用書上的方法,將會造成學生畢業后所學的內容已經過時的問題。
針對上述問題和問題產生的原因,應該采取如下一些措施加以解決。
課程設計的選題工作可以在數據庫原理課程開始講授時布置下去,讓學生有充足的時間思考,思考成熟后,在指導教師幫助下,將課程設計題目確定下來。然后學生一邊學習數據庫原理課程內容,一邊著手收集課程設計所需的有關資料,做好課程設計的準備工作。課程設計題目所涉及的問題規模和難度應該比較小。因為課程設計不同于畢業設計,加上課程設計安排的時間比較少,學生投入的精力也有限,所以要控制規模和難度[4]。指導教師在幫助學生選擇題目時,可以選擇學生比較熟悉的問題,如圖書資料管理系統、學生成績管理系統、人力資源管理系統等等,或者選擇學生很快就能熟悉的一些問題。
指導教師要引導學生明確數據庫課程設計的目的,使學生清楚程序編寫工作與其他軟件開發工作的關系,讓學生擺正編寫程序工作在數據庫課程設計中的位置;告訴學生不能只重視編寫程序工作而輕視其他工作;更不能不經過需求分析、總體設計和詳細設計等階段而直接開始程序編寫工作。通過做數據庫課程設計引導學生擺正程序編寫工作的位置。此外,指導教師可以通過將一些典型錯誤實例介紹給學生,引起學生的重視;還可以安排時間讓學生對設計內容進行自查和互查。
在數據庫課程設計開始時,教師應該指導學生制訂一個軟件開發計劃。對于軟件開發過程中的每個階段,從可行性研究到需求分析,從總體設計到詳細設計,從編碼到測試,讓學生站在整體和全局的角度,考慮和分配各階段所用時間和各種資源。通過這個計劃的制訂,訓練學生樹立從整體出發來思考軟件系統開發過程的觀念,引導學生學會從全局的角度來合理規劃軟件開發的各項工作,熟悉軟件開發的整體過程。指導教師根據學生做的規劃,對學生各階段的工作進行審查,審查通過之后,再讓學生做后面的工作。
指導教師要引導學生利用課程設計來熟悉數據庫開發的一些常用技術和工具。例如,我們在數據庫課程設計中就可以教學生怎樣使用POWER DESIGNER來做數據庫設計[5]。因為學生畢業后,從事數據庫開發工作,就會經常用到這些工具。熟悉這些常用技術和工具的使用方法,并且認真完成課程設計各項文檔材料的制作,可以為畢業后從事相關的軟件開發工作奠定良好的基礎。
教學實踐表明,這種形式的數據庫課程設計,可以使學生有效地鞏固對基礎理論知識的掌握,使學生系統地了解軟件開發流程,提高學生的系統開發能力,增強學生的就業競爭力,并且可以建立學生的團隊意識,提高學生的交流和協作能力。
[1]林巧,丁革建.數據庫課程設計的項目化實驗教學方法[J].實驗室研究與探索,2009(4):131-139.
[2]胡穎.關于提高課程設計教學效果的措施[J].職業教育研究,2006(11):23-25.
[3]海波,朱小軍.高校實踐性課程多元學習環境設計[J].甘肅高師學報,2007(5):54-56.
[4]王艷紅,章小莉,姜湘崗.在數據庫課程設計中培養學生項目開發能力[J].計算機教育,2009(13):91-94.
[5]衛東,房薌濃.面向應用型人才培養的數據庫課程教學模式探討[J].高教論壇,2010(5):49-51.