全雪峰
衛生信息管理專業既是信息管理的一個分支,又是衛生事業管理的一個重要組成部分,它是隨著信息技術與計算機技術的發展及其在醫學領域中的廣泛應用而發展起來的一門新興學科?!俺绦蛟O計基礎”是衛生信息管理專業的核心課程之一,是學生深入接觸計算機學科領域的第一門課程。筆者在教學實踐中體會到,如果不考慮衛生信息管理專業的特點,而只是簡單地照搬計算機專業的程序設計語言課程,是不可能取得預期教學效果的。目前,已出現的編程語言有很多,按照維基百科所列的編程語言,已有200余種,那么,選擇學習一門什么樣的編程語言、如何選取該課程的教學內容以及如何進行課程教學,是值得探討的話題。
一、衛生信息管理專業開設程序設計基礎課的目的
在教育部《關于全面提高高等職業教育教學質量的若干意見》中已明確指出,應“根據技術領域和職業崗位(群)的任職要求,參照相關的職業資格標準,改革課程體系和教學內容。建立突出職業能力培養的課程標準,規范課程教學的基本要求,提高課程教學質量”。
衛生信息管理專業的畢業生就業崗位主要是醫療衛生單位的信息搜集、整理和處理等部門。根據我校就業管理部門的調查,用人單位要求衛生信息管理專業的畢業生能夠開展與信息處理相關的工作,包括網站開發、軟件設計、網絡建設與設計、數據庫應用系統開發與管理等。
因此,按照教育部規定和用人單位的要求,程序設計基礎課程的教學必須以應用能力的培養為目標,能夠從事衛生信息系統的設計和開發。
當清楚了開設程序設計基礎課程的目的之后,我們應該針對衛生信息管理專業的編程語言做一遴選,因為并不是所有編程語言都適合作為第一門教學語言進行教學。
二、第一門編程語言的選擇
1.第一門編程語言應具備的特點
面對有200余種之多的編程語言,我們應該選擇哪一種作為第一門教學語言呢?事實上,無論使用哪種編程語言,程序設計入門教學都是比較困難的。因為教學的對象是“初學者”,一般情況下他們只具有很少甚至沒有任何編程經驗。問題的關鍵在于,如何提高學生的學習興趣,從而逐步引導他們進入編程世界。這就要求第一門編程語言必須具備以下特點:
①語言規范、可讀性強,同時又具備快速開發的能力,初學者利用它能很快編寫出實用的程序,從而容易獲得成就感,感悟到軟件開發的魅力。
②可以忽略不必要的底層技術細節,但同時并不隱藏用戶想知道的細節,以免分散學生的注意力。
③必須能充分體現現代軟件開發的基本思想和技術成果,為學生進一步深入學習打下堅實的基礎。
④ 考慮到專科衛生信息管理專業學生在校時間短、課時較少的特點,這門語言必須有利于后續課程的學習,無需再重新學習其他編程語言。
2.不同編程語言的比較
從全國高校的非計算機專業程序設計基礎課程來看,主要以 Visual Basic、Visual FoxPro 和C 程序設計為主,下面就幾種比較流行的編程語言做一分析。
① C語言。眾所周知,C語言是一門非常優秀的編程語言,利用它人們可以任意發揮個人的聰明才智,開發出無所不能的優秀程序。但也應注意到,C語言是一門面向過程的中級語言,適合編寫底層應用程序。因此,在圖形用戶界面已成為主流的今天,再讓學生去學習枯燥乏味的命令行應用程序,學生很難產生興趣。當然,也有學者認為,采用C語言做第一門教學語言,主要是讓學生知道和掌握最基本的程序設計思想和技巧,例如,如何使用指針、如何編寫更有效的查找和排序算法,等等。隨著計算機軟件開發進入產業化時代,與制造業一樣,應用軟件的開發者必須掌握利用平臺工具、開發框架、組件來快速開發穩定、高效的軟件。對于衛生信息管理專業的學生來說,他們的任務不是研究和開發基礎軟件,相反,軟件工程的思想和方法、大型開發平臺的使用以及各種庫( 例如,類庫、構件庫、服務庫) 的使用才是必須掌握的基礎。因此,筆者認為,雖然C語言有著眾多的優點,但其并不適合作為衛生信息管理專業學生的第一門編程語言。
② Visual Basic。由于Basic語言簡單易學,很容易上手,因此,在中國有不少人是通過Basic語言邁入程序設計大門的。Visual Basic是微軟公司研發的快速開發工具,曾經在市場上非常流行,被視為Windows桌面編程最佳入門語言,只可惜這個優勢在其后繼版本Visual Basic.NET中已不復存在。從功能上說,目前的Visual Basic.NET非常強大,與C語言基本一致,但其語言本身的復雜程度也變得與C語言基本相當,從學生角度考慮,與其學Visual Basic.NET,還不如直接學C語言。
③Visual FoxPro。Visual FoxPro是微軟公司旗下的快速程序開發工具,也曾經在中國市場上流行過很長時間,它主要適合于數據庫應用系統開發。由于其自身的不足,目前已有退出市場的趨勢,因此不宜用于教學。
④Python。目前Python語言在國內外非常流行,我們從每月更新的TIOBE編程語言排行榜中就可以看出,有不少學者認為它是最適合初學者學習的編程語言。Python是一種面向對象的動態編程語言,語法簡潔,可以使初學者學習基本的編程知識,體會動態編程語言的特點。但相比于其他編程語言,有關Python語言的中文教材太少。另外,用Python開發圖形界面程序比較麻煩,且不太成熟穩定,目前國內還沒有真正利用Python進行商業程序開發的,因此,在后續課程的學習中還必須從頭學習其他的編程語言,浪費寶貴的學時。
⑤Delphi。Delphi是基于Object Pascal的編程工具,由美國Borland公司出品。Object Pascal語言是對Pascal語言的擴展,完全支持面向對象程序設計,具有語言嚴謹、結構清晰、可讀性強和代碼執行效率高等特點。Delphi擁有大量的VCL組件,具有強大的數據庫處理功能和網絡編程優勢。醫院信息管理系統屬于典型的數據庫應用系統之一,如果采用Delphi進行教學,講解如何開發醫院信息管理系統,學生可以很快設計出漂亮的程序來,從而產生成就感,有利于激發學生的興趣,調動學生的學習積極性。endprint
筆者認為,Delphi完全具備第一門編程語言所應具備的特點,可以將Delphi作為??菩l生信息管理專業學生的第一門編程語言。但需要注意不要讓學生產生“編程就是往界面上拖拽組件”的錯誤編程觀念。
三、教學內容和方法
如上所述,可以將Delphi作為??菩l生信息管理專業學生的第一門編程語言,但必須注意教學內容和方法需與該專業學生特點相結合。筆者根據自己的授課實踐,得到一些體會。
1. 結合專業特點,以實例講解貫穿整個教學過程
筆者認為,在課堂教學上,可以將一個完整的精簡版實例軟件的開發貫穿于整個教學過程中,根據教學內容的需要和軟件本身特點,將其分解成多個模塊進行詳細講解,這些小的實例應在知識面覆蓋、技巧性、趣味性和實用性等方面力求做到完美的統一。為與專業特點相結合,強化學生學習興趣,同時又以必需、夠用為度,在實例選擇上可以將一個完整的實際軟件加以精簡。在教學上首先提出問題,引導學生逐步解決問題,使其明確學習的目標,在潛移默化中培養其運用信息技術解決實際問題的能力。
例如,衛生信息管理專業的畢業生大部分要到醫院的信息科工作,因此在課程設計上就以一個醫院信息系統的設計為主線,以若干實例為每個小知識點的連接帶。課堂學習就是圍繞著如何實現這個實例為目標。在第一節課上就以圖文并茂的方式介紹程序設計基礎這門課的學習內容和要求,介紹醫院信息系統的功能要求,以此功能的實現貫穿本課程的學習始終,從而了解程序設計的功能、結構等基本概念。
2. 堅持理論服務于實踐,加強實訓課教學
利用實例教學的根本目的在于使學生掌握并能運用所學知識。因此,在程序設計基礎教學中,我們采用一次理論一次實訓的授課模式,在較短的時間內將所學理論知識迅速強化,讓學生在實訓中加深認識和擴展學習。
例如,在理論教學2個學時之后,緊跟2個學時用于學生自主練習。在布置實訓作業時,按照所學理論課內容,以3~5個小實例為完成目標,讓學生自己思考如何去做,老師對學生的疑惑進行啟發性解答。為了督促學生學習,教師可將實訓作業完成情況計入平時成績。
3. 以項目訓練為手段,提高學生應用能力
程序設計基礎是一門實踐性很強的課程,只進行一些小的實例訓練,很難培養學生程序設計的全局觀念,可以通過具有一定綜合性和實用性的項目進一步強化學生對知識的掌握。例如,在全部課程結束時,以一個簡單的門診掛號系統的開發為綜合實訓項目,學生可以獨自進行開發,也可以小組合作方式進行開發。通過需求分析、總體設計、用戶界面設計、編碼、調試等一系列過程,培養學生動手實踐、協作開發大型軟件項目的能力,為專業技能訓練提供基礎。通過項目訓練方式,將學生引入具體的項目研發,使學生有更多的機會主動探究,培養了科研能力。
4. 通過舉辦程序設計競賽,提高學生創新能力
通過舉辦程序設計大賽,為學生提供展示程序設計能力的舞臺,激發學生學習的主動性。
例如,筆者所教的學生在大一第一學期已學過線性代數知識,于是筆者在競賽題中要求學生編寫程序,打印輸出指定階數的蛇形矩陣。該題有不同的解法,并且時間性能差別很大,通過該題的求解,引發學生進一步思考,提高了學生求解問題的創新能力。
總之,隨著人才市場對衛生信息管理專業畢業生能力要求的不斷提高,科學設置程序設計基礎課程,提高學生程序設計能力,對于高校計算機教師來說已刻不容緩。我們通過對入門編程語言的選擇,對教學內容、方法及手段的探討,希望不僅能加強對學生綜合素質的培養,更能在專業發展上有所突破。筆者認為,只有深化教學改革,從專業特點和學生實際出發,因材施教,增強學生的學習興趣和程序設計能力,才能更好地實現程序設計基礎課的教學目標。
(責編 張紅延)endprint