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