高園園,曹 蕾,王丹丹,陽 維
南方醫(yī)科大學(xué)生物醫(yī)學(xué)工程學(xué)院,廣東 廣州 510515
新一輪科技革命和產(chǎn)業(yè)變革迅猛發(fā)展,在此形勢下,2019年4月29日,教育部啟動“六卓越、一拔尖”計(jì)劃2.0,全面推進(jìn)“四新”建設(shè),為當(dāng)前的高等教育指明了方向[1]。四新之一的新醫(yī)科,是指在全球工業(yè)革命4.0背景下,打造中國特色的“新醫(yī)科”教育新體系,實(shí)現(xiàn)醫(yī)學(xué)從“生物醫(yī)學(xué)科學(xué)為主要支撐的醫(yī)學(xué)教育模式”向以“醫(yī)文、醫(yī)工、醫(yī)理、醫(yī)X交叉學(xué)科支撐的醫(yī)學(xué)教育新模式”轉(zhuǎn)變,更符合健康中國戰(zhàn)略建設(shè)需求[2]。
如何在新醫(yī)科教育改革背景下,以高質(zhì)量教育培育高水平、高素質(zhì)、高融合醫(yī)科人才,值得醫(yī)學(xué)院校計(jì)算機(jī)類課程教師思考。
Python是一門面向?qū)ο蟮慕忉屝透呒壋绦蛟O(shè)計(jì)語言。在眾多計(jì)算機(jī)語言中,Python 因?yàn)槠浜唵我子谩⒄Z法簡潔、功能強(qiáng)大而廣受歡迎。Python免費(fèi)開源,同時擁有強(qiáng)大的第三方庫,將圖像處理、數(shù)學(xué)分析、數(shù)據(jù)計(jì)算、深度學(xué)習(xí)等功能集于一身,是人工智能時代的主力語言,是培養(yǎng)醫(yī)學(xué)生計(jì)算思維能力的首選語言[3]。
新醫(yī)科背景下,Python課程對醫(yī)學(xué)生的教育具有更加深遠(yuǎn)的影響和意義。作為一門程序設(shè)計(jì)語言,Python可以幫助學(xué)生更好地理解和應(yīng)用現(xiàn)代醫(yī)學(xué)中的數(shù)據(jù),提高科學(xué)研究質(zhì)量,同時也為學(xué)生的職業(yè)發(fā)展提供了更廣泛的機(jī)會[4]。
新醫(yī)科教育強(qiáng)調(diào)跨學(xué)科合作和創(chuàng)新,要求醫(yī)學(xué)生具備更廣泛的技能,包括計(jì)算機(jī)編程能力。Python課程提供了醫(yī)學(xué)教育中解決復(fù)雜問題的工具,教會醫(yī)學(xué)生使用程序設(shè)計(jì)思想解決醫(yī)學(xué)實(shí)際問題,并將程序設(shè)計(jì)方法和工具融入具體醫(yī)學(xué)應(yīng)用中,是當(dāng)今新醫(yī)科背景下的有力抓手,對醫(yī)學(xué)生的培養(yǎng)具有重要意義。
盡管Python 編程對醫(yī)學(xué)生具有重要意義,但同時也面臨諸多挑戰(zhàn)[5-6]。在每次開課前,課程組都會設(shè)計(jì)問卷對上課學(xué)生進(jìn)行摸底調(diào)查。問卷中我們會設(shè)計(jì)諸如:“請問你聽說過Python程序設(shè)計(jì)語言嗎?”“請列舉一下你知道或者學(xué)過的計(jì)算機(jī)程序設(shè)計(jì)語言?!薄澳銓W(xué)習(xí)Python語言的興趣度有多少?”“你對本門課程的期待”等問題。了解開課學(xué)生的學(xué)情,掌握他們的前置課程學(xué)習(xí)情況及計(jì)算機(jī)編程知識儲備等。
從這幾年的學(xué)生問卷結(jié)果統(tǒng)計(jì)來看,學(xué)生們通常是聽說過Python語言,雖然沒有其他的計(jì)算機(jī)程序設(shè)計(jì)基礎(chǔ),但對學(xué)好Python課程還是充滿期待的。在醫(yī)學(xué)生中開設(shè)Python 課程主要存在如下兩個挑戰(zhàn):一是,醫(yī)學(xué)生通常沒有計(jì)算機(jī)編程的背景知識,因此Python課程的設(shè)計(jì)需要深入淺出,課程要從基礎(chǔ)的編程概念開始,避免干澀的知識點(diǎn)講解,通過結(jié)合具體的醫(yī)學(xué)案例鼓勵和激發(fā)醫(yī)學(xué)生學(xué)習(xí)編程的興趣。二是,醫(yī)學(xué)生學(xué)習(xí)時間長,課程較多,如何將本門課程融入他們的課程體系。課題組考慮將Python編程知識點(diǎn)與醫(yī)學(xué)應(yīng)用相結(jié)合,介紹Python編程語言及其在醫(yī)學(xué)領(lǐng)域的應(yīng)用。幫助學(xué)生掌握Python編程技能,以便他們可以借助Python這個編程工具處理醫(yī)學(xué)生本學(xué)科的醫(yī)學(xué)數(shù)據(jù)、醫(yī)學(xué)問題過程中。在設(shè)計(jì)課程時要避免單純Python課程知識點(diǎn)的講解,要將Python的代碼實(shí)現(xiàn)與醫(yī)學(xué)知識相融合,啟發(fā)學(xué)生通過實(shí)際醫(yī)學(xué)項(xiàng)目應(yīng)用他們所學(xué)的知識,培養(yǎng)學(xué)生的問題解決和數(shù)據(jù)分析能力。為他們在醫(yī)學(xué)研究、生物信息學(xué)、醫(yī)學(xué)工程等領(lǐng)域的職業(yè)發(fā)展提供基礎(chǔ)。
“新醫(yī)科”背景下,醫(yī)學(xué)生開設(shè)Python 課程主要目標(biāo)是培養(yǎng)學(xué)生的編程技能和跨學(xué)科合作能力[7-9]。從醫(yī)學(xué)生自身編程基礎(chǔ)來看,這是一項(xiàng)具有挑戰(zhàn)性的工作,但同時意義重大。確保醫(yī)學(xué)生能夠通過Python編程掌握與醫(yī)學(xué)實(shí)踐、研究相關(guān)的技能,以達(dá)到新醫(yī)科背景下的人才培養(yǎng)需求[10-12]。課程組分析了醫(yī)學(xué)生對本門課程的需求后,明確了Python課程的目標(biāo),從以下幾個方面對Python課程重新進(jìn)行了設(shè)計(jì)。
對醫(yī)學(xué)生的Python教材我們選用由Allegra Via等編寫,盧宏超等翻譯的《Python生物信息學(xué)數(shù)據(jù)管理》[8]。該教材從生物數(shù)據(jù)管理分析實(shí)踐出發(fā),由淺入深地介紹編程的基礎(chǔ)知識,非常適合初學(xué)者,書中圍繞生物信息處理案例,旨在用編程的方式來解決生物信息問題。學(xué)生通過這本教材,不僅能夠?qū)W習(xí)到如何編程,還能夠?qū)W習(xí)如何管理生物信息數(shù)據(jù),包括從文件中讀取數(shù)據(jù),分析和處理它們,最后把處理結(jié)果寫到文件中或者輸出在計(jì)算機(jī)屏幕上。通過一個個例子反復(fù)實(shí)踐,不斷強(qiáng)化學(xué)生的IPO,即輸入、處理、輸出的編程思想,并將這種思想用來解決具體的實(shí)際問題。書中涉及的具體案例,更接近于醫(yī)學(xué)生知識領(lǐng)域,既讓醫(yī)學(xué)生更容易理解題意,又使其更直觀地理解Python在本專業(yè)應(yīng)用的可行性、便利性,極大地提高了學(xué)生的學(xué)習(xí)興趣。
課題組采用問題驅(qū)動的學(xué)習(xí)和項(xiàng)目導(dǎo)向的教學(xué)方法,重新設(shè)計(jì)Python課程方案。醫(yī)學(xué)研究和臨床實(shí)踐中涉及大量數(shù)據(jù),包括患者記錄、醫(yī)學(xué)影像、基因數(shù)據(jù)等[9]。Python編程提供了強(qiáng)大的工具和庫,可以用于數(shù)據(jù)的收集、清洗、分析和可視化。通過教授醫(yī)學(xué)生Python編程,使得他們能更好地處理和理解醫(yī)療數(shù)據(jù),從中提取有價值的信息。
例如在“胰島素蛋白質(zhì)序列”數(shù)據(jù)處理案例中,我們采用循序漸進(jìn),由淺入深的方式進(jìn)行設(shè)計(jì)。如在第1節(jié)課里,我們只需要統(tǒng)計(jì)胰島素蛋白質(zhì)序列中含有的單個氨基酸的數(shù)量,通過本案例,學(xué)生可以掌握字符串變量及其count方法;在第2節(jié)課中,我們需要統(tǒng)計(jì)胰島素蛋白質(zhì)序列中多個氨基酸的數(shù)量,要求學(xué)生掌握for循環(huán)語句結(jié)構(gòu)及語法規(guī)則使用等;在第3節(jié)課中,通過FASTA 文件或JASON 文件讀取相應(yīng)的胰島素蛋白質(zhì)序列并進(jìn)行統(tǒng)計(jì),顯示輸出統(tǒng)計(jì)結(jié)果,此案例將會涉及文本文件的讀寫,雷達(dá)圖的繪制及前兩個案例知識點(diǎn)的應(yīng)用等。案例安排循序漸進(jìn),激發(fā)了學(xué)生的學(xué)習(xí)興趣,有利于學(xué)生掌握知識。
又如在“整合質(zhì)譜數(shù)據(jù),轉(zhuǎn)化到代謝通路”案例中,該案例主要解決的醫(yī)學(xué)問題是給定某特定代謝或調(diào)節(jié)通路中的蛋白質(zhì),判斷其在特定癌癥細(xì)胞中是否表達(dá)。通過本案例,希望學(xué)生能夠理解列表收集數(shù)據(jù)的方法,同時掌握從文本文件中提取信息的方法。本案例涉及的Python基礎(chǔ)知識主要包括列表數(shù)據(jù)結(jié)構(gòu)及其創(chuàng)建方法,選擇結(jié)構(gòu)(if/elif/else語句)的使用。
在課程結(jié)束的小組匯報項(xiàng)目里的“醫(yī)學(xué)影像組學(xué)特征提取”,要求學(xué)生利用Python的第三方庫,對給出的MR 影像進(jìn)行組學(xué)特征提取。該項(xiàng)目主要涵蓋如何使用Python庫(例如Pyradiomics,NumPy,Pandas等)進(jìn)行數(shù)據(jù)處理和分析。學(xué)生需要學(xué)會導(dǎo)入、預(yù)處理和分析醫(yī)學(xué)影像數(shù)據(jù),以便對臨床關(guān)注的組學(xué)指標(biāo)進(jìn)行計(jì)算和分析。同時醫(yī)學(xué)生還需要學(xué)習(xí)如何使用Python 的數(shù)據(jù)可視化庫(例如Matplotlib,Seaborn),通過圖表和圖形的形式直觀地呈現(xiàn)影像組學(xué)特征數(shù)據(jù)和研究結(jié)果。
又如在小組項(xiàng)目里面的“基于深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行臨床決策”項(xiàng)目,學(xué)生利用當(dāng)前的深度學(xué)習(xí)框架,利用臨床診治前后的影像數(shù)據(jù)和結(jié)果訓(xùn)練網(wǎng)絡(luò),幫助醫(yī)生做出更準(zhǔn)確的診斷和治療建議,為臨床決策提供支持。在新醫(yī)科背景下,機(jī)器學(xué)習(xí)和深度學(xué)習(xí)在醫(yī)學(xué)研究和臨床實(shí)踐中發(fā)揮越來越重要的作用。學(xué)生通過小組項(xiàng)目的形式掌握必要的深度學(xué)習(xí)框架(Pytorch,TensorFlow等)和深度學(xué)習(xí)網(wǎng)絡(luò)(Unet,CNN,Transformer等),有利于他們更深入地理解Python的臨床應(yīng)用,也為他們將來更好地參與科研工作打下堅(jiān)實(shí)的基礎(chǔ)[13-15]。
醫(yī)學(xué)生學(xué)好Python課程需要結(jié)合實(shí)際需求和不斷地練習(xí)。我們?yōu)閷W(xué)生提供充分的實(shí)踐動手機(jī)會,包括編程練習(xí)、項(xiàng)目作業(yè)和編程挑戰(zhàn)賽。這有助于醫(yī)學(xué)生建立自信心,掌握Python編程技能,并將其應(yīng)用于醫(yī)學(xué)領(lǐng)域的實(shí)際問題。將Python與醫(yī)學(xué)領(lǐng)域的實(shí)際問題聯(lián)系起來,可以更好地理解和應(yīng)用所學(xué)知識。
無論是課上還是課后,教師都要給學(xué)生提供大量自己動手編寫代碼的機(jī)會。每次課程結(jié)束后,給學(xué)生具體的編程任務(wù),鼓勵他們編寫Python代碼來解決問題。這可以包括小型編程項(xiàng)目、練習(xí)題和編程挑戰(zhàn)。例如編寫一個醫(yī)學(xué)數(shù)據(jù)分析程序或解決醫(yī)學(xué)領(lǐng)域的問題的小型編程項(xiàng)目,激勵學(xué)生參與并激發(fā)學(xué)生的學(xué)習(xí)興趣和創(chuàng)造力。學(xué)生可以通過參與項(xiàng)目和解決醫(yī)學(xué)挑戰(zhàn)來鞏固他們的Python編程技能。
鼓勵學(xué)生參與Kaggle等競賽中的醫(yī)學(xué)數(shù)據(jù)分析項(xiàng)目,這種挑戰(zhàn)類項(xiàng)目能夠激發(fā)學(xué)習(xí)動力,使學(xué)生收獲能力和經(jīng)驗(yàn)。同時為學(xué)生建立學(xué)習(xí)支持體系,除了授課教師進(jìn)行答疑以外,我們還招募了助教、組建學(xué)習(xí)小組在線為學(xué)生答疑,課程組錄制電子資源放在學(xué)校愛課教學(xué)平臺供學(xué)生學(xué)習(xí)。
由課題組陽維老師指導(dǎo)的學(xué)生包攬了MICCAI 2023競賽Synthrad2023雙賽道冠軍;由曹蕾老師、高園園老師指導(dǎo)的學(xué)生均獲得了2023屆生物醫(yī)學(xué)工程大賽國賽、省賽二、三等獎的好成績。
設(shè)計(jì)Python課程的互動式教學(xué)方法可以幫助學(xué)生更好地理解和應(yīng)用編程知識。在教學(xué)實(shí)踐中,課題組設(shè)計(jì)了如下兩種互動式教學(xué)方案,以提高醫(yī)學(xué)生的學(xué)習(xí)積極性。
第一種是小組項(xiàng)目,鼓勵學(xué)生合作,讓他們在小組中一起完成Python項(xiàng)目。這樣既增加了團(tuán)隊(duì)成員互動,同時培養(yǎng)他們的合作能力。在小組項(xiàng)目演示環(huán)節(jié),教師可以邀請學(xué)生在課堂上展示他們的編程作品,同時讓他們分享經(jīng)驗(yàn)。教師聽完項(xiàng)目匯報后,提供具體的反饋和建議,幫助他們改進(jìn)。
比如在疫情期間,學(xué)生們用Python 設(shè)計(jì)模擬了COVID-19病毒在人群中傳播的計(jì)算機(jī)仿真模型,并使用matplotlib 繪圖。人群分布使用簡單的正態(tài)分布,人員活動也使用簡單的正態(tài)分布。當(dāng)認(rèn)為傳染者和正常人的距離小到一定范圍后,正常人就被感染,感染后有病毒潛伏期和發(fā)病期。在經(jīng)過潛伏期和發(fā)病期后,病人才被隔離,隔離之后則不會再被感染,也不會傳播病毒。圖1展示了COVID-19在人群中傳播的一個畫面,其中綠點(diǎn)為正常人,藍(lán)點(diǎn)為病毒攜帶者,紅點(diǎn)為傳染者。
圖1 病毒在人群的傳播畫面
第二種是在學(xué)校愛課平臺開辟在線討論板塊,鼓勵學(xué)生提出問題、分享知識和互相幫助。教授學(xué)生使用在線編程工具,如Jupyter Notebook,使他們可以即時編寫和運(yùn)行代碼,同時又可以分享代碼和筆記。這樣既可以增加同學(xué)和教師間的互動,又可以用于課堂演示和實(shí)驗(yàn)。
我們組織學(xué)生進(jìn)行了互動式詞云生成的項(xiàng)目學(xué)習(xí),學(xué)生可以通過匯總自己感興趣的醫(yī)學(xué)文獻(xiàn),輸入詞云生成器,可以產(chǎn)生相應(yīng)文獻(xiàn)的詞云,如圖2展示了CT血管造影方面文獻(xiàn)的詞云。
圖2 CT 血管造影文獻(xiàn)詞云圖
這些互動式教學(xué)方法可以幫助學(xué)生更深入地理解Python編程,特別是在醫(yī)學(xué)背景下的應(yīng)用,提高他們的編程技能和興趣。此外,教師可以根據(jù)學(xué)生的反饋和需求進(jìn)行調(diào)整和完善,獲得更加有效的教學(xué)方案。
自2018 學(xué)年春季學(xué)期伊始,分期分批在基礎(chǔ)醫(yī)學(xué)、醫(yī)學(xué)實(shí)驗(yàn)技術(shù)、中藥制藥、醫(yī)學(xué)影像等醫(yī)學(xué)生專業(yè)開設(shè)了計(jì)算機(jī)Python課程,我們通過設(shè)計(jì)調(diào)查問卷和形成性評價的形式對課程實(shí)施效果進(jìn)行評價。分別在開課前和開課后期設(shè)計(jì)了有關(guān)Python學(xué)習(xí)情況的調(diào)查問卷,并且通過數(shù)據(jù)結(jié)果對教學(xué)質(zhì)量進(jìn)行分析,適時調(diào)整教學(xué)方法和策略,改善和提高課程教學(xué)質(zhì)量。
開課時由于學(xué)生為大二學(xué)生,計(jì)算機(jī)類課程只學(xué)習(xí)過計(jì)算機(jī)基礎(chǔ),學(xué)生前置課程基礎(chǔ)較差,從課前問卷也可以看到,雖然有些學(xué)生掌握了部分計(jì)算機(jī)編程語言,但是對Python語言大部分都沒有接觸,熟練掌握Python語言的只占總學(xué)生人數(shù)的2%,只有5%對編程感興趣,有15%的學(xué)生認(rèn)為自己在一定幫助下可以完成程序設(shè)計(jì),只有1%的學(xué)生認(rèn)為可以將Python語言應(yīng)用到自己的專業(yè)中(如圖3所示)。在經(jīng)歷整個學(xué)期Python 課程學(xué)習(xí)之后,從學(xué)生的開課后調(diào)查問卷,我們可以看到有77%的學(xué)生認(rèn)為自己已經(jīng)可以熟練掌握了Python語法,并且有71%的學(xué)生認(rèn)為可以將Python應(yīng)用到自己的專業(yè)工作當(dāng)中。更值得注意的是,有90%的學(xué)生認(rèn)為已經(jīng)對Python產(chǎn)生了興趣,說明大部分學(xué)生在課程內(nèi)已經(jīng)掌握了基礎(chǔ)語法和編程的簡單框架,并對Python編程產(chǎn)生了濃厚的興趣,覺得可以將它應(yīng)用到醫(yī)學(xué)領(lǐng)域。
圖3 開課前后問卷結(jié)果對比圖
在教學(xué)過程中,我們采用形成性評價,定期評估學(xué)習(xí)效果,確保學(xué)生學(xué)習(xí)的有效性。
課程組提供多樣性的任務(wù)和小組項(xiàng)目,隨著課程的推進(jìn),逐漸增加任務(wù)難度,以確保學(xué)生循序漸進(jìn)發(fā)展他們的編程技能。定期進(jìn)行小測驗(yàn)(通常兩次課為一個節(jié)點(diǎn),共設(shè)置4次階段性小測試),以確保學(xué)生理解課程內(nèi)容,這些小測驗(yàn)可以作為形成性評價的一部分,同時也有助于學(xué)生鞏固知識。總的來說形成性考核形式主要包括:任務(wù)考核、小組項(xiàng)目考核和階段性測試。這部分考核成績作為平時成績和期末考試成績各占50%作為學(xué)生最后的成績。平時成績里面,任務(wù)考核占比為40%,小組項(xiàng)目和階段性測試各占30%。小組項(xiàng)目作業(yè),采取學(xué)生自愿組隊(duì)、團(tuán)結(jié)合作的完成方式。任課教師一般會提供幾個固定題目,同時也鼓勵學(xué)生帶數(shù)據(jù)自主命題,題目形式相對開放,以鼓勵學(xué)生充分發(fā)揮出自己的專業(yè)背景和編程技能。項(xiàng)目完成以后會開放給其他小組,進(jìn)行項(xiàng)目互評。小組項(xiàng)目作業(yè)的最終分?jǐn)?shù)由項(xiàng)目互評分?jǐn)?shù)和教師評分,各占50%得到。同時我們也會在愛課平臺定期收集整理學(xué)生的反饋,以了解他們對課程的看法,以便對本門課程進(jìn)行適時的調(diào)整和改進(jìn)。
本文從新醫(yī)科背景下Python課程對醫(yī)學(xué)生的重要意義、教學(xué)面臨的挑戰(zhàn)、課程方案改革、教學(xué)設(shè)計(jì)等方面,展開討論新醫(yī)科背景下課程組對Python課程的教學(xué)思考。將醫(yī)學(xué)數(shù)據(jù)管理與Python課程深度融合,在生物信息學(xué)、醫(yī)學(xué)數(shù)據(jù)處理和分析、影像組學(xué)等多個方面找到結(jié)合點(diǎn)。以醫(yī)學(xué)數(shù)據(jù)處理案例為中心組織課堂,以互動式教學(xué)方法充分調(diào)動學(xué)生學(xué)習(xí)編程的積極性和主動性,讓學(xué)生緊跟人工智能、深度學(xué)習(xí)等新技術(shù),培養(yǎng)高水平、高素質(zhì)、高融合新醫(yī)科人才,服務(wù)“健康中國”大目標(biāo)。
醫(yī)學(xué)教育研究與實(shí)踐2024年2期