国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向生物醫(yī)學(xué)工程專業(yè)的C++教學(xué)方法探討

2014-03-11 14:42諶先敢
教育教學(xué)論壇 2014年3期
關(guān)鍵詞:生物醫(yī)學(xué)工程教學(xué)改革教學(xué)

摘要:大部分工科專業(yè)都會學(xué)習(xí)C++語言,本文主要針對生物醫(yī)學(xué)工程專業(yè)的C++語言教學(xué)中遇到的問題進行討論,通過對醫(yī)院信息系統(tǒng)中門診掛號模塊的構(gòu)建來講解面向?qū)ο蟮乃枷?,并引?dǎo)學(xué)生運用面向?qū)ο蟮乃枷雭砜紤]并解決生活中的問題,這樣既能增加學(xué)生對專業(yè)的了解、培養(yǎng)學(xué)習(xí)興趣,又有助于提高其編程水平。

關(guān)鍵詞:C++教學(xué);生物醫(yī)學(xué)工程;教學(xué)改革

中圖分類號:G642.4 文獻標(biāo)志碼:A 文章編號:1674-9324(2014)03-0073-02

一、引言

生物醫(yī)學(xué)工程是工程技術(shù)與生物學(xué)和醫(yī)學(xué)相結(jié)合產(chǎn)生的一門交叉學(xué)科,旨在運用工程技術(shù)手段解決生命科學(xué)和醫(yī)學(xué)中的問題[1]。生物醫(yī)學(xué)工程專業(yè)的學(xué)生需要掌握一定的工程技術(shù)手段,其中編程是一項關(guān)鍵技術(shù)。C++語言屬于面向?qū)ο缶幊谭椒ㄖ械慕?jīng)典語言,對于該專業(yè)學(xué)生來說是一種重要的編程工具,可能用于今后的工作或科學(xué)研究中。生物醫(yī)學(xué)工程專業(yè)學(xué)生的培養(yǎng)涉及到數(shù)學(xué)、物理、化學(xué)、生物等基礎(chǔ)學(xué)科和電子技術(shù)、信息處理技術(shù)、計算機技術(shù)、傳感器與檢測技術(shù)、成像技術(shù)以及機械和材料等應(yīng)用工程學(xué)科。學(xué)生需要學(xué)習(xí)的知識多,涉及的面非常廣,與計算機類和電子信息類等傳統(tǒng)專業(yè)的學(xué)生相比,能夠花在編程訓(xùn)練上的時間較少。為了提高生物醫(yī)學(xué)工程專業(yè)學(xué)生的編程水平,需要對教學(xué)過程中遇到的問題進行總結(jié),提出相應(yīng)的解決辦法。

二、教學(xué)中遇到的問題

生物醫(yī)學(xué)工程專業(yè)的學(xué)生在學(xué)習(xí)C++的過程中通常會遇到以下問題:

1.在C++語言的學(xué)習(xí)中缺乏對本專業(yè)的思考。由于C++語言的學(xué)習(xí)一般在本科學(xué)習(xí)的早期階段,此時學(xué)生對本專業(yè)的了解并不充分。雖然一般會提前開設(shè)《生物醫(yī)學(xué)工程導(dǎo)論》課,但該課程也只能讓學(xué)生對本專業(yè)有一個粗略的了解。因此,在每一門課程中都融入對生物醫(yī)學(xué)工程專業(yè)的講解就非常重要。雖然,C++這樣的編程課程可以由計算機專業(yè)的教師講授,但是,如果由屬于生物醫(yī)學(xué)工程專業(yè)且有計算機背景的教師來講授顯然更加合適。因為,后者既能教會學(xué)生編程,也能引導(dǎo)學(xué)生進一步了解本專業(yè)。

2.難以充分理解面向?qū)ο蟮乃枷搿++是一種面向?qū)ο蟮木幊陶Z言,充分理解面向?qū)ο笏枷雽τ贑++的學(xué)習(xí)至關(guān)重要。面向?qū)ο蟮某绦蛟O(shè)計方法將數(shù)據(jù)及對數(shù)據(jù)的操作方法封裝在一起,作為對象,對同類型對象抽象出其共性,形成類,通過繼承與多態(tài)性,使程序具有可重用性[2]。通常解決問題時有兩種方式,一是按照過程方式來解決,二是將問題抽象為一個對象來解決,面向?qū)ο髮儆诘诙N考慮事情的方式[3]。了解面向?qū)ο蟮乃枷氩⒉焕щy,難的是在學(xué)習(xí)編程的過程中,理解類、對象、繼承和派生、多態(tài)等這些概念及其在編程中的靈活運用。

3.編程水平的提高緩慢。大部分學(xué)生在學(xué)習(xí)程序設(shè)計的過程中編程水平提高緩慢,部分學(xué)生在學(xué)習(xí)的過程中怕困難,不愿意編寫程序,或者只是簡單地將課本上的程序搬到電腦,而不愿意進行深入的思考。這種情況在初學(xué)編程的學(xué)生中是一種比較常見的現(xiàn)象。教師在教學(xué)的過程中,除了鼓勵學(xué)生勇于克服困難、努力學(xué)習(xí)以外,想辦法提高學(xué)生對編程的興趣,教會學(xué)生學(xué)以致用才是解決問題的關(guān)鍵。

