国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

思源 思徑 思異 思辨:基于CDIO 的編程思維培養(yǎng)路徑探索
——以中職計(jì)算機(jī)專業(yè)學(xué)生python 教學(xué)為例

2021-04-29 12:38:24劉曉梅張鳳鳳杭州市富陽區(qū)職業(yè)教育中心
灌籃 2021年31期
關(guān)鍵詞:流程圖代碼編程

劉曉梅 張鳳鳳 杭州市富陽區(qū)職業(yè)教育中心

一、編程思維培養(yǎng)是計(jì)算機(jī)語言教學(xué)的內(nèi)核

編程語言只是一種在特定情境下讓計(jì)算機(jī)執(zhí)行某種操作的實(shí)現(xiàn)工具。隨著時代的發(fā)展,編程語言不斷涌現(xiàn),計(jì)算機(jī)程序員需要具備不斷學(xué)習(xí)新的編程語言的能力,而這種能力來源于程序員對計(jì)算機(jī)編程思想(俗稱算法)的理解和掌握,即具備了編程思維。編程思維絕不是對算法的生搬硬套,而是對同一個問題提出多種解決方案,并構(gòu)建最佳路徑的能力。但在教學(xué)過程中,筆者發(fā)現(xiàn)中職學(xué)生缺少編程思維。面對程序,他們常常死記硬背代碼,而不是理解算法的真正含義,于是題目稍加變動,就會無從下手。隨著知識的增多,背代碼顯然會增加學(xué)生的學(xué)習(xí)負(fù)擔(dān),使其產(chǎn)生畏難情緒、抵觸心理。更重要的是,隨著時代發(fā)展,編程語言日新月異,沒有形成編程思維的學(xué)生是無法完成知識的更新,難以適應(yīng)計(jì)算機(jī)技術(shù)的飛速發(fā)展。

因此,筆者認(rèn)為對程序語言的教學(xué)中,學(xué)生編程思維的培養(yǎng)是教學(xué)的重中之重。筆者在python 語言的教學(xué)過程中,積極思考編程思維培養(yǎng)的關(guān)鍵要素,嘗試將CDIO 工程教育理念融入課堂,構(gòu)建編程思維的培養(yǎng)路徑,創(chuàng)新課堂教學(xué)方法,推動學(xué)生從學(xué)知識到用知識,幫助學(xué)生學(xué)會思考,善于思考,勇于思考,逐漸建立編程思維。

二、編程思維培養(yǎng)是以思維訓(xùn)練為核心的教學(xué)

(一)編程思維培養(yǎng)的要素分析

編程思維是指一種高效解決問題的思維方式。它并不是編寫程序的技巧,而是一種能在頭腦中快速分解問題,并用計(jì)算機(jī)語言來實(shí)現(xiàn)的思維過程。對《python 語言》的學(xué)習(xí)來說,編程思維主要體現(xiàn)在對排序、窮舉、遞歸等基本算法的理解和運(yùn)用。具體地,筆者將編程思維能力歸納為思源、思徑、思異、思辨四個能力要素的體現(xiàn),即理解算法來源,知道算法實(shí)現(xiàn)邏輯,會用不同途徑的程序?qū)崿F(xiàn)算法,能在不同場景下應(yīng)用算法。

(二)編程思維培養(yǎng)的路徑構(gòu)建

依據(jù)編程思維能力要素,筆者在編程思維培養(yǎng)的路徑構(gòu)建過程中借鑒了CDIO 工程教育模式。CDIO 工程教育模式包含構(gòu)思(Conceive)、設(shè)計(jì)(Design)、實(shí)現(xiàn)(Implement)和運(yùn)作(Operate)四個方面的內(nèi)容。把產(chǎn)品開發(fā)的整個過程融合成一個項(xiàng)目,強(qiáng)調(diào)項(xiàng)目完成過程中學(xué)生的主動參與性,課程體系之間的相關(guān)性。CDIO 教育模式符合中職計(jì)算機(jī)專業(yè)python 教學(xué)項(xiàng)目教學(xué)的基本思想。

