方璐 嚴明 梁波


摘要:計算機科學導論是計算機相關(guān)專業(yè)的一門基礎(chǔ)導論課程,課程目標是讓學生掌握計算機科學的基本理論知識,同時培養(yǎng)學生的計算思維和解決問題的能力。該文從如何在該課程中培養(yǎng)學生的計算思維出發(fā),分析了現(xiàn)有教學中存在的問題與挑戰(zhàn),提出了課堂教學案例講解與課后編程練習相結(jié)合的混合式教學方法,以問題推動思考,以實踐促進理論,培養(yǎng)學生的綜合能力。
關(guān)鍵詞:計算機科學導論;計算思維;算法
中圖分類號:TP311 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2022)13-0149-03
1引言
計算機科學導論是計算機相關(guān)專業(yè)的一門基礎(chǔ)導論課程,課程內(nèi)容主要涉及計算機科學與技術(shù)的基本知識和專業(yè)知識體系。通過授課使學生掌握計算機科學的基本理論知識和基本方法,同時培養(yǎng)學生的計算思維能力和解決問題的能力[1]。
計算思維(Computational Thinking)是利用計算機科學的思維方式來進行問題求解、系統(tǒng)設(shè)計和理解人類行為等一系列的思維活動[2]。隨著計算機技術(shù)的不斷普及和深入,計算思維在各個領(lǐng)域都展現(xiàn)了強大的應(yīng)用。如計算思維運用在數(shù)學領(lǐng)域,可以幫助解決各種復雜的計算和定理的證明[3];在醫(yī)學領(lǐng)域中,計算思維可以用于醫(yī)學影像處理和生物信息大數(shù)據(jù)分析[4];在人工智能領(lǐng)域,計算思維幫助實現(xiàn)人臉識別[5]。越來越多的行業(yè)都提出了對程序設(shè)計和計算思維應(yīng)用的要求,因此計算思維的培養(yǎng)也是順應(yīng)國家實施創(chuàng)新驅(qū)動發(fā)展戰(zhàn)略和培養(yǎng)創(chuàng)新人才的技能需求[6]。
本文將探討在計算機科學導論課程授課過程中計算思維培養(yǎng)存在的問題和改革方法,以期幫助學生更好地理解和掌握計算思維,并將其應(yīng)用于工程問題的實踐中。
2當前課程教學中存在的問題與挑戰(zhàn)
2.1學生基礎(chǔ)千差萬別
學生的計算機基礎(chǔ)存在較大的差異,隨著計算機技術(shù)的普及,有的學生在初高中就接觸過計算機知識,也進行過編程訓練,已經(jīng)掌握了一些的計算知識。部分基礎(chǔ)較好的學生也會利用課余時間學習編程相關(guān)知識,參加相關(guān)競賽或項目,對計算思維能的培養(yǎng)也是很好的鍛煉。然而在很多偏遠地區(qū),由于教學條件差、資源匱乏,計算機課程無法進入到義務(wù)教育環(huán)節(jié)。由于學生的教育背景和基本素質(zhì)的差異,對教學內(nèi)容的接受和理解力也有較大的差異。對于部分完全沒有計算機科學基礎(chǔ)的同學,計算思維是全新的概念,同時由于計算思維的抽象性和復雜性,在短時間內(nèi)難以理解和掌握。在這種情況下,如果采用統(tǒng)一的標準和要求進行教學,會造成學習效果的差異化明顯。同時由于計算思維的養(yǎng)成和訓練是一個長期、循序漸進、潛移默化的過程,不可能一蹴而就,這就與以往的教學有著不同的要求和目標,這些要求和目標對現(xiàn)有的教育觀念和方式提出了新的挑戰(zhàn)[7]。
2.2教學內(nèi)容抽象而復雜
計算機科學導論課程內(nèi)容多而廣,包括計算機存儲結(jié)構(gòu)、程序運行工作原理、計算思維、操作系統(tǒng)、計算機網(wǎng)絡(luò)、編程語言等的相關(guān)內(nèi)容。傳統(tǒng)的計算機科學導論教學往往比較注重計算機知識的傳授和編程技能的培養(yǎng),而忽略計算思維的培養(yǎng)[7]。同時,由于計算思維相關(guān)內(nèi)容理論知識偏多,概念抽象,枯燥難以理解,傳統(tǒng)的教學通常采用概念講解+程序分析的方式,對其真正體現(xiàn)出來的計算機思維缺乏很大程度的創(chuàng)新意識以及總體的規(guī)劃意識。教育部高等學校大學計算機課程教學指導委員會主任委員李廉教授認為[8],在傳統(tǒng)的教學中,計算思維是隱藏在能力培養(yǎng)內(nèi)容中的,要靠學生“悟”出來,現(xiàn)在要把這些明白地講出來,讓學生自覺地去學習,提高培養(yǎng)質(zhì)量,縮短培養(yǎng)的時間,這對教師的教學內(nèi)容設(shè)計和教學方法都提出了新的挑戰(zhàn)。同時,如何將計算思維融入實際工程問題中,在解決問題的過程中培養(yǎng)學生的思維能力,也是教師在教學過程中需要注意和改進。
2.3教學方法單一
計算機導論的特點及在計算機專業(yè)中承擔的角色,決定了在教學中需要采取多種靈活的教學方法。然而在傳統(tǒng)的計算機教學中,主要采用課堂講授的教學方式,但是由于計算思維的內(nèi)容抽象而枯燥,采用講解的方式進行授課,學生的注意力很難長時間集中,易產(chǎn)生課堂疲憊,對教學內(nèi)容的理解和掌握就會大打折扣。對于計算思維的教學,我們應(yīng)采用理論結(jié)合實踐的教學方法,引導學生將思維方式運用于實際問題的解決中,以問題推動思考,以實踐促進理論。因此課堂教學方式可以豐富多樣,如用視頻教學吸引學生興趣,引出問題;增加課堂討論,通過思維的碰撞啟發(fā)靈感,得到問題的多種解決方案;課堂編程實踐,對于簡單的編程練習,可以在課堂上帶領(lǐng)學生進行編程實踐,在發(fā)現(xiàn)問題和討論解決的過程培養(yǎng)學生的綜合能力。
3基于混合式教學的計算思維培養(yǎng)探索
計算思維的培養(yǎng)是計算機科學導論課程的核心目標,把計算思維融合到計算機知識中,讓學生掌握基于計算機科學的問題求解思路與方法,培養(yǎng)學生應(yīng)用計算思維處理實際問題的能力和創(chuàng)新能力。但是計算思維的內(nèi)容抽象而復雜,為了能在有限的時間內(nèi)將其教授給學生,我們采用了課堂教學理論講解與課后編程練習相結(jié)合的混合式教學方法(圖1)。筆者將課堂教學分為計算思維概念及思維過程講解,經(jīng)典案例分析,思維訓練三個部分,結(jié)合課后的編程練習以及作業(yè)反饋,形成閉環(huán),使學生在課堂講解中了解計算思維的基本概念和思維方式,在案例分析中體會計算思維在實際應(yīng)用中的解題思路,并且在編程實踐中實現(xiàn)算法的具體步驟,在發(fā)現(xiàn)和解決問題的過程中加深對計算思維的理解。
3.1課堂概念及思維方式講解
計算思維的課堂概念講解主要是介紹計算思維的概念和基本思想步驟。計算思維并不是某一種具體的計算機算法,而是一種解決問題的思維方式,這種思維方式通過將需要解決的大問題分解為小問題,然后找到問題之間的共同規(guī)律,再通過具體的算法來解決問題。計算思維需要在不斷解決問題的過程中循序漸進地形成。應(yīng)用計算思維來解決問題,主要包括以下幾個步驟[9-10]:(1)分解:把數(shù)據(jù)、過程或問題分解成更小的、易于管理的部分;(2)模式識別:觀察數(shù)據(jù)的模式、趨勢和規(guī)律;(3)抽象:識別模式形成背后的一般原理;(4)算法設(shè)計:為解決某一類問題撰寫一系列詳細步驟。
抽象和自動化是計算思維的兩大核心特征[8]。抽象指的是把實際的問題抽象為數(shù)學問題,并建立數(shù)學模型;自動化是指通過計算機語言將結(jié)題思路的邏輯過程寫成算法,并對問題進行求解。通過對計算思維概念和解題步驟的簡介,讓學生對計算思維有初步的了解。
3.2課堂案例分析
筆者選取了幾個經(jīng)典的課堂案例來對計算思維的解題步驟進行分析,幫助學生掌握計算思維在實際工程問題中的應(yīng)用。比如漢諾塔問題、排序問題、找零錢問題、最短路徑問題和背包問題等。在案例分析的過程中,我們首先引導學生運用計算思維進行獨立思考,從實際工程問題中抽象出數(shù)學問題,然后再將大問題分解為小問題并尋找出大問題與小問題,小問題與更小問題之間的規(guī)律,構(gòu)建出問題的數(shù)學模型,推導出數(shù)學表達式,這樣就完成了計算思維應(yīng)用的關(guān)鍵步驟——抽象,這也是計算思維應(yīng)用中最重要的步驟,當?shù)玫絾栴}的求解的數(shù)學表達式之后,就可以借計算機語言,將其轉(zhuǎn)換為具體的程序,從而對問題進行求解和驗證,實現(xiàn)工程問題的自動化求解。
為了幫助學生將實際工程問題的抽象過程,筆者借助視頻動畫和流程圖幫助學生理解問題的求解過程,從而將大問題分解為小問題,尋找到問題之間的規(guī)律,將其進行算法分類,再推導出問題求解的數(shù)學表達式。通過對經(jīng)典案例引導式的講解分析,大部分學生都能領(lǐng)悟到計算思維的要點。我們在課堂上還將算法的具體實現(xiàn)程序進行解讀,將其中的重要函數(shù)和實現(xiàn)過程與思維過程的流程圖相對應(yīng)進行講解,幫助學生理解算法的實現(xiàn)方法與步驟。
3.3計算思維的課堂訓練
為了幫助學生進一步理解和掌握計算思維,筆者在課堂案例分析后設(shè)置了課堂思維訓練環(huán)節(jié)。選取了與案例中解題思路類似的工程問題,引導學生用計算思維進行思考和討論,最終得到問題的數(shù)學表達式。思維訓練過程中,問題的分類是關(guān)鍵,對問題進行正確分類后,就能用相應(yīng)的數(shù)學模型進行建模和表達式推導[11]。而問題的分解和規(guī)律的尋找可以幫助找到問題的類別。比如通過問題分解,知道漢諾塔問題屬于遞歸問題,與之類似的兔子繁殖問題,爬樓梯問題和排序問題也都可以用遞歸思維來解決;背包問題屬于動態(tài)規(guī)劃問題,最短路徑和找零錢問題也可以用動態(tài)規(guī)劃的思路進行求解。通過反復的課堂思維訓練,有利于提升學生的邏輯思維和抽象能力,使學生在面對實際工程問題時,用計算思維的方法對問題進行分解和抽象,尋找到合適的算法對問題進行求解。
3.4以Python為平臺的編程練習
使用計算思維來解決工程問題最終需要通過算法和程序來實現(xiàn)。Python語言語法簡單,入門容易,可擴展性高且有著豐富的標準庫,已成為近年來最受歡迎的程序設(shè)計語言之一,廣泛應(yīng)用于科研和工程技術(shù)領(lǐng)域各種大型項目的開發(fā)中。本課程選用Python作為計算思維實現(xiàn)的平臺。在完成了課堂的思維訓練,得到了問題求解的數(shù)學表達式后,我們要求學生在課后挑選其中一個思維訓練題,畫出流程圖,并通過程序?qū)崿F(xiàn)算法,解決問題。在算法實現(xiàn)的過程中,我們要求學生打印出過程變量,如使用二分法進行排序,我們可以打印出數(shù)組在二分和排序過程中的動態(tài)變化過程,使用遞歸算法解決爬樓梯問題時,可以打印出各層遞歸結(jié)構(gòu)中的輸入和輸出變量,通過觀察過程量的變化,有助于學生理解算法思路。
在學生完成了程序練習后,我們會對學生的程序進行檢查和反饋,選取具有代表性的程序,從算法流程,正確性和復雜度幾個角度進行解讀和分析,幫助學生進一步加深對計算思維的理解。
4 總結(jié)
隨著科技的發(fā)展,計算機技術(shù)迅速融入于各行業(yè)領(lǐng)域。計算思維的培養(yǎng)對于培養(yǎng)高素質(zhì)的計算機領(lǐng)域人才非常重要,我們將計算思維的培養(yǎng)貫穿于計算機科學導論的整個教學過程中,通過潛移默化的課堂思維訓練,結(jié)合課后的實踐練習,以問題推動思考,以實踐促進理論,提高了學生的學習興趣,充分調(diào)動學生的積極性和主動性,為后續(xù)相關(guān)課程的學習奠定基礎(chǔ)。
參考文獻:
[1] 石云,陳聲波.培養(yǎng)計算思維的“計算機導論”混合式教學評價指標體系的構(gòu)建與實施[J].教育教學論壇,2016(5):209-210.
[2] Wing J M.Computational thinking[J].Communications of the ACM,2006,49(3):33-35.
[3] 白珍,王煜.以數(shù)學建模為核心算法設(shè)計教學中的計算思維實踐[J].中國信息技術(shù)教育,2017(S3):45-47.
[4] 張志欣,岳根霞,邢寧浩,等.如何提高醫(yī)學生的計算思維[J].新課程研究(中旬刊),2017(7):67-68.
[5] 阮靜.基于計算思維培養(yǎng)的人工智能課程設(shè)計實踐探究——以《人臉識別》一課為例[J].中國現(xiàn)代教育裝備,2021(22):18-20,23.
[6] 陳曉彬.計算思維能力培養(yǎng)視角下中職Python程序教學實踐探究[J].現(xiàn)代職業(yè)教育,2021(51):224-225.
[7] 陳利平,高金華.以計算思維為導向的計算機導論課程研究[J].福建電腦,2015,31(6):145-146.
[8] 陳國良,董榮勝.計算思維的表述體系[J].中國大學教學,2013(12):22-26.
[10] 郭永光.靈活計算,思維創(chuàng)新——淺析大學計算機基礎(chǔ)課程計算思維能力的教學策略[J].山西青年,2021(22):51-52.
[11] 酈麗.計算思維在計算機科學導論課程改革中的作用[J].電子商務(wù),2018(6):91-92.
【通聯(lián)編輯:聞翔軍】