陳福林
不管是本科院校還是高職高專,都開設了計算機程序設計語言課程。對于非計算機專業(yè)學生,可能開設了一到兩門計算機語言課程,程序設計語言課程的開設主要是計算機等級考試或某些專業(yè)課程學習的需要;而對于計算機專業(yè)學生,少則開設了三四門計算機語言類課程,多則開設了六七門,如C語言程序設計、C++程序設計、java語言程序設計、asp.net程序開發(fā)、VB語言程序設計等課程。目前,有相當部分高校在開設這些課程時,沿用老的模式,即只安排了課堂理論教學,沒有安排實踐教學。這種傳統(tǒng)教學模式,課堂中以教師講為主,學生聽為輔,從課堂的開始到結束,都是老師在灌輸理論知識,激發(fā)不了學生學習計算機程序語言課程的興趣,最終結果就是學生理論知識既沒學好,實踐能力又差。當前社會出現(xiàn)一種怪現(xiàn)象,每年從高校走出的畢業(yè)生高達幾百萬,比如2013年就高達近700萬,而企業(yè)在招聘時,招不到合適人才,有些學生又找不到工作,出現(xiàn)尷尬兩難問題,即學生就業(yè)難,企業(yè)招聘難。這兩難問題的出現(xiàn),其原因就在于高校培養(yǎng)的學生缺乏實踐能力及創(chuàng)新能力,無法適應企業(yè)的要求。如何使這兩難問題得到較好解決,是各高校管理者及教育工作者必須研究的課題。筆者多年來在計算機程序設計語言類課程的實踐教學中嘗試了“任務驅動”實踐教學法,發(fā)現(xiàn)該教學法對提高學生的實踐能力及創(chuàng)新能力有很好的效果。本文就如何把“任務驅動”教學法用于計算機程序設計語言類課程的實踐教學進行了探索、分析。
計算機程序設計語言課程“任務驅動”實驗教學法,簡單地說,就是“在實驗或實踐教學過程中,力求以任務為驅動,通過提出問題,設定實例或項目,教學過程中通過學和做,培養(yǎng)學生分析問題、解決問題的能力”。“任務驅動”實驗教學法強調,學生的學習活動必須與任務或問題相結合,以探索問題、解決問題來引導和維持學習者的學習興趣及動機,讓學生帶著任務進行學習。通俗地說,“任務驅動”實驗教學法就是要求教師在教學過程中,根據(jù)學科特點和教材的內容設計好教學案例或項目,在教學的實施過程中,以案例或項目為線索,把教學內容巧妙地隱含在教學案例或項目之中,從而激發(fā)學生的學習興趣,提高學生的實踐能力與創(chuàng)新能力,增加就業(yè)競爭力,實現(xiàn)高校人才培養(yǎng)的目標。
“任務驅動”實踐教學模式,既能體現(xiàn)教師為主導,學生為主體相結合的教學設計原則,又避免了實踐教學中到底是以教為主還是以學為主的相互矛盾,同時避免了實踐教學設計中教師主導作用和學生主體地位體現(xiàn)的相互矛盾,即“任務驅動”實踐教學既能發(fā)揮教師的主導作用,又能充分體現(xiàn)學生的主體地位,能培養(yǎng)學生的實踐能力與創(chuàng)新能力。本文以Java程序設計語言實踐教學為例,探討“任務驅動”教學法在計算機程序設計語言課程實踐教學的具體實施步驟。下圖簡要歸納出“任務驅動”教學法在計算機程序設計語言課程實驗教學的實施過程。