基于CDIO 教育模式,以培養(yǎng)學(xué)生編程思維能力思源、思徑、思異、思辨四要素為目標(biāo),在程序語言的教學(xué)過程中立足于對實(shí)際應(yīng)用項(xiàng)目需求的解決,在項(xiàng)目實(shí)施過程中,通過知原理、建模型、調(diào)代碼、試應(yīng)用四個教學(xué)環(huán)節(jié)訓(xùn)練和建構(gòu)學(xué)生編程思維。知原理即激活學(xué)生的思維,探究解決問題的本源;建模型即通過邏輯模型縷清解決問題路徑;調(diào)代碼即用編程語言實(shí)現(xiàn)邏輯模型,分析解決問題的方法,優(yōu)化實(shí)現(xiàn)問題的過程;試應(yīng)用即能夠在不同使用場景中,快速辨別應(yīng)用的算法,并整理解決問題的方案。

圖1 編程思維培養(yǎng)的路徑構(gòu)建

三、編程思維培養(yǎng)是遵循知識內(nèi)化規(guī)律的學(xué)習(xí)過程

培養(yǎng)編程思維的過程應(yīng)該遵循學(xué)生認(rèn)識和思維的發(fā)展規(guī)律,依托學(xué)生已有知識體系,逐步構(gòu)建由抽象思維到程序化思維的轉(zhuǎn)變,進(jìn)而形成編程思維?;贑DIO 教學(xué)模式的編程思維培養(yǎng)路徑,以活動激活舊知、以建模表述理論、以編碼實(shí)現(xiàn)邏輯,以應(yīng)用完成內(nèi)化。四個環(huán)節(jié)一脈相承,緊密相連,即符合學(xué)生認(rèn)知過程,也符合學(xué)生思維發(fā)展。

(一)思源-知原理:抽象原理具體化

學(xué)生對于編程的恐懼常是因?yàn)椴焕斫馑惴ǖ脑恚瑢W(xué)生來說算法原理晦澀難懂,對教師來說難以表達(dá),學(xué)生通常霧里看花,知其一卻不知其二。筆者認(rèn)為讓學(xué)生能夠知原理,是學(xué)習(xí)編程語言的基礎(chǔ)和關(guān)鍵,過程中應(yīng)基于學(xué)生原生認(rèn)知,從生活中取材,采用游戲、動畫、圖片、軟件、頭腦風(fēng)暴等多種形式的活動來直觀展示算法的運(yùn)行過程,幫助學(xué)生學(xué)習(xí)和理解。

案例1:游戲中學(xué)算法——二分查找算法之原理分析

環(huán)節(jié)一:玩游戲

此環(huán)節(jié)采用游戲活動,讓學(xué)生通過玩猜數(shù)字游戲體會二分查找算法的原理。游戲玩法如下:兩個同學(xué)一組,甲在0-100之間選擇一個數(shù)字,請乙猜,每次給出大了或者小了的提示,直至乙猜到數(shù)字,用時最短的小組獲勝。

環(huán)節(jié)二:描述游戲通關(guān)法寶

學(xué)生游戲過程中,會發(fā)現(xiàn)每次猜中給定范圍區(qū)域內(nèi)的中間值,通過中間值確定數(shù)字,猜數(shù)的次數(shù)最少,速度最快。

環(huán)節(jié)三:引入二分查找算法核心思想

教師在學(xué)生描述游戲通關(guān)法寶的基礎(chǔ)上,總結(jié)二分查找算法的原理:通過查找范圍的中間值與待查數(shù)字相比較以確定以一次查找范圍。

教師再將學(xué)生游戲過程用賦值動畫的形式展示給學(xué)生,此時學(xué)生對抽象的賦值動畫一看即懂,為后面的建模做充分準(zhǔn)備。

實(shí)踐表明,游戲活動使抽象枯燥的原理變得立體易懂,激活了學(xué)生的學(xué)習(xí)熱情,讓學(xué)生感受到了沉浸式學(xué)習(xí)的樂趣。使過去很多教師認(rèn)為只可意會不可言傳的算法思想變?yōu)榭赏?、可思,大大降低了學(xué)生學(xué)習(xí)的難度。

(二)思徑-建模型:具體原理邏輯化

通過上一環(huán)節(jié)的活動,學(xué)生已經(jīng)能理解算法的原理,但此時,頭腦中的原理是具體的、非程序化的,無法直接用程序化的語言代碼表達(dá)出來,這就需要借助流程圖或建模圖等形式將文字化的原理轉(zhuǎn)變成為程序化的思維。該環(huán)節(jié)教師需要引導(dǎo)學(xué)生將操作分塊,轉(zhuǎn)變?yōu)榱鞒糖逦牧鞒虉D或建模圖,幫助學(xué)生建構(gòu)邏輯思維。

