袁輝勇 曾翰穎 戴經國
摘 要:程序設計課程在計算機學科知識體系中具有核心的重要位置,針對計算機及其相關專業程序設計課程教學中存在的問題,通過改革課程體系和教學方法,加強教學資源建設、引導學生自主學習等方面的改革措施,提高了學生的程序設計能力。
關鍵詞:程序設計 創新能力 教學改革
中圖分類號:G642 文獻標識碼:A 文章編號:1672-3791(2016)07(b)-0099-02
計算機的本質是“程序的機器”,只有懂得程序設計,才能懂得計算機,才能真正了解計算機是怎樣工作的。程序設計課程在計算機學科知識體系中具有核心的重要位置,在程序設計過程中貫穿閱讀判斷、分析思考、工具利用、抽象表達等多項技能,對計算機專業人才的培養至關重要。
1 程序設計課程中存在的不足
目前高校計算機專業教育要求培養有一定的計算機基礎理論、較強的計算機應用能力的畢業生,計算機應用能力最終是通過程序設計能力體現出來的。當前,程序設計課程教學中存在的問題主要表現在:
(1)課程設置泛而不專。程序設計課程的教學內容有雷同,每門課程都學了一些基本的知識,教學的深度還不夠。學到的知識廣而不精,畢業生面對社會擇業時很難適應工作。
(2)教學方法陳舊落后。目前基本上采用課堂教學主要介紹語法知識、實踐教學讓學生調試程序。枯燥的語法知識介紹往往提不起學生的興趣,而簡單的驗證性上機實踐使學生的上機可以草草了事。
(3)理論教學偏離重點。目前一般是以語言為主線,把主要精力放在對語言的掌握和使用上,而對程序設計過程中涉及的基本方法和技術的教學就顯得比較薄弱。
(4)實踐能力培養不夠。目前仍然采用按教材內容的先后順序來設計實驗項目,很少將各個知識點融合起來設計綜合性的實驗、項目,尤其缺乏綜合性的應用實驗項目,缺乏實踐能力的培養,從而忽視了對課程整體性的把握和實踐能力的培養。
(5)實驗項目缺少創新。實驗項目多以驗證性實驗為主,缺少創新性實驗,這種簡單的驗證性實驗項目很難涉及算法設計、編程實現、調試修改、功能測試等多個環節,對學生程序的檢查缺少嚴格的數據測試,不利于對學生實踐能力和創新能力的培養。
2 研究現狀
為了提高程序設計課程的教學效果,國內已有許多學者對程序設計核心課程的教學進行了研究,提出了一些改革方案,這些研究對學習某一門程序設計語言和某個教學環節能起到很好的作用。然而這些研究大多是獨立地針對某一門程序設計語言課程或者某個教學環節,如針對課程體系[1],針對某一門課程,如C語言程序設計[2]等。程序設計能力的培養不是簡單地學習幾門語言和改革某個教學環節就能達到的,程序設計能力的提高需要經過一系列課程的訓練才能實現。因此,很有必要對程序設計能力的培養作更深入的研究與探索,以提高學生的實踐能力和創新能力。
3 程序設計核心課程改革措施
以培養學生的實踐能力和創新能力為導向,總結程序設計能力培養中取得的成功經驗和存在的問題,分析和研究C程序設計、C++面向對象程序設計、JAVA 程序設計、數據結構、算法分析與設計五門課程的知識體系,對程序設計課程教學進行改革,建立課程體系和實踐教學體系,加強教學資源建設,引導學生自主學習,開展綜合性、創新性實驗。
3.1 課程體系改革
從課程體系規劃的大處入手,通過分析和研究五門課程的知識體系,用工程應用理念全面改革了程序設計課程體系的設置;結合計算機產業應用型人才需求,建立了相應的課程體系和實踐教學體系,制訂出了有針對性的課程標準,全面改革了程序設計課程的教學內容。
3.2 課堂教學方法改革
(1)案例型教學。程序設計中有很多情景性的方法、技術和工程原則,例如各種不同的分析和設計技術,它們只有在具體的應用環境中才能得到深刻理解。通過采用案例型教學方法,緊密結合應用環境的理論教學使知識具體化,讓學生真正理解和掌握設計原理。
(2)面向問題教學。建立這種“有目標的選擇性”觀念就是“工程”觀培養和技術主題培養的最大不同之處。培養學生的這種觀念,通過采用面向問題的教學方法,在教學當中緊緊抓住“解決實際問題”這一目標,培養學生從解決問題的角度來看待程序設計開發,而不是單純的技術運用。
(3)研討式教學。簡單的課堂教學只能建立對這些知識淺嘗輒止的理解,無法幫助學生真正將其融入“能力”。通過采用研討式的教學方法,給學生提供了對相關知識進行深入分析的經典文獻,組織學生進行思考和討論。既能幫助學生深入理解重要的知識,又能激發學生的主動學習熱情。
(4)面向“實際”教學。五門課程的教學內容是程序設計的知識積累,既有程序設計的經典理論、方法和技術,又涉及程序設計的現狀和最新進展。采用面向“實際”的教學方法在保證教學內容完整性的同時,還能進一步促進學生職業素質的培養。
3.3 實踐教學方法改革
(1)面向問題的實踐教學方法。為了培養學生的工程化程序設計觀念,除了在課程講授上使用面向問題的教學之外,在實踐中也將采用面向問題的實踐教學方法。例如,在C程序設計課程中,將一個系統的開發分為規劃、需求分析、設計與實現、測試4個階段。分別對每個階段提出過程規范和驗收要求,培養學生在過程規范下為滿足驗收要求而運用工程方法與技術,完成“工程”活動,解決“工程”問題的能力,而不僅僅是讓學生開發一個程序。
(2)探究型學習。程序設計中經常會出現各種各樣的特定問題,而且它們大都是課堂教學內容難以覆蓋的。為了培養學生解決這些特定問題的能力,在實踐中采用了探究型學習方法。在解決問題的過程中,安排使用了一些在課堂教學內沒有涉及的方法與技術,并要求學生有效利用網絡資源,自主進行探究型學習。
(3)校企合作體驗式教學。通過校企合作方式,采用一系列的實踐設計,在一個受控的環境下模擬程序開發生命周期的各個部分,使學生在其中獲得了盡可能真實的體驗。強化團隊合作能力和交流溝通能力的培養,將團組實驗引入課程,重視文檔寫作、交流溝通,提高了團隊合作積極性和團隊協作能力。
3.4 加強教學資源建設,引導學生自主學習
開發了“韶關學院程序設計在線評測系統”。系統包含了核心課程群的相關課程資源,系統已經實現了教師發布作業、學生自我測試、師生之間自由討論、程序設計競賽等功能。學生利用網絡向系統提交程序代碼,評測系統可以自動按照教師的測試用例執行程序,從執行情況來評判程序的正確性。使學生感受到程序設計不僅要求“對不對”,還要求“好不好”,既可培養學生分析問題和解決問題的能力,同時能訓練學生科學、嚴謹的作風,提高學生自主學習的積極性。
4 結語
提高學生學習程序設計的興趣、實踐能力和創新能力日益成為深化程序設計課程改革的重要課題。針對程序設計課程群,提出了課程體系、教學方法、資源建設和引導學生自主學習等方面的改革措施,這些措施還需要在今后的教學過程中不斷完善,進一步培養學生的實踐能力和創新能力。
參考文獻
[1] 宋人杰,張洪業.程序設計類課程教學體系的改革與實踐[J].科技信息,2012(3):269.
[2] 張蕾.基于項目化教學的“C語言程序設計”課程改革[J].計算機教育,2013(2):17-20.