占艷 辛國江 穆珺
摘 要:通過對中醫藥院校C語言程序設計課程開設的現狀分析,針對學生程序編寫的困難、興趣不濃,學習積極性不高這一學情,根據自身教學經驗的歸納與總結,受“模式”這一概念的啟發,創新地提出了將“模式化”教學方法應用于C語言程序設計課程的教學實踐中,使抽象的程序設計變得有章可循。結果表明:將“模式化”方法運用于C語言程序設計課程教學中不僅激發了學生的學習興趣,使學生更輕松、快捷的掌握了程序設計的思想與方法,還提升了教學效果,是行之有效的教學創新實踐。
關鍵詞:模式化 C語言程序設計 中醫藥院校 教學方法
中圖分類號:G4 文獻標識碼:A 文章編號:1674-098X(2015)05(b)-0100-02
2009年醫藥類計算機基礎教學指導委員會頒布了“醫藥類院校的計算機基礎教學的課程設置和基本要求”的指導性綱要文件,提出2+X的課程設置體系,其中“2”代表大學計算機基礎(醫藥類) 和程序設計基礎兩門必修課[1]。目前,大多數高校程序設計基礎課開設為《C語言程序設計》。
C語言是一門功能強大、應用廣泛的高級程序設計語言。但由于C語言中涉及的概念比較抽象、語法規則繁多,因此不少初學者感到學習困難、興趣不濃,積極性不高。如何激發學生興趣,提高教學質量,使學生能輕松快速的入門,培養學生的邏輯思維以及抽象思維能力,是教學中需要思考、值得探討的問題。
1 我校開設《C語言程序設計》的目的與現狀
隨著計算機技術在中醫藥領域的廣泛、深入應用,例如醫院信息管理、遠程醫療、智能儀器設備、計算機醫療仿真等,都離不開程序設計技術的支持。可見,程序設計技術的基礎性和重要性。我校在非計算機專業學生本科階段開設《C語言程序設計》課程,旨在通過對課程的學習,使學生掌握程序設計的基本方法和技巧,培養學生的邏輯思維能力,訓練學生嚴謹的治學態度,為其更深入、靈活的利用計算機技術解決行業中的實際問題奠定基礎。
對于中醫藥院校的學生而言,本課程內容相對比較抽象、枯燥,理解、掌握起來比較困難,無法快速從“形象思維”到“邏輯思維”的轉變;加之中醫藥院校大部分專業屬于文、理生兼招的專業,考生生源的數學功底以及邏輯思維能力相對理工科院校而言較差,而C語程序設計是一門邏輯性很強的課程,這為教師的授課帶來很大的阻力;此外,部分醫藥類專業的學生采用“背書式”的方式來學習程序設計,將概念、例題等背誦記憶下來,而并非真正理解,從而導致“上課能聽懂,練習不會做”的現象比比皆是;還有部分學生片面的認為編程是程序員的事情,跟他們所學的專業以及將來的工作就業沒什么直接或必然聯系,因此重視程度不高,也缺乏興趣。
針對上述問題,筆者通過幾年的教學實踐、總結與反思,在教學方法上進行如下研究與實踐嘗試,以促進中醫藥院校信息化人才的培養與教學效果的改善。
2 “模式化”理論教學方法研究與實踐
《C語言程序設計》課程內容較多,主要包括:程序的簡單算法,語句基礎,選擇結構、循環結構程序設計,數組,函數,指針,構造數據類型,文件等。我校開設該課程的課時數為48學時,其中理論課時24學時,實驗課時24學時。由于課時極其有限,為了更有利于非計算機專業的本科生理解程序設計的思想,且能進行簡單的程序編寫,而不是一味地灌輸所有知識點不考慮學生是否能夠接受,故我校選取了最為基礎、易于掌握的部分內容進行課堂講授,包括:程序的簡單算法,語句基礎,選擇結構、循環結構程序設計,數組,函數。如何將各章節零散的知識點關聯在一起,來進行C語言程序設計,以實現某一功能需求,是本課程理論教學的核心,而教會學生分析和解決問題的思路和方法是關鍵。模式其實就是解決某一類問題的方法論,即把解決某類問題的方法總結歸納到理論高度。受到“模式”這一概念的啟發,筆者經過教學觀察和研究發現:將“模式化”方法運用于程序設計的教學中,能為學生提供更清晰、便捷的分析問題解決問題的思路與方法,而盡量減少學生對于程序編寫感覺無從下手的狀態出現。
2.1 宏觀上分析問題,設計程序
面對一個編程需求(即題目要求),首先要學會分析問題:即看懂題目意思。仔細研讀并分析編程需求中的每一句話,從宏觀上明確需要解決哪幾個問題,各個問題采用何種程序設計結構,解決各個問題的關鍵點或關鍵步驟是什么。宏觀分析階段,可以用自然語言、流程圖、N-S圖等方法將解決問題的關鍵步驟進行描述,即算法描述。宏觀分析“模式化”為表1宏觀分析“模式化”表。
說明:表1中的第三列關于“程序設計結構”的確定,需要根據待解決的問題選擇合適的C語言句型。若為有條件執行,則采用選擇結構,其中單分支結構選用if句型,雙分支選用if…else…句型,多分支選擇if…else if…else if…else…句型或switch句型;若為反復執行,則采用循環結構,其中明確循環次數多選擇for句型,明確條件限制多選擇while或do…while句型;若編程需求中涉及到多個待解決的問題或功能較復雜,在分析時可以功能模塊的細化,將其劃分為一個個獨立的子功能模塊,則采用函數解決。
2.2 微觀上解決問題,編寫程序
在對問題進行分析并作簡要描述后(即填寫好表1的內容),接著進行微觀上的程序編寫。筆者根據“一個簡單C語言程序的結構,分為預處理命令和主函數兩部分”這一特點,將微觀程序設計模板設計如表2微觀程序設計模板。
說明:表2中的預處理部分通常包含三類語句的書寫,若用到C語言系統所提供的庫函數通常要書寫包含頭文件語句(例如,要使用標準的輸入/輸出函數需包含頭文件#include
按照微觀程序設計模板設計好后,學生最終只需按照C語言語法格式的要求將模板中每一部分或步驟“翻譯”(即轉化)成C語言的語句,即可完成程序的編寫。在Visual C++6.0的開發環境下將編寫好的文件保存為后綴名為.C的源文件,經過編譯、鏈接、運行,驗證程序設計的結果。
2.3 C語言程序設計案例分析
編程需求:打印出所有的“水仙花數”,所謂“水仙花數”是指一個三位數,其各位數字立方和等于該數本身。例如:153是一個“水仙花數”,因為153=13+53+33。
建立水仙花數宏觀分析模塊化表。(見表3)
建立水仙花數微觀程序設計模板。(見表4)
將水仙花數微觀程序設計模板轉化為C語言的源程序,代碼如下所示:
#include
main()
{
int n,gw,sw,bw;
for(n=100;n<=999;n++)
{
gw=n%10; //分離出數n的個位
sw=n/10%10; //分離出數n的十位
bw=n/100; //分離出數n的百位
if(n==gw*gw*gw+sw*sw*sw+bw*bw*bw) //滿足水仙花數的條件判斷
printf("%-5d",n);
}
}
3 結語
筆者通過對學生的學習觀察以及自身的教學經驗總結,將“模式化”教學方法應用于C語言程序設計課程的教學實踐中,取得了良好的教學效果。使學生再不會感覺程序編寫無從下手或是深不可測,激發了學生的學習興趣;培養了學生獨立分析問題、解決問題的能力;使學生更輕松、快捷的掌握了程序設計的思想與方法。
參考文獻
[1] 教育部高等學校計算機基礎課程教學指導委員會.高等學校計算機基礎教學發展戰略研究報告暨計算機基礎課程教學基本要求[M].北京:高等教育出版社,2009:72.
[2] 羅鐵清,楊連初.C語言程序設計[M].上海:上海交通大學出版社,2009.
[3] 曲蘊慧.醫學院校《C語言程序設計》教學探討[J].科技信息,2013(19):214.
[4] 劉鵬.醫學院校《C語言程序設計》課程教學方法研究[J].才智,2012(5):118.