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

?

在親歷計(jì)算機(jī)解決問題的全過程中發(fā)展計(jì)算思維

2019-11-20 09:05程建娜
中國(guó)信息技術(shù)教育 2019年20期
關(guān)鍵詞:編程程序算法

程建娜

在數(shù)字時(shí)代,數(shù)據(jù)既是信息的載體,也是計(jì)算機(jī)加工的對(duì)象。信息技術(shù)的發(fā)展,在某種意義上就是構(gòu)造、存儲(chǔ)、計(jì)算相應(yīng)數(shù)據(jù)的能力的發(fā)展。從應(yīng)用角度看,信息技術(shù)已然成為人們?nèi)粘I?、學(xué)習(xí)和工作中不可或缺的工具,我們習(xí)慣利用計(jì)算機(jī)來解決各式各樣的問題,可以說,“程序驅(qū)動(dòng)”的數(shù)字化工具不僅改變了我們的生活與學(xué)習(xí)方式,而且改變著我們的認(rèn)知結(jié)構(gòu)與思維品質(zhì)。因而,在“算法與程序?qū)崿F(xiàn)”模塊內(nèi)容的教學(xué)中,教師要引領(lǐng)學(xué)生在學(xué)習(xí)處理數(shù)字化環(huán)境下復(fù)雜性問題的過程中,深層次理解這些技術(shù)工具,知道它們的工作方法和應(yīng)用流程,明白其中的數(shù)據(jù)是如何進(jìn)行“計(jì)算”的,并能用計(jì)算機(jī)編程方式進(jìn)行問題求解,從中發(fā)展計(jì)算思維。在學(xué)習(xí)中,既要強(qiáng)調(diào)對(duì)算法這一關(guān)鍵學(xué)科知識(shí)的學(xué)習(xí),也要注重形成運(yùn)用計(jì)算思維解決問題的關(guān)鍵能力的培養(yǎng)。實(shí)際上,無論算法的學(xué)習(xí)還是計(jì)算思維的培養(yǎng),都不是孤立存在的,也不能單獨(dú)教學(xué)習(xí)得,它們滲透在計(jì)算機(jī)解決問題的過程中。我們要有意識(shí)地幫助學(xué)生親歷計(jì)算機(jī)解決問題的全過程,從分析問題、設(shè)計(jì)算法并編程實(shí)現(xiàn)的過程中,逐步培養(yǎng)計(jì)算思維。

理解用計(jì)算機(jī)解決問題的全過程,把握算法與程序的關(guān)系

用計(jì)算機(jī)解決問題需要借助編程的方式實(shí)現(xiàn),但這并不等同于簡(jiǎn)單的程序設(shè)計(jì)的教學(xué),不是純粹的代碼編程。在教學(xué)中,教師要首先幫助學(xué)生理解用計(jì)算機(jī)解決問題的一般過程與方法,明晰這種問題解決方式的特點(diǎn)和優(yōu)勢(shì),從中把握算法、程序和計(jì)算思維之間的關(guān)系,以便在后續(xù)的學(xué)習(xí)中遷移應(yīng)用。

例如,教師可以通過常見問題解決的兩種方式對(duì)比,如比較“路口交通指揮問題”中交警用手勢(shì)指揮交通和用“程序控制”的信號(hào)燈指揮交通的異同,幫助學(xué)生理解解決問題的方式并不唯一。使用人工方式進(jìn)行問題處理時(shí),人們主要是借助解決同類問題的經(jīng)驗(yàn)尋找求解方法,帶有較強(qiáng)的嘗試、試探的意圖,一種方法行不通,就換一種方法。而用計(jì)算機(jī)解決問題時(shí),則需要在問題分析的基礎(chǔ)上,具體規(guī)劃求解方案并設(shè)計(jì)出具體的算法步驟,然后根據(jù)制訂的這些步驟編寫程序,最終實(shí)現(xiàn)問題的自動(dòng)化求解。在對(duì)比分析中,教師要引導(dǎo)學(xué)生歸納出其中問題解決的共性過程,即需要先對(duì)問題進(jìn)行分析,隨后隱性或顯性地設(shè)計(jì)出解決方案,然后再進(jìn)行問題解決,并且在此過程中還要根據(jù)解決的結(jié)果隨時(shí)修正過程。同時(shí)教師要讓學(xué)生在對(duì)比中對(duì)用計(jì)算機(jī)解決問題的過程有更深入的理解,計(jì)算機(jī)解決問題并不神秘,其中最為核心的關(guān)鍵環(huán)節(jié)是算法的設(shè)計(jì),計(jì)算機(jī)需要按照制訂好的算法步驟執(zhí)行相應(yīng)的指令,而編寫程序?qū)嶋H上就是實(shí)現(xiàn)算法的過程。

