葉茂枝,王 寧
(1.寧德師范學(xué)院 計算機系,福建 寧德 352100;2.廈門華廈職業(yè)學(xué)院 教務(wù)處,福建廈門 361024)
程序設(shè)計是計算機專業(yè)學(xué)生的專業(yè)基礎(chǔ)能力,是其專業(yè)學(xué)習(xí)的主要目標(biāo)。因此各地方院校計算機專業(yè)均開設(shè)高級語言程序設(shè)計這門課程,目的是讓學(xué)生掌握程序設(shè)計的思想和基本方法,具備基本的編程實踐能力,能利用計算機解決一些實際問題。然而,在實踐中該課程的教學(xué)效果普遍不理想。麥可思《2012年中國大學(xué)生就業(yè)報告》中計算機科學(xué)與技術(shù)、計算機應(yīng)用技術(shù)被列為紅牌專業(yè),報告分析稱這一后果并非由于供大于求,而是由于人才培養(yǎng)質(zhì)量達不到產(chǎn)業(yè)的要求造成的。[1]可見在實際教學(xué)中,高級語言程序設(shè)計課程并未幫助學(xué)生掌握好一門程序設(shè)計語言,培養(yǎng)起程序設(shè)計的技能。
究其原因,雖然在各地方院校制定的教學(xué)大綱中普遍強調(diào)該課程不但要注重程序設(shè)計語言基本知識的學(xué)習(xí),更要注重程序設(shè)計技能的培養(yǎng)。但實際教學(xué)中的諸多因素導(dǎo)致老師與學(xué)生都深陷于各知識點語法細節(jié),忽視了程序設(shè)計能力的培養(yǎng)。比如,開課時間短,通常僅為一個學(xué)期;入門難度大,該課程是大部分學(xué)生接觸的第一門程序設(shè)計課程,程序設(shè)計思想尚未建立;傳統(tǒng)考核方式忽視程序設(shè)計理念,側(cè)重考語法規(guī)則等。[2]探索高級語言程序設(shè)計課程教學(xué)改革措施,明確培養(yǎng)程序設(shè)計技能作為課程目標(biāo)定位,對于計算機專業(yè)學(xué)生程序設(shè)計技能的培養(yǎng)意義深遠。近年來,我們嘗試在課程設(shè)置上將高級語言程序設(shè)計從一門單獨的課程轉(zhuǎn)變成系列課程,并經(jīng)過了兩年的試驗。
高級語言程序設(shè)計是計算機專業(yè)的必修基礎(chǔ)課程。該課程以計算機導(dǎo)論為先修課,是數(shù)據(jù)結(jié)構(gòu)、算法、面向?qū)ο蟪绦蛟O(shè)計等專業(yè)課程的基礎(chǔ)。該課程多在大一第二學(xué)期開設(shè),每周4-6節(jié)課,是大部分學(xué)生學(xué)習(xí)語言的入門課。學(xué)習(xí)程序設(shè)計有一個漸進的過程,在一個學(xué)期內(nèi)要完成語言的學(xué)習(xí)到程序設(shè)計技能的培養(yǎng),教學(xué)目標(biāo)難以實現(xiàn)。受模塊化程序設(shè)計思想的啟發(fā),高級語言程序設(shè)計這一課程可以不作為一門單獨的課程來開設(shè),而是轉(zhuǎn)變成系列課程。這樣既延長了教學(xué)時間又分攤了教學(xué)目標(biāo),使原本不易完成的教學(xué)目標(biāo)變成多個易于完成的子目標(biāo)。
高級語言程序設(shè)計要求學(xué)生在完成高級語言入門后,借助語言工具最終完成程序設(shè)計。因此,系列課程可分為高級語言與程序設(shè)計入門兩部分內(nèi)容。高級語言部分注重程序語言基本知識,可沿用傳統(tǒng)語法教學(xué)為主,上機驗證程序為輔的教學(xué)方式。通過學(xué)習(xí)掌握語言工具,會看程序,編寫?yīng)毩⒄Z句,完成語言的入門??己藗?cè)重語法規(guī)則、語句的編寫,筆試即可;程序設(shè)計入門部分注重程序設(shè)計理念的培養(yǎng),工學(xué)結(jié)合,根據(jù)項目要求,學(xué)生通過編程提出解決方案。學(xué)習(xí)目標(biāo)是學(xué)生能夠自如地表達自己的想法,準(zhǔn)確地描述自己的思路,能夠調(diào)試和檢驗程序??己藗?cè)重程序設(shè)計理念、算法的實現(xiàn)、程序的理解。程序設(shè)計入門階段要求編寫的程序都比較短小,人工編寫能夠快速鍛煉基本功,所以不提倡一學(xué)程序就上機。但學(xué)生必須熟悉編譯軟件的使用,掌握其編輯、調(diào)試、檢驗程序等功能的使用。因此,考核方式可以筆試為主,機試為輔。
在系列課程結(jié)束后,教師還可根據(jù)實際教學(xué)情況,通過組建學(xué)習(xí)共同體的形式,使用項目訓(xùn)練方法,配合后續(xù)課程培養(yǎng)學(xué)生邏輯思維、自主學(xué)習(xí)、協(xié)作開發(fā)軟件項目等能力,強化程序設(shè)計基本技能訓(xùn)練。
程序設(shè)計能力可分為5個層次:語言基礎(chǔ)級別、基本運用級別、工具程序級別、軟件工程級別、大型系統(tǒng)級別。傳統(tǒng)課程設(shè)置中期望通過高級語言程序設(shè)計這門課程的學(xué)習(xí),可以使學(xué)生程序設(shè)計能力至少達到基本運用級別,能使用程序設(shè)計解決小型問題。大二開始學(xué)生便可依托其他專業(yè)課程進一步訓(xùn)練程序設(shè)計能力。然而,自1999年開始本科擴招后,地方院校生源質(zhì)量大幅下降。[3]學(xué)生能力與原有課程要求不匹配,教與學(xué)過程中處處是難處。學(xué)生感覺難,畏學(xué)、甚至放棄;教師感覺難,教學(xué)要求一降再降。一學(xué)期授課結(jié)束后,課程的實際教學(xué)效果非常不理想,學(xué)生的程序設(shè)計能力只能勉強達到語言基礎(chǔ)級別,即掌握編程語言的基本要素和使用方法。更糟糕的是該課程的教學(xué)目標(biāo)沒有達到,嚴重影響后續(xù)課程的教學(xué),學(xué)生程序設(shè)計能力培養(yǎng)過程中出現(xiàn)嚴重脫節(jié)甚至停滯。
在傳統(tǒng)的課程體系未做整體調(diào)整前,作為諸多專業(yè)課的先修課高級語言程序設(shè)計的課程目標(biāo)不能過度降低??紤]學(xué)生的實際能力,延長時間、分階段的逐步實現(xiàn)目標(biāo)是非常必要的。開設(shè)系列課程將原有教學(xué)目標(biāo)分解到多門課中,降低了實現(xiàn)難度,增加了實現(xiàn)目標(biāo)的時間。系列課程分別安排在大一第一、二學(xué)期。在傳統(tǒng)的課程體系中大一第一學(xué)期只有計算機導(dǎo)論一門專業(yè)課,加入高級語言學(xué)生學(xué)習(xí)負擔(dān)不會增加太多。且相對于計算機導(dǎo)論的泛泛而談高級語言的學(xué)習(xí)內(nèi)容非常具體,可以較好地保護初學(xué)者的學(xué)習(xí)興趣。高級語言注重設(shè)計語言基本知識的學(xué)習(xí),受先修課計算機導(dǎo)論相關(guān)知識點的影響不大,安排在大一第一學(xué)期爭取了時間還不影響后續(xù)課程的開設(shè)。轉(zhuǎn)變成系列課程后4學(xué)時課時總數(shù)增加不多,均衡了大一上下學(xué)期的課時數(shù)。
高級語言是程序設(shè)計的工具,工具沒有掌握好就匆忙談程序設(shè)計是沒有根基的。因此,學(xué)習(xí)語言程序設(shè)計的學(xué)生必須先要有語言基礎(chǔ)。在實施教學(xué)之初不宜過快,待學(xué)生語言入門后方可考慮再加快教學(xué)速度[4]。確保學(xué)生在接受程序設(shè)計理念的培養(yǎng)之前有一定的語言基礎(chǔ)。
學(xué)習(xí)語言的目的是使用,程序設(shè)計能力的培養(yǎng)也不受限于某種語言。在高級語言教學(xué)過程中,對于部分繁雜的知識點不用過于糾結(jié),否則容易打擊學(xué)生學(xué)習(xí)積極性,產(chǎn)生畏學(xué)情緒。比如:C語言中輸入、輸出函數(shù)的格式控制符,除%d,%f,%c三種格式必需掌握,其他格式可以視能力選擇性學(xué)習(xí);復(fù)雜表達式的分析、自增自減運算等,多用于閱讀和程序的維護,編寫程序時可用加括號、重新賦值的方法實現(xiàn)相同效果。[5]總之,學(xué)習(xí)應(yīng)該去繁就簡,把精力集中于程序設(shè)計能力的培養(yǎng)。
從詞、句、段、文到品詞析句、文章構(gòu)架是語言學(xué)習(xí)的一個過程。學(xué)習(xí)編寫程序也同樣需要這個過程。如果能力不夠就只能放慢進度,絕不能急于求成,跳躍前進。學(xué)習(xí)初重視獨立語句的練習(xí),不能過早地要求學(xué)生完成程序編寫、甚至強調(diào)算法的理論深度。
在教學(xué)過程中不管是老師講課用的實例還是布置學(xué)生完成的題目,都應(yīng)盡可能貼近學(xué)生,有實用性、趣味性,讓學(xué)生感覺到學(xué)習(xí)的東西是有用的、有趣的。比如:利用函數(shù)畫圖、文本顏色設(shè)置、通訊錄管理等例子,都能讓學(xué)生在完成后產(chǎn)生強烈的成就感。
程序設(shè)計水平是指如何寫程序的能力,和語言無關(guān),關(guān)乎思考方式和對程序設(shè)計語言本質(zhì)的理解。許多學(xué)生在校期間不斷穿梭于各種工具間,忽略了程序設(shè)計能力的鍛煉,最后博而不精。程序設(shè)計入門中使用的工具最好是高級語言中學(xué)習(xí)的高級語言。學(xué)校在課程設(shè)置上不宜過多地引入編程工具,要引導(dǎo)學(xué)生學(xué)以致用,避免學(xué)而不用。
程序設(shè)計能力的培養(yǎng)過程辛苦而漫長,學(xué)習(xí)動機是堅持學(xué)習(xí)不懈的唯一動力。學(xué)校在課程設(shè)置上應(yīng)考慮保護學(xué)生學(xué)習(xí)熱情,防止因畏難而放棄學(xué)習(xí)。將高級語言程序設(shè)計從一門單獨的課程轉(zhuǎn)變成系列課程來開設(shè),是從學(xué)生實際能力出發(fā),為保護學(xué)習(xí)熱情而作的適應(yīng)性調(diào)整。
[1]常紅.中國大學(xué)生就業(yè)報告:2012年就業(yè)“紅黃綠牌”專業(yè)出爐[DB/OL].http://society.people.com.cn/GB/86800/18143461.html,2012-06-11.
[2]劉霞,劉志明,羅江琴.高級語言程序設(shè)計課程教學(xué)改革的研究[J].軟件,2012,(2):95-97.
[3]郝慶升.地方院校本科生源質(zhì)量問題與教學(xué)改革建議[J].吉林農(nóng)業(yè)科技學(xué)院學(xué)報,2010,(1):80-83.
[4]傅力,李志達.C語言程序設(shè)計課程教學(xué)改革的探索與實踐[J].計算機教育,2008,(14):35-36.
[5]賴秀珍.探析高職院校C語言教學(xué)改革探討與實踐[J].新課程:教育學(xué)術(shù),2011,(4).