三、教學(xué)方法

為了解決以上問題,筆者嘗試在教學(xué)中引入以下改進方法,取得了一定的效果。

1.以門診掛號模塊的構(gòu)建來講解面向?qū)ο蟮乃枷?。為了同時提高學(xué)生編程水平和引導(dǎo)學(xué)生了解本專業(yè),教師在講解面向?qū)ο笾心承└拍畹臅r候,可以盡量列舉一些與本專業(yè)相關(guān)的實例。例如,生物醫(yī)學(xué)工程專業(yè)的同學(xué)以后可能會接觸到醫(yī)院信息系統(tǒng)(Hospital Information System,HIS),利用醫(yī)院信息系統(tǒng)中的實例來進行講解課程中的概念,既能強化同學(xué)們對概念的認(rèn)識與了解,又能培養(yǎng)其用面向?qū)ο蟮乃季S方式解決專業(yè)學(xué)習(xí)中遇到的問題。醫(yī)院信息系統(tǒng)可以分成很多模塊,門診掛號模塊是其中一個必要模塊。在講解“抽象”這個概念的時候,可以用門診掛號模塊作為實例講解。抽象,是指對某種目的而言,強調(diào)重要的部分,忽略不重要的部分。抽象是具有針對性的,在講解抽象的針對性時,可以提出以下的例子:在設(shè)計門診掛號模塊時,每個病人的姓名、性別、所選號碼等信息就是重要內(nèi)容,而像體重、血型、既往病史這些信息在這里不太重要,就可以被忽略。而對于醫(yī)院信息系統(tǒng)中的病案管理模塊,體重、血型、既往病史這些被忽略的信息可能又是重要的。因此,對于門診掛號模塊來說,使用抽象的方法,就只考慮姓名、性別、所選號碼這些我們關(guān)心的信息。面向?qū)ο笫且环N考慮事情的方式,在實現(xiàn)門診掛號這個功能時,可以構(gòu)建如下對象,病人、醫(yī)生、掛號和掛號結(jié)果等對象協(xié)同完成門診掛號:首先,由病人對象將病人掛號申請發(fā)給掛號對象,再由掛號對象請求醫(yī)生對象提供相應(yīng)的醫(yī)生信息,在此基礎(chǔ)上,掛號對象對病人掛號申請進行處理和審核,最后將病人掛號結(jié)果提交給掛號結(jié)果對象,掛號結(jié)果對象負責(zé)保存病人掛號結(jié)果,并提供查詢服務(wù)。門診掛號模塊中各個對象之間的關(guān)系如圖1所示。

2.引導(dǎo)學(xué)生用面向?qū)ο蟮乃枷雭砜紤]并解決生活中的問題。程序設(shè)計的學(xué)習(xí)對部分學(xué)生來講比較枯燥,特別是每當(dāng)學(xué)生遇到不知道如何解決的問題時,挫折感比較強。為了激發(fā)學(xué)生對編程的興趣,可以嘗試引入一些生活中的實例來講解面向?qū)ο缶幊讨械哪承└拍睢C嫦驅(qū)ο蟮乃枷胝J(rèn)為,一切事物皆為對象。對象可以是有形的事物,如一本書、一輛汽車;對象也可以是無形的事情,如一項計劃。對象可以是簡單的個體,比如一個人;也可以是由諸多其他對象組合而成,比如一個公司有多個部門,每個部門又由許多人組成。我們可以用生活中的現(xiàn)象作為具體的對象來進行分析。比如一輛公共汽車,它有一個表示其唯一性的車牌號,有外觀、重量、載客量等靜態(tài)特征,還有前進、倒車、剎車等動態(tài)行為。再比如一個學(xué)生,有一個唯一標(biāo)志(學(xué)號),有姓名、年齡、性別、身高、體重等靜態(tài)特征和學(xué)習(xí)、唱歌、打籃球等動態(tài)行為。從這些實例中,可以歸納出,一個對象包括以下的內(nèi)容:(1)唯一的標(biāo)志符,用來表示與其他對象不同;(2)靜態(tài)特征,描述對象的屬性;(3)動態(tài)行為,描述對象具有的功能。作為貼近學(xué)生生活的一個實例,學(xué)生選課系統(tǒng)一般都被學(xué)生所熟悉。為了進一步理解面向?qū)ο蟮乃枷?,可以嘗試引導(dǎo)學(xué)生用面向?qū)ο蟮乃枷雭順?gòu)建學(xué)生選課系統(tǒng)。在學(xué)生選課系統(tǒng)中,可以建立學(xué)生、課程、選課、選課結(jié)果這四個對象,學(xué)生對象的靜態(tài)特征包括:學(xué)號、姓名、年齡、專業(yè)等;課程對象包括:課程編號、課程名稱、選課人數(shù)等。這四個對象協(xié)同完成學(xué)生選課功能:首先,由學(xué)生對象將選課申請發(fā)給選課對象,再由選課對象請求課程對象提供相應(yīng)的課程信息,如:多少學(xué)分、目前已經(jīng)選這門課的人數(shù)、是否可以選,在此基礎(chǔ)上,選課對象對學(xué)生選課申請進行處理和審核,如:該學(xué)生是否有資質(zhì)選這門課等,最后將學(xué)生選課結(jié)果提交給選課結(jié)果對象,選課結(jié)果對象負責(zé)保存學(xué)生選課結(jié)果,并提供查詢服務(wù)。學(xué)生選課系統(tǒng)中各個對象之間的關(guān)系如圖2所示。

