皇甫睿,楊 威
(山西師范大學 教育技術與傳媒學院,山西 臨汾041000)
計算思維由美國卡內基·梅隆大學的周以真教授提出,是運用計算科學的基礎概念進行問題求解、系統設計以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動[1]。計算思維的教育價值體現在三個方面:問題求解思路、創新思維和形式化描述[2]。而程序設計課程的學習目標恰恰是學習求解問題的思路和方法,即算法。這種能力需要在教學中通過實際操作不斷強化才能得到訓練。C#是當前比較流行的面向對象的編程課程,也是高職院校計算機專業的必修課之一,貴在讓學生獲得面向對象程序設計思想與面向對象程序設計最基本的知識,得到面向對象程序設計的思維訓練、基本職業能力的訓練和社會能力的訓練。本文通過對計算思維方法的深入研究,設計符合教學目標、針對學生能力的教學案例,構建面向C#的計算思維訓練支持系統。該系統專門用于學生課下學習C#課程,目的是提升學習者的自主學習能力和思維能力,本文還做了相應的實驗研究,得出了一些教學策略與系統改進建議。
計算思維就是將計算機作為工具,用來解決由具體問題轉化成的抽象問題(也即格式化或形式化的問題)的一種思維方式,屬于面向問題和面向解決方案的方法論范疇。對于教師而言,程序設計課程并不是一門簡單的技術性課程,高職教師不同于某些培訓班的教學人員,不是以傳授技能、迅速上崗為原則,而是更注重學生思維能力的培養,那么在教學設計中就應該有明確的體現。針對不同的教學任務,不同學習基礎的學生,思維訓練的策略也有所不同。本文將程序設計中常用的幾種方法作了仔細研究,常用的思維方法有整體性思維、構造性思維、目標轉化思維、分類處理思維、逆向思維、聯想思維等。如圖1所示,結合以往教學經驗,程序教學中的問題求解過程從分析問題、算法設計、編程實現到運行、結果檢驗都應貫穿有思維訓練,并且要將人的邏輯思維能力與計算機結合,以使算法達到最優化。
面向C#的計算思維訓練支持系統,是借助Moodle平臺搭建的學習支持系統,通過設計多樣化的算法和基于計算思維培養的解題思路,為學生提供共享的學習資源環境和自主學習平臺,幫助學生作課下學習;同時,也為教師開展教學、進行教學管理創造了便捷的平臺。本文綜合考慮學生的先決技能、高校學習環境,依據C#程序設計課程的教學目標,設計了面向C#課程的計算思維培養支持系統,系統功能模塊的總體設計見圖2。

圖1問題求解中的思維方法

圖2系統功能結構圖
(1)教師模塊。教師的主要任務就是進行課程設計,在對C#課程標準參透的基礎上,設計出有效的思維訓練算法,并上傳到學習平臺供學生課下學習交流。教師擁有對課程的全權管理權限,可以通過系統為學生上傳學習資料、發布貼子、與學生互動、查看學生作業等。
(2)學生模塊。學生是該系統的使用者,也是主要用戶。該系統為學生設計的主要功能有個人信息管理、案例學習、思維訓練、討論區、聊天室、作業提交。學生成功登錄后可以進行自主學習,并能根據教師提供的資源進行練習,同時還能提交問題、與教師和同學進行交流互動等。
(3)管理員功能。管理員具有最高權限,可以對教師和學生用戶進行管理,對課程進行管理、角色委派,對所有發布的信息進行統一管理等等。
系統主頁面設計要注意以下幾點:①界面直觀簡潔。目的是為了讓用戶更加方便地進行課下學習、能夠迅速找到學習內容并進入學習;②語言、布局和設計要保持一致性。色彩搭配和諧、排版整齊劃一也是視覺方面的審美要求;③方便用戶使用。要遵循實現目標功能的最少操作數原則、鼠標最短距離移動原則等。本系統的頁面經過合理規劃,將主要功能集中在一起,以綠色柔和為主基調,如圖3所示。后期我們將會對頁面的色彩、布局及動態效果進一步改進。

圖3系統主頁面設計
教學實驗過程中,每一個任務都各有其特點,教師不能一味按照課本上的模式組織教學,更不能照本宣科。面向對象的程序設計無外乎封裝性、繼承性、多態性三個特征。在求解問題時,運行效率取決于設計模式,設計模式取決于思維模式,因此,我們要在教學過程的每一個環節嚴格把控,設計多樣化的算法,實驗班借助系統的支持,設計如圖4所示師生主要的教學活動流程,該流程按照“教師-學生-教師-學生”的交互模式進行。教師要先對課程內容進行充分的準備,對問題作透徹的分析,結合學生的先驗知識和理解能力,設計出有效的算法,并將學習內容上傳至學習支持系統;學生利用課下時間通過網絡進行學習、思考和練習,還可以在網上發布貼子、交流討論;與此同時,教師也要及時關注學生的在線動態,進行答疑解惑、作業批改等;最后,在上機實訓的過程中,學生便能更加從容地完成任務,實現所學習的算法設計編程并調試運行進行驗證。

