信息技術(shù)與課程整合已不是什么新鮮事了,一般都是利用信息技術(shù)作為輔助教學手段創(chuàng)設(shè)各學科的教學情境,以達到較好的教學效果。但是,筆者今天所說的“課程整合”別具一格,那就是將數(shù)學知識整合到信息技術(shù)的教學中來。
對學生來說,程序設(shè)計等知識枯燥乏味。作為信息技術(shù)教師,也最怕學生對這部分內(nèi)容不感興趣。如何將學生的學習熱情調(diào)動起來,讓學生主動、投入地學習呢?筆者想到一個妙法——讓學生應用其他學科知識更好地學習程序設(shè)計。我們知道,學生在小學、初中階段都學過不少數(shù)學和物理知識。在這些知識中,有一部分是學生只知結(jié)論不知原委的。如初中時,學生都用過《數(shù)學用表》查對數(shù)、正弦值、余弦值、開方、立方等。但對于《數(shù)學用表》中的結(jié)果是怎么來的,經(jīng)筆者調(diào)查,很少有學生考慮過,即便有學生考慮過,也不會進行深究。這是第一堂程序設(shè)計課,筆者就要拿《數(shù)學用表》“說事兒”,用它來創(chuàng)建教學情境。
一、教學情境設(shè)計
師:同學們,今天我們來學習程序設(shè)計。所謂程序,就是一段能完成一定功能的代碼。我們常說的操作系統(tǒng)、Office等都是程序。不過它們已經(jīng)不是代碼,而是編譯成了可執(zhí)行文件。所謂可執(zhí)行程序,就是除操作系統(tǒng)之外,不需要其他軟件的協(xié)助就可以單獨執(zhí)行的程序。程序設(shè)計也就是設(shè)計程序或編制程序。程序設(shè)計好后都是代碼,需要編譯成可執(zhí)行文件。想必大家在初中都用過《數(shù)學用表》,你有沒有想過《數(shù)學用表》是怎么編出來的?為什么書上沒有介紹其方法呢?在我們的程序設(shè)計課上,我們要解決這個神秘的問題。同學們有沒有信心?
這樣的教學情境抓住了學生想一探究竟的心態(tài),把學生牢牢地吸引到課堂教學中來,所有學生都想知道這個問題是怎樣得到解決的。
二、師生探究手工開平方的方法
在接下來的時間里,我引導學生探究手工開方的幾種方法。
師:比如,我現(xiàn)在問大家:等于多少?大家肯定會告訴我是1.732。那么,1.732又是如何得到的呢?請根據(jù)你們學過的知識手工計算一下。
只見學生都動手忙了起來,卻沒有一個學生最終能得出結(jié)果,他們似乎一點思路也沒有。幾分鐘后,我問學生有沒有辦法手工計算,他們異口同聲地回答:沒有。
師:這個看似簡單的問題確實把大家難住了。其實,《數(shù)學用表》上的數(shù)值也是利用計算器計算出來的。計算器本身不會計算,是人們事先編制好了計算的程序存入計算器,再讓計算器執(zhí)行一下而已。我們程序設(shè)計的最終目的就是要編制一個能開方的程序。
師:(方法引導)要想讓計算器會開方,我們自己必須會開方。我們先來看第一種最簡單的開方方法,也是計算量最大的一種。我們知道大于1的數(shù)的平方根小于本身,0到1之間的數(shù)的平方根大于它本身。對于大于1的數(shù),它的平方根肯定在1到這個數(shù)之間。我們用折半法去找那個平方根。例如:求。介于和(也就是2)之間,我們?nèi)1=1,x2=2(x1用來保存較小值,x2用來保存較大值),接下來要進行一個循環(huán),再取x1和x2的平均值,(x1+x2)/2=1.5,由于1.5的平方小于3,所以將1.5賦給x1,否則賦給x2,x1的值不變。繼續(xù)這個循環(huán),直到x2-x1的值小于某一個特定的數(shù),如0.000001。這時,我們想要的精度夠了,就可以停下來了。
筆者要求學生利用這種方法試求一下,求到1.732即可停止。幾分鐘后,大部分學生均已算到1.732。這個方法確實比較麻煩。此時,教師提示:我們來看一下古人是怎樣做的。師生共同推算《九章算術(shù)》里介紹的方法:增乘開方法(推算方法略)。
學生在了解了這種方法以后,先是對古人當時就有這樣的水平感到驚訝,隨即對自己作為一個生活在現(xiàn)代的高中生,居然連這么一個小問題都解決不了感到困惑。(其實,這里面涉及高次方程的求解問題,在中學教材中沒有介紹。)
接下來,教師請學生先做一個相似的練習,例如:。等學生熟練后,按原來的分組再探究它的原理。在開始探究之前,教師點撥:一個兩位數(shù),十位是a,個位是b。那么,它的平方可以寫成: 。根據(jù)這個提示,學生很快得到了結(jié)果。我讓學生整理一下,和剛才的例子進行對比,如下圖:
至此,關(guān)于手工開方的方法已經(jīng)介紹了兩種。教師繼續(xù)引導學生:既然大家知道求根號的手工算法,那么,我們能不能編一個程序來實現(xiàn)它?這樣,我們就不必再花太多的力氣來進行手工計算了。
三、學生探究編制程序解決開方問題
數(shù)學上的原理懂了,就像是程序設(shè)計上有了算法,為下一步程序設(shè)計打下了基礎(chǔ)。程序設(shè)計的一般步驟就是:分析問題-設(shè)計算法-編制程序-調(diào)試運行-檢測結(jié)果。在接下來的幾周里,在求索心理的驅(qū)動下,學生學習了程序設(shè)計的基礎(chǔ)知識。這些知識對于如何編制上述兩個開方運算來說,已經(jīng)足夠了。因此,在最后一堂程序設(shè)計課上,我要求學生以小組合作探究的方式,分別編制兩個求開方的程序。所用的軟件是Blitz Basic2D。
師:現(xiàn)在開始按要求編制兩個程序。具體要求是:折半查找法要求能求解大于等于1的數(shù)的平方根,增乘開方法只要求能開整數(shù)即可。最后,我們將評出編制最快和最簡單的程序。大家在編制過程中既要發(fā)揮個人的思考能力,又要交流思想,充分合作。我做你們的技術(shù)指導,如果碰到實在解決不了的問題,可以馬上請求幫助。注意先畫好流程圖,大家開始吧!
學生開始了編程,輸入、調(diào)試、討論、提問,一片繁忙的景象。在第一個程序的設(shè)計中,有的學生把精度調(diào)得過高,結(jié)果超出軟件數(shù)據(jù)類型的范圍,出現(xiàn)了死循環(huán);有的學生則使用過大的測試數(shù)據(jù),結(jié)果導致運行緩慢……由于第一個程序較簡單,沒過多久,就有小組編制完畢,要求教師檢驗。經(jīng)檢驗,結(jié)果輸出正確,學生品嘗到了成功的快樂。第二個程序中出現(xiàn)的問題就要多一些。我要求他們畫好流程圖并要標好每個數(shù)組和變量的意義,可以從開兩位數(shù)的平方開始逐漸增加,這樣不容易出錯。在編制中,學生問的最多的問題是數(shù)的分段問題、循環(huán)次數(shù)問題,筆者都一一給予解答。經(jīng)過不斷的討論和解答,終于有一個小組完成了。接著又有幾個小組也完成了任務。
師:兩種開方法有何異同?請用計算器計算一個數(shù)的平方根,再用你的兩個程序算一下,看看結(jié)果有什么不一樣。
經(jīng)過比較,學生得出結(jié)論:第一種方法計算出的結(jié)果稍有出入,計算量大;第二種方法則全為有效數(shù)字,計算量小。這是因為前者為收斂法,后者為直接求值法。
通過上述活動,學生才真正認識到任意數(shù)開方是如何實現(xiàn)的,并可以由開平方推廣到開立方。這樣的訓練,拓寬了學生的知識面,豐富了編程與數(shù)學的聯(lián)系,也使學生認識到,只有好好學習,進入大學后才能更好地理解數(shù)學、理解計算機、理解數(shù)學和計算機的聯(lián)系。
通過這次不尋常的“課程整合”經(jīng)歷,筆者深深體會到,要上好信息技術(shù)課,就要整合各種知識,創(chuàng)設(shè)實際的、合理的教學情境,激發(fā)學生去學習、去鉆研。
(作者單位:山西稷山縣稷山中學信息中心)