歡迎來到期刊VIP網,使用學術咨詢服務
期刊VIP網10年服務積淀,累計發表20萬份稿件,想要發表論文就來期刊VIP網
快捷導航
應用電子技術
軟件開發
計算機網絡
計算機信息管理
計算機應用
通信
光電技術
微電子

以計算思維能力培養為核心的案例式程序設計教學探索與實踐

發布時間:2021-08-21 09:34所屬分類:計算機信息管理加入收藏

摘要:計算思維能力是高校大學生尤其是工科類學生的一項不可或缺的素質,該項能力的養成也有賴于教師在授課過程中的刻意引導和強化訓練。筆者結合

  摘要:計算思維能力是高校大學生尤其是工科類學生的一項不可或缺的素質,該項能力的養成也有賴于教師在授課過程中的刻意引導和強化訓練。筆者結合所在獨立學院工科類專業開設的程序設計類課程的教學現狀,探討了在該類課程中融入計算思維能力訓練的案例式教學法的應用和實踐過程。通過創設形象生動的情景案例,使學生更易于理解和分析問題;通過對簡單案例改造升級,提升難度,強化學生分析問題、設計求解過程的抽象思維能力;通過設計綜合型應用案例,加強學生對軟件項目開發的整體性思維鍛煉。實踐表明:教師通過優化課程教學案例、強調計算思維訓練,對學生的計算思維能力提升及運用編程思維求解問題,起到了積極的促進作用。

  關鍵詞:計算思維;能力培養;程序設計;案例式教學

