


摘要:為了讓學生更好地掌握“C語言程序設計”這門課程,多鍛煉實際操作能力,適應未來工作需求。筆者結合實際教學編寫了理實一體化《C語言程序設計》教材,在內容、結構等方面進行了創新。
關鍵詞:C語言程序設計;教材;理實一體;創新;心得
d0i:10.1608 3/j.cnki.16 71-15 80.2019.09.027
中圖分類號:G852.9
文獻標識碼:A
文章編號:1671-1580(2019)09-0110-04
“C語言程序設計”是筆者所教授物聯網技術專業學生必修的專業基礎課程,后續還有“JAVA程序設計”、“.NET程序設計”、“單片機技術”等多門相關課程,因此C語言學得好壞直接關系到后續課程的學習,甚至關乎學生整個三年課程學習情況。可見,“C語言程序設計”這門課程在整個專業中處于舉足輕重的地位,因此學好“C語言程序設計”是勢在必行的。
古語云:工欲善其事,必先利其器。要想學好“C語言程序設計”這門課,先要有一本好的教材。古語又云:勤學者不如好學者,好學者不如樂學者。為了能讓學生喜歡上“C語言程序設計”,學好它,為后續課程打下良好基礎,并培養學生從被動到自主的學習習慣,今后工作中能學有所用,筆者申報了吉林省職業教育與成人教育教學改革研究課題——“《C語言程序設計》理實一體教材建設研究與實踐”(項目批準號:2017ZCY157)項目研究,在教材開發過程中做了幾點創新探究性嘗試,獲得了一些心得體會與大家分享。
一、結合未來實際工作需求和學生實際情況增減知識點
1.以就業為導向、提升學生學習興趣為目標,重新制定教材內容
筆者教授“C語言程序設計”的物聯網技術專業是與企業合辦,企方教師根據學生未來就業需求,重新制訂了教學內容。在常規《C語言程序設計》教材包含的知識點基礎上,去掉不常用的“文件”部分,添加了“數據結構”課程的線性表、棧、隊列和二叉樹4部分內容。
另外,為了引起學生學習興趣,增加視覺效果,避免學習疲勞,教材運用了五個圖形模式下的游戲程序,因此又添加了圖形操作的一些基本知識點。如:繪制圓、矩形,顯示圖片,鼠標操作等。常規教材和理實一體教改成果教材包含知識點具體對比如圖1所示。
2.以用才講、夠用即止為原則,選取常用知識點
教材理論知識點以案例為依托,只選擇案例中涉及到的常用內容,不用不講,避免枯燥、無用內容的堆砌,從而失去教材的可讀性和內容的流暢性,而且也過度地消耗了學生閱讀和學習的熱情。
比如程序中常用的基本數值類型只有短整型int、長整型long、浮點型float和double,對應的格式符分別為%d,%Id,%f,%If4種。但是有的教材不分伯仲,不常用的%u和%g等都羅列出來。再如位操作,初學者也不常用、甚至用不上。還有“文件”一個章節的內容在實際軟件開發中也很少用到。
其實上述內容對于初學者來說,不講也不影響后續課程學習,即使偶爾某個程序涉及到,只要簡單舉幾個例子講解一下即可。沒有必要用乏味的文字占用大量篇幅描述,讓人一看就望而生畏,類似這種雞肋似的知識點本教材果斷舍棄。
從學生實際學習情況出發,有目的性、選擇性地增刪講述內容,這樣確定了《C語言程序設計》理實一體教材從知識體系結構上分為六大部分,即基礎語法(順序、選擇、循環語句)、數組、函數、指針、數據結構、圖形操作。教材以循序漸進,由淺入深的方法講解了編制C語言應用程序的語法規則和常用操作算法。
二、理實結合、突出以“練”為主,重新布局教材結構
1.以理實一體課堂教學為藍本,模塊化布局教材
本教材中的案例、例題、習題和實踐內容不像傳統教材——各白獨立、分割開來。而是把理實一體化課堂的實際授課模式和流程搬到教材上,教材就是課堂授課內容的直接呈現,把理論分解融合到例題和實踐中,避免枯燥的純理論學習,學生不會產生厭學情緒。
教材編寫內容設置了6大模塊,每個模塊關聯1個或多個知識點,如表1所示。以一個完整案例為1個模塊,講述某一知識點時,理論和實踐交替布局,習題融入理論的講解中,實現講到即練,及時鞏固所學的每部分知識點。案例中理論知識的講解過程中若出現重點、難點時,理論簡述后緊接舉例說明、習題強化訓練,再給出思維拓展和注意事項,使一個系統化的知識點呈現在學生腦海中,切合了提出問題、理解問題、分解問題、解決問題、掌握問題,再靈活應用到下一個類似問題的思維模式。這種教材流程和授課流程一致,也便于學生課前預習和課后復習,起到事半功倍的作用。
2.為加強學生實踐操作能力,增量實踐環節
強調學生實際操作,提高動手能力是高職院校教學宗旨。教材以此為編寫準繩,突出“理實一體”這一特點,如表2所示重新布局每個模塊包含的內容,多多增加實踐環節。
為引起學生學習興趣,上課能聽進去,對所學理論有初步了解的愿望,進而實際著手在編輯器中白主編寫、調試應用程序代碼。本教材設置每個模塊的講解都以一個游戲案例開啟,再進一步結合案例和先導例題講解案例中所包含的理論知識,然后馬上讓學生模仿例題,根據教師在教材中列出的算法步驟著手初步實踐,再舉例、再模仿。這樣一步步、一點點消化、滲透,邊講邊練,練中有講,講中有練,做到及時鞏固所學每部分知識點,隨時鍛煉實際操作技能。
3.理論以代碼注釋形式出現,簡化語言描述
根據高職學生學習認知情況,提升學生閱讀興趣,避免繁瑣理論知識的大量枯燥、陳述性語言的贅述,整本教材的理論描述都以案例或例題的代碼注釋形式出現,語言盡量簡潔,通俗易懂。立足多舉例少抽象語言描述的編寫原則,即使復雜抽象的概念也盡量簡單化、口語化,盡量用直觀、清晰表格或圖例代替文字,讓學生看圖解意。
比如參數傳遞、指針、單鏈表等復雜抽象語法規則的介紹,都結合實際例題,以圖形和表格形式出現,讓學生學習理論知識點時能把抽象的內容具體實例化,這樣對知識點的掌握感覺有抓手、是具象的,一想到某個圖片能聯想到某個概念或語法規則等相關聯的理論知識。如圖2所示列舉出指針為形參時參數傳遞的過程圖例說明。
再如,變量數據類型的關鍵字和格式符等相關知識,以對照形式集結在一個表格中,這樣學生對這部分內容一目了然,避免閱讀大段文字,以及前后關聯知識分開描述導致的知識點學習不連貫的弊端。另外,每個案例和習題右側均給出代碼說明,引出要講解的知識點,讓學生直觀理解、認識到某種語句應用場合和具體實際應用情況。以后復習或再次翻看教材時,只要查閱單條語句注釋就知道語句的語法及功能,而不是毫無目的地在厚厚書本大量文字中去搜尋。
若是一兩句不能解釋清楚、稍復雜的知識點,則放在例題后進行深層次的講解,進一步細化。但也以舉例為主,文字抽象描述為輔,讓學生易于消化理解,靈活掌握理論知識,進而使學生活學活用、觸類旁通運用這些知識點模仿例題代碼,達到能自主編寫類似功能程序代碼的實際操作水平。
4.知識點關聯緊密,提高“練”的效果
為加強學生“練”的實際操作能力,本教材在初步實踐內容中給出詳細算法流程(實現步驟),一步步引導學生,避免學生初學新知識,剛開始編程時無從下手,使學生在例題代碼和實踐步驟二者學習的基礎上,漸漸領悟、掌握C語言程序結構和編程技巧,直至能自主獨立完成“自主實踐”環節的練習題目。通過以上幾個環節鍛煉,提高學生理解問題、分析問題、解決問題的實戰能力。
三、主干案例以遞進方式累加新功能,形成完整C語言知識體系
1.疊加知識點,鞏固舊知識,學習新知識
選取的6個主干游戲案例、例題、實踐題目,從第一個模塊貫通至最后一個模塊,支撐承載整本書所有知識點的呈現,其形式是由包含一個小功能的程序,隨著教材內容的深入,不斷增加新功能、疊加新知識。這樣學習新知識時不會有跳躍、突然的感覺,讓學生在固有思維基礎上又有創新。一部分舊知識,一部分新知識,增加了知識體系的連貫性。
當整本書講完,知識點也講完,最后能呈現給學生6個完整功能的游戲應用程序,通過完整的游戲程序讓學生對C語言語法規則有完整、系統化的認識,學生頭腦中對程序開發流程也有一個整體認識,避免了知識點的零散和瑣碎。表3以第一模塊中“彈跳小球”程序為例:
這種知識點的疊加,重復復習鞏固舊知識,在學生頭腦中形成頭腦風暴,日積月累,自然而然就刻在腦中,也就潛移默化地記住掌握了這些知識點。具體流程如圖3所示。即首先提出問題,教師給出實現方法,結合代碼講解理論知識,在學生對剛學內容有印象的時候,馬上給出與例題類似的實訓題目,自主利用剛剛學到的語法,參考例題及教材中給出的實現算法步驟編寫可執行的完整代碼,完成初步實踐內容,在頭腦中消化、加深鞏固所學理論。
為強化記憶,在先導例題基礎上,再添加一兩個新知識點,再給出一個拓展例題和拓展實踐不斷強化、不斷遞進。這樣學生學習了新知識,還鞏固復習了舊知識,并在編程慣性模式思維中記住所學知識,進而能獨立自主創新完成后續自主實踐環節。
2.主干案例形式多樣,促進知識體系整體化
主干案例以多種形式出現,如“消磚塊”程序,分別以一個主函數,主函數調用子函數,普通變量做參數,指針變量做參數4種形式出現,讓學生通過一個程序遞進方式了解C語言語法規則,編程形式,掌握新知識點,不會導致陌生感,對學習新知識有抵觸情緒。
這樣對一個案例展開所有關聯理論知識點的全面講解——說明、分析、練習、應用,讓學生在自學時也有對比,有重點可循、可抓。
在一個案例上一點點功能的疊加,讓學生頭腦中有一個知識點的鞏固、掌握,還了解了應用程序開發過程的分析問題、解決問題的思路歷程,為今后自主創新創建、解決開發應用程序打下基礎,頭腦中形成算法實現流程的固有思維,以后再編程過程就知道按什么步驟、如何分析解決問題了。通過這種頭腦風暴的磨煉,讓學生掌握一種學習習慣和方法,鍛煉學生獨立思考問題的能力,運用掌握的學習方法學習更多的知識和技能。
四、增加趣味性,提高教材的可讀性,引起學生學習興趣
為盡量減少理論學習的枯燥乏味,以游戲開始每個模塊的學習,選取了“彈跳小球”、“消磚塊”、“飛機大戰”等有代表性有趣的動態游戲程序。即使在復雜的數據結構部分的學習,也選取了貼近生活的游戲程序,如鏈表部分,選取了“貪吃蛇”游戲,隊列選取了“掃雷”和“選猴王”。
這些游戲程序的選取,既要包含教材講解的知識點,還要簡單明了,符合高職學生的學情。因此,趣味性還代表著符合學生的具體學習情況,選擇通俗易懂有趣的程序代碼講解。杜絕有趣游戲程序因過于復雜,導致學生不去深究為什么、怎么實現的情況發生。
另外設計了與教材配套的知識點講解動畫,生動講解案例、例題等關鍵算法實現原理過程,通過動畫方式輔助學生提高學習興趣,在潤物細無聲中讓學生掌握枯燥理論知識。
一本好的教材不但要能答疑解惑,還要能讓你拿起來舍不得放下,一氣呵成讀完。《C語言程序設計》理實一體教材就是以高職教育職業化為宗旨,以提高學生實際動手操作能力、解決問題能力和未來就業競爭力為出發點,理論與實踐相結合,科學合理、深入淺出地設置教材內容。理論知識描述簡潔明了,通俗易懂。案例和實踐題目盡量做到貼近生活且有趣,激發學習興趣,使學生在輕松愉悅氛圍下學有所得、活學活用。
[參考文獻]
[1]蔣高飛.理實一體
[2]張立新理實一體化教學資源的研究與實踐[J].當代教研論叢,2018( 12).
[3]蔣高飛.《C語言程序設計》理實一體教材編寫心得[J].才智,2018(05)