計算機程序設計課程教學的內容改革
時間:2022-02-25 09:48:53
導語:計算機程序設計課程教學的內容改革一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。
摘要:提出以程序設計課程為研究對象,以培養計算思維能力尤其是系統能力為主要目標,以教學內容改革為主要途徑,針對本科程序設計課程進行教學改革探索,并給出具體的實施方案和典型案例。
關鍵詞:程序設計;計算思維;系統能力;教學內容改革
0引言
信息技術的不斷發展對應用系統開發和維護人員的能力提出了越來越高的要求。2013年ACM/IEEE公布的教學調整方案中,系統知識和系統能力的培養成為重點[1-2]。系統能力可以作為計算思維能力的一部分,而計算思維能力不僅適合開發、維護等專業人員,還適合各類人群,具有更加廣泛的適用性[3]。作為本科階段的第一門軟件類課程,程序設計課程是一門非常適合培養系統能力和其他計算思維能力的課程,如果能夠在課程教學過程中滲透計算思維能力的培養,將為提升學習者的后續能力奠定更好的基礎。目前,該課程存在的主要問題是,很多學習者容易陷入對語法的強記硬背陷阱,無法真正提升其系統能力。為了解決這個問題,有必要改革課程的各個環節,其中教學內容的重新組合劃分、優化選擇、重難點界定等方面是基礎性的環節。本文將以教學內容的改革為側重點,探討以能力培養為導向的程序設計課程教學改
1以能力培養為導向的程序設計課程教學內容改革的指導思想
隨著應用系統的巨大化、復雜化,系統能力的重要性越來越凸顯。而其中頂層設計能力至關重要,自頂向下的細化方法舉足輕重,而具體實現可以放在次要位置。為了讓學員在學習過程中提升系統能力,需要將授課內容從具體語法中解脫出來,以系統觀的思想為指導,注重每個教學設計過程,從課程設計到課堂設計,優化教學內容,使內容更有層次感,更能體現系統設計的思想。計算思維強調將計算機科學方法與解決實際問題的具體方法相映射,而程序設計的很多具體知識點,如循環、數組、函數等,均能體現處理實際問題的方法。因此,對內容進行優化設計,可避免學員陷入具體語言的語法陷阱,而忽略理解掌握具有計算思維能力培養的思想性內容。計算機系統能力的培養雖然主要針對計算機專業學員[2],但對計算機系統能力的培養不應該局限于計算機專業學員。在實際開發應用系統時,開發人員不一定是純粹的計算機專業人員,而缺乏計算機系統能力的非計算機專業人員在進行應用系統開發、維護和使用時,會面臨諸如系統設計不合理等問題。因此,有必要在非計算機專業的課程中有目的地培養計算機系統能力。
2.1課程標準修訂
首先,根據本科程序設計課程的教學目標,課程標準不應依賴于具體的計算機語言,而是高度提煉程序設計的知識點、思想、方法,在使學員理解各知識點的內在關系的基礎上,利用某種特定語言具體呈現,有時甚至可以使用多種語言實現同一知識點,以便使學員更好地理解知識點,并對比不同語言的特點。因此,如果課程標準中還存在依賴具體語言的標準內容,則必須進行修訂。其次,課程標準中要指明該課程要進行系統能力和計算思維能力培養的宏觀和微觀目標,并在內容要求部分給出具體的能力培養要求。最后,在以上原則的指導下,從宏觀上改進課程標準的內容,有效指導任教人員和學習者重視結構、思想和方法,降低陷入語法陷阱的可能。表1給出了兩個課程標準知識點內容要求修訂前后的對比。表1課程標準部分內容要求修訂示例修訂前要求修訂后要求…掌握if、switch、for、while、dowhile語句的使用方法,理解while和dowhile的區別,掌握break、continue的使用,能夠編寫三種結構的簡單程序……掌握順序結構、選擇結構、循環結構的特點,繪制三種程序結構的流程圖,使用一種語言對三種結構進行具體實現……理解函數的基本概念,掌握C語言函數的定義、調用及返回的方法,理解C語言自定義函數參數的傳遞方式,掌握C語言函數的嵌套調用和遞歸調用……復述函數的概念,闡述函數引入的意義和作用,基于一種高級語言實現函數的定義和調用,編寫帶有參數和返回值的函數并進行調用…
2.2課程教學內容模塊化重組
教學內容的模塊化重組有利于教學人員在教學過程中宏觀把握教學知識點,有利于學員理解課程的總體結構。遵循建構主義的原則,逐步提高學員的計算思維能力和系統能力。涉及到具體語法的部分,不應花費過多的課堂時間,可利用MOOC平臺或微課視頻給學員提供自主學習的平臺。表2給出了課程模塊化劃分的結果。
2.3能力培養知識點整理
課程中適合培養系統能力和計算思維能力的知識點較多,進行科學的歸納整理,有利于教學人員在備課過程中進行有針對性的準備。表3給出了部分能力培養知識點的分布情況。
3教學案例
在教學實施過程中,要完成培養學員系統能力、計算思維能力的目的,必須根據教學內容、學員特點、教學條件等進行更加細致的設計,以達到最佳的能力訓練效果??梢砸浴昂瘮怠币还澋慕虒W為例,給出具體的教學設計案例。
3.1教學內容和重難點確定
該節課的教學內容為函數,主要包括函數的概念、如何定義和調用函數。其中函數的概念部分是本節課的重點,主要包括什么是函數、為什么要引入函數、函數在整個程序中的作用和地位等。讓學生理解并掌握形式參數和實際參數是該節課的難點。
3.2教學目標和要求設定
通過該節課程的學習,使學員進一步建立模塊化程序設計的思想,具有初步利用函數進行模塊化程序設計的能力。具體來說,要求學員能夠復述函數的概念,闡述函數引入的意義和作用,能夠基于一種高級語言實現函數的定義和調用,能夠編寫帶有參數和返回值的函數并進行調用。
3.3學員特點分析
學員在前面的學習過程中基本掌握了程序的3種基本結構,能夠編寫一些較復雜的程序,部分學員已經發現當程序較復雜時,往往會出現一些重復的代碼。雖然他們了解過模塊化程序設計的概念,但對如何實現模塊化程序設計并沒有直觀的認識,對于“自頂向下,逐步細化”的認識更加模糊。
3.4課堂教學過程及內容設計要點
課堂開始階段,為了讓學員更容易理解引入函數的目的,采用現實生活或生產實際中的例子,如飛機制造與組裝等,并讓學員反思前面編寫過的較復雜的程序中出現的代碼重復現象,從而引出函數的概念,讓學員更加輕松地接受函數這個新知識點。在這個過程中可采用視頻、動畫、圖片等多媒體形式向學員展示生產生活中“模塊化”組裝的例子;可以通過討論發言,讓學員挖掘前面學習過的內容中有哪些可以進行模塊化設計。隨著討論的深入,學員就會思考應該如何借助模塊化思想解決程序設計中的問題,從而過渡到本節的第二個問題——函數的定義和調用。在開始具體講解函數的定義和調用之前,為了突出“學為主體”的課堂特征,設定一系列的討論問題,如函數應具有哪些要素等,便于引入函數形參和實參概念,并加深學員的理解。在這個過程中,可結合生產生活實例進行啟發,結合學員小組討論,建構出函數的定義和調用的機理。模塊化組裝的例子和函數的知識有不同之處,應該花少量時間講解或討論它們的不同之處,從而避免造成誤解。在講解完實參、形參的概念之后,利用具體的程序語言,如C語言,對函數的定義和調用進行代碼實現,并向學員說明其他語言的實現是類似的,可結合微課資源向學員提供其他語言的實現例子。這里需要著重強調的是,以往的教學內容多以代碼實例引出函數、形參、實參等概念,而這里采用的是類比理解概念、討論引出概念、代碼實現概念的順序,學員理解層次更深,更適合學員在其他高級語言中實踐,更有利于能力培養。本節課程結束階段,師生共同總結函數的意義,使學員對模塊化程序設計的理解進一步升華,系統能力得到真正的提高。
4結語
針對目前程序設計課程教學過程中,學員容易陷入程序設計語言的語法細節的問題,以提高學員對程序設計課程的理解、提升包括系統能力在內的計算思維能力為目的,以教學內容改革為主要方式,對程序設計課程進行了具體的改革設計與實踐。實踐結果表明,學員的計算思維能力,尤其是系統能力得到了較大的提高。教學內容改革也帶動了教學模式與教學方法的改革,三者相互促進、相互補充,也為下一步的教學改革指明了方向。
作者:韓慶龍 李瑛 劉瑜 單位:海軍航空工程學院基礎部
參考文獻:
[1]ACM\IEEE.ComputerScienceCurricula2013IronmanDraft(Version0.8)[EB/OL].[2013-03-26].ai.stanford.edu/users/sahami/CS2013/.
[2]王志英,周興社,袁春風.計算機專業學員系統能力培養和系統課程體系設置研究[J].計算機教育,2013(9):1-6.
[3]WingJM.ComputationalThinking[J].CommunicationsoftheACM,2006,49(3):33-35.
- 上一篇:三七微丸的臨床藥學探討
- 下一篇:普通高校音樂鑒賞課程教學研究