案例2:沙盤流程圖——二分查找算法之流程圖建構(gòu)

通過上一環(huán)節(jié)的學(xué)習(xí),學(xué)生表述出二分查找算法的原理:在一個有序列表中,將表中間位置記錄的值與查找值相比較,如果兩者相等,則查找成功;否則利用中間位置將表分成前、后兩個子表,如果中間位置記錄的值大于查找值,則繼續(xù)查找前一子表,否則查找后一子表。重復(fù)以上過程,直到找到滿足條件的記錄,即查找成功。當(dāng)設(shè)定的下邊界值大于上邊界值時,則查找不成功。

環(huán)節(jié)四:沙盤模擬

流程圖可以形象直觀的展示算法實(shí)現(xiàn)的操作流程,幫助學(xué)生掌握分析問題和解決問題的方法,但是中職學(xué)生編程基礎(chǔ)薄弱,直接讓學(xué)生在紙上畫出流程圖,難度較大,筆者采用“拼流程圖”的形式,讓學(xué)生以貼代畫、以選代答。

步驟1:教師首先需預(yù)先給出流程圖所用符號的含義和功能表。引導(dǎo)學(xué)生快速記憶。

步驟2:引導(dǎo)學(xué)生將二分查找算法的步驟進(jìn)行細(xì)化和拆分,提煉出若干個關(guān)鍵問題。

關(guān)鍵問題 解決方案確定查找范圍 用條件判斷確定上、下限范圍用循環(huán)反復(fù)改變查找范圍待查范圍里中間值與待查結(jié)果值進(jìn)行比較確定范圍里的中間值中間值與待查數(shù)據(jù)進(jìn)行比較結(jié)果輸出中間值與待查數(shù)據(jù)相等,查找成功,輸出相應(yīng)位置上限值大于下限值,查找失敗

步驟3:請學(xué)生利用教具,構(gòu)建二分查找算法的沙盤化流程圖。

圖2 學(xué)生探究沙盤化流程圖

案例3:建模流程圖——運(yùn)用遞推算法求解爬樓梯問題

在活動階段,通過動畫形式幫助同學(xué)們理解爬樓梯問題的原理:到達(dá)第n 級臺階的方法種數(shù)=到達(dá)第n-1 級臺階的方法種數(shù)+到達(dá)第n-2 級臺階的方法種數(shù)。如何通過圖示來表達(dá)層與層之間的關(guān)系,幫助學(xué)生建構(gòu)算法的模型?教師利用建模圖,幫助學(xué)生理清算法中各變量之間的關(guān)系。如圖3所示。

圖3 為爬樓梯問題建模圖

虛線框①、虛線框②、虛線框③、虛線框④清晰地呈現(xiàn)了遞推運(yùn)算的過程,而且每一個虛線框內(nèi)的圖形結(jié)構(gòu)完全相同,說明可以設(shè)計(jì)循環(huán)代碼,實(shí)現(xiàn)自動重復(fù)每個虛線框內(nèi)的運(yùn)算過程。

建模環(huán)節(jié)有效修補(bǔ)了傳統(tǒng)教學(xué)中從具體思維直接進(jìn)入代碼編程環(huán)節(jié)的思維斷層,流程圖和建模圖可以幫助學(xué)生理清算法原理,使頭腦中的經(jīng)驗(yàn)思維可視化、流程化,降低了編碼編寫的難度,有效克服中職學(xué)生的代碼編寫的畏難心理。

(三)思異-調(diào)代碼:邏輯建構(gòu)程序化

通過構(gòu)建模型圖,學(xué)生已經(jīng)進(jìn)一步建立了結(jié)構(gòu)化程序的基本概念,但把思維模型轉(zhuǎn)換為具體的編碼需要學(xué)生具備較扎實(shí)的語言知識基礎(chǔ)。筆者在教學(xué)過程中,通過程序填空、程序改錯等方法,由淺入深,由易到難引導(dǎo)學(xué)生建立語法的概念,逐步完善代碼編寫。程序填空聚焦知識難點(diǎn),降低操作難度,重建學(xué)生自信。

案例4:程序填空識語法重點(diǎn)

根據(jù)二分查找算法流程圖,讓學(xué)生用該算法來解決實(shí)際問題,在有序列表中[2,4,8,13,14,15,18,20]中,查找在鍵盤上輸入的任意數(shù)字,返回查找結(jié)果。

