黃培泉
1.廣東青年職業學院計算機工程系,廣東省廣州市 510507
2.遼寧工程技術大學創新實踐學院,遼寧省阜新市 123000
C語言程序設計是國內高等院校計算機專業的一門必修課,同時也是大部分院校非計算機專業學生程序設計基礎課程。其教學目的是讓學生掌握高級語言的基礎知識、編程技術和基本算法[1],能靈活運用高級語言進行程序設計,具備利用計算機解決實際問題的能力,以培養學生嚴謹的科學態度、理論聯系實際的實踐動手能力和創新能力[2]。
然而,從歷年C語言教學情況來看,特別是對于非計算機專業學生而言,C語言所涉及的概念、語法規則、應用技巧等知識繁多且不容易掌握。在理論學時及實踐學時較少的情況下,既要掌握C語言的基本語法規則,又要掌握高難的算法知識及實踐編程技巧,實在是很艱難的工作。
多年調查分析發現,目前C語言教學方法主要分為兩種,一種方法是:先對新知識進行系統的講解并在計算機上進行驗證,然后舉例說明新知識的應用,通過典型例子讓學生達到掌握知識的目的。這種教學方法適合推理邏輯特別強的課程,比如高等數學、大學物理等。對于C語言程序設計而言,特別是對于語法規則方面的掌握,這種方法會讓學生感到內容枯燥、繁瑣,教師還沒有講到經典實例學生已經失去了耐心,當然對新知識的掌握及應用方面效果很差。如果每次課都如此,學生將失去學習的興趣,前面的知識沒有掌握,新知識又無法進行學習,導致惡性循環,后果不堪設想。另一種方法是案例教學方法,即先講授典型案例,讓學生先看到成果,然后再對案例中所涉及的知識進行解釋、歸納與總結。這種授課方法在一定程度上提供學生的學習興趣及積極性,但這種方法所采用的案例相對來說與實際生活太遙遠,并且案例之間沒有任何相關,缺乏知識連續性。
針對上面的問題,本文提出了新的教學模式,即“漸進體驗教學模式”。強調學生逐步的、由淺入深的知識體系體驗;強調對實際項目設計與開發的體驗過程;強調對C語言語法規則及程序設計思想之間相互關聯的體驗。
在不改變教學大綱的基礎上,將教學內容重新組織,內容的講授不再是教材內容的陳述,而是對生活中常見的事物進行剖析,比如:銀行“ATM自動取款機”、“個人通訊錄”、“學生成績管理系統”等。將一個實實在在的系統按功能進行劃分,由淺入深,一步一步地去完成系統的設計與開發。在整個系統開發過程中,每完成一個功能都將向學生講授相關知識點,而且某些重要的知識點將在多個模塊中重現,這也使得一些重要的知識點得到鞏固。學生在學完整個系統開發相關知識之后,也把教學大綱中要求的知識點學完,而且還將學習到軟件開發的基本過程及基本原理,提高了學生的認知能力、拓寬了學生的知識面、同時在掌握C語言基本語法規則的基礎上,學會了程序設計的思想,為學生以后的學習打下了堅實的基礎。
教學內容不再遵循傳統教材內容組織方式,而是根據實踐項目設計模塊重新組織,不同的模塊將使用多個知識點實現,這些知識點包括新知識點,也包括已學習的舊知識點。這樣既達到學習新知識點的目的,同時又復習了舊知識點,實現知識鞏固。部分教學內容組織如下:
(1)用戶界面設計實現
用控制臺應用程序實現用戶登錄界面,在此模塊中主要講解用Visual C++編程環境建立項目,編寫C語言程序等工作。使用基本輸入輸出語句實現簡單的用戶界面。本模塊將完成基本輸入輸出教學任務及系統函數調用知識。
(2)單用戶信息驗證
本模塊將實現單用戶信息存儲,包括用戶賬號、密碼的存儲,實現簡單用戶登錄驗證過程。本模塊完成基本數據類型及if簡單語句應用的講解。
(3)用戶簡單操作選擇功能實現
本模塊將實現用戶選擇功能,包括輸入學生課程成績、查詢課程成績、修改課程成績、刪除課程成績、退出系統等基本操作功能。本模塊完成if語句、if嵌套、switch語句、break語句、函數等方面的講解。
(4)添加成績、查詢成績、修改成績功能實現
本模塊實現添加、查詢及修改某位學生多門課程成績功能。主要涉及知識點包括算術元素、if條件判斷、文件讀寫等知識。
(5)用戶循環操作選擇功能實現
本模塊實現用戶一次登錄需要完成多項操作功能,主要涉及知識點包括循環程序設計知識。
(6)多名學生多門課程成績存儲功能實現
多名學生多門課程成績管理功能將涉及存儲信息比較多,為方便管理將同類型的使用數組存儲,更合理的管理方法是使用結構體存儲數據。本模塊將學習數組、結構體等知識。
(7)課程成績排名查詢
將某門課程成績從大到小,或者按學生的總成績或平均成績進行排序是一些頻率很高的操作。本模塊將實現數據排序等基本知識。
在教學中,要實現學生牢固掌握各種新知識,僅使用一種教學手段顯得捉襟見肘。圍繞本教學模式,為整個教學體系專門設計了各種輔助教學手段,包括:
(1)教學資源網站開發
教師在課堂上的授課知識必定是有限的,不僅在廣度上還是在深度拓展方面,都有所限制,學生在課堂上也不能100%的集中精力進行學習。那么課外知識獲取對學生而言至關重要,為方面學生學習,本教學體系專門設計了教學輔助網站,為學生提供教學課件、電子教材、經典案例、疑難問題解答等教學資源。
(2)漸進考核系統的研發
在整個教學及實踐環節當中,為了衡量學生對教學大綱及實驗大綱掌握程度,在實踐過程中利用“漸進體驗考核系統”對學生所掌握的知識進行測試,并達到鞏固知識的目的,同時也根據學生的測驗結果進行分析,及時對教學計劃進行微調,讓教師的授課知識更能適應學生當前的學習進度及學習狀態,解決一些不可預知的問題,同時也是理論教學的內容補充。
(3)引導學生參加計算機競賽
知識的掌握程度需要通過實際的驗證方能體現價值,能將學習到的知識迅速應用用到實際當中,這是“漸進體驗教學模式”的終極目標。在學生學完該課程之后,理論上可以使用C語言進行一些系統開發或其他一些實踐活動,其中,引導學生參加計算機競賽是一個很好的手段。課程結束之后,從教學改革班級中挑選多名C語言優秀的學生參與“全國電腦鼠走迷宮競賽”當中,分別獲得遼寧省賽區一等獎、二等獎、全國三等獎的佳績。通過競賽,學生既學到了課堂上學不到的知識,同時也使學生獲得一些個人榮譽,增強學生的動手能力、自信心及成就感。
選擇4個班級進行教學改革試驗,每兩個班為一組改革對象。理論授課學時為48學時,實驗學時為32學時,共80學時,與其他班級的學時一樣。教學大綱不變,在授課方式、內容組織上有較大的變化,內容的講解不再是教材內容的再現,而是通過實際項目的演示,讓學生對其中所涉及的知識進行理解及掌握。在課堂上,對于個別典型的問題進行分組討論,讓同學之間有交流的機會,在交流當中發現問題、了解他人的絕妙想法、解決實際問題;在實驗教學環節,學生首先需要對課堂上教師的授課內容進行掌握,然后再實現教師安排的實驗,實現對新知識的鞏固。考慮到期末考試的實際情況,每兩次實驗之后,學生將利用30分鐘的時間完成“漸進考核系統”的里面的題目,以此來檢查學生對教學大綱所要求的知識掌握程度。
本研究在C語言教學方法、實驗方法及教學內容組織上做出了重大的改革,整個改革注重學生的體驗、注重學生的動手能力及創新思維模式的培養。讓學生真正地、由淺入深地體驗實際項目開發過程,并讓學生自己動手實踐,將所學的知識快速的應用到實踐當中。
參與本次教學改革試驗的學生一共118名學生,全部為非計算機專業學生,在期末考核中,優良成績人數48人、中等成績人數30人、及格人數13人、不及格人數17人,統計圖表見圖1。
從學生成績統計分析來看,學生優良率較高,達到44%,不及格率15%,在全校學生不及格率達到30%的情況下,這種不及格率就顯得很低了。

