茅 穎
(江蘇商貿(mào)職業(yè)學(xué)院,江蘇 南通 226000)
2006年3月,在美國的計算機(jī)科學(xué)權(quán)威期刊《Communications of the ACM》上,美國卡內(nèi)基梅隆大學(xué)(Carnegie Mellon University,CMU)的計算機(jī)科學(xué)系主任周以真(Jeannette Wing)教授首次系統(tǒng)地提出了計算思維(Computational Thinking)的概念。周以真教授提出:計算思維是采用計算機(jī)科學(xué)的基礎(chǔ)概念來解決問題、設(shè)計系統(tǒng)以及理解人類行為等的一系列思維方式。正如每一個人都有閱讀、寫作和計數(shù)(Reading、Writing、 Arithmetic,3R)的能力一樣,計算思維是人類必須具備的思維能力。在此基礎(chǔ)上,南安普頓大學(xué)(University of Southampton)的Cynthia Selby博士和John Woollard博士提出計算思維的五個核心概念分別為:算法思維、評估、分解、抽象和歸納。
2010 年在西安交通大學(xué)舉辦的首屆“九校聯(lián)盟計算機(jī)基礎(chǔ)課程研討會(C9)”的會后聲明中提出:高校計算機(jī)基礎(chǔ)教育階段的首要任務(wù)是培養(yǎng)大學(xué)生的計算思維能力,而計算機(jī)程序設(shè)計中包含了大量解決問題的算法及思維模式。2012年,首屆“計算思維與大學(xué)計算機(jī)課程教學(xué)改革”研討會在西安成功召開,陳國良院士正式提出計算機(jī)基礎(chǔ)教學(xué)改革應(yīng)以培養(yǎng)學(xué)生計算思維能力為切入點。計算思維已引起全世界計算機(jī)科學(xué)家和教育工作者的積極關(guān)注,為培養(yǎng)新時代的創(chuàng)新人才,教育必須擺脫傳統(tǒng)教學(xué)在思想和方法上的束縛,激發(fā)學(xué)生以新的方式來思考。
Java程序設(shè)計課程要求學(xué)生了解Java語言特征、常見的Java類庫以及面向?qū)ο蟪绦蛟O(shè)計思想;掌握計算機(jī)程序的結(jié)構(gòu);掌握程序的開發(fā)過程;掌握常用數(shù)據(jù)結(jié)構(gòu)以及Java編程語言的語法;學(xué)會利用Java語言編寫面向網(wǎng)絡(luò)應(yīng)用的簡單程序等內(nèi)容。本校的Java程序設(shè)計課程目前總學(xué)分為4學(xué)分,一學(xué)期只有64個課時,從培養(yǎng)完善的計算機(jī)人才的角度出發(fā),教師希望學(xué)生能夠在課堂中學(xué)到更多的知識,掌握更多的技能,因此64個課時遠(yuǎn)遠(yuǎn)不夠,教師如何有效的分配課時,既能幫助學(xué)生完成更多知識點的學(xué)習(xí),又能為學(xué)生留出足夠的時間進(jìn)行知識的內(nèi)化,并提高學(xué)生的實踐編程能力,是教師在教學(xué)實施中的一大難題。
Java程序設(shè)計課程是計算機(jī)類專業(yè)的專業(yè)基礎(chǔ)課程,本校計算機(jī)類專業(yè)文理兼收,文科生對程序設(shè)計類課程的接受能力相對較差,同時由于各地區(qū)教育發(fā)展的不平衡,有些學(xué)生在初高中就已經(jīng)接觸過程序設(shè)計的相關(guān)知識,而有些學(xué)生僅僅接受過計算機(jī)基礎(chǔ)操作的相關(guān)教育。學(xué)生計算機(jī)編程基礎(chǔ)參差不齊,有部分學(xué)生在課堂學(xué)習(xí)中很難跟上教學(xué)進(jìn)度,使得這些學(xué)生心態(tài)上產(chǎn)生消極畏難的心理,出現(xiàn)了較為嚴(yán)重的兩極分化現(xiàn)象,這就需要教師在教學(xué)過程中能夠設(shè)計有效的教學(xué)策略,因材施教,提高學(xué)生對程序設(shè)計的興趣與信心,從而培養(yǎng)學(xué)生的計算思維能力。
Java程序設(shè)計課程內(nèi)容多課時少,教師為了按時完成教學(xué)任務(wù),不得不增加理論講授的時間,壓縮實踐課時,在教學(xué)過程中較多的使用講解教學(xué)法與講演教學(xué)法,學(xué)生在學(xué)習(xí)的過程中缺少實踐操作的時間,程序設(shè)計與編碼的能力難以得到提高。同時,在Java程序設(shè)計課程的教學(xué)過程中,教師很容易陷入語言表達(dá)形式的誤區(qū),尤其是在大多數(shù)考試內(nèi)容中偏重對語法的考核而不是對編程能力的考核。部分教師在教學(xué)過程中存在重編碼,輕算法的現(xiàn)象,導(dǎo)致學(xué)生在學(xué)習(xí)過程中將基本語法視為重點,以程序正常運(yùn)行不報錯為目的,不重視總結(jié)問題求解的過程,忽略了思維方式的鍛煉。
Java程序設(shè)計課程中知識點的聯(lián)結(jié)程度比較差,缺乏整體性與關(guān)聯(lián)性,學(xué)生在學(xué)習(xí)過程中缺乏連貫性,使得學(xué)生程序設(shè)計思路無法得到有效的拓展。教學(xué)案例的設(shè)計及講解缺乏整體性和連貫性,使得學(xué)生無法把自己掌握的知識進(jìn)行整合內(nèi)化,同時在程序設(shè)計與編碼的過程中更是無法通過自身能力解決不斷出現(xiàn)的各種主觀或客觀問題。因此,在教學(xué)設(shè)計的過程中需要提高知識點的聯(lián)結(jié)程度。
算法在人們的日常學(xué)習(xí)或生活中總會被使用,是對解題方案的準(zhǔn)確而完整的描述,是一系列解決問題的清晰指令,代表著用系統(tǒng)的方法描述解決問題的策略機(jī)制。教學(xué)過程以算法為主線,在算法的講解過程中增加Java知識點,從而培養(yǎng)學(xué)生的算法思維能力,增強(qiáng)學(xué)生利用算法綜合分析問題、解決問題的能力。
例如,在教學(xué)設(shè)計中利用解決排序問題中的二分查找算法,同時結(jié)合遞歸算法來講解選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)。二分查找算法的遞歸實現(xiàn)主要利用的是選擇結(jié)構(gòu)語句,二分查找算法的非遞歸實現(xiàn)則是利用選擇結(jié)構(gòu)與循環(huán)結(jié)構(gòu)相結(jié)合而實現(xiàn)的。還可以利用排序問題中的冒泡排序算法來講解數(shù)組的聲明、定義與遍歷等內(nèi)容。
這種利用算法為主線的教學(xué)方式,將Java程序設(shè)計課程中的基本知識點與算法相結(jié)合,在有效幫助學(xué)生掌握J(rèn)ava基本知識的同時,既能有效培養(yǎng)高職學(xué)生的算法思維能力,又能提高高職學(xué)生利用算法思維分析問題解決問題的能力。
通過構(gòu)建Java程序設(shè)計課程的網(wǎng)絡(luò)學(xué)習(xí)平臺,使學(xué)生可以充分利用課后的閑暇時間進(jìn)行自主學(xué)習(xí),從而彌補(bǔ)學(xué)生課上學(xué)習(xí)跟不上的問題,并能夠有效協(xié)調(diào)教育資源的不均衡。Java程序設(shè)計課程的網(wǎng)絡(luò)學(xué)習(xí)平臺中包含微課、視頻、PPT、實訓(xùn)指導(dǎo)書等大量學(xué)習(xí)資源,學(xué)生在課堂學(xué)習(xí)中遇到的問題與困難可以通過這些學(xué)習(xí)資料來解決,能夠加強(qiáng)學(xué)生記憶,加深學(xué)生對知識點的理解。同時學(xué)生可以利用網(wǎng)絡(luò)平臺中的實訓(xùn)指導(dǎo)書在課后進(jìn)行程序編碼的實踐練習(xí),遇到問題可以在線與教師實時提問解答,使學(xué)生通過課后的編程實踐能夠確實感受和領(lǐng)悟計算機(jī)問題求解的基本方法與思維模式。網(wǎng)絡(luò)學(xué)習(xí)平臺的構(gòu)建與使用,改變了學(xué)生以課堂學(xué)習(xí)為主的學(xué)習(xí)模式,激發(fā)了學(xué)生對Java程序設(shè)計課程的學(xué)習(xí)興趣,培養(yǎng)了計算機(jī)類高職學(xué)生的自主學(xué)習(xí)能力。
計算思維能力的提高是一個長期培養(yǎng)的過程,Java程序設(shè)計課程不僅僅是要讓學(xué)生掌握程序設(shè)計語言的基本語法知識,還要通過編程能力的培養(yǎng)使學(xué)生學(xué)會利用計算機(jī)解決問題的方法,培養(yǎng)學(xué)生的計算思維能力,從而為社會培養(yǎng)出更多高素質(zhì)的計算機(jī)類技術(shù)技能型人才。