圖4 根據(jù)流程圖進(jìn)行程序填空

案例5:大家來找茬探究運(yùn)行過程

環(huán)節(jié)一:布置任務(wù)

學(xué)生構(gòu)建了爬樓梯問題的建模圖之后,筆者設(shè)計(jì)了“大家來找茬”競賽環(huán)節(jié),找出并修改程序中錯誤,使程序能夠正常運(yùn)行,并實(shí)現(xiàn)特定功能。

運(yùn)用遞推算法求解爬樓梯問題。假設(shè)一段樓梯共有6 級臺階,小明一步最多能上2 級臺階,那么小明走完這段樓梯一共有多少種方法?

環(huán)節(jié)二:修改代碼

學(xué)生采用小組學(xué)習(xí)法,調(diào)試修改代碼,并展示講解代碼修改的方法。教師根據(jù)學(xué)生答題情況給予指導(dǎo)。

程序思維的形成需要學(xué)生大量地閱讀他人編寫的優(yōu)秀代碼,但對初學(xué)編程的學(xué)生而言,閱讀代碼的難度較高,學(xué)生常望而卻步,而“大家來找茬”的形式非常適合中職學(xué)生的學(xué)情,既能降低代碼閱讀難度,引領(lǐng)學(xué)生形式閱讀代碼的習(xí)慣。錯誤點(diǎn)的設(shè)置緊緊圍繞學(xué)生的易錯點(diǎn),疑難點(diǎn),通過代碼訂正,有效幫助學(xué)生加深理解和記憶,同時,培養(yǎng)學(xué)生自主調(diào)試程序的能力。

(四)思辨-試應(yīng)用:程序表達(dá)能力化

知識的遷移是編程思維形成的重要體現(xiàn)。讓學(xué)生能夠本身觸類旁通、由此及彼,構(gòu)建出學(xué)科的知識鏈、問題鏈和方法鏈。筆者在教學(xué)中注重分析知識與知識之間的內(nèi)在聯(lián)系,培養(yǎng)學(xué)生舉一反三的能力,并對接程序設(shè)計(jì)崗位需求,從實(shí)際應(yīng)用出發(fā),引入真實(shí)的案例,讓學(xué)生嘗試運(yùn)用所學(xué)知識解決實(shí)際問題。

案例6:最值與排序

求最大值問題:在跳水比賽中,有5 個評委評分,通過程序求出5 個評委中的最高分,并將最高分放到最前面。

學(xué)生在學(xué)習(xí)最值算法后,可以用單層循環(huán)實(shí)現(xiàn)在列表中找到最大值,并存到列表中第一個位置。

教師引問:如何求其余4 個評委中的最高分,并將其放到前數(shù)第二個位置?此時學(xué)生可以模仿最值算法將第二大的值放到列表中第二個位置。

教師追問:以此依推,每次求出其余評委中的最高分,并將其放到相應(yīng)的位置?觀察程序之間的關(guān)系?能否將程序進(jìn)行整合?

學(xué)生在完成教師提出的問題過程中,很容易發(fā)現(xiàn)程序的核心程序都是相同的,由于每次求最值的位置不同,所以循環(huán)控制變量不同??梢岳醚h(huán)嵌套來整合程序,進(jìn)而得出排序程序。

最值算法是選擇排序算法的一次運(yùn)行結(jié)果,此時由此及彼的講解選擇排序算法,學(xué)生更容易理解。循序漸進(jìn)的完成代碼編寫,挖掘算法之間的內(nèi)在聯(lián)系,更有效地幫助學(xué)生形成知識體系,提高程序表達(dá)能力,實(shí)現(xiàn)知識遷移。

案例7:在python 中實(shí)現(xiàn)網(wǎng)站的用戶登錄界面功能

1.項(xiàng)目需求:運(yùn)行登錄界面程序,通過鍵盤上輸入正確的用戶名和密碼,會顯示“歡迎登錄”提示;用戶名輸入錯誤,則會提示“用戶名不存在,請重新輸入”,如果用戶名錯誤輸入次數(shù)超過3 次,則程序結(jié)束;密碼輸入錯誤,會提示“密碼輸入錯誤,請重新輸入”,如果輸入錯誤密碼次數(shù)超過3 次,則程序結(jié)束。

2.關(guān)鍵問題及解決方法分析:

