馮滿堂,王瑞杰
(1.南京市莫愁中等專業(yè)學校,南京210017;2.江蘇鳳凰數(shù)字傳媒有限公司,南京210009)
隨著教育部《關(guān)于全面深化課程改革落實立德樹人根本任務(wù)的意見》頒布,核心素養(yǎng)成了學科課程標準、課堂教學的指引,并成為學生培養(yǎng)質(zhì)量評判的標準。如普通高中新課程標準(2017 版)最顯著的特點是凝練了各學科的核心素養(yǎng),并以此來引領(lǐng)各學科課程標準的制定和各學科的課堂教學。核心素養(yǎng)只是一個理論框架,只是指明了學生接受完相應(yīng)學段的學校教育后應(yīng)具有的面對未來的必備品格和關(guān)鍵能力。而核心素養(yǎng)的落地,仍需課程和課堂教學為載體。理應(yīng)把核心素養(yǎng)融合到相應(yīng)學科的課程教學中。
《C 語言程序設(shè)計》是五年制高職移動互聯(lián)應(yīng)用技術(shù)專業(yè)、軟件應(yīng)用技術(shù)專業(yè)的一門專業(yè)基礎(chǔ)課,是后續(xù)課程(Java、數(shù)據(jù)結(jié)構(gòu)、Python 等)的前導(dǎo)課程。目前該門課程的教學過多的關(guān)注了語法、語句等知識點的教學,忽視了像計算思維、深度學習和自主學習等核心素養(yǎng)的培養(yǎng)。本文嘗試著把核心素養(yǎng)引入到《C 語言程序設(shè)計》的課堂教學中,圍繞著計算思維這一核心素養(yǎng)要素開展核心素養(yǎng)視野下的課堂教學研討,以期提高《C 語言程序設(shè)計》課堂教學的成效性。
“核心素養(yǎng)是學生在接受相應(yīng)學段過程中,逐步形成的適應(yīng)個人終身發(fā)展和社會發(fā)展需要的必備品格與關(guān)鍵力。”《中國學生發(fā)展核心素養(yǎng)》從三個方面(文化基礎(chǔ)、自主發(fā)展和社會參與)六大要素(人文底蘊、科學精神、學會學習、健康生活、責任擔當和實踐創(chuàng)新)十八個要點來進行論述中國學生發(fā)展應(yīng)具備的核心素養(yǎng)。核心素養(yǎng)作為教育培養(yǎng)人才的主要目標,主要回答了“培養(yǎng)什么樣的人”的問題,這一目標可以帶動和引領(lǐng)課程改革,變革教學方式,推動課程教學評價,是知識、技能、態(tài)度、情感價值觀的綜合體[1]。要想體現(xiàn)核心素養(yǎng)的育人目標,必須立足課堂教學,讓學科特有的素養(yǎng)在學生身上體現(xiàn)和落實。
對于核心素養(yǎng)的界定與涵義,不同國家和組織有不同的描述,但基本上都突出強調(diào)了學習思維能力的培養(yǎng)和在此基礎(chǔ)上的情感態(tài)度價值觀等非知識本身的強調(diào)。而思維能力是學習者對世界的理解與改造水平,對其培養(yǎng)是學科課程教學特定的責任和目標。高中信息技術(shù)課程標準將計算思維、信息意識,數(shù)字化學習與創(chuàng)新等作為其學科的核心素養(yǎng)[2]?!吨械嚷殬I(yè)學校信息技術(shù)課程標準》也將“計算思維”作為學科的核心素養(yǎng)納入其中,而作為專業(yè)基礎(chǔ)課的《C 語言程序設(shè)計》理應(yīng)做出自己的回應(yīng),將計算思維作為自己學科應(yīng)當承載的核心素養(yǎng)之一。
計算思維最早由周以真教授提出,即“計算思維是一個明確問題和制定解決方案的思維過程,由此解決方案就可以表示為能夠被信息處理代理有效執(zhí)行的形式”,為了使計算思維的培育在實際的課堂教學中具有可操作性,ISTE 和CSTA 聯(lián)合給出了一個具有可操作性的定義,即“計算思維是一個問題解決的過程,包括制定問題、分析數(shù)據(jù)、抽象、設(shè)計算法、選擇最優(yōu)方案,推廣六大要素”[3-4]。這個定義表明計算思維的培育應(yīng)聚焦于問題的解決,使其在實際的課程教學中應(yīng)用具有了很強的可操作性。但是計算思維培育不能僅僅停留在問題解決這些知識與技能培育的目標上,還應(yīng)該融入像情感、態(tài)度等核心素養(yǎng)要素。美國麻省理工學院媒體實驗室從三個維度分析和定義了計算思維的新概念,即計算概念、計算實踐和計算觀念。和目前課程的三維課程目標相呼應(yīng),就《C 語言程序設(shè)計》課堂教學來講,具體對應(yīng)關(guān)系如下表所示[3-4]。更好地詮釋了計算思維不僅僅是算法和編程,還有像態(tài)度、寬容、與他人溝通交流解決問題的能力等,也從另一個側(cè)面說明核心素養(yǎng)視野下的計算思維是在差異化的問題情境中,分析問題、設(shè)計算法,利用C 語言編程實現(xiàn)問題解決,形成解決問題的思維過程,并應(yīng)用在其他相似的情境中。
表1 計算思維與三維目標對應(yīng)表
《C 語言程序設(shè)計》作為理工科專業(yè)的一門專業(yè)基礎(chǔ)課,其知識點(常量、變量、運算符、表達式、選擇、循環(huán)、數(shù)組、函數(shù)、結(jié)構(gòu)體等)多,理論深(面向結(jié)構(gòu)化程序設(shè)計),靈活性強,實踐性(編程實踐)要求高。但教師在日常的課堂教學中過于關(guān)注知識點的教學,過于關(guān)注C 語言本身語法的教學,沒有很好地處理好程序語言、算法與應(yīng)用的關(guān)系,更別說像自主創(chuàng)新和學會學習等與核心素養(yǎng)相匹配的教學,造成學生“一講都會、一做都錯”的課堂教學窘境,學生普遍感覺不知“為何學?”、“學何用?”。造成課堂教學成效性不高。為改變這種課堂教學現(xiàn)狀,本文嘗試著把核心素養(yǎng)融入到《C語言程序設(shè)計》的課堂教學中,圍繞著計算思維這一核心要素,提出了教學內(nèi)容聚焦問題解決、算法設(shè)計引入算法原型工具、編程實踐驗證問題解決,知識遷移融會貫通的“四位一體”的《C 語言程序設(shè)計》課堂教學的新模式,具體的模式如圖1 所示。并以“尋找所有水仙花”為例開展核心素養(yǎng)視野下的課堂教學實踐,以期培養(yǎng)學生的計算思維,培育學生的核心素養(yǎng),提升《C 語言程設(shè)計》課堂教學的成效性。
圖1 四位一體的課堂教學模式圖
(1)教學內(nèi)容聚焦問題解決
計算思維就是指使人們能夠按照計算機的工作思路來解決現(xiàn)實生活中的問題,形成解決問題方案的一種思維活動,核心在于聚焦問題的解決,形成解決問題的思維活動。程序設(shè)計卻能夠很好的展示解決問題的思維過程,培育學生積極主動的利用計算機來解決現(xiàn)實生活問題的意識,提高計算機思維能力。在《C 語言程序設(shè)計》的課堂教學中,教學內(nèi)容的選擇應(yīng)聚焦問題的解決,問題的難度應(yīng)符合學生的最近發(fā)展區(qū),最好是符合學生生活背景的真實問題。針對比較復(fù)雜的問題,教師應(yīng)引導(dǎo)著學生按照問題解決的思路分解成若干個小問題,且這些小問題應(yīng)該具有遞進性和梯隊化,從簡單的問題不斷思考,隨著一個個問題的解決,形成解決問題的思路,構(gòu)建相應(yīng)的模型,形成解決問題的方案,培育學生的計算思維能力?,F(xiàn)在以“尋找所有水仙花”為例來進行說明。
“尋找所有水仙花”是《C 語言程序設(shè)計(第五版)》(譚浩強著)第五章“循環(huán)結(jié)構(gòu)程序設(shè)計”中的一個經(jīng)典例子,這個例子在教材中重點考核學生對循環(huán)知識的掌握情況,而在核心素養(yǎng)理念的引領(lǐng)下,《C 語言程序設(shè)計》這門課程除了傳授給學生學科知識外,還應(yīng)培育學生和這門課程相匹配的核心素養(yǎng),如計算思維,等等,因此,這節(jié)課設(shè)計時融入了枚舉算法的內(nèi)容在內(nèi),并根據(jù)問題解決的過程,把問題解成如下兩個問題。
問題1:如何判斷一個數(shù)是水仙花數(shù)?
問題2:如何尋找所有水仙花數(shù)?
針對問題1 的解決,教師可以繼續(xù)引導(dǎo)學生進行思考,想判斷一個3 位正整數(shù)x 是否是水仙花?應(yīng)該想辦法截取其百位數(shù)、十位數(shù)、個位數(shù)?以使其滿足各位數(shù)字立方和等于該數(shù)x 本身。進而引導(dǎo)學生利用已有知識想辦法得出如下解決方案:個位數(shù)=x%10;十位數(shù)=x/10%10;百位數(shù)=x/100;這個方案不是唯一的,可以引導(dǎo)學生發(fā)散思維,得出多種不同的答案。
針對問題2 的解決,教師應(yīng)在問題1 的基礎(chǔ)上繼續(xù)引導(dǎo)學生進行思考,問題1 解決了如何判斷一個三位正整數(shù)是否是水仙花的問題,對于尋找所有水仙花,首先讓學生明白水仙花數(shù)是一個三位數(shù),水仙數(shù)一定存在于100 至999 的范圍之內(nèi),如果采用鍵盤從100開始往后一個個輸進電腦,利用問題1 的方案一定能夠找出所有的水仙花,這種一個一個試的辦法,可以利用C 語言的循環(huán)來解決,同時引出了一個經(jīng)典算法“窮枚法”。采用以上問題分解的方法來解決問題,比一開始從循環(huán)知識點角度來講解,然后上機編程,不管是學生的接受度還是學生計算思維的培養(yǎng)都要好很多。
(2)算法設(shè)計引入原型工具
對于程序設(shè)計來說,有了問題的解決方案,并不代表一定能夠利用C 語言編程實現(xiàn),尤其對五年制高職生來講,本身自己就是初中生畢業(yè),中考的失利者,再加上C 語言本身語法知識點復(fù)雜,在上機實踐的過程中會遇到形形色色的問題和錯誤,這些意想不到的問題和錯會消耗學生大量的時間,并打擊他們學C 語言的積極性。為了方便學生把自己解決問題的思路通過C 語言編程實現(xiàn),在課堂教學的實踐過程中引入算法設(shè)計原型工具——Raptor。
Raptor 是一款可以進行算法設(shè)計的原型工具環(huán)境,讓學生用基本的流程圖符號可視化的快速有序推理的創(chuàng)建算法,不用在語法上花費太多精力,就可以快速的把解決問題的思考過程用算法的形式設(shè)計出來。和傳統(tǒng)的流程圖相比,不用像C 語言那樣需要編譯調(diào)試運行程序,可以直接在Raptor 環(huán)境中基于流程圖進行執(zhí)行,驗證和調(diào)試算法,且能動態(tài)的展示算法的執(zhí)行過程,變量值的變化,避免算法的邏輯錯誤,并助于提高學生的計算思維[5-6]。借助Raptor 表達算法,可以激發(fā)學生的學習激情和興趣,培養(yǎng)學生的邏輯思維能力,促進學生的思考與創(chuàng)新,“尋找所有從水仙花數(shù)”的流程圖如圖2 所示。
(3)編程實踐驗證問題解決
借助于算法原型工具設(shè)計的流程圖,學生會很快實現(xiàn)“尋找所有水仙花數(shù)”的C 語言代碼,把代碼輸入到C 語言編譯器中,運行調(diào)試代碼,驗證問題的解決,由于借助了Raptor,在程序的編寫調(diào)試過程中,減少了邏輯上的錯誤,增強了學生的成就感,提高了學生學習的主動性和積極性,使自己全身心的投入到問題解決之中。
(4)知識遷移融會慣通。
計算思維是一種思維活動,是人類利用計算機領(lǐng)域的方法來解決現(xiàn)實中的問題,并形成解決問題的方案,且能有效的遷移到與之相關(guān)的其他問題的解決當中,也就是做到知識遷移,能夠融會慣通的應(yīng)用所學知識。這就要求在實際的課堂教學中要差異化的創(chuàng)設(shè)教學情境。針對“尋找所有水仙花數(shù)”這一問題,如果只是停留在循環(huán)語句的使用這一層面,那就太淺層化了,應(yīng)在解決這一問題的過程中,引導(dǎo)學生總結(jié)出所蘊含的“窮枚算法”,并遷移到其他如“暴力破解密碼”、“換零錢”、“雞兔同籠”、“百錢百雞”等相關(guān)問題情境中。
在《C 語言程序設(shè)計》課堂教學中傳授學科知識固然重要,但更重要的在于利用學科知識在差異化的情境中解決問題,并關(guān)注問題解決的思維過程和方法[7],形成計算思維。本文在分析了核心素養(yǎng)與計算思維的涵義和特征,結(jié)合《C 語言程序設(shè)計》課程特點的基礎(chǔ)上,提出了“四位一體”的教學模式,并結(jié)合“尋找所有水仙花數(shù)”這一具體教學案例進行實踐,取得了不錯的效果,對促進高職《C 語言程序設(shè)計》課堂教學改革具有重要意義。
圖2 尋找所有水仙花數(shù)的流程圖