◆張敏 李軍
作者:張敏,西安翻譯學(xué)院計算機(jī)科學(xué)技術(shù)教研室講師,主要研究方向?yàn)閳D形圖像處理和數(shù)據(jù)庫優(yōu)化;李軍,西安翻譯學(xué)院計算機(jī)科學(xué)技術(shù)教研室工程師,主要研究方向?yàn)橛嬎銠C(jī)網(wǎng)絡(luò)(710105)。
C語言程序設(shè)計課程具有理論性和實(shí)踐性強(qiáng)的特點(diǎn)。在教學(xué)實(shí)踐中,由于學(xué)生初學(xué)計算機(jī)語言,而C語言靈活性較大,所以學(xué)生雖然能夠掌握理論知識,但是在實(shí)際操作環(huán)節(jié)比較弱,成為學(xué)生學(xué)習(xí)C語言程序設(shè)計課程的瓶頸問題。為了提高學(xué)生的實(shí)踐操作和動手能力,培養(yǎng)學(xué)生的計算思維,在近些年的教學(xué)中也對任務(wù)驅(qū)動教學(xué)法進(jìn)行嘗試,實(shí)驗(yàn)證明,以任務(wù)驅(qū)動為導(dǎo)向的程序設(shè)計課程教學(xué),提高了學(xué)生的學(xué)習(xí)興趣,增強(qiáng)了學(xué)生的動手能力,增加了實(shí)踐經(jīng)驗(yàn),使學(xué)生與社會接軌。
任務(wù)驅(qū)動教學(xué)法的內(nèi)涵 任務(wù)驅(qū)動教學(xué)法是以建構(gòu)主義學(xué)習(xí)理論為指導(dǎo)的一種教學(xué)法,具有能夠激發(fā)學(xué)生學(xué)習(xí)興趣,有利于培養(yǎng)學(xué)生實(shí)踐能力、創(chuàng)新精神和合作意識等特點(diǎn)。程序設(shè)計課程教學(xué)注重培養(yǎng)學(xué)生的計算機(jī)應(yīng)用能力和信息素養(yǎng),因此特別適用這種教學(xué)方法。
任務(wù)驅(qū)動教學(xué)法的特征 任務(wù)驅(qū)動教學(xué)法是一種探究式教學(xué)模式,旨在對學(xué)生的創(chuàng)新能力和獨(dú)立分析問題、解決問題的能力進(jìn)行培養(yǎng),教學(xué)工作以完成一個具體任務(wù)為主線,教師教學(xué)過程簡單,學(xué)生學(xué)習(xí)任務(wù)明確,方便學(xué)生對知識點(diǎn)的掌握。學(xué)生帶著任務(wù)學(xué)習(xí),勢必有一種完成任務(wù)的緊迫感和學(xué)習(xí)動力,從而促使學(xué)生盡力在有限的學(xué)習(xí)時間內(nèi)完成知識的學(xué)習(xí),并在一定理論基礎(chǔ)上完成操作任務(wù)。這樣將具體任務(wù)與教學(xué)內(nèi)容進(jìn)行有機(jī)結(jié)合,從而使學(xué)生在完成任務(wù)的同時掌握教學(xué)內(nèi)容,實(shí)現(xiàn)知識的學(xué)習(xí)和應(yīng)用的有效結(jié)合。在掌握了一定知識的基礎(chǔ)上讓學(xué)生自己去解決問題,又培養(yǎng)了學(xué)生發(fā)現(xiàn)和解決實(shí)際問題的動手能力,調(diào)動學(xué)習(xí)積極性和主動性[3]。
2006年3月,美國卡內(nèi)基·梅隆大學(xué)計算機(jī)科學(xué)系周以真教授在美國計算機(jī)權(quán)威期刊Communications of the ACM上提出“計算思維”的概念和詳細(xì)定義。2013年,周教授在接受中國信息技術(shù)教育雜志社劉向永記者訪談時對計算思維進(jìn)一步做了詮釋,隨后國外的眾多研究者對“計算思維”進(jìn)行了積極且深入的探討和研究,這些學(xué)者涵蓋計算機(jī)教育界、社會學(xué)界以及哲學(xué)界等各個領(lǐng)域,其中也包含各種學(xué)術(shù)團(tuán)體。
基于計算機(jī)技術(shù)和Internet技術(shù)的飛速發(fā)展,培養(yǎng)大學(xué)生計算機(jī)綜合能力,提高大學(xué)生使用程序語言解決問題的能力,是當(dāng)今大學(xué)生計算機(jī)基礎(chǔ)教育的核心點(diǎn)之一。根據(jù)《中國高等院校計算機(jī)基礎(chǔ)教育課程體系2008》的規(guī)定,高校程序設(shè)計基礎(chǔ)課程的學(xué)習(xí)目標(biāo)是:
1)學(xué)習(xí)問題求解的思路和方法,即算法;
2)理解計算機(jī)是如何具體實(shí)現(xiàn)算法的,即如何才能有效利用計算機(jī)編程。
因此,在程序設(shè)計課程教學(xué)任務(wù)中,不僅要使學(xué)生掌握程序語言的語法規(guī)則來編寫程序,更重要的是掌握算法思想與問題求解的思路,而計算思維正是使學(xué)生掌握使用計算機(jī)科學(xué)對問題進(jìn)行求解的一種思維方法和能力。
任務(wù)驅(qū)動教學(xué)法使程序設(shè)計的理論知識任務(wù)化 傳統(tǒng)的程序設(shè)計課程教學(xué)中,往往注重學(xué)生理論知識的教學(xué),但學(xué)生很難將枯燥的理論與實(shí)踐相結(jié)合。任務(wù)驅(qū)動教學(xué)將學(xué)生解決具體問題的能力的培養(yǎng)作為教學(xué)重點(diǎn),在教學(xué)過程中將理論教學(xué)的知識點(diǎn)容納在任務(wù)中,學(xué)生在完成任務(wù)前需要掌握一定的理論知識,在完成任務(wù)的過程中更深入地掌握所學(xué)理論知識,并能夠在問題的解決過程中得到很好的利用。
任務(wù)驅(qū)動教學(xué)法促進(jìn)程序設(shè)計課程的實(shí)踐教學(xué) 國家教育部門提出引導(dǎo)一批普通本科高校向應(yīng)用技術(shù)型高校轉(zhuǎn)型,旨在培養(yǎng)高級應(yīng)用型人才。應(yīng)用型本科具有鮮明的技術(shù)應(yīng)用性特征,需以應(yīng)用型人才培養(yǎng)為核心設(shè)置課程,針對地方經(jīng)濟(jì)需要和學(xué)院特點(diǎn),在學(xué)生學(xué)習(xí)理論知識的同時,還要掌握更多實(shí)踐能力。在課程教學(xué)中,除了掌握一定了理論基礎(chǔ)知識外,希望學(xué)生能得到更多“實(shí)戰(zhàn)”機(jī)會,增強(qiáng)實(shí)踐動手能力,將來更快適應(yīng)工作崗位。
任務(wù)驅(qū)動教學(xué)法在學(xué)生給出任務(wù)解決方法后,學(xué)生積極動手去完成自己的任務(wù),從而鍛煉動手能力和實(shí)踐能力,在學(xué)習(xí)了理論知識后能夠在實(shí)踐中得到驗(yàn)證,這正契合了應(yīng)用型人才的培養(yǎng)要求。
任務(wù)驅(qū)動教學(xué)法培養(yǎng)學(xué)生的計算思維 在任務(wù)驅(qū)動教學(xué)中,教師的教和學(xué)生的學(xué)都以完成一個具體任務(wù)為主線。教師提出問題,以任務(wù)的形式發(fā)送給學(xué)生;學(xué)生在接收到任務(wù)后對問題進(jìn)行分析,最后得出解決問題的辦法,從而調(diào)動主動性和積極性,在問題解決中給出自己的看法,在同一個任務(wù)的不同解決方法中選擇最佳方法。多次的問題解決的嘗試,使學(xué)生具有了實(shí)際問題的解決的能力,培養(yǎng)了學(xué)生的創(chuàng)造性思維和程序設(shè)計的計算思維。
任務(wù)驅(qū)動教學(xué)法實(shí)施步驟 任務(wù)驅(qū)動教學(xué)是教師、學(xué)生、任務(wù)三者的積極互動過程。實(shí)施任務(wù)驅(qū)動教學(xué)法的第一步就是設(shè)計任務(wù),這是此教學(xué)法得以實(shí)現(xiàn)的重要環(huán)節(jié)。任務(wù)的設(shè)計應(yīng)遵循典型性、實(shí)踐性、針對性和系統(tǒng)性原則。而啟發(fā)引導(dǎo)工作是任務(wù)實(shí)施的關(guān)鍵,在任務(wù)實(shí)施過程中要引導(dǎo)并鼓勵學(xué)生在掌握理論知識的前提下主動思考,大膽探索。最后需要教師和學(xué)生一起總結(jié)任務(wù)完成過程中的問題,采用互評和自評的方式來發(fā)現(xiàn)問題,從而提出改進(jìn)策略,使任務(wù)驅(qū)動法的效果更好地體現(xiàn)。
任務(wù)驅(qū)動教學(xué)法在C語言程序設(shè)計課程教學(xué)中的應(yīng)用
1)任務(wù)提出及涵蓋知識點(diǎn)。
問題:將n個元素的無序序列調(diào)整為有序序列(使用簡單選擇排序算法)。
知識點(diǎn):簡單選擇排序,循環(huán)程序嵌套。
解決此任務(wù)的方式:分組討論,寫出算法思想、撰寫程序代碼。
2)任務(wù)分析及實(shí)施
任務(wù)分析:
輸入:待排序序列r[n]
功能:簡單選擇排序
輸出:升序序列r[n]
簡單選擇排序的算法思想:假設(shè)將待排序元素進(jìn)行升序排序,簡單選擇排序的基本思想是:將整個序列劃分為有序區(qū)和無序區(qū),初始時有序區(qū)為空,無序區(qū)含有n個元素;在無序區(qū)中找到值最小的元素,將它與無序區(qū)中的第一個元素交換;不斷地重復(fù)上述過程,直到無序區(qū)只剩下一個元素。
給出一個簡單選擇排序的過程示例。
Source: (46 33 67 82 10 46 9)
Select Sort:
(9) 33 67 82 10 46 46
(9 10) 67 82 33 46 46
(9 10 33) 82 67 46 46
(9 10 33 46) 67 82 46
(9 10 33 46 46) 82 67
(9 10 33 46 46 67) 82
Result: (9 10 33 46 46 67 82)
程序代碼:由于一維數(shù)組作為參數(shù),形參數(shù)組和實(shí)參數(shù)組共用同一段內(nèi)存單元,對形參數(shù)組的修改即是對實(shí)參數(shù)組的修改,因此為了觀察排序的結(jié)果,在調(diào)用函數(shù)SelectSort之前和之后分別輸出數(shù)組r[n]的值。程序如下:
#include
#de fine N 7
void SelectSort(int r[ ], int n);
int main()
{
int i, r[n] = {46,33,67 ,82 ,10 ,46, 9};
printf(“排序前的序列是:”);
for(i=0;i printf(“%5d”,r[i]); printf(“
”); SelectSort(r,N); printf(“排序后的序列是:”); for(i=0;i printf(“%5d”,r[i]); printf(“
”); return 0; } void SelectSort(int r[ ],int n) { int i, j, index, temp; for(i=0;i { index=i; for (j=i+1;j if (r[j] index=j; if (index !=i) { temp=r[i];r[i]=r[index];r[index]=temp; } } } 3)效果總結(jié)與評價。將任務(wù)驅(qū)動教學(xué)法運(yùn)用于程序設(shè)計課程中,學(xué)生在任務(wù)解決的過程中學(xué)習(xí)了枯燥的理論知識,學(xué)習(xí)興趣得以激發(fā)。同時,學(xué)生能將理論應(yīng)用于問題的實(shí)現(xiàn),在鞏固理論知識的同時將其應(yīng)用于實(shí)際問題的解決中,鍛煉了實(shí)踐能力。任務(wù)驅(qū)動教學(xué)法對構(gòu)建教學(xué)情境、提高教學(xué)效率起到很好的作用。 實(shí)踐證明,在向應(yīng)用技術(shù)、技能型院校轉(zhuǎn)型的驅(qū)動下,在程序設(shè)計課程中應(yīng)用任務(wù)驅(qū)動教學(xué)法符合課程體系改革中注重實(shí)踐教學(xué)的要求。有效地運(yùn)用任務(wù)驅(qū)動教學(xué)法,能夠使學(xué)生對理論知識更容易理解和掌握,并能將算法思想輕松地轉(zhuǎn)換成程序設(shè)計語言,提高了C語言程序設(shè)計課程的學(xué)習(xí)效率。同時培養(yǎng)了學(xué)生的動手能力和實(shí)踐能力,使學(xué)生更容易與社會接軌,從而達(dá)到應(yīng)用技術(shù)、技能型人才培養(yǎng)的要求?!?/p> [1]李占宣.任務(wù)驅(qū)動教學(xué)法在數(shù)據(jù)庫教學(xué)中的應(yīng)用[J].教育探索,2010,10(12):52-53. [2]劉向永,周以真.計算思維改變信息技術(shù)課程[J].中國信息技術(shù)教育,2013(6):5-12. [3]董榮勝.計算思維與計算機(jī)導(dǎo)論[J].計算機(jī)科學(xué),2009,36(4):50-52.5 總結(jié)