學(xué)生在教師的引領(lǐng)下分解項(xiàng)目開發(fā)過程中需要解決的關(guān)鍵問題及解決方法。雖然學(xué)生已經(jīng)基本掌握了二分查找算法原理和程序編寫,但并不能靈活地應(yīng)用到實(shí)際需求中,因此,筆者在教學(xué)過程中,注重對學(xué)生問題分解和尋找問題方法的能力培養(yǎng)。

3.分層實(shí)現(xiàn)

學(xué)生分別完成三個層次的任務(wù),分別為“利用二分查找法在二維列表中查找用戶名”“在二維列表中查找用戶名對應(yīng)的密碼”“控制用戶名和密碼的查找次數(shù)”。三個任務(wù)均完成后即完成項(xiàng)目功能。

三個任務(wù)對應(yīng)項(xiàng)目完成的三個階段,逐層深入。同學(xué)們可以根據(jù)自己的能力選擇完成任務(wù),完成任務(wù)后,由各組派代表展示相應(yīng)代碼,并講解代碼編寫方法和相關(guān)知識,力爭每一個都學(xué)生都能在課堂上根據(jù)自己的能力學(xué)到盡量多的知識。

四、實(shí)踐反思

編程思維培養(yǎng)是教師創(chuàng)新教學(xué)方式的切入點(diǎn)。計(jì)算機(jī)程序教學(xué)絕對不是單純的知識點(diǎn)講解,而是一種邏輯思維的構(gòu)建和創(chuàng)新思維的培養(yǎng)。這需要教師首先要具有創(chuàng)新的教學(xué)理念,積極地運(yùn)用數(shù)字化的教學(xué)資源、信息化教學(xué)手段、生活化的教學(xué)活動使抽象的原理、隱性的運(yùn)行過程直觀呈現(xiàn)。

編程思維培養(yǎng)是學(xué)生職業(yè)道路發(fā)展的奠基石。筆者通過編程思維培養(yǎng)路徑的探索和嘗試,激發(fā)了學(xué)生python 程序語言學(xué)習(xí)興趣,不再談編程而色變,學(xué)生通過參與活動,逐步構(gòu)建編程思維,并涌現(xiàn)出一批python 程序設(shè)計(jì)的愛好者。在“2021年中等職業(yè)學(xué)校師生職業(yè)能力大賽”的“python 程序設(shè)計(jì)”項(xiàng)目中,所任教的學(xué)生中有4 人在市級競賽中獲獎,5 人在區(qū)級競賽中獲獎,為他們的專業(yè)發(fā)展建立良好的開端。

同時,編程思維的培養(yǎng)不是一蹴而就的,需要教師堅(jiān)持以學(xué)生為主體,找準(zhǔn)學(xué)生思維的卡點(diǎn),精準(zhǔn)施教,同時通過豐富的教學(xué)活動和有效的激勵機(jī)制建設(shè),讓學(xué)生能夠保持學(xué)習(xí)的熱度。筆者將在教學(xué)實(shí)踐中繼續(xù)探索教學(xué)資源整合和開發(fā),更好地服務(wù)于學(xué)生進(jìn)行編程思維的訓(xùn)練。

猜你喜歡
流程圖代碼編程
我家有只編程貓
我家有只編程貓
我家有只編程貓
我家有只編程貓
創(chuàng)世代碼
動漫星空(2018年11期)2018-10-26 02:24:02
創(chuàng)世代碼
動漫星空(2018年2期)2018-10-26 02:11:00
創(chuàng)世代碼
動漫星空(2018年9期)2018-10-26 01:16:48
創(chuàng)世代碼
動漫星空(2018年5期)2018-10-26 01:15:02
專利申請審批流程圖
河南科技(2016年8期)2016-09-03 08:08:22
專利申請審批流程圖
河南科技(2016年6期)2016-08-13 08:18:29
东乡族自治县| 蓬莱市| 建昌县| 唐河县| 博爱县| 鹤岗市| 志丹县| 九江县| 奈曼旗| 山阴县| 祁阳县| 凤山市| 娄烦县| 延津县| 龙川县| 福贡县| 和田市| 延安市| 察雅县| 桂平市| 衡南县| 凌海市| 宝坻区| 孟村| 长武县| 宜君县| 昌邑市| 清河县| 镇康县| 孙吴县| 萨迦县| 哈尔滨市| 水富县| 右玉县| 周宁县| 揭阳市| 察隅县| 元阳县| 修文县| 龙川县| 句容市|