◆曹薇
作者:曹薇,碩士,武漢職業技術學院計算機技術與軟件工程學院副教授,研究方向為數據庫應用(430074)。
在高職院校計算機相關專業,數據庫課程是一門專業核心課程,而SQL Server數據庫又是數據庫課程中被普遍開設甚至是被唯一開設的一門課程。在高職計算機專業,開設SQL Server數據庫課程的目的往往有兩個:其一是給學生傳授數據庫基本原理方面的知識,其二是使學生具備數據庫設計和實施方面的基本知識和技能。該課程授課的效果對學生專業核心能力的養成起著重要的決定作用。
本文指出高職SQL Server數據庫課程教學目前存在的問題,提出解決這些問題的思路和具體舉措,以期改善SQL Server數據庫課程的授課效果,有效達成課程授課目標。
在高職院校,教授過SQL Server數據庫課程的教師通常會認為這門課授課難度不是太大,可是課程教學中仍然存在諸多不容忽視的問題,以至于授課效果不盡如人意。
高職學生的學習注重實用性[1],他們在課程學習時,往往偏愛那些能立即做出一個有著生動直觀運行效果的程序或實例的課程,覺得這樣的課程學習目標是明確的,學習起來就有興趣。而根據SQL Server數據庫課程本身的特點,教師在授課時的大多數時間都是在講T-SQL語句的應用。雖然T-SQL語句可以編程,但其運行效果并不生動直觀。而高職學生相對本科學生來說,自主思維能力稍顯不足,對于這種以T-SQL語句編程為主的教學很容易陷入學習目標不明確的境地,進而逐漸失去學習興趣。
一些學生在接觸了C#之類的軟件開發工具后,會進一步對學習SQL Server的意義或目標產生疑問,因為他們會發現在很多應用軟件開發工具如C#中,使用SQL Server完成的工作大都可以通過C#本身來完成。這樣一來,系統地學習SQL Server數據庫似乎完全沒有必要了。
在教學實踐中,筆者發現相當一部分學生對教師講過的T-SQL編程方面的知識點的理解流于表面,編程能力較弱。
目前SQL Server數據庫課程的考核仍主要依賴于在學期末進行統一的閉卷(筆試)考試。這種方式有一定的優點,比如考試紀律相對于機試容易控制,但也有很多不足之處,最典型的就是造成學生在考前臨時突擊復習,甚至在考場用夾帶等方式作弊,因而不能真實有效地評價學生的水平。這也會使學生因覺得考試容易過關而在后續課程的學習中放松懈怠。
為解決高職SQL Server數據庫課程教學中存在的問題,增強課程授課效果,實現課程授課目標,除了一些論文中提到的采用項目驅動教學模式[2]、提供課程學習網絡平臺等外,筆者認為在教學過程中應特別注重如下幾點。
針對上文中提到的課程教學存在的問題中的前兩個問題,教師應著力使學生對課程學習目標有一個較清晰的把握,繼而提升學生的課程學習興趣。這應是整個SQL Server課程教學的重要基礎。
幫助學生明確課程學習目標,也可以理解為幫助學生弄清學習該課程的意義,是一件比較復雜的事情,不是教師在剛開始授課時幾句話就能做到的。
1)課程教學之初進行簡要闡述。在課程教學之初,教師就應向學生闡述學習SQL Server數據庫的意義,亦即幫助學生明確課程學習目標。筆者認為學習SQL Server數據庫的意義主要在于兩方面。
其一是為以后開發應用軟件打下良好基礎,因為一般的應用軟件開發都離不開數據庫設計和實施,教師可舉一些簡單的例子向學生闡明這一點。但是,軟件開發類課程如C#等一般會在SQL Server數據庫課程之后開設,也就是說學生在學習SQL Server時往往軟件開發經驗十分有限,所以學生對這一意義的理解往往是十分模糊的。
其二是為以后從事數據庫管理工作打下良好基礎。部分學生以后可能會從事DBA(Database Administrator)一職,即數據庫管理員或數據庫管理工程師,是需求廣泛的一類職位。學習SQL Server數據庫能為學生今后從事這類工作初步奠定基礎。教師可結合一些真實的DBA招聘信息向學生描述該職位的職責。
2)授課過程中結合案例適時強化。雖然在課程教學之初,教師就向學生闡述了學習SQL Server數據庫的意義,但由于學生軟件開發經驗有限,往往不能深刻理解,因此需要教師在后續的授課過程中適時進行強化。比如說在講授引用完整性時,教師可先舉例介紹一個設計得不合理即違反了引用完整性的數據庫,讓學生體會用戶在數據庫的相關表中刪除記錄、修改記錄及插入記錄時可能發生的不良后果,再進一步介紹如何通過外鍵約束強制引用完整性。這樣一來,學生不僅深刻理解了強制引用完整性的重要性,而且通過這樣一個小案例體會到了數據庫設計的重要性,從而進一步體會到了學習SQL Server數據庫課程的意義。
再比如,在介紹數據庫的分離和附加時,教師可拋出若干個應用場景,比如學生在機房建立的數據庫,其中還有一些工作沒有做完,想拷貝到自己的電腦上繼續做,這時就可以用數據庫的分離和附加。這種教學方法使學生能夠親身實踐并很快理解數據庫分離和附加的操作方法及意義,顯然也進一步體會到了SQL Server數據庫課程的重要性。
需要注意的是,強化課程學習的意義應該是貫穿整個SQL Server數據庫課程教學始終的,這樣一來,學生才會對該課程有著清晰的學習目標和濃厚的學習興趣,課程授課目標也就易于實現。
3)幫助學生理清SQL Server與應用開發工具之間的關系。學生在學習SQL Server數據庫時,往往還沒有學習C#之類的面向對象的軟件開發類課程。但有些學生會提前自學這類編程工具,他們會發現在大多數應用軟件開發工具如C#中,使用SQL Server完成的工作大都可以通過C#本身來完成。也就會產生這樣的疑問:既然SQL Server這類數據庫工具不重要,就不值得認真學習。
作為教師,應幫助學生理清SQL Server與應用軟件開發工具之間的關系,這項工作最好也通過案例來輔助完成。教師可在學期靠后的時候,向學生展示一個自己做的小案例,由于大多數學生還沒有學習面向對象編程,所以案例可以盡量簡單但應是一個完善的可運行的系統,比如一個學生成績管理系統或人事考勤系統,向學生展示系統開發的關鍵環節,尤其是要剖析數據庫的設計和實施。要讓學生了解到,在利用C#等面向對象的軟件開發工具開發應用系統時,大都離不開數據庫應用,對數據庫的操作往往不是通過SQL Server等DBMS來完成,而是直接在C#等軟件開發工具中實現。但這并不代表SQL Server數據庫課程學習不重要,因為不管利用何種工具操作數據庫,核心都是利用SQL語言來實現。要向學生強調,學習SQL Server本質上是在學習SQL語言。這樣一來,學生就愈發明確了SQL Server數據庫課程的學習目標。
針對教學中存在的學生學習以被動接受為主、對知識及技能的掌握流于表面的問題,教師要下大氣力提升學生編程能力,因為SQL Server數據庫本質上是一門編程類的課程。要提升學生編程能力,可從如下幾方面著手。
1)幫助學生化繁就簡。T-SQL編程看似紛繁復雜,其實涉及的基本知識點并不太多。教師應在教學過程中注重對T-SQL編程的關鍵詞進行總結歸納,對編程思路進行梳理,幫助學生化繁就簡以理解其精髓,這樣學生才容易觸類旁通。
2)通過項目提升學生編程能力。除了平時的眾多實驗課以外,還應在學期靠后的時段安排一周左右的課程實訓,讓學生在規定的時間內完成一個具體數據庫的設計和實施。教師應撰寫詳細的實訓任務書,以明確實訓項目的具體要求,應注意涵蓋SQL Server中重要的編程知識點,尤其是觸發器、存儲過程、自定義函數的編寫等知識點。
在實訓的最后環節,應對每位學生進行考核評分。實訓成績不僅取決于學生完成的項目質量,還取決于答辯的表現,這樣才能使實訓成績真實有效。
通過項目實訓,學生的T-SQL編程能力大都能得到系統全面的提升。
針對目前SQL Server數據庫課程考核方式難以有效評價學生真實水平的情況,應對課程考核方式進行改革。建議如下:課程期末總評分由三部分組成,第一部分是平時表現,包括考勤情況、課堂表現、平時實驗提交電子作業情況等,占30%權重;第二部分為實訓成績,占30%權重;第三部分為期末筆試成績,占40%權重。
此外,期末筆試最好采用開卷形式,這可避免學生在復習階段突擊強記以及在考場采用各種形式作弊,也有利于教師適當加大試題難度,真實有效地評測學生的課程學習水平。
教學實踐證明,以上思路和舉措有助于提升高職SQL Server數據庫課程的教學質量,也有助于課程教學目標的實現。但仍有許多需要不斷改進的地方,比如隨著計算機技術的進展,教學案例和實訓項目都應適時更新,教師講授的數據庫理論知識也應不斷更新,等等。這些都是今后不斷努力的方向。
[1]賀桂英,陳亞芝.高職數據庫技術課程教學改革與實踐[J].計算機教育,2012(15):86-89.
[2]李志梅.基于項目驅動的數據庫應用技術課程教學模式研究與實踐[J].桂林航天工業高等專科學校學報,2012(3):250-251.