通過這樣的分析,學(xué)生很容易區(qū)分“算法”和“程序”,理解二者間的關(guān)系,進(jìn)而能透過生活中技術(shù)應(yīng)用的“現(xiàn)象”認(rèn)識(shí)其“本質(zhì)”。同時(shí),理解了用計(jì)算機(jī)解決問題的過程,學(xué)生也就不會(huì)再過于糾結(jié)程序設(shè)計(jì)語(yǔ)言的選用,不會(huì)畏難于某些代碼的編寫。實(shí)際上,算法與程序的學(xué)習(xí),并不是要求學(xué)生系統(tǒng)地掌握程序設(shè)計(jì)專業(yè)知識(shí),更不是要把他們培養(yǎng)成編程專家,而是希望學(xué)生在體驗(yàn)計(jì)算機(jī)解決問題的過程中,能真切認(rèn)識(shí)到從“工業(yè)社會(huì)思考與解決問題方式”到“信息社會(huì)思考與解決問題方式”變革的內(nèi)在原因,理解當(dāng)今數(shù)字化世界的運(yùn)轉(zhuǎn)方式,能有意識(shí)且負(fù)責(zé)任地使用信息化工具,掌握信息化社會(huì)中解決問題的一般方法。

親歷用計(jì)算機(jī)解決問題的全過程,關(guān)注問題分析與算法設(shè)計(jì)

在以往的編程解決問題的教學(xué)中,經(jīng)常會(huì)出現(xiàn)這樣的狀況:學(xué)生對(duì)問題還沒有理解清楚,還沒思考出具體的問題解決步驟,就急于編寫程序代碼。對(duì)他們而言,寫出代碼就等于解決了問題,但實(shí)際上這種學(xué)習(xí)的結(jié)果是學(xué)生一直在盲目地修改代碼,而問題卻最終也無法得到很好地解決,能力也沒得到發(fā)展,甚至產(chǎn)生學(xué)習(xí)挫敗感。因此,在教學(xué)中教師一定要引導(dǎo)學(xué)生關(guān)注對(duì)問題的分析和設(shè)計(jì)算法的過程,所謂“謀定而后動(dòng)”,只有明確要做什么和確定好如何做,后面的編程實(shí)現(xiàn)才能“水到渠成”。

1.分析問題,關(guān)注問題的可計(jì)算處理

在解決問題前,教師要幫助學(xué)生弄清楚需要計(jì)算機(jī)解決什么問題,即“做什么”的問題,并確定解決問題的相關(guān)因素,如已知信息、求解目標(biāo)和條件關(guān)系等。問題分析的過程可以采用抽象的方法提取問題關(guān)鍵細(xì)節(jié),并轉(zhuǎn)化成可計(jì)算的問題。此時(shí),不同的問題對(duì)應(yīng)的抽象模型可能不同。例如,分析紅燈變綠燈問題,可以從問題解決過程入手,確定出初始狀態(tài)、中間狀態(tài)和終止?fàn)顟B(tài);而分析畫50個(gè)同心圓問題,可以從已知條件(同心圓的個(gè)數(shù)和相鄰?fù)膱A的半徑差)出發(fā),明確與求解目標(biāo)之間的隱含關(guān)系(同心圓的圓心相同)。

2.分解問題,著眼于問題解決的全過程

當(dāng)要解決的問題比較復(fù)雜時(shí),需要引導(dǎo)學(xué)生先將問題按照求解過程分解為若干個(gè)相對(duì)獨(dú)立的功能,然后再對(duì)各個(gè)特定功能分別進(jìn)行算法設(shè)計(jì)(描述出詳細(xì)的操作步驟)。在分解問題時(shí)可以采用“分而治之”的方法,按照問題求解過程或者系統(tǒng)功能分解為若干功能模塊(每個(gè)模塊實(shí)現(xiàn)每個(gè)模塊的特定功能)。其中,如果分解的某些功能仍然比較復(fù)雜,還可再進(jìn)行細(xì)分,從而建立多層的結(jié)構(gòu)體系。通過這樣的問題功能分解,可以幫助學(xué)生著眼于問題解決的全過程,先全局后局部,先整體后細(xì)節(jié),先抽象后具體,分層逐步解決。教學(xué)中需要注意的是,問題分解的角度并不唯一,不同的角度所得的功能分解的結(jié)果不盡相同,我們要允許和鼓勵(lì)學(xué)生進(jìn)行多樣化的問題思考。

3.聚焦算法設(shè)計(jì),突出算法在問題解決中的核心作用

