周帆帆 張麗輝 高毅
摘要:為了更好的開設(shè)JAVA程序設(shè)計(jì)課程,針對(duì)現(xiàn)在教學(xué)過程中存在的問題,提出了在程序設(shè)計(jì)課程中融入計(jì)算思維的能力的培養(yǎng),并將其作為教學(xué)的重點(diǎn),從教學(xué)模式、教學(xué)內(nèi)容、教學(xué)方法等方面對(duì)課程的改革進(jìn)行了研究探討,強(qiáng)調(diào)通過上機(jī)實(shí)踐來培養(yǎng)學(xué)生的編程能力和計(jì)算機(jī)思維能力。
關(guān)鍵詞:JAVA程序設(shè)計(jì);計(jì)算思維能力;教學(xué)改革
中圖分類號(hào):TP3 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)26-6135-02
Abstract: In order to set up the JAVA?program designing course?better, in view of the traditional?problems in the process of teaching, put forward training into?the computational thinking?ability?in the JAVA program designing course,that as?the focus of teaching from the teaching content, teaching?method,?teaching mode to discuss?on?curriculum?reform, emphasis through the practice?to cultivate?students' ability of computational?thinking and?program design.
Key words: JAVA Program design ;Computational thinking ability; Reform in education
JAVA程序設(shè)計(jì)是高校計(jì)算機(jī)專業(yè)的必修課程,以其在項(xiàng)目程序開發(fā)中效率高、周期短的特點(diǎn)成為當(dāng)今最流行的程序設(shè)計(jì)語言之一。該課程的目標(biāo)旨在通過面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,學(xué)會(huì)問題的解決方法和思路,找出可行的算法。通過計(jì)算機(jī)建模與編程,實(shí)現(xiàn)對(duì)問題的解決,最終培養(yǎng)學(xué)生對(duì)計(jì)算機(jī)的應(yīng)用開發(fā)能力、實(shí)踐創(chuàng)新能力及計(jì)算思維能力。
2010年《九校聯(lián)盟(C9) 計(jì)算機(jī)基礎(chǔ)教學(xué)與發(fā)展戰(zhàn)略聯(lián)合聲明》就提出了要把培養(yǎng)學(xué)生的“計(jì)算思維”能力作為計(jì)算機(jī)教學(xué)的核心任務(wù)。[1]因此,如何在JAVA程序設(shè)計(jì)課程中將計(jì)算思維的基本理論和思維融入到教學(xué)過程中,加強(qiáng)算法的學(xué)習(xí)(即問題求解的思路和方法)與如何具體有效的利用計(jì)算機(jī)實(shí)現(xiàn)算法,成為了需要我們認(rèn)真思考的問題。
1 JAVA程序設(shè)計(jì)課程的現(xiàn)狀
JAVA程序設(shè)計(jì)課程的內(nèi)容包括了程序語言知識(shí)和程序設(shè)計(jì)思想及方法兩個(gè)部分,兩個(gè)部分涵蓋了程序設(shè)計(jì)語言語法、語義功能和意義;數(shù)據(jù)對(duì)象、流程控制;設(shè)計(jì)程序的過程、方法、技術(shù)等。但在現(xiàn)在的教學(xué)過程中往往有以下問題:
1) 教學(xué)模式以傳統(tǒng)講解理論知識(shí),課后練習(xí)鞏固為主,學(xué)生被動(dòng)學(xué)習(xí),缺乏創(chuàng)新意識(shí),對(duì)程序設(shè)計(jì)的能力培養(yǎng)不夠。
2) 教師只注重知識(shí)灌輸,學(xué)生不能得到思維訓(xùn)練。
3) 學(xué)生能力水平不一致,在課程中又得不到計(jì)算思維的訓(xùn)練,面對(duì)問題束手無策,出現(xiàn)學(xué)習(xí)消極的現(xiàn)象。
4) 程序設(shè)計(jì)例題采用案例零散、關(guān)聯(lián)度低,學(xué)生學(xué)會(huì)了語法知識(shí)但仍不知道怎樣去運(yùn)用,畢業(yè)后無法從事軟件設(shè)計(jì)與開發(fā)工作。
實(shí)現(xiàn)中僅通過知識(shí)而忽略思維的訓(xùn)練對(duì)學(xué)生的成長(zhǎng)是不利的。程序設(shè)計(jì)教學(xué)需要培養(yǎng)學(xué)生的思維能力,使學(xué)生在處理問題時(shí),通過利用科學(xué)的思維方式對(duì)信息進(jìn)行加工處理,以更好的應(yīng)用到科學(xué)研究和生產(chǎn)中。當(dāng)前在計(jì)算機(jī)學(xué)科領(lǐng)域內(nèi),將計(jì)算思維,理論思維和實(shí)驗(yàn)思維并構(gòu)成了三大科學(xué)思維,美國卡內(nèi)基·梅隆大學(xué)周以真教授就指出,計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解,系統(tǒng)設(shè)計(jì)、人類行為理解等一系列思維活動(dòng)。[2]因此要求在高校的計(jì)算機(jī)程序設(shè)計(jì)課程中要把計(jì)算思維的本質(zhì)及概念加入到教學(xué)過程中。
2 JAVA程序設(shè)計(jì)課程的教學(xué)改革
2.1以培養(yǎng)計(jì)算思維為教學(xué)的重點(diǎn)
計(jì)算思維主要的一種求解問題的思維方法,在JAVA程序設(shè)計(jì)教學(xué)中要改變以前固有的以傳授教材內(nèi)容為主的教學(xué)過程,加強(qiáng)思維的訓(xùn)練。授課教師要以程序設(shè)計(jì)中的實(shí)際問題求解方法和過程為主導(dǎo),將解決問題的程序語法知識(shí)有機(jī)、合理地融入,避免枯燥乏味的講解與陳述。學(xué)生學(xué)習(xí)程序設(shè)計(jì)不是為了立即成為程序設(shè)計(jì)員,而是為了學(xué)習(xí)程序設(shè)計(jì)過程中分析問題的方法和解決問題的思路與方法。因此授課教師應(yīng)循序漸進(jìn)的引導(dǎo)學(xué)生接受知識(shí)。例如在符合認(rèn)知規(guī)律的前提下,將面向?qū)ο笾谐橄蟮母拍睿瑥?fù)雜的程序結(jié)構(gòu)等知識(shí)通過深入淺出教授給學(xué)生。教學(xué)設(shè)計(jì)過程中首先提出問題,給予學(xué)生思考,然后分析問題,讓學(xué)生用面向?qū)ο蟪绦蛟O(shè)計(jì)的思想分析問題。對(duì)問題中涉及的類、屬性和方法等進(jìn)行抽象,接下來找出問題的解法,引出相關(guān)的概念和知識(shí)點(diǎn),研究解決問題的邏輯方法,鼓勵(lì)學(xué)生的創(chuàng)新嘗試。最后轉(zhuǎn)化為編程語言,將計(jì)算思維的訓(xùn)練貫穿于整個(gè)教學(xué)過程中,相信學(xué)生會(huì)容易接受這樣的教學(xué)方法。同樣通過長(zhǎng)期在教學(xué)重點(diǎn)中加強(qiáng)培養(yǎng)計(jì)算思維能力,能夠獲得更好的教學(xué)效果,解決學(xué)生程序設(shè)計(jì)能力不足的問題。
2.2采用多種教學(xué)模式
JAVA程序設(shè)計(jì)基于面向?qū)ο缶幊趟枷胝归_,內(nèi)容繁多,采用單一的教學(xué)模式不能滿足教學(xué)過程中的要求。因此在JAVA程序設(shè)計(jì)教學(xué)中,應(yīng)該采取基于計(jì)算思維的探索研究式、任務(wù)驅(qū)動(dòng)式和自主實(shí)踐學(xué)習(xí)式的三種教學(xué)模式。
1)基于計(jì)算思維的探索研究式教學(xué)模式
在整個(gè)教學(xué)過程中從教學(xué)問題的提出、問題的思考到確定問題的解決方案,授課教師僅起指導(dǎo)作用。學(xué)生通過探索研究方式進(jìn)行學(xué)習(xí),重點(diǎn)圍繞教學(xué)核心問題展開,從而達(dá)到學(xué)習(xí)知識(shí)的目的。對(duì)于JAVA程序設(shè)計(jì)授課教師而言,事先備課需根據(jù)教學(xué)內(nèi)容、教學(xué)方法、教學(xué)目標(biāo)等設(shè)計(jì)難易度適中的問題。對(duì)于學(xué)生在整個(gè)學(xué)習(xí)過程中的各個(gè)環(huán)節(jié)都需要考慮計(jì)算技能與思維的使用方法。例如在講解“迭代”問題時(shí),教師自身的思維想法是無法直接通過講述讓學(xué)生理解的。因此在講解時(shí)教師可通過設(shè)計(jì)一些小游戲或問題讓學(xué)生來解決和思考,在提高學(xué)生學(xué)習(xí)熱情的同時(shí),讓學(xué)生通過游戲或問題感知“迭代”的算法思想。這就是學(xué)生探索研究的過程,通過破解小游戲與問題,學(xué)生獲取理解了知識(shí),也培訓(xùn)了學(xué)生計(jì)算思維能力。
2) 基于計(jì)算思維的任務(wù)驅(qū)動(dòng)式教學(xué)模式
在JAVA程序設(shè)計(jì)中要讓學(xué)生準(zhǔn)確理解面向?qū)ο蟮母拍睿詈玫姆椒ㄊ窃O(shè)計(jì)任務(wù)驅(qū)動(dòng)的教學(xué)案例。傳統(tǒng)的教學(xué)過程中教師只負(fù)責(zé)提出任務(wù),并關(guān)聯(lián)、列舉一些自然界的事物或日常生活中的例子對(duì)面向?qū)ο笾械母鞣N抽象概念進(jìn)行講解。學(xué)生往往認(rèn)為這些例子和程序沒有必然關(guān)系,導(dǎo)致學(xué)生也不知道教師的教學(xué)要讓自己干什么,只需按教師提出的要求大概完成任務(wù)就可以了,至于任務(wù)實(shí)施過程中所采取的何種解決方法根本不考慮。因此要培養(yǎng)學(xué)生在完成任務(wù)時(shí)運(yùn)用計(jì)算思維的方法,采取的方式就是在教師提出、實(shí)行和完成任務(wù)時(shí)有意識(shí)的運(yùn)用計(jì)算思維方法設(shè)置任務(wù)。例如在介紹類、對(duì)象、屬性和方法的概念及在程序中的作用時(shí),引用學(xué)生關(guān)注的熱門游戲的角色為任務(wù)案例。游戲角色分多個(gè)種類,每一類角色的武器、技能、魔法等就是屬性,學(xué)生作為玩家在進(jìn)行角色創(chuàng)建時(shí)建立的就是對(duì)象。這種講解方法結(jié)合了計(jì)算思維的方法,不單單強(qiáng)調(diào)任務(wù)的完成結(jié)果,而是強(qiáng)調(diào)在任務(wù)完成的各個(gè)過程環(huán)節(jié)中如何用計(jì)算思維的方法去理解、分析問題,并最終解決問題。
3) 基于計(jì)算思維的自主實(shí)踐學(xué)習(xí)模式
任何教師要加強(qiáng)對(duì)學(xué)生計(jì)算思維能力的培養(yǎng),根據(jù)學(xué)生個(gè)體間的差異,打破傳統(tǒng)填鴨式和灌輸式教學(xué)理念,給予學(xué)生自主實(shí)踐學(xué)習(xí)的空間。例如利用網(wǎng)絡(luò),教師可以在網(wǎng)絡(luò)上開設(shè)自己解疑答題的網(wǎng)站,精心設(shè)計(jì)電子教案和教學(xué)課件,更新和完善教學(xué)資源,充分利用網(wǎng)絡(luò)讓學(xué)生自主進(jìn)行實(shí)踐學(xué)習(xí)。通過網(wǎng)絡(luò)不僅可以彌補(bǔ)教學(xué)課時(shí)的不足,利用網(wǎng)絡(luò)教學(xué)資源還可以高效的組織教學(xué),將JAVA程序設(shè)計(jì)的算法思想和算法結(jié)構(gòu)的詳細(xì)講解過程放到網(wǎng)絡(luò)上,讓學(xué)生根據(jù)自身情況有針對(duì)性的選擇學(xué)習(xí)內(nèi)容。同樣,學(xué)生通過自主的實(shí)踐學(xué)習(xí),掌握了編程方法和技巧,就會(huì)進(jìn)行思考,這也就給了學(xué)生一個(gè)自由發(fā)揮其想象力和創(chuàng)造力的空間。
3 通過上機(jī)實(shí)踐加強(qiáng)計(jì)算思維的鍛煉
上機(jī)實(shí)踐是JAVA程序設(shè)計(jì)課程中的一個(gè)重要教學(xué)環(huán)節(jié),通過上機(jī)實(shí)踐不僅可以檢查學(xué)生是否掌握了知識(shí),還可以檢查學(xué)生能否綜合、靈活的運(yùn)用知識(shí)。同時(shí)上機(jī)實(shí)踐不單純是動(dòng)手的過程,也是動(dòng)腦解決實(shí)際問題的過程,是訓(xùn)練和培養(yǎng)計(jì)算機(jī)思維的最佳途徑之一。
學(xué)生的上機(jī)實(shí)踐過程首先要求要理解題目,然后找出解題方法,并建立可行的數(shù)學(xué)模型;其次要設(shè)計(jì)程序的流程,用機(jī)器語言描述算法步驟,編寫JAVA程序;最后還要調(diào)試運(yùn)行程序,得到結(jié)果,并根據(jù)結(jié)果思考是否能優(yōu)化程序或算法步驟。整個(gè)上機(jī)實(shí)踐的過程重點(diǎn)就是學(xué)生自身的動(dòng)手過程,通過有目的性的上機(jī)實(shí)踐訓(xùn)練,就能培養(yǎng)學(xué)生養(yǎng)成良好的編程習(xí)慣,在編程過程中全面的應(yīng)用計(jì)算思維能力。
4 結(jié)論
在JAVA程序設(shè)計(jì)中貫穿計(jì)算思維能力的培養(yǎng),可以說是一種教學(xué)改革的嘗試,其目的就是通過日常教學(xué)潛移默化地將計(jì)算思維方法融入學(xué)生的日常思維中,以培養(yǎng)適應(yīng)現(xiàn)代社會(huì)需求的應(yīng)用型計(jì)算機(jī)專業(yè)人才。
參考文獻(xiàn):
[1] 何欽銘,陸漢權(quán),馮博琴.計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)是計(jì)算機(jī)思維能力的培養(yǎng)——《九校聯(lián)盟(C9)計(jì)算機(jī)基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》解讀[J].中國大學(xué)教學(xué),2010(9):4-9.
[2] 周以真.計(jì)算思維[J].中國計(jì)算機(jī)學(xué)會(huì)通訊.2007,3(11):2-4.
[3] 陳國良,董榮勝. 計(jì)算思維與大學(xué)計(jì)算機(jī)基礎(chǔ)教育[J]. 中國大學(xué)教育,2011(1):9.
[4] J.M.Wing.Computational Thinking[J].Communication of the ACM,2006,49(3):33-35.