張玉寧
摘 要: 傳統C語言課程教學方法在課程教學后的下學期進行課程設計,實踐同理論聯系程度差,過分看重語法教學,對程序設計思想的教學力度弱,學習效果差。因此,研究了基于計算思維的程序設計類課程教學實踐過程,將計算思維同C語言教學相融合,分析C語言教學過程中信息操作的思維過程。設計基于計算思維的C語言擱置式課程教學實例,將C語言教學劃分成課程引入、新課程學習以及效果評價三個階段,分析三個過程的教學內容以及結構組成。并設計三個C語言課堂教學階段過程中基于計算思維的拋錨式教學實踐內容。實驗結果說明,所研究教學方法提升了學生的C語言計算思維能力,增強了學生的感興趣度和自主學習能力,學習效果強。
關鍵詞: 計算思維; 程序設計; 課程教學; C語言; 擱置式實踐
中圖分類號: TN99?34; G64 文獻標識碼: A 文章編號: 1004?373X(2017)23?0162?04
Abstract: It has low relation degree between practice and theory for the traditional C language curriculum teaching method used for curriculum design of the next semester after course teaching, weak teaching ability of program design thought and poor learning effect, and pays attention to grammar teaching excessively. Therefore, the computational thinking based teaching practice process of program design courses is studied. The computational thinking is integrated with C language teaching. The thinking process of information operation in C language teaching process is analyzed. A computational thinking based instance of C language shelving course teaching is designed, in which the C language teaching is divided into the stages of course introduction, new course learning and effect evaluation. The teaching contents and structure component of the three stages are analyzed. The anchored instruction practice content based on computational thinking in the process of the three C language classroom teaching stages was designed. The experimental results show that the teaching method can improve the C language computational thinking ability of students, enhance the interest and self?learning ability of students, and has perfect learning effect.
Keywords: computational thinking; program design; curriculum teaching; C language; shelving practice
0 引 言
當前隨著信息技術的快速發展,其在課堂教學中的應用價值也不斷提升。信息技術課程對思維教學的關注度較高,計算思維是程序設計模塊的思維品質,我國程序設計類課程教學的計算思維教學還處于初級階段,程序設計過程中計算思維教學不夠成熟。傳統C語言課程教學方法在課程教學后的下學期進行課程的設計,學習理論知識后沒有同實踐實施遷移應用,實踐同理論聯系程度差,過分看重語法教學,對程序設計思想的教學力度差,學習效果差。本文對基于計算思維的程序設計類課程教學實踐進行了深入研究,提出基于計算思維的C語言擱置式教學方法,提高學生C語言程序設計的學習能力。
1 計算思維的程序設計類課程教學實踐研究
1.1 基于計算思維開展的C語言程序設計教學
本文研究的程序設計類課程教學是C語言課程教學,C語言是一種基礎的計算機語言,其從語法到總體結構包含較多的計算思維[1]。基于計算思維開展的C語言程序教學在傳授相關知識點時也要傳授其中描述的計算思維,對計算思維實施強化和培養,可提高學生C語言學習能力和計算思維能力[2]。人們采用計算機操作信息數據,不同種類信息數據的表達手段也存在一定的差異,對其實施操作的措施也不同,則計算機實現這些信息數據的描述、存儲以及操作的計算思維是:按照馮·諾依曼計算機體系結構,通過軟件對不同種類數據實施聲明和定義,準確描述不同種類信息;采用硬件的存儲元件保存信息數據。通過計算機語言編寫的數據操作程序控制CPU對數據實施操作,通過人、機協同進行的問題求解過程是計算思維的實現過程,用圖1描述。該信息操作的計算思維需要計算機語言提供運算服務,通過C語言實現數據描述(數據種類)、輸出存儲(變量、常量)以及數據操作(表達式以及控制結構)。endprint
1.2 基于計算思維的C語言擱置式教學案例設計
基于計算思維的C語言擱置式教學,也稱做實例教學和基于問題教學,這種教學思維要求學生切身的感受和理解問題,不是靠單純的教師傳授,這種教學能營造一種真實、完整的氛圍,讓學生產生較高的學習興趣,同學之間進行高效的交流和互動協作,使得學生能從主觀上愛上學習,確保學生親身感受C語言呈現設計過程中從了解目標到完成目標的過程[3]。擱置式教學的設計就是培養學生自主學習、互動協作和提高學習興趣,主動發現問題并解決問題的能力。
基于計算思維的C語言擱置式教學設計,需要將搭建框架、自主學習、鑲嵌式教學和互動協作考慮到C語言課程教學設計中。該種教學方法總體將教學過程分成不同的模塊,不同教學模塊涉及的教學內容也不相同,將教學過程分為[A1,A2,…,An]。本文將基于計算思維的擱置式C語言課程教學分為課程引入(i),新課程學習(n)和效果評價(e),具體的形式如表1所示,其對每個階段遇到的教學難題和解決方法進行簡要描述。
在課程的引入階段,主要存在學生對學習興致缺失和對已掌握知識結構與新知識存在差距[4]。解決方法是增加學生對學習的興趣,構建已學知識與新知識的橋梁。教師在授課過程中向學生介紹與其認知相關的個性化案例,輔助學生進行理解。學生應該具備對目前掌握材料和未來知識的規劃能力。課程引入階段的結構示意圖如圖2所示,A,T和S分別代表教學過程、教師活動和學生活動。
在新課程學習階段,主要存在C語言知識點相關聯的信息聯系與課堂教學間的矛盾;讓學生主動學習知識而不是死記硬背。采用鑲嵌法和歸納演繹讓學習變得有趣。新課程學習階段教師應該是學生的引領者,指導學生看待問題的方向,運用類型檢查法帶領學生思考[5]。學生在教師的引領下思考問題并進行理論歸納,小組討論各自的觀點看法,多維分析和推理。圖3為新課程學習階段結構示意圖。
在效果評價階段,主要存在如何對任務進行執行和評價的問題。將任務呈現出來,幫助學生分析,尋求最方便、便捷的解決方式,采用多維分析方法進行結果評價。該階段學生需采用各種方法,包括建模、抽樣調查等完成分布的任務,并對結果進行展示評價[6]。圖4為效果評價階段結構示意圖。
由上文得出,基于計算思維的C語言拋錨式教學共分為三部分,學生和教師活動有六個步驟,式(1)和式(2)分別表示待解決問題和對應的解決方法:
1.3 基于計算思維的擱置式教學實踐設計
教師在上課前的課堂設計階段,從1.2節劃分的基于計算思維的C語言擱置式教學三個階段當中任選兩個作為基本知識。第一次教學中以簡單的加減法為例,從教學案例中提取知識點。學生自主探究課堂以外的知識,學生間相互協同解決問題[7]。在課堂引入階段,教師向學生提出問題“20+10”,學生此時腦中產生疑問,在這種困惑下向同學解釋人腦計算方式與計算機計算的不同。人的大腦進行的是邏輯運算,計算機是工程運算,C語言是進行數學計算的,假設a箱子里有10個白球,b箱子里有20個白球,將a和b兩個箱子里的白球倒入箱子c中,此時c箱子中白球的個數就是總數。將計算過程形象化,使學生對C語言如何進行運算產生很好的興趣,這個階段產生效果用式(3)表示,其中AI為課程引入階段的教學成果,[m]是待學習的白球數,[f]為學習動機函數:
在新課程學習階段,完成形象到抽象的轉換,將箱子看成三個變量,這個轉變就是C語言的賦值過程,C語言計算結果需要使用C語言中的輸出函數。在此階段的協作環節中學生的思維完成了從形象化到抽象化的轉變[8],思維方法的轉變充分發揮了思維。這一階段成果體現在思維方式(th)、學習能力(se)和協作能力(coo)的變化。這個階段教學效果用式(4)表示,其中AI為新課程學習階段的教學成果,[f]為th,se和coo的函數:
在效果評價階段對任務分析、方案分析和演示結果進行考核,教師和小組評分計入考核成績,學生采用建模和抽樣分析對任務進行方案設計和解決,教學方式的改變促進了學生對知識的學習[9]。該階段教學成果用式(5)表示,其中AI為效果評價階段的教學成果,[f]為與知識學習[(u)]和教學評價[(a)]的函數:
2 實驗結果與分析
2.1 學生成績檢測
實驗通過單組前后測對某高校軟件專業學生成績和學生態度實施調查,獲取三組實驗數據。實驗前后檢測成績能近似當成服從正態分布,該數據集內教學實驗前測值以及后測值的數據相對應,實驗對象以及人數是相同的,通過配對樣本T檢驗方法[10]對采用本文方法教學后軟件專業學生計算思維能力是否提升實施檢測。
實驗統計軟件專業學生學習C語言時的循環語句、條件語句以及賦值語句成績,通過Excel表格統計數據,結果用表2描述。通過SPSS軟件實現數據配對樣本的T檢驗,結果用表3描述。
分析表2能夠得出,對參加實驗的50名學生的C語言程序設計的學習成績進行檢測過程中,三次實驗學生成績平均值分別是79.49,83.44以及86.65,能夠看出該軟件專業學生的C語言程序設計的計算思維能力逐漸增強。
分析表3中的數據,能夠看出實驗前后配對樣本的相關性。三項測試項目中不同語句的相關系數分別是0.373,0.265以及0.158,相伴概率sig分別是0.07,0.068以及0.279,都比0.05高(顯著性水平),說明三種實驗的成績相關性顯著。
分析表4中的數據能夠得出,賦值語句同循環語句配對樣本的配對均值是-7.986,雙側相關概率[P]值是0,比0.05(顯著性水平)低,[T]值是負值,[C=]-3.688,能夠看出計算思維教學前后軟件專業學生成績存在顯著的差異。賦值語句同條件語句的[P=]0.001,比0.05(顯著性水平)低,說明存在顯著性差異。而條件語句同循環語句的[P]值是0.217,比0.05(顯著性水平)高,說明不存在顯著性差異。全面分析這些數據能夠得出,采用本文方法進行教學后,總體軟件專業學生的計算思維能力出現了顯著的提升,說明本文方法在C語言程序設計教學過程中,基于計算思維的教學模式增強了學生程序設計思維的發展。endprint
2.2 學生態度檢測
實驗從學生對課堂的感興趣程度檢測實驗前后學生態度方面的狀態。實驗統計采用本文教學方法以及傳統C語言教學方法下,學生對C語言教學課堂的感興趣程度,結果用圖5和圖6描述。分析圖5能夠得出,對于三種C語言語句,本文方法下存在10人、15人、23人對課堂內容非常感興趣,31人、27人、20人對課堂內容感興趣,5人、5人、4人對課堂內容感覺一般,4人、3人、3人對課堂內容不感興趣。而從圖6中能夠看出,對于三種C語言語句,傳統教學方法存在5人、15人、8人對課堂內容非常感興趣,22人、18人、20人對課堂內容感興趣,19人、14人、19人對課堂內容感覺一般,4人、3人、3人對課堂內容不感興趣。說明學生對本文C語言教學方法的感興趣程度更高。
2.3 實踐(上機)題目完成情況檢測
軟件專業對所學程序類設計課程的實踐練習過程中,各次實踐(上機)的練習題量以及綜合難度要求較高。實驗統計某高校兩屆軟件、通信以及電子專業的學生,分別采用本文教學方法和傳統教學方法下實踐(上機)題目的完成情況,結果分別用圖7,圖8描述。能夠看出,采用本文方法下難度較低的一致性實踐題和必做題的完成度同傳統教學方法差別較小,而難度較高的升級題以及挑戰題的完成度遠遠高于傳統教學方法。說明本文方法下的學生總體自主學習能力以及競爭意識有了極大的提升,能夠活躍C語言教學的課堂氣氛。
3 結 論
本文對基于計算思維的C語言程序設計課程教學實踐過程進行了詳細研究,采用基于計算思維的C語言擱置式教學方法,極大提高了學生對C語言課程學習水平。
參考文獻
[1] 張陽,李雄偉,盧宏鋒,等.基于計算思維的計算機基礎教學改革與實踐[J].北京郵電大學學報(社會科學版),2015,17(2):113?118.
[2] 馬駿,張琦,張儉鴿.基于任務驅動的C語言課程教學設計[J].計算機工程與科學,2016,38(z1):117?119.
[3] 吳旭,牛少彰,頡夏青.計算思維與理科專業“大學計算機基礎”實踐教學研究[J].北京郵電大學學報(社會科學版),2015,17(1):88?93.
[4] 何明,陳衛衛,陳希亮,等.基于計算思維的大學計算機基礎課程改革方法探析[J].計算機工程與科學,2014,36(z1):96?99.
[5] 程鋼,楊杰,吳志強,等.SAKAI平臺下程序設計與開發課程混合式學習的研究與應用:以測繪工程“C語言程序設計”為例[J].測繪通報,2016(9):133?136.
[6] 謝鵬,張紅梅.以培養計算思維為導向的大學計算機基礎課程教學改革與實踐[J].中國大學教學,2016,38(z1):245?247.
[7] 鄭麗坤,關紹云,郭丹.計算思維引導的高校計算機基礎教學實踐研究[J].黑龍江高教研究,2016(2):174?176.
[8] 劉必雄.“Visual Basic程序設計”課程建設的研究與實踐[J].河北農業大學學報(農林教育版),2016,18(1):46?50.
[9] LIU Y Z, WANG Y M, LIU Z W. College program designing course based on computational thinking [J]. Applied mechanics & materials, 2014, 556: 6527?6530.
[10] 楊晨霞,涂風濤.基于CDIO的高職程序設計類課程的教學改革與實踐探討[J].職教論壇,2016(6):81?83.endprint