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