算法作為程序設(shè)計的靈魂,從系統(tǒng)的角度去描述和解決問題,是信息技術(shù)中智能的基礎(chǔ),是中學(xué)生信息素養(yǎng)的重要組成部分和未來發(fā)展的基礎(chǔ) 。結(jié)合對于新課標(biāo)學(xué)習(xí)的心得,有以下幾個方面思考,希望與同行一起交流討論。
在教學(xué)內(nèi)容上算法的描述方法給出了三種常用的描述方法:自然語言描述、流程圖描述以及偽代碼描述,這一部分內(nèi)容在教學(xué)設(shè)計時教師應(yīng)當(dāng)強調(diào)以應(yīng)用為主,因為高一年級學(xué)生剛剛在數(shù)學(xué)課上學(xué)習(xí)過算法初步,所以在設(shè)計問題情景時可以適當(dāng)聯(lián)系數(shù)學(xué)學(xué)科,舉一些學(xué)生易于理解的例子,比如“快速計算1+2+……+100的結(jié)果”這個問題,對高一年級的學(xué)生再熟悉不過,剛看到題目時,很多學(xué)生就脫口說出答案“5050”,這使教學(xué)很自然地過渡到問題的求解方法,為后面引出課題做好伏筆,學(xué)生探究環(huán)節(jié)可以分組分別使用“自然語言描述、流程圖描述、偽代碼描述”,讓學(xué)生在學(xué)習(xí)自然語言描述方法的同時,發(fā)現(xiàn)這一描述方法的不足,為后續(xù)學(xué)習(xí)流程圖描述方法做好鋪墊。
算法的描述方法在組織教學(xué)時可以換位思考,站在學(xué)生的思維習(xí)慣角度去看待問題,舉一些具體問題作為研究內(nèi)容,把抽象的術(shù)語形象化??梢杂蒙钪械南嚓P(guān)例子(如大家都熟知的華羅庚統(tǒng)籌算法提到的燒開水泡茶的例子)來畫出流程圖,再聯(lián)系數(shù)學(xué)課上剛學(xué)過的解數(shù)學(xué)題的流程圖。在設(shè)計練習(xí)案例時,可以適當(dāng)考慮按照不同層次學(xué)生設(shè)計不同的題目,也就是分層教學(xué),避免“吃不飽” 和“吃不了”,讓不同層次學(xué)生都有所收獲。
現(xiàn)階段常用的算法描述方法可分為三種:自然語言、流程圖、偽代碼。每種方法各有千秋,很難說哪種最好,算法的正確與否必須要通過具體的程序設(shè)計語言來實現(xiàn)并得到驗證,否則算法就成了“紙上談兵”,也會給學(xué)生造成一種看不見摸不著的虛擬感。
算法初步這一模塊中語言的選擇,可以根據(jù)教學(xué)目的、現(xiàn)有條件等具體情況進行選擇,以量體裁衣的理念選擇一種適合本校學(xué)生思維特點和基礎(chǔ)的語言環(huán)境,才能取得最佳教學(xué)效果。
針對本校選用的教材是VB語言這一特點,筆者在算法描述教學(xué)中積極嘗試選擇VB作為程序設(shè)計語言,一是學(xué)生比較熟悉VB,二是符合本校學(xué)業(yè)水平測試要求,三是VB語法簡單,圖形化設(shè)計界面易學(xué)易懂,對環(huán)境要求不高,程序結(jié)構(gòu)清晰權(quán)衡各個語言特點,VB無疑是實現(xiàn)算法描述的一種語言環(huán)境的很好選擇,在 “1.3算法描述方法應(yīng)用”這一節(jié)教學(xué)設(shè)計中,筆者選擇用VB代碼實現(xiàn)算法,比如在問題“求兩個自然數(shù)的最大公約數(shù)”中,依據(jù)“輾轉(zhuǎn)相除法”(歐幾里德算法)“窮舉法”編寫兩種VB程序,組織學(xué)生分別運行測試,在實際操作中感知不同算法帶來的運算效率差距,從而讓學(xué)生體會算法優(yōu)化的重要性,既輕松學(xué)會了算法,又鞏固了VB程序設(shè)計。
算法的學(xué)習(xí)能培養(yǎng)學(xué)生的創(chuàng)新思維能力以及邏輯推理能力,可以充分發(fā)揮學(xué)生的想象力和創(chuàng)造性。因此在教學(xué)中應(yīng)當(dāng)積極探索更加有效的手段和方法,讓學(xué)生打下堅實的基礎(chǔ),算法教學(xué)有著自身的規(guī)律和特點,需要在今后的教學(xué)實踐過程中不斷探索改進。