圖4教學活動流程
本系統的核心設計是為學生提供思維訓練的算法和經典案例,作為學習的支持平臺,下面列舉計算思維訓練中逆向思維的經典案例:判斷某年某月某日是星期幾——函數嵌套調用。
在C#中,所有的函數定義都是平行的。函數之間允許相互調用,也允許嵌套調用。習慣上把調用者稱為主調函數。嵌套調用就是一個函數調用另外一個函數,被調用的函數又進一步調用另外一個函數,形成一層層的嵌套關系,一個復雜的程序存在多層的函數調用。
如圖5所示給出的是函數嵌套調用的關系模型,我們要想判斷日歷某個日期是星期幾,首先要知道該日期是當年的第幾天,即Days()函數,在此之前還要先對其是否為閏年進行判斷;然后才能根據公式w=(x+(x/400)+(x/4)-(x/100)+Days(y,m,d))%7計算出答案。圖5中的IsLeap()為判斷閏年的函數,ValueChanged()是觸發函數,Form1_Load()是入口函數。如此逆向思考,問題便簡單很多。

圖5函數嵌套調用關系圖
本文對某高校計算機專業二年級的學生進行實驗。實驗前,對學生的先決技能進行分析,了解學生在學習編程語言過程中的思維障礙。
(1)形象思維主導,邏輯思維能力較差。形象思維是人最基本的思維能力,不需要學習和訓練,學生習慣于憑借直覺經驗去思考問題,邏輯思維能力未得到良好的訓練,對抽象的問題缺乏深刻感知。
(2)教學方法不當導致思維定式。大多數學生在“傳遞-接受”式的教學方法引導下學習,缺乏自主性和合作意識,往往教師說什么就是什么,沒有個人觀點,有限的課堂教學容量極易導致思維的片面性、靈活性,久而久之形成思維定式,影響學生對知識的吸收,也不利于今后的發展。
(3)缺乏問題意識,難尋思維切入點。大學教育要培養學生發現問題、解決問題的能力,而不是單純地學習解決某一類問題的方法,要具有從實際問題中抽象出問題模型、找到問題解決切入點的能力。而70%以上的學生面對問題是茫然的,感到無從下手。
此外,實驗將C#的先行課程C語言成績作為前測數據,統計與分析得到:1301班(對照班)平均分63.2,1302班(實驗班)的平均分為62.9,二者在實驗前水平無顯著差異,可以作對照實驗。

表1 期末成績t檢驗結果
實驗將1302班作為實驗班,1301班為對照班,每班均為40人。經過一學期的實驗,在期末考試后,對兩個班的成績進行了統計,按照公式:期末成績=卷面成績*70%+實踐成績*30%,計算兩個班級的成績。
期末考試的試題是經過各位教師反復測試后確定的,題目難易程度相當,試卷采用標準化考試結構,試卷為密封卷。最終全班的成績呈現正態分布,而且兩個階段的標準差均在正常范圍之內,因此,本次考試結果的信度和效度符合要求。將兩個班看作兩個獨立樣本,通過SPSS對數據進行統計,并利用t檢驗分析這兩個樣本是否具有顯著性差異。
現假設兩個樣本總體為正態分布,忽略總體標準差。由于樣本數量大于30,要對比兩個班的成績差異性,采用均值方程的t檢驗,檢驗結果如表1所示。由于Sig(雙側)=0.022<0.05,小概率事件發生了,實驗組與控制組存在顯著性差異,說明采用基于經驗之塔的教學模式取得了一定的成效。
程序設計語言由一系列記號和相對應的一系列規則構成,抽象的語法、語義和內部運行機理,使得多數學生較難入門,傳統的教學模式顯得枯燥乏味,學習效果也不理想。隨著以計算機、網絡和多媒體為核心的現代信息技術的發展,計算思維已經成為學習變革不可抗拒的潮流,通過抽象和分解的方法,選擇合適的方式對問題進行建模,將復雜問題約簡,轉化成為學生容易接受的思維模式。本文通過對C#課程的研究,結合以設計、構造為主要特征的計算思維理念,設計了科學、嚴謹、新穎、有效的學習模式,并搭建了配套的計算思維訓練支持系統,為減少學生盲目鉆研帶來的困難,培養學生自主學習的能力和抽象、轉化的邏輯思維能力,做了大量的工作和實驗研究,也取得了一定的成效。
由于對課程標準的參透不夠深入,教學設計與系統設計均有待進一步完善:一是要繼續參透教學內容,使其與思維訓練方法相配套,讓學生能夠更加清晰地學習編程案例;二是要對系統進一步完善,加強后臺管理,尤其是對貼子中師生互動記錄的管理,另外最好能對學生發布的貼子進行分類,便于教師和其他學生查看和交流;三是由于本系統是基于Moodle開發的平臺,界面設計等方面較為死板,需要進一步修改。
此外,實驗班級人數有限,該方法的有效性驗證結果可能存在片面性。因此,這些不足之處也是對教師的一大考驗,在今后的教學實踐中要做的工作還有很多。
[1]黃銳軍.C#程序設計項目實訓教程[M].北京:化學工業出版社,2009.
[2]黎加厚.信息化課程設計——M oodle信息化學習環境的創設[M].上海:華東師范大學出版社,2007.
[3]王漢瀾.教育實驗學[M].開封:河南大學出版社,1992.
[4]高文.教學模式論[M].上海:上海教育出版社,2002.
[5]張東生,季超.從形象思維到計算思維[J].計算機教育,2012(19):6-11.
[6]陳杰華.程序設計課程中強化計算思維訓練的實踐探索[J].教學與課程建設,2009(20):84-85.
[7]王子.程序設計課程思想樹的構建研究[D].南京:南京師范大學,2014.