3.指導(dǎo)學(xué)生認(rèn)清學(xué)習(xí)目標(biāo)的主次和形成良好的學(xué)習(xí)習(xí)慣。在學(xué)習(xí)時間有限的情況下,必須教會學(xué)生分清學(xué)習(xí)目標(biāo)的主次。在C++的學(xué)習(xí)中,首先重點學(xué)習(xí)面向?qū)ο蟮乃枷耄瑢⑺惴ǖ膶W(xué)習(xí)放到次要位置。對于編程人員來將,算法的學(xué)習(xí)十分必要,但這是一個長期的過程,必須循序漸進。對于初學(xué)面向?qū)ο缶幊痰娜藛T,首先必須理解面向?qū)ο蟮乃枷耄⒈M可能建立面向?qū)ο蟮乃季S方式,即在解決問題時,將問題抽象為對象來解決。還存在一個常見的現(xiàn)象,就是部分初學(xué)編程的學(xué)生在實驗課上效率很低,難以進入編程的狀態(tài),時間一長就會去做一些無關(guān)的事情。因為計算機既是一個學(xué)習(xí)的工具,也是一個娛樂的工具,學(xué)生有時可能難以控制自己。因此,強調(diào)學(xué)生形成良好的學(xué)習(xí)習(xí)慣并給自己制定規(guī)矩,就顯得非常重要,比如:課前要預(yù)習(xí),編程的時候嚴(yán)格要求自己只能編程,其他無關(guān)的事情完全不能做。只要學(xué)習(xí)方法正確并且有良好的學(xué)習(xí)習(xí)慣,大部分學(xué)生應(yīng)該都能夠把C++學(xué)好。

學(xué)生編程水平的提高是教學(xué)過程中一個困難的問題,如何促進學(xué)生對編程產(chǎn)生興趣,讓學(xué)生覺得編程不僅是一件重要的事情,而且是一件有趣的事情,這還需要廣大教師不斷探索教學(xué)方法,在教學(xué)的過程中摸索出一套適合自身情況的方法,這樣才能讓教學(xué)產(chǎn)生良好的效果。

參考文獻:

[1]John D.Enderle.生物醫(yī)學(xué)工程學(xué)概論[M].原書第2版.封洲燕,譯.北京:機械工業(yè)出版社,2010.

[2]鄭莉.C++語言程序設(shè)計[M].第4版.北京:清華大學(xué)出版社,2010.

[3]孫晶.面向?qū)ο笏枷隱DB/OL].百度百科,2013.

作者簡介:諶先敢(1980-),男,湖北武漢人,博士,講師,主要研究領(lǐng)域為計算機視覺、模式識別。endprint

摘要:大部分工科專業(yè)都會學(xué)習(xí)C++語言,本文主要針對生物醫(yī)學(xué)工程專業(yè)的C++語言教學(xué)中遇到的問題進行討論,通過對醫(yī)院信息系統(tǒng)中門診掛號模塊的構(gòu)建來講解面向?qū)ο蟮乃枷?,并引?dǎo)學(xué)生運用面向?qū)ο蟮乃枷雭砜紤]并解決生活中的問題,這樣既能增加學(xué)生對專業(yè)的了解、培養(yǎng)學(xué)習(xí)興趣,又有助于提高其編程水平。

關(guān)鍵詞:C++教學(xué);生物醫(yī)學(xué)工程;教學(xué)改革

中圖分類號:G642.4 文獻標(biāo)志碼:A 文章編號:1674-9324(2014)03-0073-02

一、引言

生物醫(yī)學(xué)工程是工程技術(shù)與生物學(xué)和醫(yī)學(xué)相結(jié)合產(chǎn)生的一門交叉學(xué)科,旨在運用工程技術(shù)手段解決生命科學(xué)和醫(yī)學(xué)中的問題[1]。生物醫(yī)學(xué)工程專業(yè)的學(xué)生需要掌握一定的工程技術(shù)手段,其中編程是一項關(guān)鍵技術(shù)。C++語言屬于面向?qū)ο缶幊谭椒ㄖ械慕?jīng)典語言,對于該專業(yè)學(xué)生來說是一種重要的編程工具,可能用于今后的工作或科學(xué)研究中。生物醫(yī)學(xué)工程專業(yè)學(xué)生的培養(yǎng)涉及到數(shù)學(xué)、物理、化學(xué)、生物等基礎(chǔ)學(xué)科和電子技術(shù)、信息處理技術(shù)、計算機技術(shù)、傳感器與檢測技術(shù)、成像技術(shù)以及機械和材料等應(yīng)用工程學(xué)科。學(xué)生需要學(xué)習(xí)的知識多,涉及的面非常廣,與計算機類和電子信息類等傳統(tǒng)專業(yè)的學(xué)生相比,能夠花在編程訓(xùn)練上的時間較少。為了提高生物醫(yī)學(xué)工程專業(yè)學(xué)生的編程水平,需要對教學(xué)過程中遇到的問題進行總結(jié),提出相應(yīng)的解決辦法。