計算機論文發表

  開放科學(資源服務)標識碼(OSID):

  2006年3月,美國卡內基·梅隆大學周以真(Jeannette M. Wing)教授在《Communications of the ACM》雜志上發表論文,首次提出“計算思維(Computational Thinking)”這一概念進行定義:“計算思維是運用計算機科學的基礎概念進行問題求解、系統設計以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動。”并基于這一定義給出了一系列詳細觀點。一些學者結合計算機學科對周教授的觀點進行簡化,提煉為“問題分解、算法、抽象和自動化”,進一步凸顯了計算機學科中“計算思維”的特點。

  21世紀初,我國計算機學科的教育專家開始倡導在高等教育階段的計算機基礎課教學中開展計算思維教育。不少教學研究者也將計算思維引入計算機學科的一些課程中,重點研究計算思維在計算機教育領域的應用,如:在教材編寫中,《新編計算機導論:基于計算思維》(鄭阿奇著,電子科技大學出版社,2013)、《數據庫原理與應用(SQL Server2012)——基于計算思維》(劉征海主編,上海交通大學出版社,2018)等教材,充分展示了基于計算思維的課程教材建設的新思路;也有許多教學工作者積極探索并將計算思維融入課程教學和資源建設的實踐中,形成了自己的研究成果,如:牟琴老師《基于計算思維的探究教學模式研究》[1]等基于“計算思維”的系列成果;姚天昉老師的《在程序設計課程中引入“計算思維”的實踐》[2];葉軍老師《以培養計算思維能力為導向的“C語言”教學資源設計》[3]等。可見,在計算機教育教學領域,“計算思維與課程教學”“計算思維與教學改革”等一直是計算思維研究的關注熱點[4]。

  1獨立學院程序設計課教學現狀分析

  目前,在不同層次的高校,計算機程序設計課程是工科類專業普遍開設的一門通識教育課,同時也是最能體現信息素質教育和計算思維能力培養的課程之一。該課程開設的主要目的是通過課程教學,使學生學習、掌握和運用計算思維中的抽象、遞歸、復用等思維方法,進行問題分析和程序設計,進一步利用計算機來解決實際工作或工程方面的問題。在教學過程中,通過強化計算思維訓練,促使學生逐步形成“分析”問題的整體性思維,能夠“設計”問題的求解過程,并“運用”計算機語言和軟件等相關技術去解決實際問題,應作為該類課程的核心教學目標。

  在程序設計學習中,如果將學生的編程行為分為兩個階段,則“知道與理解”構成編程行為的基礎性認知(屬于低階思維層次),“分析與應用”是編程行為的核心(屬于高階思維層次)[5]。筆者結合所在獨立學院該類課程的教學現狀,觀察發現:在編程課中,多數學生能夠通過學習,“知道與理解”編程語言本身的語法、語句結構,具備較為簡單的算法思維,而在“分析與應用”的高階思維層次需要花費更多的時間進行思考和求解,對一些較復雜或有些許難度的問題可能表現得無從下手。究其原因:一方面,由于學院對部分通識課程壓縮學時,教師難以在有限的課堂教學時間里對學生進行計算思維的充分訓練和強化;而另一方面,教師所采用的教學思路教學方法也非常關鍵。目前,多數學生在編程學習上屬零基礎,對于編程語言本身的學習和運用有一個適應過程,而教師在授課中若著力于編程語言本身、按照一般教材的系統性知識結構進行教學,則會感覺課時更加不夠用,而學生則會感覺細節太多、造成“編程真復雜”的不良印象,從而降低學習課程的興趣,有些學生則因課程學習后不能解決問題、參加編程競賽與獎項無緣、連考級也難以過關等種種困難,吐槽“編程課難學”“學了沒用”……教學相長無從談起,教學效果難以評價。

  為此,筆者結合多年編程教學經歷及學院的課程教學現狀,不斷改進教學思路和教學方法,研究以“實用性”和“應用性”為目標,采用案例教學法,強化問題分析、過程設計和編碼求解各環節的訓練,在案例求解中加強對語言本身運用的同時,重點強化學生的計算思維訓練。

  2以計算思維能力培養為核心,優化教學案例設計

  在程序設計課中,我們的教學目標應著眼于讓學生在發現問題、分析問題和解決問題的過程中強化計算思維,可采用的教學方法和策略也有多種。筆者以學院開設的“計算機語言C”課程為例,以案例式教學法為基礎,突出知識的“實用性”和“應用性”,在案例設計上主要采用了如下策略:

  2.1深入淺出,創設情境化案例,使待解決的問題易于理解、便于分析

  創設情境化案例的目的,是將編程問題和生活中的一些生動場景結合起來,增加學生學習的興趣,通過對應用場景模擬再現及分析,讓學生自行尋找解決問題的思路,并梳理組織為求解步驟,形成案例問題的完整解決方案。然后,再編制程序代碼進行驗證。在案例求解過程中,若遇到需用的新的知識模塊或知識點,則可順勢引入學習并及時運用。

  例如,在學到“選擇結構”及“循環結構”這兩個模塊時,筆者聯系到生活中可兩人一起玩的小游戲:從一組撲克牌中隨機抽取一張牌,讓對方猜是哪張牌?假設出牌人是甲,猜牌人是乙,將游戲設置為4種場景,最終目標是用程序來模擬游戲過程:

  (1)由甲從一組牌中隨機抽一張,乙來猜測,僅給乙一次機會;

  (2)甲抽牌,乙猜牌,可給3次機會,乙猜對或機會用盡為止;

  (3)甲抽牌,乙猜牌,不限猜測次數,乙猜對或不想再猜為止。

  (4)將“甲出牌、乙來猜”升級為多輪游戲。

  首先,第(1)種場景的關鍵信息:甲出牌、乙猜測、一次機會。在這個游戲中,乙只能猜一次,可能猜對或猜不對,這是需要判斷的,則使用分支結構即可解決。學生在分支結構學習基礎上能順利解決。

  第(2)種場景:甲出牌、乙猜測、最多可猜3次,此時乙每猜一次則需判斷是否猜對并作相應的處理。此種場景,讓學生自行分析選擇使用何種結構進行求解?顯然,需要處理乙可能多次猜測及判斷,循環結構是最佳處理方式,且需要進行有限次循環控制。通過引導學生分析一次猜測過程中的需要進行的操作,將第(1)種場景的分支處理步驟引入,進而設計求解步驟編制程序并驗證。

  第(3)種場景下,關鍵信息提取:甲出牌、乙猜測、無限次機會。此時,重點引導學生思考分析兩個問題:一次猜數的過程中可能發生哪些情形,分析不同的情況下怎樣進行處理?無限次機會情況下,游戲怎樣結束?比如:在用戶猜對的時候,進行提示并中斷循環;在用戶猜錯的時候提示“是否再猜一次?”并需要用戶選擇,如果繼續猜,則進入下一次循環,如果不繼續猜則中斷循環。并啟發學生進行求解步驟的設計并編制程序驗證。

  多輪模式的游戲,則需要再加入外循環控制,問題可交給學生討論分析和設計。

  情境化案例法的策略運用有助于提高學生學習的興趣和積極性,同時可在生活化場景化案例模擬中強化問題分析與設計思路,聯系課程的知識點并加以運用,也能快速促進學生對所運用的知識模塊及知識點的理解和吸收運用。

  2.2以簡單案例為基礎,改造案例升級難度,實現抽象思維訓練螺旋式上升

  素數判斷問題是編程中的典型案例,素數問題本質上是物質的幾何學問題,如著名的黎曼猜想、孿生素數猜想、哥德巴赫猜想均涉及素數,這些問題既有趣也值得探討,運用編程方法驗證或求解,也有助于抽象思維能力的鍛煉。在C語言課程教學中,筆者以最基本的素數判斷案例為基礎,將案例升級改造成不同版本,做了系列素數問題的探討,從簡單到復雜,舉例如下:

  (初級版)案例1:找出[m,n]范圍的所有素數。

  (初級版)案例2:找出[m,n]范圍的孿生素數對。

  (中級版)案例3:在[m,n]范圍中,找出長度為3的連續素數等差序列。

  (高級版)案例4:在[m,n]范圍中,找出最長的連續素數等差數列。

  案例1重點引導學生明確“需要在指定的整數范圍內循環取數,并判斷取到的數是否素數,是則輸出”的求解思路。

  案例2的目標是要找“孿生素數對”,若整數x和x+2均是素數,則這兩整數即構成孿生素數對,這也是該問題的切入點。可引導學生自行分析并設計求解過程,在[m,n]范圍內取數置于變量i中,判斷條件isPrime(i) &&isPrime(i+2)是否成立:若成立,則輸出孿生素數對(i, i+2);否則,繼續取下一個數置于變量i進行判斷;直至該范圍的數全部判斷完為止。

  案例3的目標是:在指定整數范圍內,要找連續素數等差數列,且數列中素數的個數為3。分析該問題,在[m,n]范圍內可能存在多個素數,而形成“長度為3的連續素數等差序列”的前提是:連續的3個素數每相鄰兩個的差相等(將該差稱為“步長”)。假設這3個素數中的第一個是x,步長是step,則后續的2個素數也應滿足每相鄰兩個的差值等于step,這便是問題的切入點。Step的值通過計算前兩個相鄰素數的差求得。考慮是在一個素數列中找尋連續等差數列,找出[m, n]范圍內的素數列并存入數組空間,更便于后續判斷。

  案例4屬于面向算法競賽類型的問題,由于分析過程和設計較復雜一些,且篇幅所限,在此不展開敘述。

  綜上,針對較為抽象的問題,如何設計問題求解過程,并在此過程中對學生強化思維訓練?可參考以下步驟:(1)分析問題,明確結果;(2)思考需求的知識或搜索新知識;(3)思考切入點;(4)嘗試解決問題的一部分;(5)重復前4步。

  當然,許多問題的解決過程并非只有一種,我們更應注重引導學生發散思維,提倡多種解決辦法,并通過比較找到更優化的解決方案。

  2.3用綜合型案例加強知識綜合應用,強化問題抽象、分解及復用思維

  隨著知識的積累、思維訓練的循序推進,學生也將面臨更為復雜的問題求解,新的問題可能更抽象和需求更多。如何思考和解決更復雜的問題呢?一個很重要的能力是:問題分析與拆解能力。在程序設計課中,我們可借助綜合型案例來強化學生對復雜問題的分析、分解和設計等能力的訓練,逐步建立軟件工程的思維。編程中綜合性應用案例如“學生成績管理”“通訊錄管理”“銀行排隊叫號系統”等,均可對基礎知識梳理和應用、問題分解思想起到較好的訓練作用。在綜合型案例中,更強調問題的分解抽象及模塊復用思想,將學過的知識模塊進行串聯應用,既鞏固前期所學,也充分鍛煉學生面對復雜問題時的分析與拆解能力,建立工科類學生需具備的工程性思維。

  3結語

  筆者認為,在程序設計教學中,對學生進行計算思維能力訓練強化,是對現有課程的優化,且完全可以融入課程中通過潛移默化的方式進行。經過持續的教學摸索和實踐,筆者發現,使用案例教學法組織教學過程,對學生不斷強化計算思維訓練,學生的編程能力較之傳統教學法有更快的提升,在面對模糊的、復雜的或開放性的問題時也不再畏懼恐慌,增強了解決問題的自信心,運用編程解決問題的能力也顯著提高了。

  參考文獻:

  [1] 牟琴,譚良.基于計算思維的探究教學模式研究[J].中國遠程教育,2010(11):40-45.

  [2] 姚天昉.在程序設計課程中引入“計算思維”的實踐[J].中國大學教學,2012(2):61-62,76.

  [3] 葉軍,汪一心,王磊.以培養計算思維能力為導向的“C語言”教學資源設計[J].江西廣播電視大學學報,2018,20(4):82-87.

  [4] 羅力強,王冬青,方遠豪,等.我國計算思維的研究熱點及趨勢分析[J].中國教育信息化,2020(2):1-6.

  推薦閱讀:計算機相關論文發sci4區難嗎


轉載請注明來自:http://www.jsxhb.cn/jisuanjixinxiguanli/59133.html

上一篇:基于大數據時代下計算機信息處理技術略論
下一篇:近六年來國內關于人工智能法律規制的研究述評

幫您下載文獻

*范文題目:

*作者姓名:

*期刊名稱:

??期刊刊期:

*聯系方式:

聲明:*號必填。下載文獻后將以文件形式發送至您預留的聯系方式,請確保有效性。寫好后點擊通知編輯

福利在线观看未满18点击进人