孫建煜
[摘 要]項目教學法是計算機課程教學中一種十分有效的方法,這種教學法對提高學生分析問題的能力、解決問題的能力及創新能力,都具有十分重要的意義。基于此,本文通過具體的應用實例,總結了項目教學法在中職校Visual FoxPro課程教學中的實施步驟及注意要點。
[關鍵詞]項目教學;Visual FoxPro課程教學;中職校
doi:10.3969/j.issn.1673 - 0194.2017.08.137
[中圖分類號]TP3-4;G712 [文獻標識碼]A [文章編號]1673-0194(2017)08-0-02
0 引 言
項目教學法是通過實施一個完整的項目而進行的教學活動,是基于建構主義教學理念的一種教學方法,與傳統的教學法相比,具有很大的區別,主要體現在三方面的轉變:由以教師為中心轉變為以學生為中心;由以課本為中心轉變為以“項目”為中心;由以課堂為中心轉變為以實際操作為中心。其目的是在教學中把理論與實踐教學有機結合起來,充分發掘學生的創造潛能,提高學生分析問題、解決實際問題的綜合能力。
項目教學法能夠極大的發揮學生學習的主觀能動性,結合微課、慕課、視頻公開課等信息化教學手段的應用,可以較好地提高教學質量,特別適用于實踐性較強的課程。近幾年,項目教學法在高職院校和中職校得到了廣泛應用。
1 Visual FoxPro課程教學中普遍存在的問題
Visual FoxPro(簡稱VFP)是一門實踐性較強的課程,它是計算機專業的必修課。在傳統的教學過程中,教師一般先介紹命令格式、功能、說明等概念,再舉例應用該命令,最后由學生上機操作進行練習驗證。由于學生實踐操作學時較少,導致學生學完這門課程只會獨立完成表單,至于如何把它們聯系起來開發成一個系統,卻是一片茫然。另外,大多數學生并不認為自己以后真的會利用VFP去開發系統,所以僅僅傾向于應付考試而淡化實際應用與開發。這也導致學生在學習過程中學習被動,只是一味模仿課本上的實例,知識點零散,對系統開發認識模糊,沒有創新,不能形成系統開發的整體概念。
2 項目教學法在中職校Visual FoxPro課程教學中的嘗試
為了解決這些矛盾,筆者在多年的計算機教學實踐中,結合教學內容和教學對象的實際情況,積極嘗試項目教學法,收獲了許多意外的驚喜,發現:學生學習以項目為中心,有明確的任務,能讓學生圍繞項目組織已學知識和學習資源,發揮學習的主動性、積極性,所完成的項目也有較高的水平。
下面就項目教學法在Visual FoxPro教學中的應用說明其實施步驟。
2.1 確定項目
如何選擇一個恰當的項目是實施項目教學法非常關鍵的一個環節。項目的確定可以是教師指定,也可以是學生根據自身的興趣愛好自行確定項目。項目是可大可小的,大到可以貫穿整個課程的教學過程,小到可以在一節課、一次課(兩節)的時間內完成。
本文的項目是在完成表單教學基本任務后,提高學生綜合運用表單以及程序設計的能力,檢驗學生相關知識和技能的掌握情況。因此,筆者準備指定一個能在一次課內完成的項目。具體項目的選擇是非常困難的,既要能涵蓋相關的知識和技能,又要讓學生感興趣,還要有一定的應用意義。思考再三,筆者選擇了“用表單實現對戰游戲”這一項目。根據學生的實際情況以及VFP課程的特性,這里選擇的對戰游戲只能是文字的,設計目標是實現輸入對戰雙方的名字,確定各角色的戰斗屬性,然后開始對戰,對戰信息顯示在表單中。
2.2 設定情景
筆者設定的情景是給一個游戲開發組開發的游戲設計對戰環節。對于這個項目,學生尤其是占班級人數較多的男生顯然是很感興趣的。
2.3 項目分析、思考與實現
筆者引導學生思考:“在設計對戰游戲時,需要哪些最基本的要素?”學生的思維十分活躍,紛紛提出了各種要素,如生命、角色名、攻擊力、防御力、速度、職業技能以及經驗等,顯然這其中有些要素并不是必需的,于是筆者帶領學生對提出的十幾種要素進行鑒別,只選出最基本、最必要的要素,如角色名、生命、攻擊、速度,并聲明其他要素可作為后期改進階段逐步完善的內容。
由學生按分析思考的結果進行設計,在設計時,筆者提醒學生,由于用到的屬性比較多,相應的文本框應采用“見名知義”的原則命名,以便于后面在代碼中的引用。
初步設計完成后,筆者問學生:“何時開始戰斗?”學生很快的反應過來,需要設計一個“開始戰斗”的按鈕。筆者接著又問“戰斗的過程由誰來控制?”“如何實現兩個角色的互相攻擊?”“是不是只攻擊一次?”“攻擊與傷害代碼是否在‘開始戰斗按鈕中?”。通過一系列的引導式提問,促使學生思考,由他們自己得出需要利用“計時器”控件來實現角色攻擊,攻擊是否結束取決于角色的“生命值”是否為零等,這一系列的提問、思考與結論,引導著學生漸進的完成項目。
2.4 設立陷阱,測試排錯
在項目的設計過程中,雖然筆者提示了可以用編輯框來實現對戰信息的顯示,但筆者故意未對這一功能的實現做詳細介紹,并設立了一個思路陷阱,如果學生按著以往的思考方式進行設計,就會落入這個陷阱中。事實上,學生果然循著思維慣性,用取代的方法實現了信息的顯示。
thisform . dzxx . vlaue = namea + " 攻擊了 " + nameb + " ,產生傷害 " + alltrim ( str ( sh ) )
這樣的結果就是對戰信息框中只顯示最后一次的戰斗信息,其他的信息全部被最后一次戰斗信息取代了。當學生發現這一現象時,筆者讓學生自己去找原因,“為什么原來的信息沒有了”,學生經過思考,發現原來的信息在上一代碼中并未保留,并據此進行了相應的修改。
thisform . dzxx . vlaue = thisform . dzxx . value + namea + " 攻擊了 " + nameb + " ,產生傷害 " + alltrim ( str ( sh ) )
為了能實現換行顯示,還可以在這些代碼的最后加上“+chr ( 13 )”,以實現“回車”的功能。
2.5 學生協作
在設計中,筆者允許學生相互幫助、協作完成,但明顯提出,希望同學能設計出自己的個性,對于完成較快的學生,還可以通過相互討論,實現對該游戲的進一步完善,例如:引入防御、職業等屬性。
2.6 學習評價
經過兩個課時的討論、操作、修改和不斷完善,學生對該項目的解決思路基本清晰。但是同學們展示的結果可能還是有些粗糙,還需要從操作便捷、界面的美觀等多方面進行考慮問題。這就要求教師在項目教學的最后環節加以引導、點撥,指出成功與不足之處,對一切可行的做法進行評論,并提出自己的做法和補充意見。如,命令按鈕的隱藏、提示信息怎樣給出更合適、背景的選擇等。最后使學生自己總結本項目所用的知識點和各自的收獲,最后寫出實驗報告,對整個項目的設計思路作個梳理。
3 結 語
在整個教學過程中,學生的思維一直十分活躍,積極性較高,完成程度也比較高,直到課后還有學生興致勃勃地討論著今天的課,這讓筆者感覺到項目教學法的確是一種尋找理論與實踐恰當結合、十分有效的教學方式,非常適合中職校的學生,這也是筆者今后重點探索、研究的方向。