二、教學(xué)中遇到的問題

生物醫(yī)學(xué)工程專業(yè)的學(xué)生在學(xué)習(xí)C++的過程中通常會遇到以下問題:

1.在C++語言的學(xué)習(xí)中缺乏對本專業(yè)的思考。由于C++語言的學(xué)習(xí)一般在本科學(xué)習(xí)的早期階段,此時學(xué)生對本專業(yè)的了解并不充分。雖然一般會提前開設(shè)《生物醫(yī)學(xué)工程導(dǎo)論》課,但該課程也只能讓學(xué)生對本專業(yè)有一個粗略的了解。因此,在每一門課程中都融入對生物醫(yī)學(xué)工程專業(yè)的講解就非常重要。雖然,C++這樣的編程課程可以由計算機專業(yè)的教師講授,但是,如果由屬于生物醫(yī)學(xué)工程專業(yè)且有計算機背景的教師來講授顯然更加合適。因為,后者既能教會學(xué)生編程,也能引導(dǎo)學(xué)生進一步了解本專業(yè)。

2.難以充分理解面向?qū)ο蟮乃枷?。C++是一種面向?qū)ο蟮木幊陶Z言,充分理解面向?qū)ο笏枷雽τ贑++的學(xué)習(xí)至關(guān)重要。面向?qū)ο蟮某绦蛟O(shè)計方法將數(shù)據(jù)及對數(shù)據(jù)的操作方法封裝在一起,作為對象,對同類型對象抽象出其共性,形成類,通過繼承與多態(tài)性,使程序具有可重用性[2]。通常解決問題時有兩種方式,一是按照過程方式來解決,二是將問題抽象為一個對象來解決,面向?qū)ο髮儆诘诙N考慮事情的方式[3]。了解面向?qū)ο蟮乃枷氩⒉焕щy,難的是在學(xué)習(xí)編程的過程中,理解類、對象、繼承和派生、多態(tài)等這些概念及其在編程中的靈活運用。

3.編程水平的提高緩慢。大部分學(xué)生在學(xué)習(xí)程序設(shè)計的過程中編程水平提高緩慢,部分學(xué)生在學(xué)習(xí)的過程中怕困難,不愿意編寫程序,或者只是簡單地將課本上的程序搬到電腦,而不愿意進行深入的思考。這種情況在初學(xué)編程的學(xué)生中是一種比較常見的現(xiàn)象。教師在教學(xué)的過程中,除了鼓勵學(xué)生勇于克服困難、努力學(xué)習(xí)以外,想辦法提高學(xué)生對編程的興趣,教會學(xué)生學(xué)以致用才是解決問題的關(guān)鍵。

三、教學(xué)方法

為了解決以上問題,筆者嘗試在教學(xué)中引入以下改進方法,取得了一定的效果。

1.以門診掛號模塊的構(gòu)建來講解面向?qū)ο蟮乃枷?。為了同時提高學(xué)生編程水平和引導(dǎo)學(xué)生了解本專業(yè),教師在講解面向?qū)ο笾心承└拍畹臅r候,可以盡量列舉一些與本專業(yè)相關(guān)的實例。例如,生物醫(yī)學(xué)工程專業(yè)的同學(xué)以后可能會接觸到醫(yī)院信息系統(tǒng)(Hospital Information System,HIS),利用醫(yī)院信息系統(tǒng)中的實例來進行講解課程中的概念,既能強化同學(xué)們對概念的認(rèn)識與了解,又能培養(yǎng)其用面向?qū)ο蟮乃季S方式解決專業(yè)學(xué)習(xí)中遇到的問題。醫(yī)院信息系統(tǒng)可以分成很多模塊,門診掛號模塊是其中一個必要模塊。在講解“抽象”這個概念的時候,可以用門診掛號模塊作為實例講解。抽象,是指對某種目的而言,強調(diào)重要的部分,忽略不重要的部分。抽象是具有針對性的,在講解抽象的針對性時,可以提出以下的例子:在設(shè)計門診掛號模塊時,每個病人的姓名、性別、所選號碼等信息就是重要內(nèi)容,而像體重、血型、既往病史這些信息在這里不太重要,就可以被忽略。而對于醫(yī)院信息系統(tǒng)中的病案管理模塊,體重、血型、既往病史這些被忽略的信息可能又是重要的。因此,對于門診掛號模塊來說,使用抽象的方法,就只考慮姓名、性別、所選號碼這些我們關(guān)心的信息。面向?qū)ο笫且环N考慮事情的方式,在實現(xiàn)門診掛號這個功能時,可以構(gòu)建如下對象,病人、醫(yī)生、掛號和掛號結(jié)果等對象協(xié)同完成門診掛號:首先,由病人對象將病人掛號申請發(fā)給掛號對象,再由掛號對象請求醫(yī)生對象提供相應(yīng)的醫(yī)生信息,在此基礎(chǔ)上,掛號對象對病人掛號申請進行處理和審核,最后將病人掛號結(jié)果提交給掛號結(jié)果對象,掛號結(jié)果對象負責(zé)保存病人掛號結(jié)果,并提供查詢服務(wù)。門診掛號模塊中各個對象之間的關(guān)系如圖1所示。

