摘要:程序設(shè)計(jì)能力是中等職業(yè)學(xué)校計(jì)算機(jī)專業(yè)學(xué)生必備的關(guān)鍵能力,應(yīng)將其放在人才培養(yǎng)中的重要位置。為更好培養(yǎng)學(xué)生程序設(shè)計(jì)能力,文中從新的角度解析了程序設(shè)計(jì)能力,并對程序設(shè)計(jì)能力培養(yǎng)的教學(xué)實(shí)施進(jìn)行了新的思考,希望對程序設(shè)計(jì)課堂培養(yǎng)學(xué)生的編程能力起到一些借鑒性的作用。
關(guān)鍵詞:程序設(shè)計(jì);能力培養(yǎng)
中圖分類號:TP311 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號:1009-3044(2019)36-0100-02
1背景
在新課程改革的大背景下,傳統(tǒng)的程序設(shè)計(jì)教學(xué)手段和方法必須得到全面的改善,將原來單純的重視學(xué)生基礎(chǔ)知識(shí)積累轉(zhuǎn)換到提升學(xué)生解決問題的能力上來,只有沿著新課改大綱在實(shí)踐中不斷探索和研究,才能運(yùn)用全新的程序設(shè)計(jì)教學(xué)理念培養(yǎng)出符合當(dāng)前社會(huì)要求的新型人才。對中職學(xué)校而言,如何更好地培養(yǎng)計(jì)算機(jī)專業(yè)學(xué)生的程序設(shè)計(jì)能力,是廣大程序設(shè)計(jì)類課程教師面臨的新課題。
2程序設(shè)計(jì)能力培養(yǎng)的意義
程序設(shè)計(jì)能力培養(yǎng)對個(gè)人而言,可以解決在軟件使用中所遇到的問題,改進(jìn)現(xiàn)有軟件,可以為自己找到一份理想的工作添加重要的砝碼,有利于在求職道路上謀得一個(gè)好的職位;從國家的角度,可以為中國的軟件產(chǎn)業(yè)做出應(yīng)有的貢獻(xiàn),一名優(yōu)秀的程序員永遠(yuǎn)是被爭奪的對象。編程還能鍛煉思維,使我們的邏輯思維更加嚴(yán)密;能夠不斷享受到創(chuàng)新的樂趣,并且有機(jī)會(huì)走在高科技的前沿,因?yàn)槌绦蛟O(shè)計(jì)本身是一種創(chuàng)造性的工作。
3程序設(shè)計(jì)能力解析
長久以來,程序設(shè)計(jì)能力一直都是難以量化且無法標(biāo)準(zhǔn)化描述的一個(gè)特殊概念。教學(xué)注重的是學(xué)生掌握程序設(shè)計(jì)語言、培養(yǎng)邏輯思維能力,行業(yè)看重的是從業(yè)者能滿足用戶需求和解決實(shí)際問題。現(xiàn)在我們聚焦到學(xué)生的學(xué)習(xí)過程,進(jìn)而推演至教師的教學(xué)過程,盡可能地對程序設(shè)計(jì)能力進(jìn)行具體化解析。當(dāng)然,要考慮的一個(gè)大前提是中職學(xué)生的知識(shí)能力水平。
3.1變量
也許很多人對討論變量嗤之以鼻,但多年的程序設(shè)計(jì)類課程教學(xué)告訴我:千里之行始于足下,編程之路始于變量;很多中職學(xué)生這一步始終沒邁出去,因?yàn)槲医?jīng)常聽到學(xué)生問“老師,這里怎么定義了這么多變量???”所有程序設(shè)計(jì)語言都離不開變量,其基礎(chǔ)性的特點(diǎn)正是我們認(rèn)真歸納、解析的價(jià)值所在。理解變量的本質(zhì)是正確、合理使用變量的基礎(chǔ);數(shù)據(jù)類型是變量的最佳搭檔,二者完美的構(gòu)建了程序設(shè)計(jì)中數(shù)據(jù)存放的機(jī)制;命名規(guī)則和習(xí)慣為程序的可讀性提供了保證;定義變量時(shí)機(jī)的把握則真正體現(xiàn)了學(xué)生對編程語言的理解和解決問題的思維能力。
3.2程序結(jié)構(gòu)
僅從程序設(shè)計(jì)語言層面來看,選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)語法更復(fù)雜,解決問題的能力也更強(qiáng),也確實(shí)讓學(xué)習(xí)者付出了足夠的代價(jià)去掌握它們。這也滋生了一種偏見,就是順序結(jié)構(gòu)是不用花力氣去學(xué)的,因?yàn)樗唵蔚讲恍枰魏晤~外的關(guān)鍵詞,就是一條一條語句按順序執(zhí)行就好了。事實(shí)是,很多讓人拍案叫絕的技巧就誕生于這份簡單中。比如,用JavaScript語言編寫模擬日歷程序,當(dāng)鼠標(biāo)懸停在相應(yīng)月份的卡片上時(shí),懸停卡片顯示白色,其余卡片顯示黑色。比較巧妙的做法是,先全部設(shè)置為黑色,再針對當(dāng)前懸停卡片設(shè)置為白色。如果按常規(guī)思路,我們更關(guān)注白色卡片的設(shè)置。三種程序結(jié)構(gòu)本就是平等的三兄弟,對語言的掌握切不可顧此失彼。
3.3程序的模塊化
其本質(zhì)是讓程序化零為整,對代碼實(shí)現(xiàn)更高效的整合和管理。具備對程序進(jìn)行模塊化處理的能力,學(xué)生就來到了程序設(shè)計(jì)領(lǐng)域的嶄新階段,并擁有從微觀的語法細(xì)節(jié)向程序的整體架構(gòu)層面跨越的可能性。比如,JavaSCript語言有行間、頭部標(biāo)簽和外掛文件幾種代碼編寫方式,函數(shù)也有常規(guī)、匿名和閉包幾種編寫方法,如果只考慮問題處理結(jié)果各種方式均無問題,但如果以行業(yè)要求為標(biāo)準(zhǔn),優(yōu)劣就顯而易見了,而學(xué)生應(yīng)具備的是更符合職場要求的模塊化能力。
3.4編程流程
關(guān)于這個(gè)能力,我們更樂于看到的是學(xué)生能從無到有把代碼編寫出來這個(gè)結(jié)果,更合適的操作是:分析用戶需求并拆解功能,逐個(gè)實(shí)現(xiàn)功能,整合并優(yōu)化;不必按部就班地走問題分析、畫流程圖、編碼、測設(shè)這樣的標(biāo)準(zhǔn)流程。事實(shí)上,如今的程序員采用的是極限編程方式,即以盡快拿出軟件第一版本為目標(biāo),各個(gè)流程環(huán)節(jié)交替、迭代。
4程序設(shè)計(jì)能力培養(yǎng)教學(xué)實(shí)施
教育改革的步伐從未停歇,教學(xué)研究尤其活躍,任務(wù)驅(qū)動(dòng)、案例教學(xué)、情景教學(xué)等等策略越來越成熟,而以下兩個(gè)方面對教學(xué)效果影響很大。
4.1案例選擇
歸根結(jié)底,案例的引入是為了更好地培養(yǎng)學(xué)生的能力。對基礎(chǔ)性的語法知識(shí)可以選擇數(shù)理性、算法性的案例,讓學(xué)生認(rèn)知更直接,同時(shí)鍛煉邏輯思維能力,比如循環(huán)結(jié)構(gòu),選擇數(shù)組結(jié)合比較大小或排序的案例就比較合適;對強(qiáng)調(diào)功能性的部分,采用更貼近日常使用的軟件功能為案例,讓學(xué)生能獲得更直觀的感受,并了解行業(yè)的真實(shí)情況,比如JavaScript中的事件,選擇網(wǎng)站流行的隱藏式分頁菜單的案例就比較典型。
4.2代碼呈現(xiàn)
程序設(shè)計(jì)課程最終是要用程序代碼說話的,代碼出現(xiàn)在學(xué)生眼前的方式很關(guān)鍵。把寫好的代碼直接在集成開發(fā)環(huán)境中打開或者在PPT中展示,可以避免代碼出錯(cuò),課堂的節(jié)奏更容易掌控,而且對教學(xué)地點(diǎn)的要求也更低,這屬于教師“解釋”代碼;邊講邊寫代碼,完整呈現(xiàn)從問題分析到實(shí)現(xiàn)的全過程會(huì)讓學(xué)生的感知更立體,但這種方式對教師的要求更高。從教改的趨勢和行業(yè)要求來看,完整呈現(xiàn)編寫代碼的全過程更可取,不僅可以解決學(xué)生寫代碼無處人手的問題,還可以在調(diào)試出錯(cuò)時(shí)順勢講解調(diào)試的技巧。而且代碼呈現(xiàn)過程對于學(xué)生熟悉“編程流程”至關(guān)重要,很多學(xué)生一直認(rèn)為代碼必須從上到下按順序?qū)懗鰜?,?shí)際上寫代碼的過程反映的是編程者解決問題的思路,這個(gè)過程往往是非線性的、跳躍的,在不斷迭代中完成的。
5結(jié)束語
中職學(xué)校一直把能力作為培養(yǎng)學(xué)生的重要目標(biāo),計(jì)算機(jī)專業(yè)學(xué)生的程序設(shè)計(jì)能力應(yīng)該成為其將來行走社會(huì)的名片。然而程序設(shè)計(jì)類課程開設(shè)多年,但真正通過課堂學(xué)習(xí)而成為編程好手的學(xué)生鳳毛麟角,這就需要我們進(jìn)一步加強(qiáng)教學(xué)研究,以更接地氣、更符合學(xué)生特點(diǎn)、更適應(yīng)社會(huì)需求的方式,為學(xué)生的程序設(shè)計(jì)能力培養(yǎng)貢獻(xiàn)自己的力量。
參考文獻(xiàn):
[1]計(jì)春雷,吉順如,宋曉勇.計(jì)算機(jī)專業(yè)學(xué)生程序設(shè)計(jì)能力培養(yǎng)探索[J].職業(yè)技術(shù)教育,2014(5).
[2]張屹峰.JavaScript項(xiàng)目式實(shí)例教程[M].北京:電子工業(yè)出版社.2017.
[3]譚浩強(qiáng).研究計(jì)算思維,堅(jiān)持面向應(yīng)用[J].計(jì)算機(jī)教育,2012(21).
【通聯(lián)編輯:謝媛媛】
收稿日期:2()19-10-29
基金項(xiàng)目:東莞市教育科研“十三五”規(guī)劃2019年度課題(項(xiàng)目編號:2019GH408)
作者簡介:劉建(1979-),男,廣東東莞人,計(jì)算機(jī)講師,碩士,研究方向?yàn)橛?jì)算機(jī)軟件、計(jì)算機(jī)網(wǎng)絡(luò)。