在以往的教學(xué)中,有的教師經(jīng)常會(huì)弱化算法的學(xué)習(xí),將其作為某一知識(shí)內(nèi)容,學(xué)習(xí)后就不再過多關(guān)注,不太強(qiáng)調(diào)其在編程解決問題中的作用,甚至在后面的編程解決問題中也常常脫離算法的設(shè)計(jì),直接進(jìn)行程序語(yǔ)句的編寫。其實(shí),每個(gè)程序都是用來解決特定的計(jì)算問題。其中,計(jì)算處理數(shù)據(jù)的過程是程序最重要的組成部分,也是算法實(shí)現(xiàn)的關(guān)鍵。因此,在教學(xué)中,教師要引導(dǎo)學(xué)生重視問題解決的算法設(shè)計(jì),要先將算法設(shè)計(jì)并表示出來。實(shí)際上,設(shè)計(jì)算法的過程,也是顯性化、明確化地展現(xiàn)問題求解的過程,是學(xué)生思維結(jié)果的可視化呈現(xiàn),便于其直觀分析問題解決過程的合理性和有效性,對(duì)后續(xù)編寫程序、實(shí)現(xiàn)問題解決起到至關(guān)重要的作用。

教學(xué)中,我們還要注意問題解決的算法設(shè)計(jì)許多時(shí)候不是一蹴而就的,而是迭代完善的。教師要根據(jù)具體問題,通過提問、追問等方式,逐步引導(dǎo)學(xué)生思考,最終實(shí)現(xiàn)問題解決。例如,在編寫體重指數(shù)“計(jì)算器”程序的過程中,可以先讓學(xué)生編寫“計(jì)算體重指數(shù)”的程序,從中理解“輸入數(shù)據(jù)—處理數(shù)據(jù)—輸出數(shù)據(jù)”的算法步驟的執(zhí)行過程。然后提出問題:如何實(shí)現(xiàn)對(duì)用戶的體重指數(shù)給出等級(jí)判定?從而引出迭代任務(wù)“評(píng)定體重指數(shù)等級(jí)”,這時(shí)學(xué)生先要對(duì)不同用戶的體重等級(jí)情況進(jìn)行不同的分支表示,用流程圖描述出該算法,再根據(jù)分支情況使用適合的程序語(yǔ)句進(jìn)行編程。最后,教師還可以引導(dǎo)學(xué)生自己發(fā)現(xiàn)程序還存在哪些問題,有學(xué)生會(huì)提出:該程序運(yùn)行一次只能判定一個(gè)人的體重指數(shù)等級(jí),不能實(shí)現(xiàn)多次判斷。由此,進(jìn)入程序的再次迭代完善,教師引導(dǎo)學(xué)生思考哪些操作需要重復(fù)進(jìn)行,如何控制重復(fù)的次數(shù),從而進(jìn)入循環(huán)結(jié)構(gòu)的學(xué)習(xí),并利用循環(huán)語(yǔ)句完成最終的體重指數(shù)“計(jì)算器”程序。這樣的學(xué)習(xí)過程,既體現(xiàn)了真實(shí)的問題解決過程,即不斷發(fā)現(xiàn)問題、解決問題,也讓學(xué)生在潛移默化中理解了迭代的思想。

4.理解算法的多樣性及其對(duì)問題解決效率的影響

教學(xué)中,教師既要強(qiáng)調(diào)問題解決中算法設(shè)計(jì)的多樣、解決同一問題可能會(huì)有不同的算法、不同算法求解的過程可能有所不同,又要引導(dǎo)學(xué)生分析不同的算法在問題解決效率上的差異,同時(shí)還要突出計(jì)算機(jī)程序?qū)崿F(xiàn)算法自動(dòng)化的優(yōu)勢(shì),幫助學(xué)生理解數(shù)字化工具在解決問題中的核心特征。例如,“從若干個(gè)相同的零件中找出質(zhì)量較輕的零件”活動(dòng)的問題求解算法并不唯一,可以用一一比較的枚舉法,也可以采用二分法。顯然,當(dāng)零件個(gè)數(shù)n足夠大,如n=10000時(shí),后一種方法解決問題的速度更快。這里,教師也可以提供程序,讓學(xué)生通過運(yùn)行程序,填寫實(shí)驗(yàn)報(bào)告,具體感受算法的效率,從而加深對(duì)算法在計(jì)算機(jī)解決問題中作用的認(rèn)識(shí)。

借助真實(shí)的問題情境,更自如地參與到用計(jì)算機(jī)解決問題的過程中