2.引導(dǎo)學(xué)生用面向?qū)ο蟮乃枷雭砜紤]并解決生活中的問題。程序設(shè)計的學(xué)習(xí)對部分學(xué)生來講比較枯燥,特別是每當(dāng)學(xué)生遇到不知道如何解決的問題時,挫折感比較強。為了激發(fā)學(xué)生對編程的興趣,可以嘗試引入一些生活中的實例來講解面向?qū)ο缶幊讨械哪承└拍?。面向?qū)ο蟮乃枷胝J(rèn)為,一切事物皆為對象。對象可以是有形的事物,如一本書、一輛汽車;對象也可以是無形的事情,如一項計劃。對象可以是簡單的個體,比如一個人;也可以是由諸多其他對象組合而成,比如一個公司有多個部門,每個部門又由許多人組成。我們可以用生活中的現(xiàn)象作為具體的對象來進行分析。比如一輛公共汽車,它有一個表示其唯一性的車牌號,有外觀、重量、載客量等靜態(tài)特征,還有前進、倒車、剎車等動態(tài)行為。再比如一個學(xué)生,有一個唯一標(biāo)志(學(xué)號),有姓名、年齡、性別、身高、體重等靜態(tài)特征和學(xué)習(xí)、唱歌、打籃球等動態(tài)行為。從這些實例中,可以歸納出,一個對象包括以下的內(nèi)容:(1)唯一的標(biāo)志符,用來表示與其他對象不同;(2)靜態(tài)特征,描述對象的屬性;(3)動態(tài)行為,描述對象具有的功能。作為貼近學(xué)生生活的一個實例,學(xué)生選課系統(tǒng)一般都被學(xué)生所熟悉。為了進一步理解面向?qū)ο蟮乃枷?,可以嘗試引導(dǎo)學(xué)生用面向?qū)ο蟮乃枷雭順?gòu)建學(xué)生選課系統(tǒng)。在學(xué)生選課系統(tǒng)中,可以建立學(xué)生、課程、選課、選課結(jié)果這四個對象,學(xué)生對象的靜態(tài)特征包括:學(xué)號、姓名、年齡、專業(yè)等;課程對象包括:課程編號、課程名稱、選課人數(shù)等。這四個對象協(xié)同完成學(xué)生選課功能:首先,由學(xué)生對象將選課申請發(fā)給選課對象,再由選課對象請求課程對象提供相應(yīng)的課程信息,如:多少學(xué)分、目前已經(jīng)選這門課的人數(shù)、是否可以選,在此基礎(chǔ)上,選課對象對學(xué)生選課申請進行處理和審核,如:該學(xué)生是否有資質(zhì)選這門課等,最后將學(xué)生選課結(jié)果提交給選課結(jié)果對象,選課結(jié)果對象負責(zé)保存學(xué)生選課結(jié)果,并提供查詢服務(wù)。學(xué)生選課系統(tǒng)中各個對象之間的關(guān)系如圖2所示。

3.指導(dǎo)學(xué)生認(rèn)清學(xué)習(xí)目標(biāo)的主次和形成良好的學(xué)習(xí)習(xí)慣。在學(xué)習(xí)時間有限的情況下,必須教會學(xué)生分清學(xué)習(xí)目標(biāo)的主次。在C++的學(xué)習(xí)中,首先重點學(xué)習(xí)面向?qū)ο蟮乃枷?,將算法的學(xué)習(xí)放到次要位置。對于編程人員來將,算法的學(xué)習(xí)十分必要,但這是一個長期的過程,必須循序漸進。對于初學(xué)面向?qū)ο缶幊痰娜藛T,首先必須理解面向?qū)ο蟮乃枷?,并盡可能建立面向?qū)ο蟮乃季S方式,即在解決問題時,將問題抽象為對象來解決。還存在一個常見的現(xiàn)象,就是部分初學(xué)編程的學(xué)生在實驗課上效率很低,難以進入編程的狀態(tài),時間一長就會去做一些無關(guān)的事情。因為計算機既是一個學(xué)習(xí)的工具,也是一個娛樂的工具,學(xué)生有時可能難以控制自己。因此,強調(diào)學(xué)生形成良好的學(xué)習(xí)習(xí)慣并給自己制定規(guī)矩,就顯得非常重要,比如:課前要預(yù)習(xí),編程的時候嚴(yán)格要求自己只能編程,其他無關(guān)的事情完全不能做。只要學(xué)習(xí)方法正確并且有良好的學(xué)習(xí)習(xí)慣,大部分學(xué)生應(yīng)該都能夠把C++學(xué)好。