實驗教學的實施過程圖
實踐教學是根據(jù)學科的特點,以及教學的目的和要求而開展的實踐活動。實踐教學相對于理論教學,更具綜合性、直觀性和創(chuàng)新性,是培養(yǎng)學生實踐能力、創(chuàng)新能力、增強學生就業(yè)競爭力的關鍵環(huán)節(jié),是整個教學工作的一部分,其質量好壞直接關系到人才培養(yǎng)質量的高低。計算機程序設計語言課程是計算機專業(yè)課程中實踐性強、趣味濃的課程,要求同學們通過計算機程序設計語言課程理論的學習及實踐操作,能夠編寫程序解決實際問題。實踐教學的最終目的就是要求學生經(jīng)過三年或四年的學習,使其自身的實踐能力得到加強,創(chuàng)新能力得到提升,畢業(yè)時能適應企業(yè)的要求,實現(xiàn)順利就業(yè)。
本文提出的“任務驅動”實踐教學分為課堂實踐教學與課外實踐教學。課堂實踐教學時間一般根據(jù)課程教學大綱和課程特性來定,也可以根據(jù)課堂理論教學進度與課程內容結構來定。課外實踐教學時間視教師與任務設定小組而定,短則一個學期,長則一個學年。最理想的課外實踐教學時間為同步于該課程開設的時間。因為課外實踐時間短了,同學們完成不了實踐任務,達不到課外實踐教學要求,而如果課外實踐時間長了,則影響教師其他課程的教學。
1.課堂實踐任務設計。課堂實踐教學的目的是檢驗同學們對理論知識的吸收、消化情況。課堂實踐教學過程中布置的實踐任務要緊跟課堂理論教學,因此,教師在設計實踐任務時,必須把握好時間節(jié)點以及實踐任務的難易程度,不能照本宣科,不假思索地把課本中的例題、練習或輔助教材實踐指導中的內容作為實踐任務布置給學生。設計實驗任務時,必須注意教材各章節(jié)知識點的銜接,每次所做實驗都應該突出相應主題,任務的難度應該要有“樓梯式”的上升。
下面以Java程序設計語言為例,淺析課堂實踐任務的設計。Java語言是當前最成熟的網(wǎng)絡編程語言,基于Java語言的各種技術已經(jīng)擴展到信息領域的每個角落。Java程序設計教程版本雖多,但內容結果安排基本一樣:第一部分講述Java語言的特點及Java開發(fā)環(huán)境的安裝與配置;第二部分講述Java語言的基本語法及語句結構;第三部分講述Java語言面向編程的有關知識;第四部分講述Java語言的常用庫類及使用;第五部分講述Java的圖形編程及輸入輸出流知識;第六部分講述通過JDBC訪問數(shù)據(jù)庫的知識;第七部分講述Java語言的網(wǎng)絡編程知識。總而言之,通過課堂實踐教學讓同學們加深對理論知識的理解,能用所學知識編些小程序。通過小程序的正確運行,讓同學有成功感,從而激發(fā)他們學習計算機語言類課程的興趣。
2.課外實踐任務設計。本文講述的課外實踐教學是指根據(jù)課堂理論的教學進度,在課堂理論教學的幾個星期內對學生進行分組,每一小組設定一個項目負責人,然后給每小組分配不同的項目或系統(tǒng),要求學生在規(guī)定的時間內用本學科的知識進行開發(fā)。課外實踐教學的目的是培養(yǎng)同學們使用知識的串聯(lián)能力、實踐能力及創(chuàng)新能力。課外實踐任務設計對老師提出了更高的要求。任務設計時首先要充分考慮到要完成該任務或項目涉及哪些計算機專業(yè)知識,學生是否掌握這些專業(yè)知識,規(guī)定時間內能夠完成多大規(guī)模的“項目”,“項目”的難度是否適合,等等。課外實踐對老師自身的要求也進一步提高。教師要有很深的“項目”開發(fā)功底,對學生在項目設計、程序編寫、項目測試過程中遇到的問題要能幫學生及時解決。這種教學方式表面上看對學生的實踐能力及創(chuàng)新能力提出了高要求,實際上對參與該課程理論教學及實踐指導教師的要求也提高了。具體體現(xiàn)在:一是需要教師有很高的專業(yè)素養(yǎng);二是教師要有豐富的項目開發(fā)經(jīng)驗,有大量的項目庫,能夠提供多個“項目”供學生分組選擇。
不管是課堂實踐還是課外實踐,老師必須實施動態(tài)跟蹤監(jiān)控,督促學生定時定量完成實踐教學任務。課內實踐任務可以采用抽查的辦法進行監(jiān)控。具體方法為老師采用隨機的方式對學生進行抽查,當某位同學被抽查到時,要求其通過多媒體方式向老師和所有同學講述實驗過程,展示實驗結果,同時對程序代碼進行解釋說明。課外實踐任務可以采用定期要求學生對布置的小組教學任務進行講解和演示的方式進行動態(tài)監(jiān)控。在講解的過程中為了防止有些同學濫竽充數(shù),老師可以采用隨機點名的方法要求同學們來對項目的實施過程、完成情況進行分析、講解和展示。
為了實現(xiàn)任務實踐驅動教學的目的,提高“任務驅動”式實踐教學的有效性,在任務實踐驅動教學的過程中必須加強對學生的考核。考核的方式可以根據(jù)學校或院系制定的制度來進行,如可以給學生每次的實踐成績進行打分,把每次打出的分值進行累加,累加之和作為期末成績的一部分。但考核不能僅以最終的實驗結果進行評定,特別是對課外實踐,要根據(jù)學生對項目的分析、問題的分解、項目的設計、程序的編寫、實驗結果等所有環(huán)節(jié)給每個項目小組進行合理評價考核。
自2005年來,筆者根據(jù)計算機語言程序設計課程的特點,對如何運用“任務驅動教學法”進行計算機語言程序設計類課程的實踐教學進行深入的探討與研究。經(jīng)過多年“任務驅動”實踐教學發(fā)現(xiàn),利用“任務驅動教學法”進行實踐教學,可以激發(fā)學生的學習興趣,培養(yǎng)學生問題分析、項目設計和問題解決的能力,提高學生的實踐能力、做大項目的能力及創(chuàng)新能力,最終增強就業(yè)競爭力,使學生順利就業(yè)。