圖1 學生期末成績統計圖
課程結束后,引導多名學生參加了“2010全國電腦鼠走迷宮競賽”,“2011年國信藍點杯程序設計大賽”并取得了優異的成績,“電腦鼠走迷宮競賽”獲得遼寧省賽區一等獎一項及二等獎一項,全國三等獎等一項;“國信藍點杯競賽”獲得遼寧省一等獎一項。結果表明:本課題研究涉及的各個環節都具有科學合理性、針對性強、具有可操作性,取得了比較明顯的效果。通過“漸進體驗教學模式”,提高了學生的學習興趣及積極性,提高了學生的動手能力、自信心及成就感,消除畏懼心理;提高了學生的團隊合作精神,磨煉了學生堅強的意志力及刻苦耐勞精神,培養培養了學生的創新思維能力,同時也拓展了學生的知識面,為以后的學習打下了堅實的鋪墊。
當然,作為第一次應用該體驗教學模式,也存在多方面的問題,比如:如何解決“惰性”學生的學習狀態、教學內容與教材之間的脫節問題、實踐學時過少問題等。我們研究小組在以后的研究中將針對性地去解決相關問題,不斷為C語言的教學摸索一種科學、合理、實際可行的教學模式。
[1]付宏東.形勢與政策課教學探索[J].繼續教育研究,2009(4):152-154
[2]薛琴.任務驅動法在C語言教學中的應用[J].科技資訊,2009(26):198-200