學(xué)生編程水平的提高是教學(xué)過程中一個困難的問題,如何促進學(xué)生對編程產(chǎn)生興趣,讓學(xué)生覺得編程不僅是一件重要的事情,而且是一件有趣的事情,這還需要廣大教師不斷探索教學(xué)方法,在教學(xué)的過程中摸索出一套適合自身情況的方法,這樣才能讓教學(xué)產(chǎn)生良好的效果。

參考文獻:

[1]John D.Enderle.生物醫(yī)學(xué)工程學(xué)概論[M].原書第2版.封洲燕,譯.北京:機械工業(yè)出版社,2010.

[2]鄭莉.C++語言程序設(shè)計[M].第4版.北京:清華大學(xué)出版社,2010.

[3]孫晶.面向?qū)ο笏枷隱DB/OL].百度百科,2013.

作者簡介:諶先敢(1980-),男,湖北武漢人,博士,講師,主要研究領(lǐng)域為計算機視覺、模式識別。endprint

摘要:大部分工科專業(yè)都會學(xué)習(xí)C++語言,本文主要針對生物醫(yī)學(xué)工程專業(yè)的C++語言教學(xué)中遇到的問題進行討論,通過對醫(yī)院信息系統(tǒng)中門診掛號模塊的構(gòu)建來講解面向?qū)ο蟮乃枷?,并引?dǎo)學(xué)生運用面向?qū)ο蟮乃枷雭砜紤]并解決生活中的問題,這樣既能增加學(xué)生對專業(yè)的了解、培養(yǎng)學(xué)習(xí)興趣,又有助于提高其編程水平。

關(guān)鍵詞:C++教學(xué);生物醫(yī)學(xué)工程;教學(xué)改革

中圖分類號:G642.4 文獻標(biāo)志碼:A 文章編號:1674-9324(2014)03-0073-02

一、引言

生物醫(yī)學(xué)工程是工程技術(shù)與生物學(xué)和醫(yī)學(xué)相結(jié)合產(chǎn)生的一門交叉學(xué)科,旨在運用工程技術(shù)手段解決生命科學(xué)和醫(yī)學(xué)中的問題[1]。生物醫(yī)學(xué)工程專業(yè)的學(xué)生需要掌握一定的工程技術(shù)手段,其中編程是一項關(guān)鍵技術(shù)。C++語言屬于面向?qū)ο缶幊谭椒ㄖ械慕?jīng)典語言,對于該專業(yè)學(xué)生來說是一種重要的編程工具,可能用于今后的工作或科學(xué)研究中。生物醫(yī)學(xué)工程專業(yè)學(xué)生的培養(yǎng)涉及到數(shù)學(xué)、物理、化學(xué)、生物等基礎(chǔ)學(xué)科和電子技術(shù)、信息處理技術(shù)、計算機技術(shù)、傳感器與檢測技術(shù)、成像技術(shù)以及機械和材料等應(yīng)用工程學(xué)科。學(xué)生需要學(xué)習(xí)的知識多,涉及的面非常廣,與計算機類和電子信息類等傳統(tǒng)專業(yè)的學(xué)生相比,能夠花在編程訓(xùn)練上的時間較少。為了提高生物醫(yī)學(xué)工程專業(yè)學(xué)生的編程水平,需要對教學(xué)過程中遇到的問題進行總結(jié),提出相應(yīng)的解決辦法。

二、教學(xué)中遇到的問題

生物醫(yī)學(xué)工程專業(yè)的學(xué)生在學(xué)習(xí)C++的過程中通常會遇到以下問題:

1.在C++語言的學(xué)習(xí)中缺乏對本專業(yè)的思考。由于C++語言的學(xué)習(xí)一般在本科學(xué)習(xí)的早期階段,此時學(xué)生對本專業(yè)的了解并不充分。雖然一般會提前開設(shè)《生物醫(yī)學(xué)工程導(dǎo)論》課,但該課程也只能讓學(xué)生對本專業(yè)有一個粗略的了解。因此,在每一門課程中都融入對生物醫(yī)學(xué)工程專業(yè)的講解就非常重要。雖然,C++這樣的編程課程可以由計算機專業(yè)的教師講授,但是,如果由屬于生物醫(yī)學(xué)工程專業(yè)且有計算機背景的教師來講授顯然更加合適。因為,后者既能教會學(xué)生編程,也能引導(dǎo)學(xué)生進一步了解本專業(yè)。

