程序設(shè)計(jì)語(yǔ)言范文
時(shí)間:2023-03-25 08:53:24
導(dǎo)語(yǔ):如何才能寫好一篇程序設(shè)計(jì)語(yǔ)言,這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
論文摘要 針對(duì)現(xiàn)階段程序設(shè)計(jì)語(yǔ)言教學(xué)中存在的普遍問(wèn)題,在對(duì)程序設(shè)計(jì)教學(xué)思想、程序設(shè)計(jì)能力認(rèn)識(shí)分析的基礎(chǔ)上,提出程序設(shè)計(jì)語(yǔ)言教學(xué)中的若干要點(diǎn)。
1 引言
在計(jì)算機(jī)專業(yè)和非計(jì)算機(jī)專業(yè)的計(jì)算機(jī)教學(xué)中,學(xué)校幾乎都設(shè)置了高級(jí)語(yǔ)言程序設(shè)計(jì)課程。與一些應(yīng)用軟件或工具軟件相比,編程課程的教學(xué)具有較大的靈活性。很多學(xué)生的學(xué)習(xí)能力較差,課后不肯花時(shí)間,久而久之,導(dǎo)致聽不懂,給計(jì)算機(jī)編程語(yǔ)言課的教學(xué)帶來(lái)一定的難度。采用何種教學(xué)模式進(jìn)行教學(xué)就成為編程語(yǔ)言教學(xué)的一個(gè)關(guān)鍵。
2 現(xiàn)階段程序設(shè)計(jì)語(yǔ)言教學(xué)中存在的普遍問(wèn)題
根據(jù)以往的教學(xué)經(jīng)驗(yàn)和通過(guò)與學(xué)生、同事之間的交流,得知部分學(xué)生反映上課時(shí)都能聽懂講解,可在涉及到具體的編程及上機(jī)操作時(shí),往往會(huì)出現(xiàn)沒(méi)有思路、無(wú)從下手或錯(cuò)誤百出,不會(huì)調(diào)試程序等各種情況,究其原因,在教學(xué)方面可能存在以下2個(gè)問(wèn)題。
2.1 過(guò)于注重對(duì)語(yǔ)句語(yǔ)法的講解,缺乏以算法為核心的編程題教學(xué)教師鐘情于舉一反三地對(duì)使用語(yǔ)句、語(yǔ)法的深入教學(xué),而不是有機(jī)地結(jié)合算法思想進(jìn)行教學(xué),貼近生活并引起學(xué)生興趣的編程題講得很少。由于教學(xué)不是站在如何應(yīng)用計(jì)算機(jī)工具編程解決實(shí)際問(wèn)題或?qū)嶋H項(xiàng)目的角度,就沒(méi)有把邏輯與編程解題思路放在主體地位,也就沒(méi)有很好講解如何分析問(wèn)題和解決問(wèn)題。結(jié)果導(dǎo)致學(xué)生程序設(shè)計(jì)能力、上機(jī)解題能力訓(xùn)練不夠,更談不上引導(dǎo)學(xué)生進(jìn)行課題研究和科研探索。
2.2 學(xué)生厭倦傳統(tǒng)的課堂教學(xué),缺乏師生之間的溝通交流學(xué)生對(duì)于先講后編、先聽后編這一傳統(tǒng)的課堂教學(xué)方式有厭倦心理。課堂成了教師的“一言堂”,教與學(xué)不能銜接起來(lái)。有時(shí)教師為了趕進(jìn)度,講授法成了唯一的教學(xué)方法,師生之間缺乏足夠的交流和溝通,學(xué)生沒(méi)有有效、實(shí)用的學(xué)習(xí)輔助途徑,也間接影響著學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)效果。
3 程序設(shè)計(jì)教學(xué)思想解析
學(xué)生與教師的角色改變,就是教與學(xué)相互滲透的結(jié)果。教學(xué)中突出學(xué)生的主體能動(dòng)性,是現(xiàn)代教學(xué)方法的核心。教學(xué)過(guò)程是教師根據(jù)教學(xué)的目的和任務(wù)以及學(xué)生身心發(fā)展的特點(diǎn)有計(jì)劃地引導(dǎo)學(xué)生掌握知識(shí)、認(rèn)識(shí)客觀世界的過(guò)程,是通過(guò)知識(shí)的傳授和掌握來(lái)促進(jìn)學(xué)生身心全面發(fā)展的過(guò)程。而在教學(xué)過(guò)程中一定要按照教學(xué)規(guī)律,只有按照教學(xué)規(guī)律辦事,才能提高教學(xué)質(zhì)量,增強(qiáng)教學(xué)效果,并促進(jìn)學(xué)生思維的拓展和能力的提高。
教學(xué)應(yīng)該在理論與實(shí)際的結(jié)合過(guò)程中傳授和學(xué)習(xí)基本知識(shí),從而引導(dǎo)學(xué)生運(yùn)用所掌握的知識(shí)去分析問(wèn)題和解決問(wèn)題,在動(dòng)手實(shí)踐中達(dá)到培養(yǎng)學(xué)生手腦并用能力的目的。除了進(jìn)行一些必要的概念講解之外,教師主要應(yīng)該讓學(xué)生通過(guò)上機(jī)實(shí)踐的辦法來(lái)掌握所學(xué)內(nèi)容。一方面,通過(guò)上機(jī)實(shí)踐可以加深對(duì)課堂理論內(nèi)容的理解和掌握;另一方面,通過(guò)上機(jī)實(shí)踐可以提高學(xué)生上機(jī)調(diào)試程序的能力,提高學(xué)生的編程能力,提高學(xué)生分析問(wèn)題和解決問(wèn)題的能力。
4 程序設(shè)計(jì)能力認(rèn)識(shí)
程序是軟件的本體,程序設(shè)計(jì)(Programming)是指設(shè)計(jì)、編制、調(diào)試程序的方法和過(guò)程。它應(yīng)排除軟件開發(fā)中的工程與管理因素,主要指軟件開發(fā)過(guò)程中的技術(shù)因素,尤其是計(jì)算機(jī)技術(shù)因素。
根據(jù)調(diào)查分析,合格程序員必須具有:1)扎實(shí)的專業(yè)基礎(chǔ)知識(shí);2)很強(qiáng)的綜合分析和解決問(wèn)題的能力;3)熟練的編程調(diào)試能力;4)創(chuàng)新能力;5)團(tuán)隊(duì)合作能力;6)持續(xù)的自學(xué)能力;7)強(qiáng)烈的好奇心;8)較高的英語(yǔ)水平和軟件工程的實(shí)踐能力等。
應(yīng)看到,程序設(shè)計(jì)能力,并非完全等價(jià)于程序員所應(yīng)具備的專業(yè)素質(zhì),它還包括其他一些內(nèi)容,如:1)理解問(wèn)題,根據(jù)已知條件,找出求解該問(wèn)題的數(shù)學(xué)方法或建立相應(yīng)的數(shù)學(xué)模型;2)歸納程序的基本功能;3)設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)和算法;4)用程序設(shè)計(jì)語(yǔ)言實(shí)現(xiàn)算法描述;5)編譯與調(diào)試;6)測(cè)試程序,保證程序正常運(yùn)行。
綜上所述,可以將程序設(shè)計(jì)能力定義為:依據(jù)程序設(shè)計(jì)思想與觀念,應(yīng)用程序設(shè)計(jì)語(yǔ)言,采用相應(yīng)程序開發(fā)技術(shù)和環(huán)境,進(jìn)行程序設(shè)計(jì)并達(dá)到預(yù)計(jì)結(jié)果的程度。
5 程序設(shè)計(jì)語(yǔ)言教學(xué)要點(diǎn)分析
基于對(duì)程序設(shè)計(jì)教學(xué)思想、程序設(shè)計(jì)能力的認(rèn)識(shí),為使學(xué)生充分掌握程序設(shè)計(jì)的思想和方法,有效實(shí)現(xiàn)程序設(shè)計(jì)課程教學(xué)目標(biāo),我認(rèn)為程序設(shè)計(jì)教學(xué)還應(yīng)注意并強(qiáng)調(diào)以下幾個(gè)基本的教學(xué)任務(wù)和要求。
5.1 程序設(shè)計(jì)基本概念的灌輸在整個(gè)課程教學(xué)過(guò)程中,結(jié)合具體實(shí)例的演示,應(yīng)向?qū)W生反復(fù)強(qiáng)調(diào)程序,注意學(xué)生程序設(shè)計(jì)中基本概念的理解。學(xué)生只有對(duì)程序設(shè)計(jì)基本概念有了正確的掌握,才會(huì)為以后課程學(xué)習(xí)打下基礎(chǔ),為學(xué)習(xí)興趣培養(yǎng)埋下伏筆;同時(shí)程序設(shè)計(jì)作為一門特殊意義上的課程,包含了許多計(jì)算機(jī)用于數(shù)據(jù)處理的基本原理、基本過(guò)程和特點(diǎn),這些知識(shí)蘊(yùn)藏于程序的基本概念之中,同時(shí)這些概念也是程序設(shè)計(jì)思想與觀念的載體。
5.2 結(jié)構(gòu)化程序設(shè)計(jì)基本概念的培養(yǎng)結(jié)合控制語(yǔ)句結(jié)構(gòu)和函數(shù)的學(xué)習(xí),應(yīng)著重培養(yǎng)學(xué)生的結(jié)構(gòu)化程序設(shè)計(jì)的基本觀念。結(jié)構(gòu)化程序設(shè)計(jì)的基本思想是采用“自頂向下,逐步求精”的程序設(shè)計(jì)方法和“單入口單出口”的控制結(jié)構(gòu),它是程序設(shè)計(jì)的基本原理之一。貫徹課程始終、通過(guò)具體實(shí)例潛移默化地培養(yǎng)這一思想,比在軟件工程中空洞的說(shuō)教,更容易被學(xué)生理解和接收。
5.3 計(jì)算機(jī)算法觀念的培養(yǎng)通過(guò)控制結(jié)構(gòu)、函數(shù)等學(xué)習(xí),初步培養(yǎng)學(xué)生在程序設(shè)計(jì)中的算法觀念。如同數(shù)據(jù)結(jié)構(gòu)觀念培養(yǎng)一樣,一則增強(qiáng)學(xué)生的程序設(shè)計(jì)觀念,二則也為學(xué)生留下廣闊的思考空間,以增強(qiáng)學(xué)習(xí)興趣。再次,通過(guò)這種觀念的培養(yǎng),能夠直接提高學(xué)生初步的程序設(shè)計(jì)能力。
5.4 通過(guò)優(yōu)秀的有趣的實(shí)例,激發(fā)學(xué)生學(xué)習(xí)興趣恩格斯說(shuō)“興趣與愛(ài)好是最好的老師”。為了使初學(xué)者能盡快地掌握計(jì)算機(jī)知識(shí),進(jìn)入計(jì)算機(jī)的應(yīng)用領(lǐng)域,在課程講授過(guò)程中,要特別注意培養(yǎng)學(xué)生的學(xué)習(xí)興趣。學(xué)習(xí)興趣就是學(xué)生在心理上對(duì)學(xué)習(xí)活動(dòng)產(chǎn)生愛(ài)好、追求和向往的傾向,是推動(dòng)學(xué)生積極主動(dòng)學(xué)習(xí)的直接動(dòng)力。學(xué)習(xí)興趣直接關(guān)系到教學(xué)效果的好壞。為提高學(xué)生的學(xué)習(xí)興趣,筆者歸納出6個(gè)辦法:1)通過(guò)演示程序突出程序語(yǔ)言的實(shí)用性;2)通過(guò)簡(jiǎn)單的編程練習(xí)突出語(yǔ)言的易學(xué)性;3)運(yùn)用恰當(dāng)?shù)念惐仁箯?fù)雜問(wèn)題形象化、簡(jiǎn)單化;4)做到一題多解;5)要善于舉一反三;6)通過(guò)解決實(shí)際問(wèn)題使學(xué)生樂(lè)學(xué)。
5.5 有選擇地運(yùn)用多媒體教學(xué)直觀、形象、便捷的多媒體教學(xué)可以使學(xué)生在有限時(shí)間內(nèi)迅速理解、掌握、獲取更多知識(shí)和信息,在教學(xué)過(guò)程中,我們有選擇地使用多媒體教學(xué),將編程語(yǔ)言語(yǔ)法中的深?yuàn)W理論和邏輯推理的內(nèi)容,運(yùn)用多媒體教學(xué)直觀、形象地講授給學(xué)生,加深其對(duì)問(wèn)題的理解。這樣的多媒體教學(xué),收到了將抽象問(wèn)題形象化、枯燥問(wèn)題生動(dòng)化的效果。對(duì)于多媒體教學(xué)不易實(shí)施的程序設(shè)計(jì)方法的講解,我們可以采用傳統(tǒng)的教學(xué)方法,教會(huì)學(xué)生如何思考、推理,如何用語(yǔ)句實(shí)現(xiàn)算法,培養(yǎng)了學(xué)生的抽象思維、邏輯推理能力。這樣,將傳統(tǒng)的教學(xué)方法與多媒體教學(xué)相結(jié)合,大大提高了學(xué)生的綜合思維能力。
5.6 教師在教學(xué)過(guò)程中,應(yīng)當(dāng)注意設(shè)置疑難問(wèn)題,引導(dǎo)學(xué)生思考和探索教學(xué)時(shí)發(fā)現(xiàn),學(xué)生問(wèn)不出問(wèn)題的原因往往在于沒(méi)有真正學(xué)好。實(shí)際上,問(wèn)題是最好的老師,是學(xué)生學(xué)習(xí)的引導(dǎo)者,沒(méi)有問(wèn)題便沒(méi)有深入。在教學(xué)過(guò)程中,引導(dǎo)學(xué)生在問(wèn)題解決中學(xué)習(xí),即提出問(wèn)題,留給學(xué)生時(shí)間思考、討論、解決問(wèn)題,從而更深入地展開學(xué)習(xí)。實(shí)踐證明,這種教學(xué)方法充分調(diào)動(dòng)了學(xué)生學(xué)習(xí)的積極性和主動(dòng)性。
5.7 充分利用上機(jī)實(shí)踐程序設(shè)計(jì)語(yǔ)言,學(xué)生與教師在理論課與實(shí)踐課的角色是不同的。教師從課堂上的教學(xué)組織者轉(zhuǎn)變?yōu)樯蠙C(jī)操作的指導(dǎo)者。作為教學(xué)組織者,負(fù)責(zé)知識(shí)點(diǎn)的傳授,此時(shí)教師有較充分的主動(dòng)性,易于控制所傳遞的知識(shí)內(nèi)容,可使學(xué)生在較短時(shí)間內(nèi)獲得較多的知識(shí)。但學(xué)生只是被動(dòng)地接受知識(shí),學(xué)生的積極參與少。上機(jī)操作是實(shí)現(xiàn)檢驗(yàn)計(jì)算機(jī)編程語(yǔ)言課堂教學(xué)效果的重要方面。此時(shí)的教師是上機(jī)的輔導(dǎo)者,學(xué)生親自動(dòng)手、動(dòng)腦參與教學(xué)活動(dòng)。但是上機(jī)操作課對(duì)學(xué)生來(lái)說(shuō)是輕松的,若教師管理不當(dāng),會(huì)造成學(xué)生無(wú)所事事的局面。上機(jī)課是對(duì)理論課的應(yīng)用和檢驗(yàn),對(duì)教師有更高的要求,因此,上機(jī)操作前教師要根據(jù)知識(shí)點(diǎn)布置相應(yīng)的練習(xí)任務(wù),編程序或調(diào)試程序。同時(shí)學(xué)生要完成有針對(duì)性的上機(jī)報(bào)告,進(jìn)一步鞏固上機(jī)成果。
5.8 布置代表性的作業(yè)做作業(yè)是復(fù)習(xí)、練習(xí)的過(guò)程,也是繼續(xù)和深入學(xué)習(xí)的過(guò)程。我們每次課后給學(xué)生布置一些有代表性、恰當(dāng)?shù)牧?xí)題,以鞏固課堂上所學(xué)的內(nèi)容。也通過(guò)學(xué)生所做作業(yè)的好壞來(lái)了解學(xué)生對(duì)課程內(nèi)容的掌握程度以及教師的教學(xué)效果。對(duì)作業(yè)中比較普遍出現(xiàn)的錯(cuò)誤,我們都要在下節(jié)課上當(dāng)堂講解,因?yàn)槟鞘窃谏瞎?jié)課沒(méi)講清楚所致。作業(yè)中表現(xiàn)出與眾不同的、新穎的程序設(shè)計(jì)方法和思路,也要當(dāng)堂宣講或作業(yè)批注,以鼓勵(lì)這種另辟新徑的有創(chuàng)意的學(xué)風(fēng)。
在程序設(shè)計(jì)語(yǔ)言教學(xué)中,尤其語(yǔ)言基本要素的講解過(guò)程中,或隱或顯地,把如上幾點(diǎn)教學(xué)內(nèi)容納入到課堂中,程序設(shè)計(jì)語(yǔ)言教學(xué)必定會(huì)從一種就語(yǔ)言而教語(yǔ)言的呆板模式中走出來(lái),充分發(fā)揮出其在程序設(shè)計(jì)能力培養(yǎng)中的作用。
篇2
關(guān)鍵詞:值類性;引用類型;值傳遞;引用傳遞
中圖分類號(hào):TP312文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2007)15-30749-02
Analyzing the Parameter Pass in C# Language
BAI Xue-bing
(Zhejiang Institute of Traffic, Hangzhou 311112, China)
Abstract: the article narrates the parameter pass in c# language, which includes number, array and object parameter pass, and it also tells the difference between the call by value and call by reference.
Key words: value type; reference type; call by value; call by reference
1 引言
目前,隨著程序設(shè)計(jì)語(yǔ)言的不斷發(fā)展,.NET平臺(tái)在windows平臺(tái)上已站穩(wěn)腳跟,成為主流的開發(fā)平臺(tái),C#語(yǔ)言作為.Net平臺(tái)的主流語(yǔ)言,重要性不言而喻。目前,C#語(yǔ)言已成為唯一能與Java抗衡的語(yǔ)言,而日益受到程序員的喜愛(ài)。
在C#程序設(shè)計(jì)中,常常會(huì)運(yùn)用參數(shù)來(lái)傳遞對(duì)象,然而,在程序設(shè)計(jì)語(yǔ)言中,參數(shù)的傳遞常常使人含混不清,因此,有必要好好的分析一下參數(shù)的傳遞,才能使你在運(yùn)用C#語(yǔ)言時(shí)更加的心應(yīng)手。
首先,我們需要了解C#語(yǔ)言的數(shù)據(jù)類型,C#語(yǔ)言的數(shù)據(jù)類型可分為兩大類:一種是值類性(value type),它的數(shù)據(jù)存放入棧內(nèi)的一個(gè)變量之中。例如整型、浮點(diǎn)與結(jié)構(gòu)體(int、double、struct)。另一種是引用類型(reference type),它的數(shù)據(jù)不駐留在棧中,而是存儲(chǔ)在堆中。當(dāng)訪問(wèn)一個(gè)具有引用類型的數(shù)據(jù)時(shí),需要到棧中檢查變量的內(nèi)容,該變量引用堆中的一個(gè)實(shí)際數(shù)據(jù)。例如類,數(shù)組,字符串class,array,string)。由于這兩種類型的數(shù)據(jù)在參數(shù)傳遞時(shí)是如此的不同,我們需要分別討論。
2 值類型傳遞
在C#語(yǔ)言中參數(shù)的傳遞可分為值傳遞(call by value)與引用傳遞(call by reference),值傳遞中函數(shù)將參數(shù)復(fù)制到子程序的參數(shù)中。因此,改變子程序的參數(shù)不會(huì)影響用于調(diào)用的參數(shù)。而引用傳遞視將參數(shù)的引用傳遞給子程序。在子程序內(nèi)部,該引用用來(lái)訪問(wèn)調(diào)用中的實(shí)際參數(shù)。
下面我們用例子來(lái)說(shuō)明區(qū)別。引用傳遞在C#中使用關(guān)鍵字ref或out。
2.1 值傳遞
在給方法傳遞數(shù)值類型時(shí),如int類型或double類型,它們是通過(guò)值傳遞。因此,在給這種類型進(jìn)行值傳遞時(shí),函數(shù)的調(diào)用并不會(huì)影響在主函數(shù)的原先的值。
示例如下。
using System;
class Test {
public void noChange(int i, int j) {
i = i + j;
j = -j;}}
class CallByValue {
public static void Main() {
Test ob = new Test();
int a = 15, b = 20;
Console.WriteLine("a and b before call: " + a + " " + b);
ob.noChange(a, b);
Console.WriteLine("a and b after call: " + a + " " + b);
}}
程序產(chǎn)生的結(jié)果如下:
A and b before call:15 20
A and b after call:15 20
由此可見,noChange()內(nèi)部發(fā)生的操作不影響調(diào)用中的a和b的值。
2.2 引用傳遞
但是如果你在函數(shù)調(diào)用參數(shù)前使用ref參數(shù),表示使用引用傳遞。
示例如下:
using System;
class Swap {
public void swap(ref int a, ref int b)//參數(shù)前加ref表示引用傳遞
{int t;
t = a;
a = b;
b = t; }}
class SwapDemo {
public static void Main() {
Swap ob = new Swap();
int x = 10, y = 20;
Console.WriteLine("x and y before call: " + x + " " + y);
ob.swap(ref x, ref y);
Console.WriteLine("x and y after call: " + x + " " + y); }}
程序產(chǎn)生的結(jié)果如下:
A and b before call:1020
A and b after call:2010
由此可見,swap函數(shù)()內(nèi)部發(fā)生的操作影響調(diào)用中的a和b的值。如果不使用ref參數(shù),a和b仍然不會(huì)變化。
3 引用類型參數(shù)傳遞
由于在C#程序設(shè)計(jì)中,類作為引用類型常常被使用。在參數(shù)的傳遞中,類的實(shí)例對(duì)象常常被用來(lái)作為函數(shù)參數(shù),因此我們就以對(duì)象作為研究對(duì)象。另外我們也討論一下數(shù)組。
3.1 對(duì)象值傳遞
由于對(duì)象本身即是引用。因此,當(dāng)對(duì)象被用來(lái)當(dāng)作參數(shù)傳遞時(shí),對(duì)象本身是通過(guò)值傳遞,但是由于對(duì)象本身是引用傳遞,改變參數(shù)所引用的對(duì)象依然改變將影響參數(shù)所影響的對(duì)象。
示例如下
using System;
class Test {
public int a, b;
public Test(int i, int j) {
a = i;
b = j; }
public void change(Test ob) //調(diào)用test類對(duì)象ob 值調(diào)用
{ ob.a = ob.a + ob.b;
ob.b = -ob.b; }}
class CallByRef {
public static void Main() {
Test ob = new Test(15, 20);
Console.WriteLine("ob.a and ob.b before call: " + ob.a + " " + ob.b);
ob.change(ob);
Console.WriteLine("ob.a and ob.b after call: " + ob.a + " " + ob.b); }}
程序產(chǎn)生的結(jié)果如下:
A and b before call:15 20
篇3
隨著社會(huì)不斷的發(fā)展與進(jìn)步,計(jì)算機(jī)作為現(xiàn)代先進(jìn)產(chǎn)物的代表,已經(jīng)很快的進(jìn)入到社會(huì)中的各行各業(yè)。而程序設(shè)計(jì)作為計(jì)算機(jī)的核心內(nèi)容,也同樣引起了大家的重視,同時(shí)計(jì)算機(jī)程序設(shè)計(jì)也是高校開設(shè)的一門重要學(xué)科,為了能更好的為社會(huì)提供計(jì)算機(jī)方面的技術(shù)型和和設(shè)計(jì)型人才,就必須重視程序設(shè)計(jì)的教學(xué)。本文針對(duì)高校程序設(shè)計(jì)課程中存在的不足,展開了全面的討論,對(duì)高校的程序設(shè)計(jì)的教學(xué)方法和教學(xué)內(nèi)容進(jìn)行改進(jìn)。
【關(guān)鍵詞】
計(jì)算機(jī)程序;程序設(shè)計(jì)語(yǔ)言;教學(xué)方法
我國(guó)幾乎所有的高校都開設(shè)了計(jì)算機(jī)程序設(shè)計(jì)這一學(xué)科,而程序設(shè)計(jì)語(yǔ)言教學(xué)時(shí)計(jì)算機(jī)程序設(shè)計(jì)教學(xué)中最重要的教學(xué)內(nèi)容之一,對(duì)其掌握的程度會(huì)直接影響著之后對(duì)計(jì)算機(jī)的學(xué)習(xí),也為將來(lái)從事本行業(yè)奠定了堅(jiān)實(shí)的基礎(chǔ)。從程序設(shè)計(jì)語(yǔ)言入手,展開對(duì)計(jì)算機(jī)硬件和軟件的學(xué)習(xí),掌握計(jì)算機(jī)程序設(shè)計(jì)的基本理念,從而不斷的打造新型計(jì)算機(jī)技術(shù)人才,推動(dòng)我國(guó)計(jì)算機(jī)行業(yè)的前進(jìn)。
1 計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言教學(xué)現(xiàn)狀
1.1 教學(xué)課時(shí)短
雖然現(xiàn)在計(jì)算機(jī)已經(jīng)很普及,但是多數(shù)學(xué)生對(duì)于其中真正的內(nèi)涵了解甚微。現(xiàn)如今的大學(xué)主張的是學(xué)生自主發(fā)展,因此給學(xué)生自由發(fā)展的時(shí)間很多,在此同時(shí)又主張學(xué)生多方面發(fā)展,這就導(dǎo)致學(xué)生接觸計(jì)算機(jī)程序設(shè)計(jì)的時(shí)間較少。教學(xué)課時(shí)短就成了一個(gè)突出的問(wèn)題,老師只能教給學(xué)生一些基礎(chǔ)的理論知識(shí),對(duì)于新鮮事物出現(xiàn)在腦海中的時(shí)候,學(xué)生往往有疑問(wèn)也不會(huì)發(fā)問(wèn),再加上在這方面的基礎(chǔ)比較薄弱,就導(dǎo)致了學(xué)生們接受比較緩慢。
1.2 學(xué)習(xí)動(dòng)力不足
在很多學(xué)生眼里,計(jì)算機(jī)程序設(shè)計(jì)是一個(gè)即枯燥又無(wú)味的學(xué)科,程序設(shè)計(jì)語(yǔ)言中涉及了一些數(shù)學(xué)、英語(yǔ)等其他方面的基礎(chǔ)知識(shí)。有很多學(xué)生就覺(jué)得有些力不從心,覺(jué)得程序設(shè)計(jì)語(yǔ)言就想天書一樣,不能形成用計(jì)算機(jī)語(yǔ)言去解題的思維方式,對(duì)程序設(shè)計(jì)產(chǎn)生了畏懼心理,就會(huì)出現(xiàn)很多知難而退的學(xué)生。
1.3 實(shí)踐達(dá)不到真正的要求
計(jì)算機(jī)專業(yè)本身就是應(yīng)用型專業(yè),而恰恰在大學(xué)中程序語(yǔ)言教材書中缺少了實(shí)踐這一部分,沒(méi)能體現(xiàn)出教材的實(shí)用性與實(shí)踐性,不能起到對(duì)學(xué)生的實(shí)踐能力培養(yǎng)的作用。不能達(dá)到對(duì)技術(shù)型人才的培養(yǎng)。
1.4 教學(xué)方法單一,考核方式欠缺
計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言的的教學(xué)方式現(xiàn)在還是比較傳統(tǒng)的,往往是老師講同學(xué)聽的形式,課后再增加一些實(shí)驗(yàn),同學(xué)只是單純的接受老師傳授的東西,卻缺少了自己的思考,更不能發(fā)表的自己的見解。在上實(shí)驗(yàn)課的時(shí)候,大部分同學(xué)也只是單單的將書本上程序打入電腦,進(jìn)行調(diào)試成功后就認(rèn)為完成了任務(wù)。學(xué)生不知道如何從實(shí)際問(wèn)題出發(fā),老師的檢測(cè)方式也就是筆試,而忽略了對(duì)實(shí)踐的檢驗(yàn)。
2 解決計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言存在問(wèn)題的對(duì)策
2.1 采用不同的教學(xué)方式,提高學(xué)生的學(xué)習(xí)興趣
要讓學(xué)生仍是到計(jì)算機(jī)程序語(yǔ)言的重要性,老師在講解的過(guò)程中可以插放一些小動(dòng)畫或軟件的保護(hù),從而引起學(xué)生的興趣。在講課之前老師要帶領(lǐng)著同學(xué)看目錄,劃重點(diǎn),讓學(xué)生對(duì)程序語(yǔ)言的學(xué)習(xí)有一定的規(guī)劃,盡量消除學(xué)生心里的畏懼感。老師要多和學(xué)生溝通,了解學(xué)生對(duì)所學(xué)的東西的了解程度,從而確定教學(xué)的進(jìn)度。總之,老師在教授程序語(yǔ)言的同時(shí),要以學(xué)生為主,多鼓勵(lì)學(xué)生進(jìn)步。
學(xué)校應(yīng)該本著培養(yǎng)技能應(yīng)用型人才,針對(duì)少數(shù)人或特別的學(xué)生,要采用不同的教學(xué)方式。適當(dāng)?shù)脑黾诱n時(shí),給老師足夠的時(shí)間去引導(dǎo)學(xué)生利用程序語(yǔ)言去解決實(shí)際問(wèn)題。
2.2 解決學(xué)生實(shí)踐不足的現(xiàn)象
學(xué)校在選擇教材時(shí),要盡量選擇帶有大量實(shí)踐課題的教材,意在提高學(xué)生的實(shí)踐和創(chuàng)新能力。老師也可以根據(jù)不同的學(xué)生的學(xué)習(xí)程度,設(shè)定一些課題實(shí)踐,增加實(shí)踐在整個(gè)教學(xué)中的比重。單單的課內(nèi)實(shí)驗(yàn)室不夠的,老師還要多增加一些課程設(shè)計(jì),快速的增加學(xué)生的綜合實(shí)踐能力。
3 改進(jìn)計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言教學(xué)的方法
3.1 程序設(shè)計(jì)語(yǔ)言教學(xué)的重點(diǎn)
教師應(yīng)該在教學(xué)中突出三個(gè)重點(diǎn)。一是程序設(shè)計(jì)中的語(yǔ)法知識(shí),語(yǔ)法是程序設(shè)計(jì)語(yǔ)言中的基礎(chǔ),在編程的過(guò)程中一定不能出現(xiàn)語(yǔ)法上的錯(cuò)誤,因?yàn)檫@會(huì)給后面的調(diào)試帶來(lái)很大的麻煩。二是程序中的控制結(jié)構(gòu),因?yàn)樵诰幊痰倪^(guò)程中,編程者無(wú)論是面向什么進(jìn)行設(shè)計(jì),都會(huì)涉及到流程控制結(jié)構(gòu),所以教師應(yīng)該突出講解這部分。三是控件的使用,所有的編程幾乎都離不開控件的使用,因此要詳細(xì)的講解空間的作用與使用方法,并在實(shí)踐中讓學(xué)生加深對(duì)控件的理解,
3.2 任務(wù)驅(qū)動(dòng)教學(xué)
計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言是有很多活動(dòng)范圍的學(xué)科,老師可以采取一種探究教學(xué)方式,任務(wù)驅(qū)動(dòng)教學(xué)就是一種從學(xué)生角度出發(fā)的的一種教學(xué)方式。老師設(shè)定一個(gè)課程設(shè)計(jì),大家首先經(jīng)過(guò)談?wù)摲治龀稣n程設(shè)計(jì)的目的,然后老師和學(xué)生圍繞這個(gè)課題開始實(shí)踐。這種教學(xué)方式主要在于培養(yǎng)學(xué)生的自主探究的能力和獨(dú)自分析問(wèn)題的能力。學(xué)生最初獨(dú)自進(jìn)行編寫程序的時(shí)候,老師要引導(dǎo)學(xué)生進(jìn)行思考,將一個(gè)大的程序一點(diǎn)一點(diǎn)的分成很多個(gè)小的任務(wù),這樣會(huì)減少對(duì)學(xué)生積極性的打擊,之后在協(xié)助學(xué)生對(duì)自己的程序語(yǔ)言進(jìn)行修改,讓學(xué)生感受自己設(shè)計(jì)出程序的喜悅,從而提高學(xué)生的信心。
3.3 增加教學(xué)實(shí)例
枯燥無(wú)味的課堂,學(xué)生往往會(huì)對(duì)新元素的引入產(chǎn)生興趣,這時(shí)老師可以在課堂上引入一些程序案例,實(shí)例可以加深學(xué)生對(duì)課堂內(nèi)知識(shí)的認(rèn)識(shí),讓學(xué)生從整體上了解自己所學(xué)的程序語(yǔ)言,讓學(xué)生從實(shí)例中找到所學(xué)知識(shí)的應(yīng)用,同時(shí)也會(huì)激發(fā)學(xué)生的創(chuàng)新意識(shí),培養(yǎng)學(xué)生提出問(wèn)題,解決問(wèn)題的能力。
4 總結(jié)語(yǔ)
在學(xué)習(xí)程序語(yǔ)言的過(guò)程中,教師要用不同的教學(xué)方式進(jìn)行教學(xué),發(fā)現(xiàn)不足并及時(shí)的改進(jìn),放棄原有的教學(xué)方式,以學(xué)生為主開展課題設(shè)計(jì)。不能認(rèn)為哪種教學(xué)方式好就一直使用一種教學(xué)方式,這樣會(huì)造成學(xué)生對(duì)課堂的厭煩,無(wú)論哪種教學(xué)方式,都要以激發(fā)學(xué)生學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言的興趣。
【參考文獻(xiàn)】
[1],肖海容.《C 語(yǔ)言程序設(shè)計(jì)》課程教學(xué)問(wèn)題分析及對(duì)策研究[J].東莞理工學(xué)院學(xué)報(bào) ,2013,(5):111-115.
[2]龐爾麗,王欣.大學(xué)計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言教學(xué)的幾點(diǎn)思考[J].軟件導(dǎo)刊,2013,12(1):183-184.
[3]郝桂英.關(guān)于計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言課程教學(xué)的探索[J].教育與職業(yè),2007,(17):156-157.
[4]賀忠.游戲思想在程序設(shè)計(jì)語(yǔ)言課程教學(xué)中的應(yīng)用[J].計(jì)算機(jī)教育,2009,(13):157-159.
篇4
關(guān)鍵詞:大作業(yè);程序設(shè)計(jì)課程;語(yǔ)言學(xué)習(xí);調(diào)研
1.初學(xué)者學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言產(chǎn)生困難的原因
1.1單一化的課程設(shè)置
受到教學(xué)資源和教學(xué)能力的影響,目前國(guó)內(nèi)大學(xué)的程序設(shè)計(jì)課程除了某些特殊專業(yè)的課程需要一些特殊語(yǔ)言(如浙江大學(xué)生物醫(yī)學(xué)工程系要求采用Mcs51單片機(jī)匯編語(yǔ)言)之外,大多數(shù)采用C/C++、Java、VB、C#等語(yǔ)言。對(duì)于初學(xué)者而言,較多院系選擇讓學(xué)生學(xué)習(xí)C/C++,但是學(xué)生常常會(huì)在后續(xù)其他課程的學(xué)習(xí)中發(fā)現(xiàn)所學(xué)語(yǔ)言并不是需要使用的語(yǔ)言。例如,學(xué)生在清華大學(xué)水利系課程的學(xué)習(xí)中,有時(shí)會(huì)使用到Matlab、VB、Fortran乃至Lisp等語(yǔ)言。
這就對(duì)學(xué)生如何理解編程思想和設(shè)計(jì)程序提出挑戰(zhàn),但現(xiàn)狀往往是學(xué)生學(xué)完了C/C++語(yǔ)言課程,認(rèn)為掌握得也不錯(cuò),卻對(duì)別的語(yǔ)言望而生畏。究其原因有以下幾點(diǎn):①學(xué)生只學(xué)過(guò)c語(yǔ)言,于是只會(huì)用C語(yǔ)言編程;②害怕學(xué)習(xí)其他語(yǔ)言會(huì)像C語(yǔ)言一樣枯燥且花費(fèi)時(shí)間;③盡量繞開需要使用語(yǔ)言的地方。最終的結(jié)果是學(xué)生越來(lái)越不敢應(yīng)用自己曾經(jīng)學(xué)習(xí)的編程技能,導(dǎo)致程序設(shè)計(jì)能力下降。
1.2眾多基礎(chǔ)技能和知識(shí)需要學(xué)習(xí)
對(duì)于初學(xué)者而言,程序設(shè)計(jì)這門課的學(xué)習(xí)任務(wù)往往比較重,有各種作業(yè)和實(shí)驗(yàn)課。但不可忽視的是,要想學(xué)好程序設(shè)計(jì)并能夠自主編寫程序,就必須具備一些其他學(xué)科的基礎(chǔ)知識(shí),如線性代數(shù)、離散數(shù)學(xué)、算法設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等,而主要矛盾就在于上述課程或者沒(méi)有開設(shè),或者比較難。因此,這門本來(lái)就比較難學(xué)的課程容易給初學(xué)者造成一個(gè)暗示,即“應(yīng)該先把上述課程學(xué)好再來(lái)學(xué)編程”,這種現(xiàn)象從信心上打擊了初學(xué)者。
1.3緊湊的課程設(shè)計(jì)和短時(shí)間內(nèi)轉(zhuǎn)化思維
程序設(shè)計(jì)語(yǔ)言的內(nèi)容相對(duì)較多,受學(xué)期學(xué)時(shí)的限制必然被安排得比較緊湊。對(duì)于初學(xué)者而言,比較難的正是前面幾節(jié)課,因?yàn)榫退闶且粋€(gè)最簡(jiǎn)單的“Hello World!”程序,教師都需要對(duì)其中所包含的很多內(nèi)容進(jìn)行解釋,有時(shí)還會(huì)涉及后面章節(jié)的內(nèi)容(如#include指令和cout命令就涉及頭文件、編譯、運(yùn)算符等內(nèi)容)。因此,學(xué)生在前面幾節(jié)課中對(duì)于很多內(nèi)容需要先記下來(lái)如何使用,然后在后續(xù)的課程學(xué)習(xí)中再掌握原理,而這會(huì)不停地增加初學(xué)者的疑惑,直至最終使初學(xué)者認(rèn)為程序設(shè)計(jì)是一門不適合自己的課程。
編程重在思維的轉(zhuǎn)化,而這對(duì)于初學(xué)者來(lái)說(shuō)往往是最難的。無(wú)論是面向過(guò)程還是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,對(duì)初學(xué)者而言都是一種新鮮的思維方式,而不僅僅是一套知識(shí)體系。以前受固定思維模式影響比較嚴(yán)重的初學(xué)者往往難以在短時(shí)間內(nèi)轉(zhuǎn)換思維,跟上緊湊的課程設(shè)計(jì),這導(dǎo)致的最終結(jié)果是初學(xué)者既沒(méi)有學(xué)好程序設(shè)計(jì),又被打擊了學(xué)習(xí)信心和積極性。
2.大作業(yè)及其益處分析
2.1大作業(yè)概述
大作業(yè)不同于一般的編程練習(xí)題,從量和復(fù)雜度上來(lái)說(shuō)都有相當(dāng)大的區(qū)別。大作業(yè)是一個(gè)較為完整的程序開發(fā)過(guò)程,具體來(lái)說(shuō)就是要求學(xué)生編程解決一個(gè)有一定難度的問(wèn)題,綜合利用所學(xué)課程的基本內(nèi)容、基本理論和知識(shí)結(jié)構(gòu)對(duì)難點(diǎn)問(wèn)題進(jìn)行分析的作業(yè)形式。
2.2原始調(diào)研數(shù)據(jù)羅列
筆者通過(guò)對(duì)北京地區(qū)17所高校的60名程序設(shè)計(jì)課程初學(xué)者進(jìn)行訪談(調(diào)查問(wèn)卷及結(jié)果如表1所示),了解他們學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言產(chǎn)生困難的原因以及他們的學(xué)習(xí)方式和看法
2.3數(shù)據(jù)處理和益處分析
綜合被調(diào)研者的口述內(nèi)容和調(diào)研數(shù)據(jù),大作業(yè)有以下幾個(gè)優(yōu)點(diǎn):訓(xùn)練方面廣、靈活性較強(qiáng)、連貫性強(qiáng)。
1)訓(xùn)練方面廣。是否進(jìn)行大作業(yè)設(shè)計(jì)的初學(xué)者平均代碼編寫行數(shù)如圖1所示。從數(shù)據(jù)上來(lái)看,進(jìn)行大作業(yè)的初學(xué)者為44人,占總調(diào)研人數(shù)的73.3%;進(jìn)行大作業(yè)設(shè)計(jì)的初學(xué)者平均代碼編寫行數(shù)是不進(jìn)行大作業(yè)設(shè)計(jì)的初學(xué)者平均代碼編寫行數(shù)的5倍,其中有11名初學(xué)者編寫的程序多于1000行??梢钥闯觯帉懘蟪绦蚩梢员WC初學(xué)者盡量多地使用語(yǔ)言。
2)靈活性較強(qiáng)。主要表現(xiàn)在不同大學(xué)不同課程的大作業(yè)具體內(nèi)容的實(shí)行上,包括2個(gè)方面。首先,從設(shè)計(jì)命題(有的學(xué)校不要求)到開題,再到算法討論和實(shí)現(xiàn)以及最后的程序提交和總結(jié)過(guò)程,導(dǎo)師都可以針對(duì)不同的要求和課程難度設(shè)置,靈活地安排大作業(yè)難度。在調(diào)研中,也有初學(xué)者表示他們可以按照自己的水平,靈活地選擇目標(biāo)和方向以及需要自己完成的項(xiàng)目。其次,導(dǎo)師的考查形式具有靈活性,對(duì)于開放性問(wèn)題,導(dǎo)師可以設(shè)置面試答辯方式,也可以使用提交報(bào)告和運(yùn)行展示的方式??疾闀r(shí)間可以設(shè)置在項(xiàng)目進(jìn)程的關(guān)鍵時(shí)期,此期間可以由初學(xué)者進(jìn)行一些匯報(bào)展示等。
3)連貫性強(qiáng)。主要表現(xiàn)在初學(xué)者的表述上。有的學(xué)校會(huì)為大作業(yè)設(shè)置一些必須使用的關(guān)鍵技術(shù)(如文件讀取、多態(tài)、繼承等)。比較優(yōu)秀的大作業(yè)程序設(shè)計(jì)重點(diǎn)應(yīng)該放在核心思路的討論和核心算法的優(yōu)選上。程序設(shè)計(jì)往往貫穿整個(gè)學(xué)期,有的學(xué)校還專門設(shè)計(jì)一套時(shí)間表,精確到每個(gè)具體日期,要求初學(xué)者在某個(gè)日期提交程序設(shè)計(jì)的具體內(nèi)容。從程序設(shè)計(jì)安排上看,大多數(shù)學(xué)校主要以培養(yǎng)編程習(xí)慣和熟練度作為編程核心,有條件的會(huì)更加重視思維的培養(yǎng)和小組團(tuán)隊(duì)合作共同開發(fā)的能力訓(xùn)練。大作業(yè)可以比較容易地將教學(xué)、自學(xué)、互學(xué)聯(lián)系在一起,將整個(gè)學(xué)期的課程串起來(lái)。
對(duì)于初學(xué)者而言,面對(duì)程序設(shè)計(jì)有兩道坎。第一是掌握語(yǔ)言本身,即能夠順利地使用本門課程的語(yǔ)言達(dá)到自己想要的目標(biāo)。第二是掌握程序設(shè)計(jì)思想,即掌握結(jié)構(gòu)化程序設(shè)計(jì)的精髓,以便在后續(xù)的應(yīng)用中舉一反三。初學(xué)者通過(guò)一般的小作業(yè)能夠鞏固基本的程序設(shè)計(jì)語(yǔ)言知識(shí),相對(duì)而言,通過(guò)大作業(yè)則能夠?qū)⒊绦蛘Z(yǔ)言的學(xué)習(xí)內(nèi)容貫穿起來(lái),訓(xùn)練整體思維的同時(shí)還能夠加強(qiáng)程序使用的熟練度,提高小組合作能力和自主解決問(wèn)題的能力,在量和質(zhì)上達(dá)到飛躍。最關(guān)鍵的是,由于大作業(yè)課堂上的知識(shí)很難滿足需求,使得初學(xué)者在實(shí)踐過(guò)程中自主學(xué)習(xí)新的技術(shù)和算法,提高了自學(xué)程序設(shè)計(jì)語(yǔ)言和舉一反三的能力,為后續(xù)程序設(shè)計(jì)思想的培養(yǎng)奠定基礎(chǔ)。
3.面臨的挑戰(zhàn)
總的來(lái)看,90%以上的學(xué)生認(rèn)為大作業(yè)對(duì)編程訓(xùn)練有效果,其中有半數(shù)以上認(rèn)為這個(gè)作業(yè)很值得做。然而,筆者綜合60名受訪者陳述的觀點(diǎn)發(fā)現(xiàn),相當(dāng)多的學(xué)生仍然無(wú)法達(dá)到培養(yǎng)編程思想并在后續(xù)學(xué)習(xí)中運(yùn)用該編程思想的目標(biāo),仍然為后續(xù)語(yǔ)言需求不對(duì)等的問(wèn)題感到迷茫。究其原因主要包括以下幾個(gè)方面:①題目由老師布置;②幾乎沒(méi)有小組合作;③繁重的課業(yè)導(dǎo)致學(xué)生無(wú)法專心投入;④沒(méi)有改進(jìn)程序的意識(shí),認(rèn)為能夠編出程序即可;⑤考查形式對(duì)于學(xué)生沒(méi)有壓力。
中國(guó)的“傳授一接受”教學(xué)模式會(huì)使學(xué)生減少自主學(xué)習(xí)活動(dòng),逐漸產(chǎn)生依賴教師的習(xí)慣,降低自主學(xué)習(xí)能力。對(duì)于教師的依賴使得學(xué)生不愿意自主設(shè)計(jì)命題,即使設(shè)計(jì)出命題,該命題也存在各種缺陷。少見的小組合作模式是難點(diǎn),學(xué)生沒(méi)有小組合作的習(xí)慣,其實(shí)小組合作的模式不僅能培養(yǎng)學(xué)生合作討論并解決問(wèn)題的能力,而且可以起到讓學(xué)生相互監(jiān)督和督促的作用。學(xué)生對(duì)于課業(yè)壓力與學(xué)習(xí)精力的平衡較難把握,除了面對(duì)繁重的學(xué)習(xí)壓力還要完成大作業(yè),算法的設(shè)計(jì)和優(yōu)化也是需要面對(duì)的難題,需要學(xué)生投入較大精力。學(xué)生動(dòng)手能力的提高過(guò)程中需要解決2大問(wèn)題:①程序設(shè)計(jì)能力;②程序調(diào)試能力。這2個(gè)問(wèn)題相輔相成,都是一個(gè)逐步實(shí)踐和提高的過(guò)程,怎么從中找到一個(gè)平衡也是教師亟待思考的問(wèn)題。
4.結(jié)語(yǔ)
學(xué)生對(duì)于程序設(shè)計(jì)語(yǔ)言的學(xué)習(xí)有語(yǔ)言設(shè)計(jì)不對(duì)口、牽連知識(shí)多、思維轉(zhuǎn)化難等困難。綜合整個(gè)調(diào)研,筆者發(fā)現(xiàn)被廣泛采用的大作業(yè)教學(xué)模式有相當(dāng)突出的優(yōu)點(diǎn),應(yīng)用形式也多種多樣,是很有意義也很值得推廣的一種作業(yè)形式。很多學(xué)生無(wú)法達(dá)到培養(yǎng)程序設(shè)計(jì)思維能力的目標(biāo),而這正是教師通過(guò)一門程序課程教學(xué)所要達(dá)到的目標(biāo),因此在大作業(yè)的完成過(guò)程中,教師應(yīng)該更加關(guān)注這方面內(nèi)容和技能的培養(yǎng)。
該調(diào)研有幾個(gè)明顯缺陷:①樣本容量不夠大,調(diào)查區(qū)域不夠廣,主要涉及北京地區(qū)大學(xué)本科教學(xué)的一小個(gè)方面;②調(diào)研采訪的方式較為固定,應(yīng)結(jié)合多種方法進(jìn)行綜合調(diào)研;③調(diào)研對(duì)象僅涉及學(xué)生,應(yīng)該擴(kuò)展到廣泛的教學(xué)工作者。
篇5
關(guān)鍵詞:程序設(shè)計(jì);教學(xué)策略;教學(xué)方法
中圖分類號(hào):G424 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2013)31-7034-03
一直以來(lái),《VB程序設(shè)計(jì)語(yǔ)言》內(nèi)容都是計(jì)算機(jī)教學(xué)難點(diǎn),對(duì)于教師教學(xué)、學(xué)生學(xué)習(xí)都有很大難度。所謂“擒賊先擒王”,教師和學(xué)生到底遇到怎樣的困難呢?本人采取問(wèn)卷調(diào)查方式,并結(jié)合自身教學(xué)實(shí)踐,總結(jié)出師生各自難點(diǎn)。教師的難點(diǎn)包括:首先,學(xué)生缺乏學(xué)習(xí)興趣,很難調(diào)動(dòng)他們參與程序設(shè)計(jì)學(xué)習(xí)。其次,教材基本上都是理論知識(shí),比較枯燥,大部分學(xué)生不愿意聽,如果不講學(xué)生就不清楚。最后,相比于教學(xué)內(nèi)容,課時(shí)明顯不足,課時(shí)安排間隔時(shí)間長(zhǎng),學(xué)生容易遺忘。學(xué)生的難點(diǎn)包括:首先,存在學(xué)習(xí)心理障礙。教材案例基本都是數(shù)學(xué)問(wèn)題,有的一看就知道答案,學(xué)生會(huì)有疑問(wèn):“這么簡(jiǎn)單的問(wèn)題為什么還要用計(jì)算機(jī)解決,太麻煩了”;還有的問(wèn)題在數(shù)學(xué)課上就很難搞懂,然后計(jì)算機(jī)課上老師又反復(fù)解釋,使學(xué)生感到厭煩。其次,理論知識(shí)枯燥無(wú)味,脫離實(shí)踐需要。在課堂上,教師都是在講解計(jì)算方法、表達(dá)式、語(yǔ)句,學(xué)生不清楚為何要學(xué)這些,到底是什么情況,不知道程序設(shè)計(jì)用于解決哪種問(wèn)題。最后,教師不留給學(xué)生做作業(yè)的時(shí)間或者干脆不布置作業(yè),造成學(xué)生只掌握一些知識(shí)片段,不能形成完整知識(shí)體系。
為此,本人希望探索程序設(shè)計(jì)語(yǔ)言教學(xué)策略,運(yùn)用科學(xué)教學(xué)方法,增強(qiáng)學(xué)生學(xué)習(xí)信心,培養(yǎng)學(xué)生自主探究學(xué)習(xí)能力,讓學(xué)生更好掌握程序設(shè)計(jì)知識(shí)。
1 尋找課堂教學(xué)的切入點(diǎn),培養(yǎng)學(xué)生探究能力
在課堂教學(xué)中要把握好切入點(diǎn),創(chuàng)設(shè)具體問(wèn)題情境,培養(yǎng)學(xué)生思維能力。立足于信息傳播、接收、保存教學(xué)思想,把課堂導(dǎo)入作為點(diǎn)燃學(xué)生思維火花的“導(dǎo)火索”。好的課堂導(dǎo)入能夠讓學(xué)生自主探究學(xué)習(xí),循序漸進(jìn)地啟發(fā)學(xué)生思維,學(xué)生更容易理解接受新知識(shí)。反之,如果課堂切入點(diǎn)選擇不合理,缺乏邏輯性,課堂教學(xué)環(huán)節(jié)就不能有效銜接,導(dǎo)致教學(xué)混亂。
1.1 以貼近生活的例子,激發(fā)學(xué)生的學(xué)習(xí)興趣
比如,我在上“計(jì)時(shí)器控件”一課時(shí),恰逢南京準(zhǔn)備舉辦2014年世界青年奧運(yùn)會(huì),所以就這樣設(shè)計(jì)課堂切入點(diǎn):“南京將在2014年舉辦世界青年奧運(yùn)會(huì),這是南京前所未有的機(jī)遇,我們?yōu)槟暇┥陫W成功做了很多,而承辦奧運(yùn)會(huì)需要我們付出更多,我們應(yīng)該為青年奧運(yùn)會(huì)做些什么呢?那么,我們計(jì)算機(jī)專業(yè)學(xué)生就做一個(gè)倒計(jì)時(shí)程序吧?!比缓髮⒄n前準(zhǔn)備好的程序打開,自然過(guò)渡到本節(jié)課“計(jì)時(shí)器控件”學(xué)習(xí)。2014年南京世界青年奧運(yùn)會(huì)承載著南京人民的夢(mèng)想,也是所有世界青年追尋的理想,通過(guò)這樣導(dǎo)入把學(xué)生注意力集中到課堂上來(lái)。
1.2 以巧妙設(shè)計(jì)的數(shù)學(xué)問(wèn)題,加深概念的理解化
《VB 程序設(shè)計(jì)》課程內(nèi)容十分豐富,對(duì)于一些概念不同點(diǎn),假如教師僅僅是解釋字面意思,盡管學(xué)生容易接受,但很難把握其深刻含義,掌握的知識(shí)也是膚淺的。因此,教師要讓學(xué)生親身參與實(shí)踐活動(dòng),體驗(yàn)問(wèn)題解決過(guò)程,從而加深知識(shí)理解。
比如,本人在講解“整型變量”、“單精度變量”和“雙精度變量”時(shí),采用以下導(dǎo)入方式:首先讓學(xué)生通過(guò)編程來(lái)計(jì)算5!,在編程過(guò)程中學(xué)生都用整型來(lái)定義變量,獲得準(zhǔn)確計(jì)算結(jié)果,接著讓學(xué)生修改程序計(jì)算10!,僅僅是對(duì)計(jì)算數(shù)字進(jìn)行修改,但電腦并沒(méi)有顯示正確答案,出現(xiàn)“數(shù)據(jù)溢出”的提示,學(xué)生感到很困惑。這時(shí),教師應(yīng)指導(dǎo)學(xué)生修改程序變量,用單精度進(jìn)行定義,從而獲得正確答案。然后再讓學(xué)生修改程序計(jì)算100!,如果學(xué)生還是采用單精度程序變量,那么,“數(shù)據(jù)溢出”的提示會(huì)再次出現(xiàn),學(xué)生自然會(huì)想到用雙精度來(lái)定義程序變量,電腦顯示正確計(jì)算結(jié)果,這樣就掌握了知識(shí)。學(xué)生通過(guò)實(shí)踐體驗(yàn),學(xué)會(huì)區(qū)分整型變量、單精度變量和雙精度變量,加深對(duì)知識(shí)的理解。另外,因?yàn)樗谢顒?dòng)都是學(xué)生自主參與,不僅要?jiǎng)邮郑€要?jiǎng)幽X,有利于激發(fā)學(xué)生探究學(xué)習(xí)的積極性。
2 重排課堂教學(xué)順序,遵循學(xué)生認(rèn)知規(guī)律
課堂教學(xué)應(yīng)擺脫教材固有知識(shí)邏輯順序束縛,根據(jù)學(xué)生實(shí)際知識(shí)能力水平,遵循學(xué)生認(rèn)知發(fā)展規(guī)律,從易到難、從個(gè)別到一般,合理調(diào)整安排課堂教學(xué)環(huán)節(jié),通過(guò)觀察、模仿、理解、總結(jié)、升華五個(gè)步驟,發(fā)揮學(xué)生課堂教學(xué)主體作用。
VB教學(xué)一般來(lái)說(shuō)都是先介紹一些抽象難懂的程序設(shè)計(jì)概念,包括計(jì)算方法、對(duì)象屬性、流程圖畫、事件、對(duì)象等,接著講解程序編寫、程序運(yùn)行,最后介紹VB語(yǔ)言基礎(chǔ)、數(shù)組、分支結(jié)構(gòu)以及循環(huán)結(jié)構(gòu)。從教材知識(shí)邏輯關(guān)系角度上看,這種安排也是正常的,但考慮到學(xué)生認(rèn)知規(guī)律特點(diǎn),本人認(rèn)為,如果學(xué)生一開始就接觸抽象難懂的專業(yè)術(shù)語(yǔ)概念會(huì)出現(xiàn)一些問(wèn)題。首先,學(xué)生在相關(guān)知識(shí)完全空白的情況下,很難理解這些概念。其次,學(xué)習(xí)難度太大會(huì)挫傷學(xué)生學(xué)習(xí)積極性。所以建議,開始上課時(shí)先不要給學(xué)生講這些抽象籠統(tǒng)概念,而是運(yùn)用一系列具體案例,讓學(xué)生直觀感受體驗(yàn),對(duì)概念有初步了解,接著教師引導(dǎo)學(xué)生一起總結(jié)歸納。因此,本人在課堂教學(xué)開始階段采用類比、自然過(guò)渡等方法,讓學(xué)生自己打開VB軟件,自己建立、保存程序,觀察、認(rèn)識(shí)軟件界面,鼓勵(lì)學(xué)生自主探究學(xué)習(xí),尋找VB軟件和過(guò)去所學(xué)軟件的共同點(diǎn)和不同點(diǎn)。因?yàn)橹皩W(xué)生已經(jīng)學(xué)過(guò)office軟件操作,對(duì)于這些類似操作十分熟悉,所以上手很快。接著,教師給出一個(gè)實(shí)例計(jì)算任意兩個(gè)整數(shù)之和,和學(xué)生共同完成。學(xué)生動(dòng)手操作時(shí),教師不用把每個(gè)概念都詳細(xì)講解,在實(shí)踐過(guò)程中,學(xué)生自己會(huì)碰到很多問(wèn)題,并逐漸理解體會(huì)對(duì)象及其屬性,掌握事件設(shè)置方法,學(xué)會(huì)將對(duì)象添加到軟件界面等。另外,教師應(yīng)適當(dāng)引導(dǎo)學(xué)生總結(jié)歸納所學(xué)知識(shí),這樣就可以有效解決問(wèn)題。
3 巧用編程“錯(cuò)誤”,培養(yǎng)學(xué)生反思能力
對(duì)于課堂教學(xué)中的隱藏錯(cuò)誤,通常學(xué)生都難以察覺(jué),教師如果發(fā)現(xiàn)錯(cuò)誤,盡量不要直接說(shuō)明,而是引導(dǎo)學(xué)生觀察、思考,通過(guò)比較分析逐漸發(fā)現(xiàn)錯(cuò)誤。同時(shí),學(xué)生對(duì)于自身隱藏錯(cuò)誤往往很感興趣,學(xué)習(xí)過(guò)程中找到自己的錯(cuò)誤會(huì)讓學(xué)生更有動(dòng)力,教師可以利用這一特點(diǎn),鼓勵(lì)學(xué)生自己多總結(jié)反思。
比如,本人在上“分支結(jié)構(gòu)”這一課時(shí),采用以下教學(xué)設(shè)計(jì):
①運(yùn)行程序時(shí),電腦屏幕上會(huì)出現(xiàn)“你幸福嗎?”幾個(gè)字。
②如果用鍵盤輸入“y”,電腦就會(huì)顯示“幸?!保斎肫渌麅?nèi)容,電腦就會(huì)顯示“不幸?!?。
學(xué)生在進(jìn)行程序調(diào)試運(yùn)行時(shí),會(huì)碰到很多問(wèn)題。比如,輸入小寫字母“y”,就顯示微笑表情,為什么輸入大寫字母“Y”,電腦就無(wú)法顯示微笑表情?這時(shí),教師要幫助學(xué)生一同分析程序哪里出現(xiàn)問(wèn)題?出現(xiàn)問(wèn)題原因是什么?這種錯(cuò)誤會(huì)帶來(lái)怎樣影響?應(yīng)該采取何種解決辦法?引導(dǎo)學(xué)生思考分析,鼓勵(lì)學(xué)生大膽嘗試,自己解決問(wèn)題。學(xué)生往往會(huì)有不同解決辦法,像有的學(xué)生采用SELECT CASE語(yǔ)句,還有的學(xué)生采用兩個(gè)IF語(yǔ)句等。通過(guò)長(zhǎng)期培養(yǎng),這有利于大幅提高學(xué)生編程的科學(xué)性、嚴(yán)謹(jǐn)性。
另外,本人還制定了如下的學(xué)習(xí)表格,主要是為了讓學(xué)生學(xué)會(huì)自我反思,培養(yǎng)學(xué)生獨(dú)立思考能力,讓他們更深刻理解把握新知識(shí)。
再像上《設(shè)計(jì)一個(gè)猜數(shù)小游戲》一課時(shí),本人在課堂教學(xué)中設(shè)計(jì)了“大家來(lái)找茬”環(huán)節(jié),向?qū)W生展示一個(gè)“半成品”程序。程序代碼中故意設(shè)置6個(gè)錯(cuò)誤,這些錯(cuò)誤都是學(xué)生編寫代碼時(shí)很容易出現(xiàn)的錯(cuò)誤,把程序發(fā)送到學(xué)生端計(jì)算機(jī),學(xué)生在設(shè)計(jì)好的軟件界面上調(diào)試運(yùn)行這些程序,檢查錯(cuò)誤。同時(shí),課堂上進(jìn)行找錯(cuò)比賽,看誰(shuí)找的錯(cuò)誤多,找錯(cuò)速度快,而且可以很好修改錯(cuò)誤。這有利于充分調(diào)動(dòng)學(xué)生課堂參與積極性,讓學(xué)生獲得成功體驗(yàn),培養(yǎng)學(xué)生學(xué)習(xí)興趣。
4 精選游戲?qū)嵗ぐl(fā)學(xué)生興趣
根據(jù)教育心理學(xué)理論,我們知道,學(xué)生永遠(yuǎn)對(duì)那些“小玩意”很感興趣,只有“玩”永遠(yuǎn)不會(huì)讓他們感到厭倦。興趣是學(xué)生學(xué)習(xí)的根本動(dòng)力,因此,本人在設(shè)計(jì)教學(xué)方案時(shí),決定讓學(xué)生通過(guò)“玩”來(lái)學(xué)習(xí)知識(shí)。通過(guò)上網(wǎng)搜索大量資料,并整合其他教學(xué)資源,設(shè)計(jì)了一系列教學(xué)游戲環(huán)節(jié),像《剪刀、石頭、布》、《數(shù)字排序》、《彈性小球》、《蝴蝶飛舞》、《抽大獎(jiǎng)》等,有效豐富了程序設(shè)計(jì)課堂教學(xué)。這些游戲包含著不同知識(shí)點(diǎn),為學(xué)生創(chuàng)造輕松、快樂(lè)的學(xué)習(xí)環(huán)境,讓學(xué)生在游戲中有收獲,真正體驗(yàn)學(xué)習(xí)的樂(lè)趣。
比如,《剪刀、石頭、布》就是學(xué)生十分熟悉的游戲,規(guī)則簡(jiǎn)單易懂,可以讓學(xué)生快速進(jìn)入教學(xué)情境?!罢l(shuí)獲勝?如何判斷?”能有效解決條件語(yǔ)句難以理解問(wèn)題。還有像《蝴蝶飛舞》游戲,既要運(yùn)用隨機(jī)函數(shù)知識(shí),還要利用photoshop軟件處理圖像素材。這些教學(xué)游戲十分貼近學(xué)生實(shí)際,生動(dòng)形象地傳授知識(shí)。
5 設(shè)計(jì)有效練習(xí),挖掘?qū)W生思維潛能
人類最高層次思維心態(tài)就是創(chuàng)造性,這也是一種高級(jí)智力表現(xiàn)。創(chuàng)新能力是建立在創(chuàng)新思維基礎(chǔ)上的,所以,教師在教學(xué)過(guò)程中應(yīng)有意識(shí)培養(yǎng)學(xué)生創(chuàng)新思維,鼓勵(lì)學(xué)生大膽嘗試,運(yùn)用新思想、新方法學(xué)習(xí)知識(shí)。
比如,在學(xué)習(xí)“MOVE方法”這部分內(nèi)容時(shí),本人上課一開始就向?qū)W生介紹:窗口界面上有一輛汽車,還有“行駛”、“停止”兩個(gè)按鈕,點(diǎn)擊“行駛”按鈕,汽車就會(huì)移動(dòng);點(diǎn)擊“停止”按鈕,汽車就會(huì)停止。在汽車運(yùn)動(dòng)過(guò)程中,學(xué)生思維得到啟發(fā)。本人以此為導(dǎo)入,給學(xué)生講解“MOVE方法”,引導(dǎo)學(xué)生認(rèn)真聽講,接著自己動(dòng)手編寫程序,讓學(xué)生充分參與課堂教學(xué)。
而在上“雙循環(huán)結(jié)構(gòu)”一課時(shí),本人設(shè)置了以下問(wèn)題:怎樣讓電腦屏幕顯示“*”拼成的平行四邊形?這個(gè)題目并不難,教師只需簡(jiǎn)單講解,學(xué)生就可以模仿完成,在此基礎(chǔ)上然后要求學(xué)生修改程序,完成以下任務(wù):
①怎樣讓電腦屏幕顯示“*”拼成的三角形?
②怎樣讓電腦屏幕顯示“*”拼成的菱形?
③用“*”設(shè)計(jì)一個(gè)創(chuàng)意圖案。
學(xué)生在課堂教學(xué)過(guò)程中思維一直處于緊張、興奮狀態(tài),形成濃厚的學(xué)習(xí)興趣,不僅可以培養(yǎng)學(xué)生比較、分析、概括的抽象思維能力,還可以培養(yǎng)學(xué)生發(fā)散思維能力和創(chuàng)新意識(shí)。這種教學(xué)活動(dòng)可以很好吸引學(xué)生注意力,提高學(xué)生思維活躍度。
6 建立完善評(píng)價(jià)體系,提高學(xué)生綜合素養(yǎng)
對(duì)于學(xué)生來(lái)說(shuō),學(xué)習(xí)積極性起到重要推動(dòng)作用,那這種積極性來(lái)自哪里呢?這里我們就要談到科學(xué)評(píng)價(jià)機(jī)制。為充分發(fā)揮教學(xué)評(píng)價(jià)作用,改進(jìn)教學(xué)工作,本人制定了以下兩種評(píng)價(jià)量表,把自我評(píng)價(jià)和他人評(píng)價(jià)有機(jī)結(jié)合起來(lái)。
第一份評(píng)價(jià)量表是“我問(wèn),我答,我行”。在開學(xué)時(shí),教師就要把該量表發(fā)給學(xué)生,讓他們自己保存、進(jìn)行自我評(píng)價(jià),記錄平時(shí)課堂表現(xiàn)情況,這是一種有效的學(xué)生自評(píng)方法。其特點(diǎn)是給予學(xué)生充分信任,有利于培養(yǎng)學(xué)生自覺(jué)性和誠(chéng)實(shí)品質(zhì)。表格之所以用這樣的標(biāo)題,主要是為了提供學(xué)生心理暗示,鼓勵(lì)學(xué)生展示個(gè)性風(fēng)采,盡情發(fā)揮自己的才華,其評(píng)價(jià)結(jié)果占總評(píng)的20%。
第二份評(píng)價(jià)量表是“我做,我思,我真行”,主要針對(duì)學(xué)生日常作業(yè)情況,屬于一種他人評(píng)價(jià)方法。其評(píng)價(jià)主體不僅僅是老師,還包括同學(xué)、組長(zhǎng)等,具體根據(jù)任務(wù)要求來(lái)確定。該評(píng)價(jià)主要特點(diǎn)是有明確的量規(guī),通過(guò)三維教學(xué)目標(biāo)來(lái)細(xì)化任務(wù)內(nèi)容,形成具體規(guī)范。這種評(píng)價(jià)優(yōu)點(diǎn)是可以讓教師更好把握學(xué)生實(shí)際學(xué)習(xí)情況,可以及時(shí)調(diào)整教學(xué)計(jì)劃,改進(jìn)教學(xué)設(shè)計(jì)。該評(píng)價(jià)結(jié)果占總評(píng)的40%,最后剩下的40%為學(xué)期考核成績(jī)。
總而言之,教學(xué)講究方法,但不是一成不變的。程序設(shè)計(jì)教學(xué)目標(biāo)是讓學(xué)生掌握編程基礎(chǔ)知識(shí),培養(yǎng)其分析解決實(shí)際問(wèn)題的能力。根據(jù)該目標(biāo)要求,《VB程序設(shè)計(jì)教學(xué)》應(yīng)改變傳統(tǒng)教學(xué)方法,從學(xué)生實(shí)際出發(fā),合理設(shè)計(jì)課堂教學(xué)活動(dòng)。在教學(xué)過(guò)程中,教師必須遵循學(xué)生認(rèn)知規(guī)律,綜合運(yùn)用多種教學(xué)方法,提高學(xué)生綜合素質(zhì)能力,實(shí)現(xiàn)程序設(shè)計(jì)教學(xué)目標(biāo)。
參考文獻(xiàn):
[1] 吳友斌.面向職高學(xué)生的程序設(shè)計(jì)教學(xué)策略[J].時(shí)代教育(教育教學(xué)版),2010(02).
[2] 曹雪麗.高中算法與程序設(shè)計(jì)教學(xué)四部曲[J].中小學(xué)信息技術(shù)教育,2012(Z1).
篇6
中圖分類號(hào):G642
1 程序設(shè)計(jì)語(yǔ)言類課程的教學(xué)現(xiàn)狀及問(wèn)題
計(jì)算機(jī)學(xué)科知識(shí)結(jié)構(gòu)更新快,其中,程序設(shè)計(jì)語(yǔ)言在短短的幾十年間經(jīng)歷了較大變化。語(yǔ)言類課程是計(jì)算機(jī)學(xué)科的專業(yè)基礎(chǔ)課程,其學(xué)習(xí)效果直接影響其他后續(xù)課程。當(dāng)前語(yǔ)言類課程教學(xué)主要面臨以下問(wèn)題。
1.1 課程體系設(shè)置單一
國(guó)內(nèi)高校計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)語(yǔ)言類課程大多是過(guò)程式或者面向?qū)ο蟮拿钍骄幊陶Z(yǔ)言,課程體系設(shè)置單一。不可否認(rèn),這類語(yǔ)言無(wú)論是從學(xué)科性還是有用性上講,都是合適的。然而,程序設(shè)計(jì)語(yǔ)言不僅僅是這類命令式語(yǔ)言,它還包括如ML、Haskell這樣經(jīng)典的函數(shù)式編程語(yǔ)言,或者如兼顧面向?qū)ο蠛秃瘮?shù)式的Scala語(yǔ)言等。從某種意義上講,函數(shù)式編程能夠更大程度地鍛煉計(jì)算思維[1]。在多核并行程序設(shè)計(jì)已經(jīng)被推到前沿的今天,命令式編程語(yǔ)言天生的缺陷使得構(gòu)造并行編程模型變得非常復(fù)雜,而函數(shù)式編程在經(jīng)歷數(shù)十年的發(fā)展之后,終于不再局限于實(shí)驗(yàn)室的理論研究。事實(shí)上,如果不懂得函數(shù)式編程,Google不可能創(chuàng)造出MapReduce。
1.2 教學(xué)過(guò)程僵化
程序設(shè)計(jì)語(yǔ)言類課程的傳統(tǒng)講授是按照編程語(yǔ)言類教材的典型撰寫次序,先講常量、變量、數(shù)據(jù)類型等,再講表達(dá)式、語(yǔ)句等,再比較復(fù)雜的語(yǔ)言特點(diǎn),這些花費(fèi)了較多時(shí)間,最后可能不再有多余的時(shí)間剖析該語(yǔ)言的內(nèi)建庫(kù)函數(shù)或者類,更少涉及該門課程與后續(xù)課程的銜接關(guān)系。這種傳統(tǒng)的講授方式針對(duì)第一門程序設(shè)計(jì)語(yǔ)言課程的教學(xué),特別對(duì)那些沒(méi)有接觸過(guò)編程語(yǔ)言的學(xué)生來(lái)講,可能是一種較好的方式[2]。然而,對(duì)于第二門程序設(shè)計(jì)語(yǔ)言的授課,按照這種按部就班的教學(xué)過(guò)程推進(jìn)教學(xué)進(jìn)度時(shí),由于在較長(zhǎng)一段教學(xué)活動(dòng)中所講授的都是孤立的語(yǔ)法點(diǎn),學(xué)生看不到一個(gè)較為完整的應(yīng)用實(shí)例,也不了解這門課程與其他課程之間的貫通,容易產(chǎn)生厭學(xué)的心理,也很難體會(huì)程序語(yǔ)言的設(shè)計(jì)藝術(shù)。
1.3 重編程技能,輕計(jì)算思維
針對(duì)程序設(shè)計(jì)語(yǔ)言類課程實(shí)踐性特別強(qiáng)的特點(diǎn),許多教改措施都是針對(duì)如何提高學(xué)生的工程應(yīng)用實(shí)踐技能的[2-3],如采用案例化、任務(wù)驅(qū)動(dòng)、項(xiàng)目驅(qū)動(dòng)等方式。編程技術(shù)固然重要,然而計(jì)算思維比單純技術(shù)更加重要。培養(yǎng)學(xué)生以計(jì)算機(jī)的方式進(jìn)行思考和解決問(wèn)題,讓他們認(rèn)識(shí)到程序是思想的表現(xiàn)形式,最終能夠通過(guò)語(yǔ)言來(lái)表達(dá)思考與設(shè)計(jì),并能理解這門語(yǔ)言設(shè)計(jì)和實(shí)現(xiàn)的長(zhǎng)處、不足、限制等。為了達(dá)到這個(gè)目標(biāo),需要引導(dǎo)學(xué)生深入理解編程語(yǔ)言本身。
2 教學(xué)改革措施
2.1 增設(shè)函數(shù)式編程語(yǔ)言課程
函數(shù)式編程模型早在面向?qū)ο蟾拍畛霈F(xiàn)之前就已經(jīng)存在了,它的核心是lambda演算。由于其語(yǔ)法不如命令式語(yǔ)言的語(yǔ)法直觀易懂,許多初次接觸函數(shù)式編程的人常常不知所措,會(huì)覺(jué)得難以理解。然而,這種難以理解性與熟悉程度相關(guān)。近20年的課程改革中,因?yàn)榉N種原因,程序設(shè)計(jì)語(yǔ)言類課程體系幾乎完全拋棄了函數(shù)式程序設(shè)計(jì)語(yǔ)言。如今,多核時(shí)代的興起,函數(shù)式程序代碼的簡(jiǎn)潔性使得它在并發(fā)應(yīng)用領(lǐng)域綻放光彩。雖然實(shí)用性是我們應(yīng)當(dāng)考慮的一個(gè)方面,但是從培養(yǎng)學(xué)生計(jì)算思維以及從編程語(yǔ)言本身的研究方面,增設(shè)函數(shù)式編程語(yǔ)言課程是很有必要的。
常用的函數(shù)式編程語(yǔ)言或者具備函數(shù)式編程語(yǔ)言特點(diǎn)的編程語(yǔ)言包括Haskell、ML、OCaml 、Scala等。依據(jù)需要可以選擇不同的函數(shù)式編程語(yǔ)言:如果傾向于編程語(yǔ)言本身的理解,可以選擇純函數(shù)式的ML、Haskell,或者OCaml;如果傾向于并行分布式程序的開發(fā),可以選擇結(jié)合了面向?qū)ο蠛秃瘮?shù)式特點(diǎn)的Scala語(yǔ)言,它兼容Java。此外,Java 8的lambda表達(dá)式也是一個(gè)不錯(cuò)的學(xué)習(xí)函數(shù)式編程的選擇。
2.2 適當(dāng)調(diào)整講授內(nèi)容的次序
以Java程序設(shè)計(jì)語(yǔ)言的教學(xué)為例,按照常規(guī)教材的編寫次序,Java的教學(xué)內(nèi)容通常是先講變量、類型、表達(dá)式和語(yǔ)句,然后是數(shù)組,接著是類和對(duì)象、繼承等。在實(shí)踐中我們對(duì)講授內(nèi)容的次序進(jìn)行了調(diào)整:在對(duì)Java語(yǔ)言作了初步介紹之后,緊接著講解對(duì)象的創(chuàng)建和使用,見表1。表1第2行的內(nèi)容不再放在講解了類的定義之后。這個(gè)調(diào)整出于兩方面的考慮:一方面,讓學(xué)生盡快建立對(duì)象的概念,知道怎么使用對(duì)象;另一方面,數(shù)組在Java程序設(shè)計(jì)語(yǔ)言中視為對(duì)象,因此,講解了如何使用對(duì)象之后有利于數(shù)組的講解。而類的定義涉及較多語(yǔ)法知識(shí),在講解了如何使用對(duì)象、變量、類型、表達(dá)式和語(yǔ)句之后,引導(dǎo)學(xué)生考慮這個(gè)問(wèn)題――我們能不能按照自己的設(shè)計(jì)來(lái)創(chuàng)建對(duì)象呢,于是開始講解類的定義,見表1第5行。
為了講解如何使用對(duì)象,首先選擇兩個(gè)常用的Java內(nèi)建類――字符串String和System,針對(duì)已經(jīng)學(xué)習(xí)了C語(yǔ)言程序設(shè)計(jì)的學(xué)生,從教學(xué)效果上看,盡管學(xué)生還沒(méi)有接觸到Java的各種語(yǔ)法規(guī)則,但是他們?nèi)匀唤邮芰恕皩?duì)象”這個(gè)知識(shí)點(diǎn)的講授。更重要的是,他們建立了對(duì)象的初步印象,了解了Java與C的不同,并在一定程度上激發(fā)了學(xué)生的學(xué)習(xí)興趣。
由于Java程序需要使用標(biāo)準(zhǔn)輸出流的方法System.out.print()用于輸出程序的運(yùn)行結(jié)果,學(xué)生就問(wèn):Java程序怎么輸入呢?此時(shí),對(duì)輸入輸出流進(jìn)行較為完整的講解顯然不合適,在講解使用對(duì)象時(shí),我們進(jìn)一步講解如何使用Java的字符緩沖輸入流類BufferedReader,直接給出如下板書:
BufferedReader br = new BufferedReader(
//BufferedReader需要一個(gè)Reader類型的參數(shù)
//InputStreamReader就是一個(gè)Reader
new InputStreamReader(
//InputStreamReader需要一個(gè)InputStream類型的參//數(shù),System.in就是一個(gè)InputStream
System.in));// System.in用于接受鍵盤的輸入
br.readLine(); //BufferedReader的readLine
//方法讀入一行
以上這段代碼稍顯復(fù)雜,學(xué)生在課余可以仔細(xì)研究并進(jìn)行試驗(yàn)。實(shí)踐表明,這些Java常用內(nèi)建類的使用在教學(xué)初期給出時(shí),不但沒(méi)有造成學(xué)生的困惑和畏懼,反而提升了學(xué)生的學(xué)習(xí)熱情。
2.3 引導(dǎo)學(xué)生深入理解程序設(shè)計(jì)語(yǔ)言
程序?O計(jì)語(yǔ)言類課程對(duì)于培養(yǎng)學(xué)生的計(jì)算思維非常重要,需要學(xué)生深入理解程序設(shè)計(jì)語(yǔ)言本身的設(shè)計(jì)與實(shí)現(xiàn),而不僅僅是學(xué)習(xí)單純的語(yǔ)法。
通常學(xué)生因其視野的局限性和課時(shí)的限制,無(wú)法深入學(xué)習(xí)一門程序設(shè)計(jì)語(yǔ)言。教師在授課時(shí)應(yīng)該找機(jī)會(huì)引導(dǎo)學(xué)生去深入理解。通常,語(yǔ)言設(shè)計(jì)和實(shí)現(xiàn)者提供了API文檔和源碼,這些是深入理解一門編程語(yǔ)言最直接也是非常好的參考資料。如果學(xué)生能夠養(yǎng)成查看API的習(xí)慣,無(wú)疑能夠促進(jìn)對(duì)語(yǔ)言的認(rèn)識(shí)和理解。以引用類型變量的講解為例,假設(shè)變量p引用的是一個(gè)Person類型的對(duì)象,變量s引用的是一個(gè)String字符串對(duì)象。System.out.print(p)輸出結(jié)果是代表對(duì)象地址的哈希碼,而System.out.print(s)輸出了一個(gè)字符串。這是為什么呢?同時(shí),有學(xué)生就會(huì)提出疑問(wèn):System.out.print(p)是否可以直接輸出p所引用的Person對(duì)象的成員值,如姓名和年齡等,而System.out.print(s)是否可以輸出這個(gè)字符串對(duì)象的地址哈希值?在這個(gè)過(guò)程中,可以引導(dǎo)學(xué)生逐步查找對(duì)應(yīng)的API,如圖1所示。最后可以進(jìn)一步查看Object類和String類對(duì)應(yīng)方法的實(shí)現(xiàn)源碼。知道了這個(gè)思路后,學(xué)生豁然開朗,開始著手解決問(wèn)題。
在教學(xué)實(shí)踐中,我們常常鼓勵(lì)學(xué)生按照這種方法去找解決思路,而不是直接給出答案。得益于Java的開源,在Java程序設(shè)計(jì)語(yǔ)言的教學(xué)活動(dòng)中,我們也鼓勵(lì)學(xué)生查看javac編譯器或者JVM的即時(shí)編譯器的實(shí)現(xiàn)源碼。學(xué)生通過(guò)這種學(xué)習(xí)方式,在長(zhǎng)期使用一門程序設(shè)計(jì)語(yǔ)言后,最終能夠駕馭語(yǔ)言,表達(dá)類似計(jì)算機(jī)方式的思考與設(shè)計(jì)。
篇7
關(guān)鍵詞:問(wèn)題誘導(dǎo);啟發(fā)式教學(xué);程序設(shè)計(jì)語(yǔ)言;教學(xué)方法
目前大多數(shù)程序設(shè)計(jì)語(yǔ)言按照知識(shí)點(diǎn)結(jié)構(gòu)進(jìn)行教學(xué),教師在教學(xué)過(guò)程中習(xí)慣性地進(jìn)行注入式教學(xué)。這種教學(xué)方法造成學(xué)生只能照搬照套模仿示例代碼,不能靈活運(yùn)用所學(xué)知識(shí),難于自己動(dòng)手編寫代碼以解決實(shí)際問(wèn)題[1]。著名科學(xué)家牛頓發(fā)現(xiàn)“成熟的蘋果從樹上掉下來(lái)”這一自然現(xiàn)象,才逐步分析問(wèn)題、研究問(wèn)題,提出了萬(wàn)有引力定律;而不是先研究出萬(wàn)有引力定律,才推導(dǎo)出實(shí)際結(jié)果或發(fā)現(xiàn)現(xiàn)象。所以科學(xué)家們都是從實(shí)際問(wèn)題、具體現(xiàn)象出發(fā),分析問(wèn)題,研究問(wèn)題,從實(shí)踐升華到理論,再?gòu)睦碚搼?yīng)用到實(shí)踐。當(dāng)教師在向?qū)W生傳授科學(xué)家們研究出的科研成果時(shí),應(yīng)該讓學(xué)生先了解存在的問(wèn)題、知識(shí)的來(lái)源、過(guò)程,以深入理解知識(shí)、能夠靈活應(yīng)用知識(shí),而不是簡(jiǎn)單地告訴其成果,然后應(yīng)用到實(shí)踐中。
我們要培養(yǎng)出具有創(chuàng)新能力的人才,不僅要采用啟發(fā)式方法促進(jìn)學(xué)生對(duì)知識(shí)的理解與應(yīng)用,更迫切需要按照知識(shí)被發(fā)現(xiàn)、研究和應(yīng)用的“再現(xiàn)”過(guò)程,傳遞知識(shí)給學(xué)生,讓學(xué)生理解知識(shí)的本質(zhì)。所以,本文研究問(wèn)題誘導(dǎo)啟發(fā)式程序設(shè)計(jì)語(yǔ)言教學(xué)方法,在教學(xué)中從具體的問(wèn)題入手,啟發(fā)式地引導(dǎo)學(xué)生理解程序設(shè)計(jì)語(yǔ)言中的基本概念、基本結(jié)構(gòu)和基本方法,然后應(yīng)用到具體實(shí)例中。本文以面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言Java為例,從基礎(chǔ)知識(shí)、程序算法、過(guò)程和函數(shù)、圖形用戶界面設(shè)計(jì)等方面分析問(wèn)題誘導(dǎo)啟發(fā)式教學(xué)方法在程序設(shè)計(jì)語(yǔ)言的應(yīng)用。
1啟發(fā)式教學(xué)方法
啟發(fā)式教學(xué)是歷代東西方教育思想的精華。早在兩千多年前,孔子就提出了“不憤不啟,不悱不發(fā);舉一隅而不以三隅反,則不復(fù)也”的啟發(fā)式思想。他強(qiáng)調(diào)學(xué)思結(jié)合,認(rèn)為只有當(dāng)學(xué)生處于積極狀態(tài)時(shí),在心求通而未得其意時(shí),在知其意而不能言時(shí),教師進(jìn)行啟發(fā)、誘導(dǎo)最為合適,教學(xué)效果最佳。同樣,古希臘蘇格拉底提出了“助產(chǎn)術(shù)”,以交流方式講學(xué),在交談時(shí)提出問(wèn)題,引導(dǎo)學(xué)生進(jìn)行思索,自己得出結(jié)論??鬃雍吞K格拉底的啟發(fā)式思想和方法,為古今中外歷代教育家繼承和發(fā)展,形成了今天的啟發(fā)式教學(xué)思想、原則和方法[2]。啟發(fā)式教學(xué)方法具有很多形式,包括經(jīng)常使用的正問(wèn)啟發(fā)、從問(wèn)題對(duì)立角度提出的反問(wèn)啟發(fā)、增強(qiáng)學(xué)生直觀印象的觀察啟發(fā)、依據(jù)知識(shí)點(diǎn)內(nèi)在聯(lián)系進(jìn)行邏輯推理的推理啟發(fā)、使學(xué)生加深對(duì)知識(shí)內(nèi)涵和外延認(rèn)識(shí)理解的對(duì)比啟發(fā)、類比啟發(fā)、發(fā)散啟發(fā)、圖示啟發(fā)等[3]。
問(wèn)題啟發(fā)是啟發(fā)式教學(xué)方法的重要途徑,問(wèn)題本身的質(zhì)量是影響啟發(fā)式教學(xué)效果的重要因素。根據(jù)美國(guó)密歇根大學(xué)教育學(xué)院的研究報(bào)告,一個(gè)好的啟發(fā)式問(wèn)題應(yīng)該是有價(jià)值的、可行的、可持續(xù)的、合倫理的。有價(jià)值的啟發(fā)式問(wèn)題可以使學(xué)生真正理解知識(shí)點(diǎn),學(xué)習(xí)到有價(jià)值的知識(shí)。可行的啟發(fā)式問(wèn)題應(yīng)該是學(xué)生在已經(jīng)掌握的知識(shí)基礎(chǔ)上,利用教材和參考資料、互聯(lián)網(wǎng)等資源,通過(guò)研究、討論等形式可以解決的??沙掷m(xù)的啟發(fā)式問(wèn)題應(yīng)該能夠擴(kuò)展已有知識(shí),發(fā)現(xiàn)新知識(shí)。合倫理的啟發(fā)式問(wèn)題應(yīng)該是積極健康的、合乎倫理的。
2程序設(shè)計(jì)語(yǔ)言教學(xué)
在計(jì)算機(jī)課程體系中,程序設(shè)計(jì)語(yǔ)言包括匯編語(yǔ)言和高級(jí)程序設(shè)計(jì)語(yǔ)言。程序設(shè)計(jì)語(yǔ)言是計(jì)算機(jī)領(lǐng)域?qū)I(yè)的核心基礎(chǔ)課程,在課程體系中處于先導(dǎo)性和基礎(chǔ)性地位,是學(xué)習(xí)后續(xù)課程的重要技術(shù)和工具基礎(chǔ)。程序設(shè)計(jì)語(yǔ)言課程的學(xué)習(xí)不僅可以使學(xué)生獲得基本的程序設(shè)計(jì)能力、培養(yǎng)學(xué)生基于計(jì)算機(jī)計(jì)算的思考能力,還極大影響學(xué)生對(duì)后續(xù)課程的學(xué)習(xí)和興趣。程序設(shè)計(jì)語(yǔ)言教學(xué)主要講授基本語(yǔ)法、常用的函數(shù)、典型算法和編程技巧,培養(yǎng)學(xué)生具備程序設(shè)計(jì)思想解決實(shí)際問(wèn)題的能力。
3問(wèn)題誘導(dǎo)啟發(fā)式教學(xué)
問(wèn)題誘導(dǎo)就是按照知識(shí)被發(fā)現(xiàn)、研究和應(yīng)用的“再現(xiàn)”過(guò)程,傳遞知識(shí)給學(xué)生,讓學(xué)生理解知識(shí)的本質(zhì)。問(wèn)題誘導(dǎo)啟發(fā)式程序設(shè)計(jì)語(yǔ)言教學(xué)方法是在教學(xué)中從具體的問(wèn)題入手,啟發(fā)式地引導(dǎo)學(xué)生理解程序設(shè)計(jì)語(yǔ)言中的基本概念、基本結(jié)構(gòu)和基本方法,然后應(yīng)用到具體實(shí)例中。本文將問(wèn)題誘導(dǎo)啟發(fā)式方法應(yīng)用到具體的Java程序設(shè)計(jì)語(yǔ)言教學(xué)中[4-6]。
3.1基礎(chǔ)知識(shí)
程序設(shè)計(jì)語(yǔ)言的基礎(chǔ)知識(shí)點(diǎn)有標(biāo)識(shí)符、注釋、分隔符、變量和常量、數(shù)據(jù)類型、運(yùn)算符、表達(dá)式、數(shù)組、語(yǔ)句。
對(duì)于標(biāo)識(shí)符,通常的做法是先介紹標(biāo)識(shí)符的命名規(guī)則、作用,然后給出示例。在Java語(yǔ)言中,標(biāo)識(shí)符是以字母、下劃線或美元符$開頭,字母、下劃線、美元符$、數(shù)字組成的任意長(zhǎng)度的字符序列,用于表示程序中的變量、常量、類、函數(shù)等名字。合法標(biāo)識(shí)符:A, a1, $Systembol, square, ex_sa;不合法標(biāo)識(shí)符:1a(不能以數(shù)字1開頭),break(禁止使用保留字),TWO WORDS(不能含有空格),.NO(不能有圓點(diǎn))。本文采用問(wèn)題誘導(dǎo)策略的啟發(fā)式方法是先提出問(wèn)題:程序需要由CPU執(zhí)行,讀取并處理內(nèi)存的數(shù)據(jù)。CPU如何找到數(shù)據(jù)?根據(jù)內(nèi)存地址?高級(jí)語(yǔ)言不會(huì)知道數(shù)據(jù)的內(nèi)存地址的,所以給數(shù)據(jù)所在的內(nèi)存地址起名,這就是標(biāo)識(shí)符命名程序要訪問(wèn)的數(shù)據(jù)。對(duì)標(biāo)識(shí)符的命名就像我們對(duì)日常的起名一樣,必須要有一定的規(guī)則,這就是標(biāo)識(shí)符命名規(guī)則。
對(duì)于注釋,通常是依次講授注釋的表示方法、作用。在Java語(yǔ)言中有3種注釋形式:“//”單行注釋:表示從此向后,直到行尾都是注釋;“/*……*/”塊注釋:表示在“/*”和“*/”之間都是注釋;“/**……*/”文檔注釋:所有在“/**”和“*/”之間的內(nèi)容可以用來(lái)自動(dòng)形成文檔。注釋的作用:對(duì)程序的執(zhí)行不產(chǎn)生任何影響,注釋可增加程序的可讀性,也有利于程序的修改、調(diào)試和交流。采用問(wèn)題誘導(dǎo)的啟發(fā)式方法是先提出問(wèn)題:如何使形式化的程序易讀、便于交流?如何讓程序員很快能回憶起以前編寫的程序代碼的含義?在Java中提供了便于理解程序的可以采用自然語(yǔ)言編寫的注釋。當(dāng)然,這種自然語(yǔ)言編寫的注釋不會(huì)影響程序的運(yùn)行,僅僅是對(duì)程序的一種補(bǔ)充說(shuō)明。
對(duì)于分隔符,通常會(huì)列舉出空格、逗號(hào)、分號(hào)及行結(jié)束符等分隔符,并給出示例。采用問(wèn)題誘導(dǎo)策略的啟發(fā)式方法是先提出問(wèn)題:如何區(qū)分語(yǔ)言元素如關(guān)鍵字、標(biāo)識(shí)符、運(yùn)算符等?與漢語(yǔ)不同,在英文中需要采用分隔符將單詞分割開來(lái)。例如,我是一名教師,對(duì)應(yīng)的英文:I am a teacher,這里必須采用空格作為分隔符;否則我們是無(wú)法理解沒(méi)有空格的英文Iamateacher。程序設(shè)計(jì)語(yǔ)言和英語(yǔ)一樣是西文字符表示的,所以需要采用分隔符區(qū)分語(yǔ)言中的語(yǔ)言元素。此外,和英文中的段落劃分便于閱讀相同,分隔符也可以提高程序的可讀性。
對(duì)于變量和常量,通常依次給出變量的含義、類型、定義形式、引用形式、作用域等。在Java語(yǔ)言中,變量是程序運(yùn)行期間其值可以變化的量。變量的類型決定了該變量的存儲(chǔ)范圍、可以進(jìn)行的運(yùn)算形式。布爾型的變量只能取值: true和false,只能進(jìn)行取反、并、或、異或邏輯運(yùn)算,不能進(jìn)行加減乘除運(yùn)算。變量的定義和引用形式示例代碼段如下:
bool sex;//定義變量
sex=true;//引用變量
采用問(wèn)題誘導(dǎo)的啟發(fā)式方法先提出問(wèn)題:在程序運(yùn)行過(guò)程中CPU讀取并處理內(nèi)存數(shù)據(jù),CPU如何獲取數(shù)據(jù)所在的內(nèi)存地址?這就要求程序標(biāo)識(shí)命名CPU所訪問(wèn)數(shù)據(jù)的內(nèi)存地址。在程序運(yùn)行中如果該存儲(chǔ)單元的值可以變化,就是變量,否則就是常量。例如一個(gè)根據(jù)半徑計(jì)算圓面積的程序中,半徑是變量,圓周率是常量。
具體代碼段如下:
final float PI=3.1415926F;//圓周率
float radius=2.0F;//半徑
float area;//面積
area=PI*radius*radius;//計(jì)算圓面積
對(duì)于數(shù)據(jù)類型,通常講授數(shù)據(jù)類型的分類、每個(gè)數(shù)據(jù)類型的取值范圍和運(yùn)算。采用問(wèn)題誘導(dǎo)的啟發(fā)式方法提出問(wèn)題:定義一個(gè)表示年齡的變量age,age=30該變量對(duì)應(yīng)內(nèi)存存儲(chǔ)單元的值變?yōu)?0,表示年齡為30歲,然而,age=30.1是錯(cuò)誤的、無(wú)意義的,那么如何讓程序運(yùn)行前通知這個(gè)錯(cuò)誤,而不是運(yùn)行后經(jīng)過(guò)分析才發(fā)現(xiàn)這個(gè)錯(cuò)誤?數(shù)據(jù)類型可以實(shí)現(xiàn)對(duì)變量的取值范圍限制以及所進(jìn)行的運(yùn)算。當(dāng)變量age定義為整型變量,該變量只能被賦值以整數(shù)。然而如果要限制變量age只能存放0到200之間的整數(shù)值,就需要結(jié)合條件語(yǔ)句來(lái)實(shí)現(xiàn)。
對(duì)于運(yùn)算符和表達(dá)式,通常依次講解運(yùn)算符的種類、優(yōu)先級(jí)和表達(dá)式的定義。采用問(wèn)題誘導(dǎo)的啟發(fā)式方法提出問(wèn)題:創(chuàng)造計(jì)算機(jī)執(zhí)行程序的目的是為了科學(xué)計(jì)算,如何表示計(jì)算中的運(yùn)算符、操作數(shù)和表達(dá)式?程序設(shè)計(jì)語(yǔ)言中的運(yùn)算符、變量以及常量、表達(dá)式與之相對(duì)應(yīng)。進(jìn)一步,如何表示形如 的表達(dá)式?因?yàn)橛?jì)算機(jī)是按行從上到下,從左至右依次讀取代碼執(zhí)行程序的,所以,必須將這種占兩行的表達(dá)式轉(zhuǎn)換為一行的形式,即為分子/分母。
對(duì)于數(shù)組,依次講解數(shù)組的定義、初始化、引用、多維數(shù)組。采用問(wèn)題誘導(dǎo)的啟發(fā)式方法提出問(wèn)題:如何計(jì)算100個(gè)學(xué)生的平均成績(jī)?沒(méi)有采用數(shù)組如下代碼段表示:
float grade00;
float grade01;
…
float grade99;
float avgGrade=0;
avgGrade=(grade00+grade01+grade02+…+grade98+gtrade99)/100; //計(jì)算平均成績(jī)
如果采用數(shù)組表示,如下代碼段所示:
float grade[]=new float[100];
float sumGrade=0;
float avgGrade=0;
for (int i=0;i
avgGrade=sumGrade/100;
顯然,可以看出沒(méi)有采用數(shù)組表示,需要定義100個(gè)整型變量,需要102條語(yǔ)句,而采用數(shù)組表示僅定義數(shù)組變量,需要5條語(yǔ)句。所以,采用數(shù)組表示可以減少代碼數(shù)量、也可以提高程序的可讀性和可維護(hù)性。數(shù)組是相同類型元素的集合,如何表示不同類型元素的集合?可以進(jìn)一步引出其他知識(shí)點(diǎn)。
對(duì)于語(yǔ)句,通常講授語(yǔ)句的定義、種類以及示例。語(yǔ)句是程序的基本組成單位,語(yǔ)句包括簡(jiǎn)單語(yǔ)句和復(fù)合語(yǔ)句。簡(jiǎn)單語(yǔ)句包括變量定義語(yǔ)句、賦值語(yǔ)句等,復(fù)合語(yǔ)句就是使用一對(duì)花括號(hào){}將若干語(yǔ)句括起來(lái)的語(yǔ)句塊。采用問(wèn)題誘導(dǎo)的啟發(fā)式方法提出問(wèn)題:如何編寫程序控制計(jì)算機(jī)執(zhí)行命令?程序是由什么構(gòu)成的?語(yǔ)句就是構(gòu)成程序的要素,是控制計(jì)算機(jī)的命令。簡(jiǎn)單的命令就是簡(jiǎn)單語(yǔ)句,負(fù)責(zé)的命令就是復(fù)合語(yǔ)句。進(jìn)一步,如何表示語(yǔ)句?語(yǔ)句后面跟著分號(hào)。計(jì)算機(jī)按照順序依次執(zhí)行語(yǔ)句,如何表示當(dāng)某種條件滿足才執(zhí)行語(yǔ)句?如何表示重復(fù)若干次執(zhí)行某條語(yǔ)句?程序設(shè)計(jì)語(yǔ)言中的順序結(jié)構(gòu)表示依次順序執(zhí)行語(yǔ)句,條件語(yǔ)句表示滿足一定條件才執(zhí)行某條語(yǔ)句,循環(huán)語(yǔ)句表示滿足一定條件執(zhí)行某條語(yǔ)句。
3.2程序算法
對(duì)于程序算法,老師通常依次講解算法的概述、分析算法流程、閱讀算法代碼、展示運(yùn)行結(jié)果。算法本身比較抽象,再加上這樣的教學(xué)方法,導(dǎo)致學(xué)生難以理解和運(yùn)用。采用問(wèn)題誘導(dǎo)的啟發(fā)式方法并結(jié)合實(shí)例啟發(fā),提出如何解決一個(gè)具體問(wèn)題,如排序、查找,從而引出算法。例如,在講解程序設(shè)計(jì)的排序算法時(shí),應(yīng)先進(jìn)行問(wèn)題啟發(fā),給出要排序的一組數(shù),然后啟發(fā)學(xué)生如何能夠排序該組數(shù),以調(diào)動(dòng)學(xué)生,讓學(xué)生根據(jù)算法的要求結(jié)合已有的知識(shí),積極主動(dòng)地參與到算法的設(shè)計(jì)過(guò)程中來(lái)。圖示是一種直觀的、簡(jiǎn)明的、清晰的教學(xué)方法,可以把抽象的知識(shí)形象化、具體化。程序算法設(shè)計(jì)是比較復(fù)雜的知識(shí)點(diǎn),需要采用多媒體教學(xué)手段以圖示方法啟發(fā)教學(xué)。教師應(yīng)根據(jù)學(xué)生思考的進(jìn)度將課件中的程序逐步展現(xiàn)在學(xué)生面前,接著再采用多媒體動(dòng)畫方式播放排序過(guò)程,把抽象的、復(fù)雜的排序過(guò)程形象化、具體化。切忌將事先編好的程序直接顯示給學(xué)生,然后再?gòu)念^至尾地將程序介紹完畢。否則學(xué)生即使理解程序代碼的意義,自己也不能靈活運(yùn)用已經(jīng)學(xué)習(xí)的程序算法,解決類似問(wèn)題,設(shè)計(jì)出正確的程序算法。
3.3過(guò)程和函數(shù)
過(guò)程和函數(shù)是比較容易理解的概念,過(guò)程和函數(shù)都是程序的構(gòu)成單位,是完成某個(gè)功能的程序段。函數(shù)和過(guò)程的區(qū)別是:函數(shù)有返回值,可以構(gòu)成表達(dá)式,而過(guò)程沒(méi)有返回值。采用問(wèn)題誘導(dǎo)的啟發(fā)式方法啟發(fā),提出問(wèn)題:如何組織編寫一個(gè)上千行的復(fù)雜程序?肯定是不能放在一起的,需要?jiǎng)澐帧H绾蝿澐?過(guò)程就可以將一個(gè)復(fù)雜程序劃分為若干個(gè)程序段,并命名以方便調(diào)用,這樣可以提高程序的可讀性和可維護(hù)性。表達(dá)式由操作數(shù)和運(yùn)算符構(gòu)成完成一定的運(yùn)算,如何將一個(gè)程序段的計(jì)算結(jié)果作為操作數(shù)嵌入到表達(dá)式中?函數(shù)是具有返回值的程序段,可以作為表達(dá)式的組成部分。
3.4圖形用戶界面設(shè)計(jì)
對(duì)于熟悉控制臺(tái)方式編程的學(xué)生來(lái)說(shuō),初次接觸
到圖形用戶界面設(shè)計(jì),不宜理解,一時(shí)不能轉(zhuǎn)換編程方式。這就需要我們教師采用合適的方法講解該內(nèi)容。采用問(wèn)題誘導(dǎo)的啟發(fā)式方法并結(jié)合實(shí)例啟發(fā),提出如何設(shè)計(jì)實(shí)現(xiàn)一個(gè)具體應(yīng)用程序,如騰訊QQ聊天程序、PPLive網(wǎng)絡(luò)電視等,從而引出圖形用戶界面設(shè)計(jì),讓學(xué)生對(duì)該知識(shí)點(diǎn)的應(yīng)用產(chǎn)生具體形象的認(rèn)識(shí)。圖形用戶界面設(shè)計(jì)就是采用基本組件:窗體、按鈕、工具欄、文本框等,“組裝”程序界面,類比我們把主機(jī)、顯示器、鍵盤、鼠標(biāo)、音箱等組裝成一臺(tái)個(gè)人計(jì)算機(jī),我們只需要知道它們之間的接口和功能就可以有選擇地組裝計(jì)算機(jī),而不需要了解其工作原理和內(nèi)部結(jié)構(gòu)。例如光電鼠標(biāo)的作用是通過(guò)USB接口和主機(jī)相連,作用是采集人移動(dòng)的方向、坐標(biāo)以及動(dòng)作。學(xué)生只要知道鼠標(biāo)的作用和接口就可以完成這個(gè)任務(wù)。
4結(jié)語(yǔ)
問(wèn)題誘導(dǎo)啟發(fā)式程序設(shè)計(jì)語(yǔ)言教學(xué)方法是本專業(yè)高級(jí)程序設(shè)計(jì)語(yǔ)言教學(xué)團(tuán)隊(duì)多年教學(xué)實(shí)踐的總結(jié),在日常教學(xué)應(yīng)用中取得了很好的教學(xué)效果。啟發(fā)式教學(xué)方法的應(yīng)用有助于增強(qiáng)學(xué)生理解并應(yīng)用程序設(shè)計(jì)語(yǔ)言知識(shí)解決問(wèn)題的能力,提高學(xué)生從問(wèn)題發(fā)現(xiàn)知識(shí)的“自我學(xué)習(xí)”能力。然而,該方法在其他課程的研究和應(yīng)用,需要進(jìn)一步的實(shí)踐分析。
參考文獻(xiàn):
[1] 朱昌流. 論啟發(fā)式教學(xué)的有效實(shí)施[J]. 教育與職業(yè),2007(18):157-158.
[2] 陶沼靈. 啟發(fā)式教學(xué)方法研究綜述[J]. 中國(guó)成人教育,2007(4):39-40.
[3] 邵潔.課堂學(xué)習(xí)共同體的有效建構(gòu):以高級(jí)語(yǔ)言程序設(shè)計(jì)(VB)課程為例[J]. 現(xiàn)代教育技術(shù),2009,19(8):120-124.
[4] 樊新華,孟鉑. “C程序設(shè)計(jì)”啟發(fā)式實(shí)例教學(xué)探討[J]. 計(jì)算機(jī)教育,2008(18):98-99.
[5] Harvey M. Deitel, Paul J.Deitel. Java大學(xué)教程[M]. 北京:電子工業(yè)出版社,2003:34-112.
[6] Bruce Eckel. Java編程思想[M]. 4版. 北京:機(jī)械工業(yè)出版社,2007:30-90.
Research of Heuristic Programming Language Teaching Methods Based on Problem Induction
LI Xue-jun, LI Long-shu, XU Yi
(School of Computer Science and Technology, Anhui University, Hefei 230039, China)
篇8
關(guān)鍵詞:VB程序設(shè)計(jì)語(yǔ)言;實(shí)驗(yàn)教學(xué);實(shí)踐能力
在《中國(guó)高等院校計(jì)算機(jī)基礎(chǔ)教育課程體系》[1]和《非計(jì)算機(jī)專業(yè)計(jì)算機(jī)基礎(chǔ)課程基礎(chǔ)教學(xué)基本要求》[2]兩本指導(dǎo)高校計(jì)算機(jī)基礎(chǔ)教育的指導(dǎo)書中,明確提出程序設(shè)計(jì)基礎(chǔ)課程要求,因此程序設(shè)計(jì)語(yǔ)言一直以來(lái)作為非計(jì)算機(jī)專業(yè)計(jì)算機(jī)基礎(chǔ)課程在高校廣泛開展。作為大學(xué)生的第一門程序設(shè)計(jì)課程,多數(shù)同學(xué)都取得較好的成績(jī),但其實(shí)際編程能力卻仍然薄弱。造成學(xué)生高分低能的原因有很多,傳統(tǒng)的教學(xué)模式難辭其咎;加強(qiáng)實(shí)驗(yàn)環(huán)節(jié),全面提升大學(xué)生計(jì)算機(jī)綜合能力成為計(jì)算機(jī)基礎(chǔ)教學(xué)改革當(dāng)務(wù)之急的任務(wù)。
我校非計(jì)算機(jī)專業(yè)在第一學(xué)期完成計(jì)算機(jī)基礎(chǔ)公共課的基礎(chǔ)上,第二學(xué)期設(shè)置程序設(shè)計(jì)必修課――Visual Basic程序設(shè)計(jì)語(yǔ)言,共54學(xué)時(shí),授課36學(xué)時(shí),上機(jī)18學(xué)時(shí)。覆蓋學(xué)校海洋、生命、食品、經(jīng)貿(mào)、工程學(xué)院的諸多專業(yè)。學(xué)生通過(guò)本課程的學(xué)習(xí),加深對(duì)計(jì)算機(jī)技術(shù)的認(rèn)識(shí),利于其更好的使用計(jì)算機(jī)解決實(shí)際問(wèn)題。
1 針對(duì)傳統(tǒng)實(shí)驗(yàn)教學(xué)模式存在的問(wèn)題,自編案例教材
傳統(tǒng)VB教材注重知識(shí)點(diǎn)的整合和循序漸進(jìn)的講解,割裂程序設(shè)計(jì)基礎(chǔ)和VB各個(gè)控件關(guān)聯(lián);很難將程序思維方法和技巧傳授給學(xué)生。教學(xué)方法采用“課堂教學(xué)為主,實(shí)驗(yàn)教學(xué)為輔”的教學(xué)方法,實(shí)驗(yàn)僅僅驗(yàn)證課堂知識(shí),加重學(xué)生對(duì)課程抽象理解,缺乏知識(shí)連貫性和整體性的認(rèn)識(shí)。學(xué)生在學(xué)習(xí)過(guò)程中感覺(jué)枯燥,不感興趣,沒(méi)有主動(dòng)性。從而影響學(xué)生對(duì)這門重要的編程課程的知識(shí)點(diǎn)的掌握。根據(jù)多年VB的教學(xué)經(jīng)驗(yàn),遵循認(rèn)知規(guī)律,把程序設(shè)計(jì)的知識(shí)點(diǎn)和控件知識(shí)點(diǎn)融合在一起,編寫案例驅(qū)動(dòng)的特色教材[3-4]。通過(guò)3年的實(shí)踐,這樣安排教學(xué)內(nèi)容,使學(xué)生既能從認(rèn)知角度學(xué)習(xí)知識(shí),又能從系統(tǒng)開發(fā)角度掌握VB的知識(shí)點(diǎn),取得較好的效果。
2 多元化實(shí)驗(yàn)設(shè)置
在教材中安排了三種實(shí)驗(yàn)類型:驗(yàn)證性實(shí)驗(yàn)、拓展性實(shí)驗(yàn)和設(shè)計(jì)性實(shí)驗(yàn)。
驗(yàn)證性實(shí)驗(yàn)是基礎(chǔ)性實(shí)驗(yàn)如數(shù)據(jù)類型、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組等,學(xué)生根據(jù)實(shí)驗(yàn)指導(dǎo)按部就班地完成實(shí)驗(yàn),將基本知識(shí)理順,理解原理掌握規(guī)律。培養(yǎng)學(xué)生對(duì)基本理論知識(shí)的理解和基礎(chǔ)試驗(yàn)技能提高(如掌握調(diào)試程序的基本方法)。養(yǎng)成嚴(yán)謹(jǐn)?shù)膽B(tài)度,夯實(shí)動(dòng)手能力基本功。
拓展性實(shí)驗(yàn)是在驗(yàn)證性實(shí)驗(yàn)的基礎(chǔ)之上,增加一兩個(gè)功能。涉及的知識(shí)點(diǎn)傾向?qū)W過(guò)的知識(shí),如自編教材中每章后附的案例實(shí)訓(xùn),都是本章知識(shí)和前幾章知識(shí)的綜合應(yīng)用。通過(guò)問(wèn)題的提出,明確的實(shí)驗(yàn)?zāi)康模ぐl(fā)學(xué)生解決問(wèn)題的意識(shí),為設(shè)計(jì)性實(shí)驗(yàn)安排和實(shí)施奠定基礎(chǔ)。
設(shè)計(jì)性實(shí)驗(yàn)靈活度最大、綜合性強(qiáng),教師只給出實(shí)驗(yàn)的目的和實(shí)驗(yàn)條件,不限定學(xué)生的界面形式、設(shè)計(jì)方案和數(shù)據(jù)結(jié)構(gòu)。能夠充分激發(fā)學(xué)生的學(xué)習(xí)熱情,體現(xiàn)現(xiàn)代教學(xué)方法核心――突出學(xué)生的主體能動(dòng)性。設(shè)計(jì)性實(shí)驗(yàn)內(nèi)容涉及編程基礎(chǔ)知識(shí)面廣,如輸入輸出、流程控制、數(shù)組、過(guò)程等,學(xué)生通過(guò)設(shè)計(jì)性實(shí)驗(yàn)加深模塊化程序設(shè)計(jì)技巧的理解,有效地進(jìn)行任務(wù)分解,完成實(shí)驗(yàn)方案設(shè)計(jì)、算法分析、數(shù)據(jù)組織、界面設(shè)計(jì)、代碼編寫、運(yùn)行調(diào)試、結(jié)果分析及形成文檔一系列工作,實(shí)現(xiàn)程序設(shè)計(jì)全過(guò)程的訓(xùn)練。
3 實(shí)驗(yàn)教學(xué)教師遵循原則
在實(shí)驗(yàn)教學(xué)中,學(xué)生與教師在理論課角色是不同的。教師從課堂上的教學(xué)組織者轉(zhuǎn)變?yōu)樯蠙C(jī)操作的指導(dǎo)者。作為教學(xué)組織者,教師有較充分的主動(dòng)性傳授知識(shí),易于控制所傳遞的知識(shí)內(nèi)容,可使學(xué)生在較短時(shí)間內(nèi)獲得較多的知識(shí)。而實(shí)驗(yàn)教學(xué)中教師是上機(jī)的輔導(dǎo)者,學(xué)生親自動(dòng)手、動(dòng)腦參與教學(xué)活動(dòng)。根據(jù)這些特點(diǎn)提出相應(yīng)的指導(dǎo)原則。
3.1 循序漸進(jìn)原則
驗(yàn)證性實(shí)驗(yàn),是對(duì)基本知識(shí)的鞏固和證明,有利于培養(yǎng)學(xué)生實(shí)驗(yàn)操作、數(shù)據(jù)處理和調(diào)試程序的技能,有利于基礎(chǔ)知識(shí)的掌握。拓展性實(shí)驗(yàn)和設(shè)計(jì)性實(shí)驗(yàn),在實(shí)驗(yàn)教學(xué)中,采取提前預(yù)習(xí)實(shí)驗(yàn)內(nèi)容,查閱資料,綜合運(yùn)用已學(xué)過(guò)的知識(shí),獨(dú)立地設(shè)計(jì)出達(dá)到實(shí)驗(yàn)預(yù)期目標(biāo)的實(shí)驗(yàn)方案,得出合理的實(shí)驗(yàn)結(jié)果。教師在指導(dǎo)過(guò)程中通過(guò)任務(wù)分解,逐漸過(guò)渡的講解方式,指導(dǎo)學(xué)生運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)思想,自頂向下、逐步細(xì)化,實(shí)現(xiàn)程序。學(xué)生經(jīng)過(guò)由淺入深地分析、由簡(jiǎn)單到綜合比較、積極主動(dòng)地完成程序的設(shè)計(jì),使其創(chuàng)新能力和獨(dú)立解決問(wèn)題能力有所提高。
3.2 分層教學(xué)因材施教原則
教師根據(jù)學(xué)生的具體情況、實(shí)驗(yàn)特點(diǎn)、實(shí)驗(yàn)要求進(jìn)行具體指導(dǎo)。例如:剛開始VB程序設(shè)計(jì)實(shí)驗(yàn)時(shí),軟件的使用方法、調(diào)試程序的技能技巧都需要教師指導(dǎo)。隨著學(xué)習(xí)深入,教師在指導(dǎo)過(guò)程中可根據(jù)學(xué)生理論基礎(chǔ)和學(xué)習(xí)能力的差別,提出靈活的實(shí)驗(yàn)要求。對(duì)基礎(chǔ)較好、能力較強(qiáng)的學(xué)生鼓勵(lì)嘗試多種設(shè)計(jì)方法和實(shí)現(xiàn)更多的程序功能;對(duì)于基礎(chǔ)較差或動(dòng)手能力較弱的學(xué)生,只要求完成基本要求。既能做到實(shí)驗(yàn)基本技能訓(xùn)練,又能體現(xiàn)能力、綜合素質(zhì)培養(yǎng)。使成績(jī)好的學(xué)生能夠“吃飽”,成績(jī)差的學(xué)生也能“吃好”,每個(gè)學(xué)生通過(guò)實(shí)驗(yàn)均得到鍛煉和提高,學(xué)生的潛能得到較好的挖掘和施展。
4 優(yōu)化評(píng)價(jià)體系
VB程序設(shè)計(jì)語(yǔ)言是一門理論性和實(shí)踐性均很強(qiáng)的一門課程。實(shí)驗(yàn)教學(xué)非常重要。要求較全面的考查學(xué)生的應(yīng)用能力,動(dòng)手能力和分析問(wèn)題解決問(wèn)題的綜合能力,充分發(fā)揮學(xué)習(xí)的主觀能動(dòng)性。為了更好的檢測(cè)學(xué)生的編程能力,進(jìn)一步鞏固教學(xué)效果,將課程的考核方式向?qū)嵺`能力傾斜,期中實(shí)驗(yàn)成績(jī)20分,學(xué)生通過(guò)完成教師布置的實(shí)驗(yàn),鞏固程序設(shè)計(jì)理論知識(shí),積累解決實(shí)際問(wèn)題的方法和步驟,為綜合作業(yè)完成做準(zhǔn)備;綜合作業(yè)20分,4~6人為一組,完成具有一定難度的小型系統(tǒng)設(shè)計(jì)開發(fā),培養(yǎng)學(xué)生的團(tuán)結(jié)合作能力,體會(huì)程序開發(fā)的過(guò)程。期末上機(jī)考試成績(jī)60分(如圖1所示)。
綜合作業(yè)由三部分組成:程序源代碼,相關(guān)文檔和小組答辯。
程序源代碼:考核形式為當(dāng)面檢查,解釋代碼含義,了解學(xué)生對(duì)程序的掌握理解程度。
相關(guān)文檔:描述程序的核心及開發(fā)過(guò)程中重點(diǎn)、難點(diǎn)的解決方案,促進(jìn)學(xué)生全面的掌握程序設(shè)計(jì)的內(nèi)容,同時(shí)煅煉學(xué)生撰寫報(bào)告的能力。
答辯:各小組依次進(jìn)行系統(tǒng)演示,教師針對(duì)程序以及相關(guān)知識(shí)點(diǎn)進(jìn)行提問(wèn)。
綜合作業(yè)安排在課程結(jié)束前一個(gè)半月,學(xué)生自行分組,按綜合作業(yè)的題目和要求完成任務(wù),學(xué)生可以相互討論但必須自己完成。綜合作業(yè)成績(jī)由教師評(píng)定成績(jī)、小組組長(zhǎng)成績(jī)和學(xué)生自評(píng)成績(jī)組成。教師評(píng)定要站在較高的高度全面的評(píng)價(jià)學(xué)生工作,應(yīng)以鼓勵(lì)為主,既要對(duì)其作業(yè)的優(yōu)點(diǎn)進(jìn)行褒獎(jiǎng),也要指出系統(tǒng)存在的不足,鼓勵(lì)其在能力范圍內(nèi)充分發(fā)揮其自學(xué)能力和創(chuàng)新能力。教師通過(guò)對(duì)學(xué)生的評(píng)議,可以較全面的掌握學(xué)生對(duì)所學(xué)知識(shí)點(diǎn)理解和應(yīng)用的熟練程度;進(jìn)一步的總結(jié)學(xué)生學(xué)習(xí)過(guò)程的經(jīng)驗(yàn)和問(wèn)題;為更好的開展教學(xué)工作積累教學(xué)經(jīng)驗(yàn)。小組長(zhǎng)成績(jī),就是一個(gè)參與答辯的學(xué)生互評(píng)的過(guò)程,目的是引導(dǎo)學(xué)生進(jìn)行正面、客觀的評(píng)價(jià)。發(fā)現(xiàn)其他同學(xué)的系統(tǒng)的優(yōu)點(diǎn)和長(zhǎng)處,提升學(xué)生團(tuán)隊(duì)協(xié)作的能力。學(xué)生通過(guò)自評(píng)能夠端正學(xué)習(xí)態(tài)度,養(yǎng)成自我總結(jié)的好習(xí)慣,提高其參與教學(xué)活動(dòng)的積極性和主動(dòng)性。
5 改革效果
教研室抽取2009級(jí)不同專業(yè)300人的VB程序設(shè)計(jì)語(yǔ)言課程機(jī)考成績(jī),分析實(shí)驗(yàn)教學(xué)改革的效果(如圖2所示)發(fā)現(xiàn):絕大多數(shù)學(xué)生(88%)通過(guò)平時(shí)實(shí)驗(yàn)和綜合作業(yè),積累程序設(shè)計(jì)方法和分析問(wèn)題能力, 順利通過(guò)考試。一方面:優(yōu)秀(80~100分)人數(shù)占總?cè)藬?shù)的25%,另一方面:從30分以下占總?cè)藬?shù)5% 可以看出平時(shí)積累較少的學(xué)生很難取得及格分?jǐn)?shù)。
圖2 VB程序設(shè)計(jì)語(yǔ)言機(jī)考成績(jī)分析圖
6 結(jié)語(yǔ)
程序設(shè)計(jì)基礎(chǔ)是非計(jì)算機(jī)專業(yè)學(xué)生的一門重要的基礎(chǔ)課,是了解專業(yè)應(yīng)用軟件原理的基礎(chǔ),而VB程序設(shè)計(jì)語(yǔ)言實(shí)驗(yàn)教學(xué)的改革是一個(gè)初步嘗試,突出學(xué)生獨(dú)立分析問(wèn)題、解決問(wèn)題能力的培養(yǎng),使學(xué)生將知識(shí)轉(zhuǎn)化為應(yīng)用的一種嘗試。從教材建設(shè)、教學(xué)方法和評(píng)價(jià)體系等多方面進(jìn)行改進(jìn),對(duì)于學(xué)生更好、更牢固的掌握課程內(nèi)容具有一定的幫助,使學(xué)生了解軟件編程的原理和過(guò)程,從而在專業(yè)軟件的使用和開發(fā)角度打下良好的基礎(chǔ)。
參考文獻(xiàn):
[1] 中國(guó)高等院校計(jì)算機(jī)基礎(chǔ)教育改革課題研究組. 中國(guó)高等院校計(jì)算機(jī)基礎(chǔ)教育課程體系2006[M]. 北京:清華大學(xué)出版社, 2006:66-692.
[2] 教育部高等學(xué)校文科計(jì)算機(jī)基礎(chǔ)教學(xué)指導(dǎo)委員會(huì). 大學(xué)計(jì)算機(jī)教學(xué)基本要求(高等學(xué)校文科類專業(yè))[M].北京:高等教育出版社,2008:80-125.
[3] 黃冬梅,王愛(ài)繼,陳慶海. Visual Basic 6.0程序設(shè)計(jì)案例教程[M]. 北京:清華大學(xué)出版社,2008:205-252.
[4] 黃冬梅,王愛(ài)繼,陳慶海. Visual Basic 6.0程序設(shè)計(jì)案例教程[M]. 北京:中國(guó)鐵道出版社,2011:212-253.
Visual Basic Programming Language Experiments Teaching Method
AI Hong, CHEN Qinghai, PEI Renlin
(College of Information Technology, Shanghai Ocean University, Shanghai 201306, China)
篇9
關(guān)鍵詞:NDQJava2;創(chuàng)新;程序設(shè)計(jì);量子成分
中圖分類號(hào):TP311.52
量子程序設(shè)計(jì)語(yǔ)言NDQJava2處理系統(tǒng),是借助于NDQJava的經(jīng)典系統(tǒng),加以相應(yīng)的量子成分,在NDQJava2的處理系統(tǒng)中,是使用的層層遞進(jìn)的樹形結(jié)構(gòu),把語(yǔ)法樹來(lái)翻譯成java代碼,更加有利的實(shí)現(xiàn)語(yǔ)法的分析。
1認(rèn)識(shí)NDQJava2語(yǔ)言
NDQJava2是在NDQJava的基礎(chǔ)之上,增加了具有量子成分的條件語(yǔ)句、循環(huán)語(yǔ)句、子程序等進(jìn)化而來(lái),形成的是一種混合式的、結(jié)構(gòu)化的量子程序設(shè)計(jì)語(yǔ)言。但是由于技術(shù)的限制,還沒(méi)有真正的量子計(jì)算的問(wèn)世,要進(jìn)行NDQJava2設(shè)計(jì)語(yǔ)言,就要在傳統(tǒng)計(jì)算機(jī)上進(jìn)行模擬,由于NDQJava2和NDQJava一樣,都是以Java為基礎(chǔ)的,所有要采取從編譯到解釋的過(guò)程。在設(shè)計(jì)中,也遵循著NDQJava的原則:實(shí)用、簡(jiǎn)明、嚴(yán)謹(jǐn)、快速。
量子成分的條件語(yǔ)句,與Java語(yǔ)言的運(yùn)用相類似,主要是為了解決在NDQJava在書寫時(shí)沒(méi)有固定的條件控制語(yǔ)句,時(shí)常需要在傳統(tǒng)部分與量子部分之間進(jìn)行切換作業(yè),影響了程序效果。在NDQJava2的條件語(yǔ)句中,每一個(gè)作為變量的量子都能獨(dú)立的使用一個(gè)使能量子,更加清晰合理。
量子成分的循環(huán)語(yǔ)句,在NDQJava2中會(huì)先進(jìn)行判斷,判斷語(yǔ)句的真?zhèn)?,如果證明為真,就進(jìn)行量子程序表達(dá)式的循環(huán),但如果證明為偽,就會(huì)終止循環(huán)。
量子成分的子程序,解決了程序書寫時(shí)的重復(fù)問(wèn)題。子程序應(yīng)用于NDQJava2主要是分為定義、調(diào)用這兩個(gè)部分,能有效減少語(yǔ)言的重復(fù)情況,在出現(xiàn)重復(fù)的計(jì)算時(shí),就可以把相互重復(fù)的部分代碼變?yōu)橐粋€(gè)子程序,使程序結(jié)構(gòu)變得更加清晰。
量子成分的異常處理,量子的程序設(shè)計(jì)語(yǔ)言,與傳統(tǒng)的設(shè)計(jì)語(yǔ)言有一個(gè)很大的不同點(diǎn),就是量子的變量性質(zhì)。在量子的語(yǔ)言結(jié)構(gòu)中,引起異常變化的因素非常多,比如:IF語(yǔ)句的使用,在條件滿足的情況下進(jìn)行,但在條件不滿足的情況下就不能進(jìn)行,就會(huì)引起異常情況,異常處理的模塊就是專門應(yīng)對(duì)這樣的情況。
2NDQJava2系統(tǒng)功能
NDQJava2以其創(chuàng)新的設(shè)計(jì),對(duì)NDQJava進(jìn)行系統(tǒng)的優(yōu)化,也是在Java語(yǔ)言的基礎(chǔ)上,進(jìn)行從編譯到解釋的過(guò)程。主要是在詞法分析、程序匯編與解釋、代碼轉(zhuǎn)換這幾個(gè)領(lǐng)域作用突出。
2.1NDQJava2的詞法分析功能
詞法分析功能,是NDQJava2的第一大功能,主要是為了對(duì)NDQJava2源程序的單詞進(jìn)行識(shí)別,并形成單詞的序列。由于現(xiàn)在完備的量子技術(shù)還沒(méi)有真正實(shí)現(xiàn),所以在NDQJava2中就包括傳統(tǒng)和量子兩個(gè)部分,本著對(duì)已有資源充分利用的原則,把傳統(tǒng)經(jīng)典的部分與量子的部分進(jìn)行區(qū)別處理。
在傳統(tǒng)經(jīng)典的部分中,使用的是Java處理,量子部分出現(xiàn)的語(yǔ)法都默認(rèn)為量子成分,自行設(shè)計(jì)。兩部分別的要?jiǎng)?chuàng)建不同的文件夾進(jìn)行保存,在運(yùn)行時(shí)要進(jìn)行判斷為哪種部分,如果為量子部分,就利用量子成分的循環(huán)語(yǔ)句,進(jìn)行文件的處理,處理后建立起語(yǔ)法樹。如果經(jīng)判斷,為經(jīng)典的部分,就由Java運(yùn)行。NDQJava2系統(tǒng)中,語(yǔ)言的關(guān)鍵字和分解符都有獨(dú)特的碼與之一一對(duì)應(yīng),這就把源程序中所出現(xiàn)的單詞,轉(zhuǎn)化為單詞序列,而標(biāo)示符用量過(guò)大,無(wú)法實(shí)現(xiàn)一一對(duì)應(yīng),為了使用方便,就統(tǒng)一為一種碼。并進(jìn)行程序設(shè)計(jì),需要使用以的下形式:
開始NDQJava2源程序預(yù)處理子系統(tǒng)(對(duì)多余信息進(jìn)行刪除)掃描程序(對(duì)單詞進(jìn)行實(shí)際識(shí)別)單詞序列結(jié)束。
2.2NDQJava2的程序匯編與解釋功能
為了實(shí)現(xiàn)NDQJava2在傳統(tǒng)計(jì)算機(jī)上書寫量子的程序,就要設(shè)計(jì)假設(shè)的基本的指令集和匯編的指令集,并使用Java來(lái)編寫相應(yīng)的匯編程序、解釋程序。
NDQJava2中,程序匯編功能是采用的分段匯編,將每一段匯編指令各自進(jìn)行匯編,再集合起來(lái),形成一個(gè)完整的匯編指令,在獲取匯編指令以后需要使用command函數(shù)把指令輸入到量子的匯編系統(tǒng)中,量子的匯編字符串就是command函數(shù)得參數(shù)。匯編字符串被空格分隔為多個(gè)子串,指令字符串上的第一個(gè)子串,就是操作碼。根據(jù)獲得的操作碼,查找對(duì)應(yīng)的操作數(shù),生成指令。不同的指令所需要的操作數(shù)也各不相同,最后就需要把操作碼與操作數(shù)進(jìn)行合并,作為機(jī)器的指令向外輸出。
程序的解釋功能,就是對(duì)于機(jī)器的指令進(jìn)行逐條的翻譯過(guò)程,并執(zhí)行計(jì)算。在程序的解釋功能中,經(jīng)過(guò)量子的匯編程序處理過(guò)的機(jī)器指令存入系統(tǒng)中,以指令地址分類,分為單地址和雙地址,單地址的最高操作碼位數(shù)為0,雙地址的最高操作碼位數(shù)為1。以此來(lái)獲得準(zhǔn)確的操作碼。分析得到的操作碼,調(diào)整與之相匹配的量子操作方法,根據(jù)操作數(shù)的兩種分類:寄存器編碼型和數(shù)值型,進(jìn)行操作數(shù)據(jù)處理,匯集為參數(shù)輸入函數(shù)處理。
2.3NDQJava2的代碼轉(zhuǎn)換功能
NDQJava2在進(jìn)行代碼轉(zhuǎn)換的時(shí)候,首先要遵循相應(yīng)的原則,主要是三方面:第一要確保轉(zhuǎn)化的正確性,第二是機(jī)構(gòu)程序要清晰、易讀,第三就是要利用自身的Java系統(tǒng),提高效率。
在進(jìn)行代碼轉(zhuǎn)換時(shí),采取樹形的逐層轉(zhuǎn)換,先轉(zhuǎn)換低層次的代碼,再由低層次的代碼來(lái)轉(zhuǎn)換高層次的代碼,這就很大程度上保證了完整性和正確性。代碼之間要層級(jí)明確,建立起一個(gè)明確的結(jié)構(gòu),每一個(gè)量子成分的代碼都要有一個(gè)單獨(dú)的函數(shù),各個(gè)函數(shù)之間不能在功能上產(chǎn)生交叉和重復(fù)。函數(shù)之間可以進(jìn)行上下級(jí)的調(diào)用,但不能在同級(jí)之間進(jìn)行調(diào)用。在整個(gè)NDQJava2系統(tǒng)中,是采用建立語(yǔ)法樹,轉(zhuǎn)化為以Java語(yǔ)言編寫的指令程序,在運(yùn)用中,要分析整個(gè)語(yǔ)法樹,對(duì)每一個(gè)量子模塊都進(jìn)行識(shí)別,調(diào)用代碼的模塊轉(zhuǎn)換為函數(shù),進(jìn)行處理以達(dá)到生成的Java代碼要包含匯編的指令。
經(jīng)過(guò)本文的論述,主要是探討了整個(gè)NDQJava2的技術(shù)理念:即在NDQJava的基礎(chǔ)上,進(jìn)行的發(fā)展和創(chuàng)新。以及技術(shù)的系統(tǒng)功能,可以預(yù)見的是量子程序設(shè)計(jì)語(yǔ)言NDQJava2處理系統(tǒng)已經(jīng)是未來(lái)發(fā)展的主流,隨著科技的進(jìn)步,必將能真正的投入應(yīng)用之中。
參考文獻(xiàn):
[1]劉玲,徐家福.量子程序設(shè)計(jì)語(yǔ)言NDQJava-2[J].軟件學(xué)報(bào),2011(2).
篇10
關(guān)鍵詞:四環(huán)教學(xué)法;理論教學(xué)
程序設(shè)計(jì)語(yǔ)言是計(jì)算機(jī)專業(yè)非常重要的專業(yè)基礎(chǔ)課之一,它主要培養(yǎng)學(xué)生編程的邏輯思維方式。學(xué)生初次接觸此類課程經(jīng)常被繁雜的語(yǔ)法規(guī)則所困擾,影響了程序的編寫。尤其是對(duì)于面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,眾多的控件、事件、屬性,更是讓學(xué)生無(wú)從下手。筆者在多年的程序語(yǔ)言教學(xué)中總結(jié)出了“四環(huán)教學(xué)法”,經(jīng)過(guò)實(shí)踐,這種方法對(duì)于程序設(shè)計(jì)語(yǔ)言的理論教學(xué),頗有成效。
一、程序設(shè)計(jì)語(yǔ)言理論教學(xué)現(xiàn)狀分析
1、學(xué)習(xí)動(dòng)力不足
目前高職學(xué)生的綜合素質(zhì)相對(duì)于普通本科學(xué)生很有差距。尤其是普高考入的學(xué)生,從來(lái)沒(méi)有接觸過(guò)程序設(shè)計(jì)語(yǔ)言,學(xué)起來(lái)感覺(jué)相當(dāng)枯燥,難以理解。于是有些學(xué)生認(rèn)為學(xué)習(xí)程序設(shè)計(jì)語(yǔ)言既枯燥又無(wú)用,不如學(xué)習(xí)多媒體或的一些課程;也有的學(xué)生由于數(shù)學(xué)基礎(chǔ)和邏輯思維能力都比較差,在學(xué)習(xí)時(shí)顯得力不從心,不能掌握應(yīng)用計(jì)算機(jī)解題的基本思維方式,對(duì)計(jì)算機(jī)程序設(shè)計(jì)產(chǎn)生畏懼感,就知難而退了。
2、教學(xué)課時(shí)少
與普通高校本科計(jì)算機(jī)專業(yè)相比,一方面,高職學(xué)生的學(xué)習(xí)基礎(chǔ)相對(duì)較差,導(dǎo)致他們接受較慢,學(xué)習(xí)困難;另一方面,目前我國(guó)高職院校的學(xué)制一般是3年,并且采用“2+1”學(xué)習(xí)制,即兩年在校學(xué)習(xí)理論知識(shí),一年在社會(huì)實(shí)踐中提高專業(yè)水平。計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)語(yǔ)言的課時(shí)較少,這就導(dǎo)致了實(shí)際教學(xué)中存在理論課時(shí)和實(shí)踐課時(shí)不夠的情況。因此,教師只能傳授最基礎(chǔ)的程序設(shè)計(jì)知識(shí),不能提高學(xué)生應(yīng)用程序設(shè)計(jì)語(yǔ)言解決實(shí)際問(wèn)題的能力。
3、實(shí)踐教材的缺乏
計(jì)算機(jī)專業(yè)本身就是技術(shù)應(yīng)用專業(yè),而高職院校更是以提高實(shí)踐能力為主的職業(yè)。然而,現(xiàn)今高職程序設(shè)計(jì)語(yǔ)言教材,存在的普遍問(wèn)題就是實(shí)踐性教學(xué)內(nèi)容不足,沒(méi)有體現(xiàn)教材的實(shí)用性和職業(yè)性,不能保證對(duì)學(xué)生實(shí)踐能力的培養(yǎng),不能體現(xiàn)高等技術(shù)應(yīng)用型人才的培養(yǎng)要求,缺少高職教育特色。
4、教學(xué)方法落后、考核方式單一
高職程序設(shè)計(jì)語(yǔ)言課程一般采用的教學(xué)方法是教師課上講授加學(xué)生實(shí)驗(yàn)的形式,教師在理論課上常常采用“填鴨式”教學(xué),學(xué)生很少主動(dòng)思維,編程題不能獨(dú)立作答案。上機(jī)實(shí)驗(yàn)時(shí)學(xué)生僅僅是對(duì)書本上現(xiàn)有的一些實(shí)例進(jìn)行編輯調(diào)試,一旦調(diào)試成功就完成任務(wù)。這種教學(xué)方法根本不能讓學(xué)生掌握如何從一個(gè)實(shí)際問(wèn)題入手分析、解決問(wèn)題。單一的筆試考核方式也使教師和學(xué)生忽視實(shí)踐課環(huán)節(jié),舍本逐末。
二、什么是四環(huán)教學(xué)法
所謂的四環(huán)教學(xué)法是指教學(xué)中的四個(gè)環(huán)節(jié),包括知識(shí)點(diǎn)的簡(jiǎn)要概括、學(xué)生獨(dú)立學(xué)習(xí)、學(xué)生上臺(tái)講述和教師總結(jié)四個(gè)部分。
1、知識(shí)點(diǎn)簡(jiǎn)要概括
知識(shí)點(diǎn)概括是四環(huán)教學(xué)法的第一個(gè)環(huán)節(jié)。在此環(huán)節(jié)中,主要由教師將本節(jié)課的知識(shí)點(diǎn)簡(jiǎn)要概括講述,使學(xué)生在以下獨(dú)立學(xué)習(xí)的時(shí)間內(nèi)可以有目的性地學(xué)習(xí)。
教師在此環(huán)節(jié)講授的時(shí)間大約控制在十分鐘左右,注意要將本節(jié)課的重點(diǎn)、難點(diǎn)以及考點(diǎn)交代清楚。
2、學(xué)生獨(dú)立學(xué)習(xí)
在教師講完知識(shí)點(diǎn)后,就進(jìn)入了第二個(gè)環(huán)節(jié),學(xué)生獨(dú)立學(xué)習(xí)階段。此階段教師可根據(jù)本節(jié)課的內(nèi)容多少和難易程度,給學(xué)生半小時(shí)到四十分鐘的時(shí)間,讓學(xué)生根據(jù)本節(jié)課的重點(diǎn)難點(diǎn)來(lái)進(jìn)行獨(dú)立學(xué)習(xí)和記憶,教師同時(shí)也可以針對(duì)學(xué)生提出的問(wèn)題進(jìn)行答疑。
3、學(xué)生講授
學(xué)生在經(jīng)過(guò)了獨(dú)立學(xué)習(xí)階段后,對(duì)知識(shí)點(diǎn)有了自己的理解和認(rèn)識(shí)。此時(shí)隨機(jī)抽取五位學(xué)生到講臺(tái)上進(jìn)行講述,既鍛煉了學(xué)生的表達(dá)能力,又加深了對(duì)知識(shí)點(diǎn)的印象。
在學(xué)生講述的同時(shí), 教師要注意學(xué)生對(duì)知識(shí)點(diǎn)講述的內(nèi)容是否正確,理解是否有偏差。此環(huán)節(jié)大約需要半小時(shí)左右時(shí)間。
4、教師總結(jié)
經(jīng)過(guò)第三個(gè)環(huán)節(jié)后,教師利用最后的時(shí)間對(duì)本節(jié)課的內(nèi)容進(jìn)行講授,并針對(duì)學(xué)生講述的問(wèn)題進(jìn)行剖析解答,同時(shí)可以舉例解釋說(shuō)明。
三、“四環(huán)教學(xué)法”在程序設(shè)計(jì)語(yǔ)言理論教學(xué)中的優(yōu)勢(shì)
以VB程序設(shè)計(jì)語(yǔ)言為例,教師采用四環(huán)教學(xué)法進(jìn)行理論教學(xué),可以使學(xué)生有目的性地去學(xué)習(xí)諸如屬性、事件、方法等理論知識(shí),同時(shí)讓學(xué)生到講臺(tái)來(lái)表述已自學(xué)過(guò)的內(nèi)容也可以提高學(xué)生的表達(dá)能力,在臺(tái)下的同學(xué)也可以通過(guò)不同同學(xué)的反復(fù)講述加深記憶。作為教師,可以根據(jù)學(xué)生的講述來(lái)掌握學(xué)生的薄弱環(huán)節(jié),在總結(jié)的時(shí)候可以有側(cè)重點(diǎn)地講授。
這種教學(xué)方式加強(qiáng)課堂互動(dòng),注重啟發(fā)式教學(xué)。教師在激發(fā)學(xué)生欲望的基礎(chǔ)上,加強(qiáng)培養(yǎng)學(xué)生發(fā)現(xiàn)問(wèn)題、提出問(wèn)題和解決問(wèn)題的能力。在教學(xué)中可利用新舊知識(shí)的聯(lián)系,提出需要解決的問(wèn)題,并由易到難,設(shè)計(jì)一系列具有啟發(fā)性的問(wèn)題,引導(dǎo)學(xué)生一步步完善程序設(shè)計(jì)。
當(dāng)然,四環(huán)教學(xué)法只是對(duì)理論知識(shí)采用一種新的方式進(jìn)行教學(xué)。教師在授課時(shí)還要精心設(shè)計(jì)教學(xué)實(shí)例。零散實(shí)例可以加深學(xué)生對(duì)某些知識(shí)點(diǎn)的理解,但實(shí)例的內(nèi)容不連貫,不利于學(xué)生從整體上掌握教學(xué)內(nèi)容。因此建議在學(xué)期末還要設(shè)計(jì)一個(gè)規(guī)模較大的、典型的、學(xué)生熟悉且感興趣的核心實(shí)例貫穿于教學(xué)全過(guò)程。該實(shí)例從小到大,隨章節(jié)的開而逐步成長(zhǎng),呈現(xiàn)為逐步進(jìn)化的多個(gè)版本。例如,在visual Basic程序設(shè)計(jì)教學(xué)中,可以設(shè)計(jì)一個(gè)“學(xué)生成績(jī)管理系統(tǒng)”作為核心實(shí)例,貫穿始終,從而加深對(duì)該程序設(shè)計(jì)語(yǔ)言的整體理解。
最后還應(yīng)將軟件工程的思想融合到程序設(shè)計(jì)語(yǔ)言課程的教學(xué)過(guò)程中。教師在教學(xué)中從一開始就明確應(yīng)用于工程開發(fā)的目的,以工程實(shí)踐的方式,將軟件工程的基本觀念與課程的全部?jī)?nèi)容融合為—體傳授給學(xué)生。
參考文獻(xiàn)
[1]葉幼林.對(duì)計(jì)算機(jī)C語(yǔ)言教學(xué)的探討與研究[J].中南民族大學(xué)學(xué)報(bào)(人文社會(huì)版),2004,(4).
[2]解晨光.關(guān)于高職高專計(jì)算機(jī)教學(xué)改革的研究[J].教育探索,2006,(8).
[3]袁鋒.談VB程序設(shè)計(jì)教學(xué)方法改革的幾個(gè)轉(zhuǎn)變[J].成人教育,2004,(2).
熱門標(biāo)簽
程序法 程序設(shè)計(jì)論文 程序畢業(yè)論文 程序?qū)嵱?xùn)總結(jié) 程序公正 程序問(wèn)題 程序員 程序設(shè)計(jì) 程序閱讀 程序化 區(qū)檢察院 區(qū)際 區(qū)機(jī)關(guān) 區(qū)級(jí)機(jī)關(guān)
相關(guān)文章
1C語(yǔ)言程序設(shè)計(jì)課程資源優(yōu)化方法
2HTML5程序設(shè)計(jì)課程混合教學(xué)模式
3程序設(shè)計(jì)課程對(duì)中職生計(jì)算思維的功效
4中小學(xué)科技活動(dòng)課程教學(xué)程序研究