宋慶軍
摘要:數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)是一門(mén)綜合應(yīng)用類(lèi)的科目,涉及程序編寫(xiě)的知識(shí)和技能。而在計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)的對(duì)口高考中,其所占分值是3門(mén)科目中最高的,加上往屆學(xué)生對(duì)其學(xué)習(xí)難度的夸大渲染,學(xué)生容易產(chǎn)生畏難情緒,不利于教學(xué)活動(dòng)的有效開(kāi)展。為此筆者從“注重知識(shí)的積累”“促進(jìn)專(zhuān)業(yè)的轉(zhuǎn)化”“鞏固教學(xué)的收獲”幾個(gè)層面談如何克服這些難題,提高程序?qū)W習(xí)的效果,有效實(shí)現(xiàn)新時(shí)代職業(yè)教育的目標(biāo)。
關(guān)鍵詞:程序?qū)W習(xí)? 注重積累? 促進(jìn)轉(zhuǎn)化? 鞏固收獲
近年來(lái),對(duì)口本科擴(kuò)招,應(yīng)用型本科院校招生的職普比逐年提高,對(duì)中職生而言是一個(gè)新的機(jī)遇:提供更廣闊的上升通道,增加更多深造的機(jī)會(huì),為今后掌握更多的知識(shí)和技能提供了支持。這種利好的舉措,也是對(duì)中職教育職能的有效提升和拓展。
計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)對(duì)口升學(xué)所學(xué)的專(zhuān)業(yè)課有3門(mén):計(jì)算機(jī)基礎(chǔ)、計(jì)算機(jī)原理、數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)(VFP)。比較這3門(mén)科目,從學(xué)習(xí)難度、對(duì)口高考所占分值來(lái)說(shuō),數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)都是首選,對(duì)學(xué)生而言應(yīng)該是一門(mén)硬核科目。從學(xué)習(xí)難度來(lái)看,數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)是一門(mén)綜合應(yīng)用類(lèi)的科目,學(xué)習(xí)的重點(diǎn)是通過(guò)結(jié)構(gòu)化編程和面向?qū)ο缶幊踢M(jìn)行數(shù)據(jù)處理,涉及程序編寫(xiě)的知識(shí)和技能,學(xué)生沒(méi)有基礎(chǔ)。從計(jì)算機(jī)應(yīng)用專(zhuān)業(yè)的對(duì)口高考來(lái)講,其所占分值是3門(mén)科目中最高的,理論200分占100分、技能250分占120分。再者,歷屆計(jì)算機(jī)專(zhuān)業(yè)的學(xué)生對(duì)學(xué)弟學(xué)妹不斷夸大渲染,將VFP這個(gè)科目“神化”或“妖魔化”,人為地增加其神秘感,無(wú)形之中提高了它的學(xué)習(xí)難度。
筆者所學(xué)的專(zhuān)業(yè)是計(jì)算機(jī)科學(xué)與技術(shù),從事數(shù)據(jù)庫(kù)基礎(chǔ)教學(xué)工作已有二十幾年,就這門(mén)科目而言,有著豐富的知識(shí)沉淀和經(jīng)驗(yàn)積累,現(xiàn)將教學(xué)過(guò)程中的點(diǎn)點(diǎn)滴滴分享出來(lái)與同行們共勉。
一、注重知識(shí)的積累
(一)貼近生活,解禁神秘
在我們生活中,有很多程序化的事情,在教學(xué)中要有目的地引導(dǎo),讓學(xué)生明白程序就在我們生活中,與我們生活息息相關(guān)。比如一年四季的變化,春季開(kāi)始,冬季結(jié)束,完成年度更替;學(xué)生的課程表,每周執(zhí)行一次,學(xué)年結(jié)束完成教學(xué)任務(wù);上學(xué)無(wú)論是步行還是騎電車(chē),或者乘公交車(chē),方式不同,其目的都是來(lái)到學(xué)校;英語(yǔ)中的小作文,瀏覽一遍,你會(huì)發(fā)現(xiàn),只是將漢語(yǔ)中的小作文用英語(yǔ)書(shū)寫(xiě)而已……這樣的事例比比皆是,這就是生活中的程序。
數(shù)據(jù)庫(kù)應(yīng)用基礎(chǔ)中的程序,是將完成的任務(wù)或操作,利用專(zhuān)業(yè)的結(jié)構(gòu)化語(yǔ)句或命令,遵循程序規(guī)則,形成有序的集合。類(lèi)似于英語(yǔ)中的小作文,只是將語(yǔ)言文字換成了計(jì)算機(jī)的專(zhuān)業(yè)命令而已。
(二)厘清思路,逐步過(guò)渡
在程序章節(jié)的教學(xué)中,前期講解命令時(shí),讓學(xué)生仔細(xì)掌握每一個(gè)命令功能、達(dá)到的效果或完成的任務(wù),多安排上機(jī)進(jìn)行操作,留出充足時(shí)間讓學(xué)生去體驗(yàn)、去領(lǐng)會(huì),同步獲得知識(shí)與技能。同時(shí)有目的地進(jìn)行不同命令組合,強(qiáng)調(diào)不同的組合完成的任務(wù)是否相同或不同,有什么優(yōu)劣。并且對(duì)有些組合可以多加強(qiáng)調(diào),畫(huà)成小方塊,讓學(xué)生感悟,一步一步引導(dǎo)學(xué)生進(jìn)行程序化模塊化思維,為程序教學(xué)做好前期知識(shí)儲(chǔ)備。
在程序教學(xué)中,可以先安排2~3課時(shí),編寫(xiě)漢字程序,讓學(xué)生找感覺(jué),整理思路,體驗(yàn)程序建構(gòu)模型。比如找出XSCJ表中VFP成績(jī)排前2名的學(xué)生:
●關(guān)閉人機(jī)對(duì)話,構(gòu)建程序運(yùn)行環(huán)境
●打開(kāi)表文件XSCJ
●按VFP字段按降序排序或索引
●定位首記錄
●顯示姓名和VFP兩個(gè)字段和2條記錄
●關(guān)閉XSCJ
●打開(kāi)人機(jī)對(duì)話方式,恢復(fù)原有系統(tǒng)狀態(tài)。
多進(jìn)行練習(xí),讓學(xué)生自己找出編程的一般結(jié)構(gòu),形成習(xí)慣性思維,并融入程序編寫(xiě)的規(guī)則和要求,對(duì)程序進(jìn)行理解和感悟,激發(fā)學(xué)生自覺(jué)探討、共同研討,從而培養(yǎng)其學(xué)習(xí)興趣。
二、促進(jìn)專(zhuān)業(yè)的轉(zhuǎn)化
(一)夯實(shí)基礎(chǔ),厘清結(jié)構(gòu)
程序的前期學(xué)習(xí)應(yīng)該說(shuō)難度不大,順序結(jié)構(gòu)、選擇結(jié)構(gòu)貼近生活,學(xué)生易理解、編寫(xiě)程序得心應(yīng)手,能夠輕松掌握。這時(shí)在教學(xué)中引入流程圖,讓學(xué)生先畫(huà)流程圖,再寫(xiě)程序,讓學(xué)生厘清程序邏輯結(jié)構(gòu)、構(gòu)建數(shù)據(jù)模型。同時(shí)有目的地逐步強(qiáng)化、逐步深入,將程序的基礎(chǔ)思想“自上而下、模塊化、逐步細(xì)化”滲透進(jìn)學(xué)生的編程思維中,讓學(xué)生明白程序整體結(jié)構(gòu)如何構(gòu)建、細(xì)節(jié)部分如何打磨。這樣一來(lái),進(jìn)行循環(huán)結(jié)構(gòu)教學(xué)時(shí),學(xué)生就可以自然過(guò)渡,也不會(huì)感覺(jué)程序太難、找不到方向。
(二)注重結(jié)果,更注重過(guò)程
程序的運(yùn)行和我們生活中處理問(wèn)題,在時(shí)間上是不對(duì)等的。我們很難追溯程序執(zhí)行的過(guò)程,得到的只是一個(gè)結(jié)果,所以我們必須準(zhǔn)確知道程序執(zhí)行的流程。只有注重過(guò)程、知道計(jì)算機(jī)運(yùn)行程序的方式,才能更好地構(gòu)建數(shù)據(jù)模型(構(gòu)建的模型也不會(huì)是數(shù)學(xué)中的解題程式),準(zhǔn)確編寫(xiě)計(jì)算機(jī)運(yùn)行的程序。
用程序調(diào)試器檢視程序執(zhí)行可能存在的問(wèn)題。將程序放到程序調(diào)試器內(nèi),逐步運(yùn)行,中間變量實(shí)時(shí)反映程序運(yùn)行結(jié)果,讓我們跟進(jìn)每一個(gè)命令、每一個(gè)步驟、每一個(gè)模塊,觀察與預(yù)設(shè)的結(jié)果是否匹配,從而找出程序中不和諧的因素、不吻合的模塊。
理解了程序的運(yùn)行過(guò)程,在檢查編寫(xiě)的程序時(shí),脫離計(jì)算機(jī),在紙面上運(yùn)行與調(diào)試,擺脫對(duì)計(jì)算機(jī)的依賴,讓學(xué)生明白程序命令組合的因果關(guān)系、邏輯關(guān)系,從而更好地為結(jié)果服務(wù),達(dá)到編程的目的。
(三)梳理思路,總結(jié)技巧
自上而下、逐步細(xì)化、模塊化是編程的基本思想。對(duì)于編程,如果是一個(gè)小的問(wèn)題,尋求的是一個(gè)簡(jiǎn)單的結(jié)果,可以利用前期命令教學(xué)中強(qiáng)調(diào)的小方塊程序加上程序的開(kāi)始和結(jié)束,按照程序的模塊組合就可以了。但是難度系數(shù)比較大的問(wèn)題不是一個(gè)小方塊程序可以解決的,可能需要很好的小方塊進(jìn)行組合。
如何組織邏輯結(jié)構(gòu)、語(yǔ)法結(jié)構(gòu),如何確定模塊位置、模塊的調(diào)用,如何發(fā)揮模塊的功能等這些問(wèn)題的處理類(lèi)似于積木組合,不同的組合可以構(gòu)建不同的建筑,程序的編寫(xiě)同樣也有一定的技巧和組合規(guī)則。比如程序嵌套教學(xué)時(shí),筆者先講透基礎(chǔ)知識(shí),讓學(xué)生掌握,然后程序中功能單一的小模塊程序,代之以一句話或者一個(gè)圖形,再讓學(xué)生看程序的結(jié)構(gòu)。學(xué)生不難發(fā)現(xiàn)其類(lèi)似于前面學(xué)習(xí)的順序結(jié)構(gòu),這樣一來(lái)程序的邏輯結(jié)構(gòu)就清楚了,學(xué)生就知道如何進(jìn)行組合了。同時(shí)這也為后期的子程序、過(guò)程和自定義函數(shù)的教學(xué)打下了堅(jiān)實(shí)的基礎(chǔ)。