2.難以充分理解面向?qū)ο蟮乃枷?。C++是一種面向?qū)ο蟮木幊陶Z言,充分理解面向?qū)ο笏枷雽τ贑++的學(xué)習(xí)至關(guān)重要。面向?qū)ο蟮某绦蛟O(shè)計方法將數(shù)據(jù)及對數(shù)據(jù)的操作方法封裝在一起,作為對象,對同類型對象抽象出其共性,形成類,通過繼承與多態(tài)性,使程序具有可重用性[2]。通常解決問題時有兩種方式,一是按照過程方式來解決,二是將問題抽象為一個對象來解決,面向?qū)ο髮儆诘诙N考慮事情的方式[3]。了解面向?qū)ο蟮乃枷氩⒉焕щy,難的是在學(xué)習(xí)編程的過程中,理解類、對象、繼承和派生、多態(tài)等這些概念及其在編程中的靈活運用。

3.編程水平的提高緩慢。大部分學(xué)生在學(xué)習(xí)程序設(shè)計的過程中編程水平提高緩慢,部分學(xué)生在學(xué)習(xí)的過程中怕困難,不愿意編寫程序,或者只是簡單地將課本上的程序搬到電腦,而不愿意進行深入的思考。這種情況在初學(xué)編程的學(xué)生中是一種比較常見的現(xiàn)象。教師在教學(xué)的過程中,除了鼓勵學(xué)生勇于克服困難、努力學(xué)習(xí)以外,想辦法提高學(xué)生對編程的興趣,教會學(xué)生學(xué)以致用才是解決問題的關(guān)鍵。

三、教學(xué)方法

為了解決以上問題,筆者嘗試在教學(xué)中引入以下改進方法,取得了一定的效果。

1.以門診掛號模塊的構(gòu)建來講解面向?qū)ο蟮乃枷?。為了同時提高學(xué)生編程水平和引導(dǎo)學(xué)生了解本專業(yè),教師在講解面向?qū)ο笾心承└拍畹臅r候,可以盡量列舉一些與本專業(yè)相關(guān)的實例。例如,生物醫(yī)學(xué)工程專業(yè)的同學(xué)以后可能會接觸到醫(yī)院信息系統(tǒng)(Hospital Information System,HIS),利用醫(yī)院信息系統(tǒng)中的實例來進行講解課程中的概念,既能強化同學(xué)們對概念的認(rèn)識與了解,又能培養(yǎng)其用面向?qū)ο蟮乃季S方式解決專業(yè)學(xué)習(xí)中遇到的問題。醫(yī)院信息系統(tǒng)可以分成很多模塊,門診掛號模塊是其中一個必要模塊。在講解“抽象”這個概念的時候,可以用門診掛號模塊作為實例講解。抽象,是指對某種目的而言,強調(diào)重要的部分,忽略不重要的部分。抽象是具有針對性的,在講解抽象的針對性時,可以提出以下的例子:在設(shè)計門診掛號模塊時,每個病人的姓名、性別、所選號碼等信息就是重要內(nèi)容,而像體重、血型、既往病史這些信息在這里不太重要,就可以被忽略。而對于醫(yī)院信息系統(tǒng)中的病案管理模塊,體重、血型、既往病史這些被忽略的信息可能又是重要的。因此,對于門診掛號模塊來說,使用抽象的方法,就只考慮姓名、性別、所選號碼這些我們關(guān)心的信息。面向?qū)ο笫且环N考慮事情的方式,在實現(xiàn)門診掛號這個功能時,可以構(gòu)建如下對象,病人、醫(yī)生、掛號和掛號結(jié)果等對象協(xié)同完成門診掛號:首先,由病人對象將病人掛號申請發(fā)給掛號對象,再由掛號對象請求醫(yī)生對象提供相應(yīng)的醫(yī)生信息,在此基礎(chǔ)上,掛號對象對病人掛號申請進行處理和審核,最后將病人掛號結(jié)果提交給掛號結(jié)果對象,掛號結(jié)果對象負責(zé)保存病人掛號結(jié)果,并提供查詢服務(wù)。門診掛號模塊中各個對象之間的關(guān)系如圖1所示。