在教學(xué)中,教師要有意識(shí)地提供一些生活中真實(shí)的數(shù)字化應(yīng)用案例,引導(dǎo)學(xué)生思考其中問題解決的核心,將算法和程序的學(xué)習(xí)與具體的生活應(yīng)用場(chǎng)景相關(guān)聯(lián)。因而,學(xué)生不再是僅僅學(xué)習(xí)純粹的知識(shí)技能,更重要的是對(duì)真實(shí)情境中技術(shù)實(shí)現(xiàn)原理進(jìn)行剖析,從而揭開數(shù)字化工具背后的“神秘面紗”。學(xué)生不再是被動(dòng)地使用技術(shù),而是能夠真正理解這些技術(shù)的實(shí)現(xiàn),從而更自如地應(yīng)用技術(shù)來解決問題。例如,在學(xué)習(xí)程序三種基本結(jié)構(gòu)時(shí),可以讓學(xué)生嘗試解釋某些現(xiàn)實(shí)場(chǎng)景應(yīng)用背后的技術(shù)實(shí)現(xiàn)思想,如空調(diào)的定時(shí)開關(guān)機(jī)、車庫(kù)的自動(dòng)抬桿、音樂播放器反復(fù)播放歌單曲目等,幫助學(xué)生理解其中蘊(yùn)含的順序、選擇和循環(huán)思想。再如,在學(xué)習(xí)解析算法時(shí),可以基于真實(shí)情境提出案例分析,如手環(huán)中給出的運(yùn)動(dòng)消耗卡路里值是如何計(jì)算出來的?打車軟件中預(yù)估車費(fèi)是怎么實(shí)現(xiàn)的?通過生活實(shí)際應(yīng)用,分析其中程序功能實(shí)現(xiàn)的關(guān)鍵技術(shù),學(xué)生在認(rèn)識(shí)算法、編程實(shí)現(xiàn)的同時(shí),也進(jìn)一步提高對(duì)數(shù)字化工具背后技術(shù)思想和方法的感悟,甚至激發(fā)進(jìn)一步改進(jìn)完善技術(shù)的興趣。

計(jì)算思維是一種處理信息問題的重要思考方式,是未來科技創(chuàng)新的重要助推力,更是21世紀(jì)學(xué)生自主發(fā)展的核心素養(yǎng)之一。發(fā)展計(jì)算思維,能讓學(xué)生像信息技術(shù)專家一樣思考,理解信息社會(huì)問題,并成長(zhǎng)為合格的“數(shù)字公民”。信息技術(shù)的學(xué)習(xí)雖然包括了技能學(xué)習(xí),但不等同于單純的操作訓(xùn)練,還必須讓學(xué)生掌握必要的應(yīng)用方法,以便在不同情境下,能應(yīng)用這些技能解決問題。因此,在教學(xué)中不僅要強(qiáng)調(diào)學(xué)生動(dòng)手參與實(shí)踐,嘗試編寫程序、調(diào)試運(yùn)行代碼,更要注重引導(dǎo)學(xué)生進(jìn)行問題的分析和算法的設(shè)計(jì),讓其“綜合應(yīng)用”各種知識(shí)(甚至跨學(xué)科知識(shí))進(jìn)行真實(shí)“問題解決”,使其親歷編程解決問題的全過程,重視對(duì)用計(jì)算機(jī)解決問題過程中方法的分析與梳理。其中無論是用抽象的方法分析問題,用分而治之的思想分解問題,用算法步驟描述問題解決過程,還是編寫程序?qū)崿F(xiàn)自動(dòng)化求解,甚至調(diào)試運(yùn)行程序等,都是計(jì)算思維能力發(fā)展的核心要素,都需要學(xué)生在親歷計(jì)算機(jī)解決問題的全過程中逐步掌握。

猜你喜歡
編程程序算法
玩游戲?qū)W編程,Blockly Games上手玩
給Windows添加程序快速切換欄
紡織機(jī)上誕生的編程
Travellng thg World Full—time for Rree
簡(jiǎn)化化學(xué)平衡移動(dòng)教學(xué)程序探索
編程屋完成數(shù)百元萬天使輪融資
學(xué)編程,先畫畫
“程序猿”的生活什么樣
學(xué)習(xí)算法的“三種境界”
算法框圖的補(bǔ)全
南部县| 邹城市| 新安县| 吕梁市| 太原市| 日土县| 衡阳县| 寿阳县| 从江县| 晋江市| 翁牛特旗| 上栗县| 平武县| 阿合奇县| 绵阳市| 师宗县| 城步| 龙口市| 金堂县| 永州市| 高平市| 海淀区| 瓮安县| 白玉县| 安西县| 临高县| 米林县| 临朐县| 原平市| 保亭| 寿光市| 格尔木市| 永兴县| 普兰店市| 乌兰察布市| 文山县| 阿城市| 虞城县| 黎川县| 西青区| 错那县|