【摘 要】本文針對高中信息技術課程的算法與程序設計模塊教學難的問題,論述算法與程序設計模塊教學策略:根據(jù)教學內容因材施教,采用任務驅動教學法;充分利用第一節(jié)課,加強算法思維訓練;與其他學科融合,夯實程序設計語言基礎;對知識進行拓展延伸,提高學生的綜合實踐能力。
【關鍵詞】算法 程序設計 教學探究
【中圖分類號】G? 【文獻標識碼】A
【文章編號】0450-9889(2021)18-0140-02
高中信息技術課程的算法與程序設計模塊,一直以來都是教學的重難點,程序設計的概念和思維方式對學生來說基本都是全新的,比較難理解,學生不知道如何運用這種思維來分析解決問題,而教師采用傳統(tǒng)的講授法教學效果不佳。高中算法與程序設計課程的教學目標是讓學生在學習過程中,運用計算機思維與方法解決生活和學習的實際問題,鼓勵學生將所學的知識積極地應用到各項實踐活動中,在實踐中創(chuàng)新,在創(chuàng)新中實踐;對算法和程序設計的作用和地位有清晰的認識,進一步體驗算法思維;掌握使用一種程序設計語言編制程序的能力。因此,在算法與程序設計的教學中,最重要的是進行基本方法的教學,加強學生的算法思維。本文基于筆者對算法與程序設計模塊教學的思考,提出相關教學策略,以便和同行交流與探討。
一、根據(jù)教學內容因材施教,采用任務驅動教學法
為了激發(fā)學生的學習主動性,調動學生的學習激情和內在潛力,在教學過程中,教師可采用基于“任務驅動”的小組協(xié)作學習的教學方法。任務驅動教學法是一種建立在建構主義學習理論基礎上的多維互動式教學法,在學生完成任務的過程中,以學生為主體,是一種探究式的學習模式,教師可以根據(jù)學生的實際設計任務,使學生處于積極的學習狀態(tài),學會運用已有的知識提出方案、解決問題,從中體驗成就感和優(yōu)越感,從而增強自信心。這種方法能夠很好地培養(yǎng)學生的自學能力、合作與創(chuàng)新精神,極大地提高學生的動手能力。
例如,在“運算符與表達式”課程中,對重難點內容“算術運算符和表達式”采用講與練結合、分組討論、練習搶答等多種教學形式,學生參與度高,能較好地掌握該內容;對“邏輯運算符和表達式”亦采用講練結合方法,加強學生的理解;對“關系運算符和關系表達式”的教學內容采用問題驅動式,讓學生帶著問題自主學習,通過練習檢驗學習效果;對“表達式的執(zhí)行順序”,通過講練結合、學生分組討論進行學習?!斑\算符與表達式”課程根據(jù)知識點的難易程度及重要程度的不同,可分別采取不同的教法、學法。通過鞏固練習、師生交流檢驗教學效果,筆者發(fā)現(xiàn)學生基本都能較好理解和掌握本節(jié)課內容,教學效果良好,也為后續(xù)語句的學習打下堅實的基礎。
二、充分利用第一節(jié)課,加強算法思維訓練
在第一節(jié)課里,教師可以從生活實例出發(fā),激發(fā)學生的學習興趣,慢慢滲入計算機算法思維,讓零基礎的學生了解并掌握計算機解決問題的方法與步驟,認識到算法的重要性,從而深刻體會算法是程序設計的靈魂。
例如,第一節(jié)課《如何用計算機解決問題》,以“韓信點兵”這個例子作為主線,分三步走,第一步和第二步先了解是如何解決“韓信點兵”這個問題,讓學生從不同的角度思考,并尋求解決問題的途徑和答案;第三步引入算法的概念,掌握用計算機解決問題的方法與步驟。
第一步,方程式解法。學生想到的方法一般是這種方法。設S為滿足要求的一個數(shù),S滿足條件為被3除余2,被5除余3,被7除余2,這樣的數(shù)即為所求的一個數(shù)。得出議程方程式“S=A*3+2,S=B*5+3,S=C*7+2”,往往此時學生發(fā)現(xiàn)無法求解。
第二步,介紹明朝數(shù)學家程大位《算法統(tǒng)宗》的口訣,“三人同行七十(70)稀,五樹梅花二一(21)枝。七子團圓正半月(15),除百零五(105)便得知”。即用3的余數(shù)乘70,5的余數(shù)乘21,7的余數(shù)乘15,三者相加,若超過105,就減掉105,一直減到得數(shù)比105小為止。這樣,所得的數(shù)就是最小解。最小解加上105的正整數(shù)倍都是解。學生可以根據(jù)口訣直接算出答案。
第三步,著重導入算法的概念、特征、描述方法,并且采用算法的三種方法來描述“韓信點兵”的解題步驟,也就是描述算法。
根據(jù)算法描述從自然語言到流程圖,到偽代碼,讓學生逐步靠近計算機語言,最后把偽代碼修改完善成一個可以到VB上運行的源代碼程序(如圖1所示),從而得到“韓信點兵”的解,和第二步的解是相一致的。讓學生感嘆古人智慧的同時,也認識算法在程序設計里的關鍵作用,并掌握描述算法的三種方法。這樣的學習過程,讓學生對計算機語言不再感到陌生和神秘,并逐漸形成計算機思維,為計算機程序設計的相關知識學習做好鋪墊。
三、與其他學科相融合,夯實程序設計語言基礎
(一)與數(shù)學學科相融合
算法知識的講解可以和數(shù)學里的算法內容進行融合教學。在程序設計里,數(shù)據(jù)的表示與處理的知識中有關常量變量、數(shù)據(jù)類型、運算符與表達式、函數(shù)等內容,都與數(shù)學有著千絲萬縷的聯(lián)系。結合學生已有的數(shù)學基礎知識來講解程序設計知識,能讓學生快速掌握程序設計里相應的知識點。
例如,在“運算符與表達式”講解過程中,算術運算符里只有“加減”兩種符號與數(shù)學里的符號表達一樣,其他運算符號不一樣,而且還增加了求余和整除兩種運算符,但運算級別與數(shù)學是一致的。通過對比學習,可以讓學生在原有的數(shù)學基礎上更好更快地掌握這部分的內容(見表1),同時通過實例來加深學生的記憶。同理,關系表達式、邏輯表達式等VB常用表達式,都可以用與數(shù)學融合教學的方法來進行講解,強調對比學習。表達式是代碼的重要組成部分,對編程的理解和掌握起到關鍵性的作用。
(二)與英語學科相融合
在開始算法與程序設計教學之初,教師往往會舉一些代碼實例,即使進行大量的注釋,仍讓學生們倍感迷茫。但是,這些代碼來自英語詞匯,此時可以引導學生學習代碼閱讀,與英語學科進行融合。VB常用窗體(Form)、命令按鈕(Command Button)、文本(Text)、標簽(Label)控件里的屬性、方法與事件的講解,可以結合英文單詞進行理解。程序的三個基本結構中,選擇結構語句if...then...else、循環(huán)結構語句for...to...next和do...while等,及一些常用的語句print、end和函數(shù)left()、mid()等,都可以采用這種方式。在程序結構講解時,可以讓學生根據(jù)實例及內容難易程度,對語句模塊、程序的三種結構模塊進行閱讀,并且逐步深入,掌握重難點。這三大內容在算法與程序設計模塊中占主體位置,其中,程序結構模塊的循環(huán)結構是重點難點,針對該內容采取多講多練的方法,一步步剖析循環(huán)結構的執(zhí)行流程,反復講解典型例子。通過分模塊進行不同層次的學習,逐一突破重難點,學生能更好地掌握算法與程序設計選修模塊的內容。
四、對知識進行拓展延伸,提高學生的綜合運用能力
拓展延伸教學是教師從基本的知識點出發(fā),通過經(jīng)典案例對知識進行延伸與擴展,培養(yǎng)學生的發(fā)散思維,提高學生的創(chuàng)造力以及綜合運用能力,營造良好的課堂氛圍。
例如,對累加的編程問題,s=1+2+3+…+100,在循環(huán)語句的執(zhí)行過程中,有一個累加的公式:s=s+i,可以對增量step進行適當變化,step為2時就是s=1+3+5+……+99的公式,再對循環(huán)變量i進行變通,變成s=s-i,s=s+1/i等此類型的題目;再把加減變成乘法得出階乘公式s=s*i(注意:s初值不能為0)。在此案例教學中,有時候代碼模板就相當于巨人的肩膀,學生可以在此基礎上通過補充修改程序模板中的關鍵代碼,逐步認識此類問題并找出規(guī)律性,歸納出一般格式加以變通。
算法與程序設計的課程教學,需要教師有極高的教學水平和綜合的教學藝術。只有不斷學習、不斷總結、不斷創(chuàng)新,教師才能提高自身的教育教學水平,達到理想的教學效果。
【參考文獻】
[1]高士娟,曹恒來.算法與程序設計[J].教學探析教與學,2013(11).
[2]于曉強,趙秀巖,閆丕濤.計算機程序設計課程中計算思維能力的培養(yǎng)[J].計算機教育,2011(13).
[3]吳斌.高中信息技術選修模塊《算法與程序設計》教學探究[J].中小學電教,2006(10).
【作者簡介】劉淀梅(1971— ),女,壯族,廣西貴港人,碩士研究生,一級教師,研究方向為信息技術。
(責編 蘇 羽)