2.引導(dǎo)學(xué)生用面向?qū)ο蟮乃枷雭砜紤]并解決生活中的問題。程序設(shè)計的學(xué)習(xí)對部分學(xué)生來講比較枯燥,特別是每當(dāng)學(xué)生遇到不知道如何解決的問題時,挫折感比較強。為了激發(fā)學(xué)生對編程的興趣,可以嘗試引入一些生活中的實例來講解面向?qū)ο缶幊讨械哪承└拍睢C嫦驅(qū)ο蟮乃枷胝J(rèn)為,一切事物皆為對象。對象可以是有形的事物,如一本書、一輛汽車;對象也可以是無形的事情,如一項計劃。對象可以是簡單的個體,比如一個人;也可以是由諸多其他對象組合而成,比如一個公司有多個部門,每個部門又由許多人組成。我們可以用生活中的現(xiàn)象作為具體的對象來進行分析。比如一輛公共汽車,它有一個表示其唯一性的車牌號,有外觀、重量、載客量等靜態(tài)特征,還有前進、倒車、剎車等動態(tài)行為。再比如一個學(xué)生,有一個唯一標(biāo)志(學(xué)號),有姓名、年齡、性別、身高、體重等靜態(tài)特征和學(xué)習(xí)、唱歌、打籃球等動態(tài)行為。從這些實例中,可以歸納出,一個對象包括以下的內(nèi)容:(1)唯一的標(biāo)志符,用來表示與其他對象不同;(2)靜態(tài)特征,描述對象的屬性;(3)動態(tài)行為,描述對象具有的功能。作為貼近學(xué)生生活的一個實例,學(xué)生選課系統(tǒng)一般都被學(xué)生所熟悉。為了進一步理解面向?qū)ο蟮乃枷?,可以嘗試引導(dǎo)學(xué)生用面向?qū)ο蟮乃枷雭順?gòu)建學(xué)生選課系統(tǒng)。在學(xué)生選課系統(tǒng)中,可以建立學(xué)生、課程、選課、選課結(jié)果這四個對象,學(xué)生對象的靜態(tài)特征包括:學(xué)號、姓名、年齡、專業(yè)等;課程對象包括:課程編號、課程名稱、選課人數(shù)等。這四個對象協(xié)同完成學(xué)生選課功能:首先,由學(xué)生對象將選課申請發(fā)給選課對象,再由選課對象請求課程對象提供相應(yīng)的課程信息,如:多少學(xué)分、目前已經(jīng)選這門課的人數(shù)、是否可以選,在此基礎(chǔ)上,選課對象對學(xué)生選課申請進行處理和審核,如:該學(xué)生是否有資質(zhì)選這門課等,最后將學(xué)生選課結(jié)果提交給選課結(jié)果對象,選課結(jié)果對象負責(zé)保存學(xué)生選課結(jié)果,并提供查詢服務(wù)。學(xué)生選課系統(tǒng)中各個對象之間的關(guān)系如圖2所示。

3.指導(dǎo)學(xué)生認(rèn)清學(xué)習(xí)目標(biāo)的主次和形成良好的學(xué)習(xí)習(xí)慣。在學(xué)習(xí)時間有限的情況下,必須教會學(xué)生分清學(xué)習(xí)目標(biāo)的主次。在C++的學(xué)習(xí)中,首先重點學(xué)習(xí)面向?qū)ο蟮乃枷?,將算法的學(xué)習(xí)放到次要位置。對于編程人員來將,算法的學(xué)習(xí)十分必要,但這是一個長期的過程,必須循序漸進。對于初學(xué)面向?qū)ο缶幊痰娜藛T,首先必須理解面向?qū)ο蟮乃枷?,并盡可能建立面向?qū)ο蟮乃季S方式,即在解決問題時,將問題抽象為對象來解決。還存在一個常見的現(xiàn)象,就是部分初學(xué)編程的學(xué)生在實驗課上效率很低,難以進入編程的狀態(tài),時間一長就會去做一些無關(guān)的事情。因為計算機既是一個學(xué)習(xí)的工具,也是一個娛樂的工具,學(xué)生有時可能難以控制自己。因此,強調(diào)學(xué)生形成良好的學(xué)習(xí)習(xí)慣并給自己制定規(guī)矩,就顯得非常重要,比如:課前要預(yù)習(xí),編程的時候嚴(yán)格要求自己只能編程,其他無關(guān)的事情完全不能做。只要學(xué)習(xí)方法正確并且有良好的學(xué)習(xí)習(xí)慣,大部分學(xué)生應(yīng)該都能夠把C++學(xué)好。

學(xué)生編程水平的提高是教學(xué)過程中一個困難的問題,如何促進學(xué)生對編程產(chǎn)生興趣,讓學(xué)生覺得編程不僅是一件重要的事情,而且是一件有趣的事情,這還需要廣大教師不斷探索教學(xué)方法,在教學(xué)的過程中摸索出一套適合自身情況的方法,這樣才能讓教學(xué)產(chǎn)生良好的效果。

參考文獻:

[1]John D.Enderle.生物醫(yī)學(xué)工程學(xué)概論[M].原書第2版.封洲燕,譯.北京:機械工業(yè)出版社,2010.

[2]鄭莉.C++語言程序設(shè)計[M].第4版.北京:清華大學(xué)出版社,2010.

[3]孫晶.面向?qū)ο笏枷隱DB/OL].百度百科,2013.

作者簡介:諶先敢(1980-),男,湖北武漢人,博士,講師,主要研究領(lǐng)域為計算機視覺、模式識別。endprint

猜你喜歡
生物醫(yī)學(xué)工程教學(xué)改革教學(xué)
“自我診斷表”在高中數(shù)學(xué)教學(xué)中的應(yīng)用
對外漢語教學(xué)中“想”和“要”的比較
PBL教學(xué)法在醫(yī)用傳感技術(shù)教學(xué)中的實踐與體會
生物醫(yī)學(xué)工程專業(yè)創(chuàng)新人才培養(yǎng)策略
生物醫(yī)學(xué)工程專業(yè)本科培養(yǎng)模式探索研究
跨越式跳高的教學(xué)絕招