摘要:對于以培養(yǎng)基本程序設(shè)計能力為目標的程序設(shè)計課程群的建設(shè)工作,核心問題是把多門課程整合成有機的整體。在分析程序設(shè)計課程群建設(shè)面臨的主要困難的基礎(chǔ)上,提出一種以學科競賽為紐帶的程序設(shè)計課程群建設(shè)模式,從而保證教學過程中能保持整體連貫性,避免多門課程教學間的銜接不暢。
關(guān)鍵詞:學科競賽;程序設(shè)計;課程群
中圖分類號:TP3 文獻標識碼:A 文章編號:1009-3044(2013)16-3784-02
培養(yǎng)學生的程序設(shè)計能力是高校計算機專業(yè)的人才培養(yǎng)目標之一,是為軟件產(chǎn)業(yè)培養(yǎng)大量的急需人才的必然要求[1],也是檢驗計算機類畢業(yè)生質(zhì)量的標準之一[2]。然而,計算思維與人類思維的顯著差別使得學生程序設(shè)計能力的培養(yǎng)成為一個長期艱苦的過程[3]。同時,學生個體對于計算思維的接受能力也有著巨大差異,這更加重了程序設(shè)計相關(guān)課程的教學難度。圍繞程序設(shè)計能力培養(yǎng)這個目標,建設(shè)程序設(shè)計課程群已經(jīng)成為很多高校計算機專業(yè)建設(shè)的新舉措。針對程序設(shè)計課程群建設(shè)過程中遇到的主要困難,并提出一種以學科競賽為紐帶的程序設(shè)計課程群建設(shè)模式。
1 程序設(shè)計課程群建設(shè)現(xiàn)狀
課程群是為完善同一施教對象的認知結(jié)構(gòu),而將本專業(yè)或跨專業(yè)培養(yǎng)方案中若干門在知識、方法、問題等方面有邏輯聯(lián)系的課程加以整合而成的系列課程[4]。多門課程整合為一個課程群,自成體系且服務(wù)于一個教學目標,同時,課程群建設(shè)介于課程建設(shè)與專業(yè)建設(shè)之間,既需要對多門課程統(tǒng)籌安排,又要考慮管理層次的粒度。因而,程序設(shè)計課程群以培養(yǎng)學生程序設(shè)計基礎(chǔ)能力為目標,致力于把高級語言程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計與分析整合成一個整體,建立靈活的管理機制,探索高效的教學模式,而另設(shè)軟件開發(fā)課程群整合與軟件開發(fā)相關(guān)的課程。
課程群建設(shè)應當注重課程的知識重組,知識融合,是對單獨課程的教學大綱、實驗大綱等教學內(nèi)容的重新設(shè)計[5]。高校在程序設(shè)計課程群建設(shè)初期,需要對所有課程的知識點進行了梳理,并按照層次和先后關(guān)系建立知識點關(guān)系網(wǎng)絡(luò),然后對各門課程要講授的內(nèi)容、進度計劃進行了統(tǒng)一規(guī)劃。在實踐教學方面,依據(jù)課堂授課內(nèi)容的進度計劃重新組織實驗項目,合理安排驗證性、設(shè)計性和綜合性實驗項目,并且安排了C語言課程設(shè)計和數(shù)據(jù)結(jié)構(gòu)課程設(shè)計,通過完成難度和設(shè)計要求均略高于實驗項目的集中實踐訓練達到融匯所學知識和技能的目的。另外,配合學校大學生程序設(shè)計大賽,組織了程序設(shè)計競賽工作組指導學生在課余時間通過JudgeOnLine平臺進行訓練。從而,形成了課堂講解、實驗指導和自主訓練三條線共同作用的程序設(shè)計能力培養(yǎng)體系,并取得了顯著成效。
2 程序設(shè)計課程群建設(shè)中的主要困難
做出全面而系統(tǒng)的課程群建設(shè)規(guī)劃之后,在實施過程中仍然感覺到運轉(zhuǎn)不夠靈便。通過各科任課教師和項目組成員討論,發(fā)現(xiàn)主要困難有以下幾個方面:
2.1 課程進度難以保障
計算思維的培養(yǎng)對于不同的學生而言難度不同。尤其是在入門階段相當多的學生困難重重,跨不過第一道門檻的學生大多對計算機專業(yè)知識的學習失去了信心。所以,應該由學生的整體學習進度確定課程教學進度,但是,這樣一來規(guī)劃好的課程進度計劃就難以得到保障。隨著進度計劃的一次次被動調(diào)整,授課老師們慢慢地不知不覺地失去對整個教學計劃的掌控。鑒于大多數(shù)高校的計算機專業(yè)的教師是授課經(jīng)驗相對不足的青年教師,如果學校教務(wù)部門定期或者不定期地進行教學檢查,把教學進度是否符合計劃作為一項重要內(nèi)容,老師們常常被迫為了趕計劃而放棄對教學質(zhì)量的追求。因此,建立一種支持課程進度靈活變化的機制是至關(guān)重要的。
2.2 課堂講解、實驗指導和自主訓練三條線配合不暢
為了保持課堂講解與實驗指導的連貫性,通常安排授課老師同時兼任實驗課指導老師。但是,在實驗課上指導老師忙于解答學生們的疑問,實驗課后只能根據(jù)印象找到一些典型問題在隨后的課堂上予以解析。然而,這些典型問題的代表性是不確定的。因為實驗課上提問的主要是學習積極性高的那部分學生,不足以代表全班整體情況。更為糟糕的是,那些在困難面前漸漸退縮的學生成了沉默的一族,他們的狀況難以得到顯現(xiàn)。另外,借助學科競賽支持學生在課外進行程序設(shè)計自主訓練的工作跟課堂講解和實驗指導更是很難有直接的相互影響。高校支持的與程序設(shè)計能力培養(yǎng)直接相關(guān)的學科競賽主要有:ACM國際大學生程序設(shè)計競賽、省大學生計算機程序設(shè)計競賽(程序設(shè)計類)以及校級大學生程序設(shè)計競賽。事實上,這些賽事的競賽方式基本是一樣的,因此,高校建立了程序設(shè)計競賽工作組,主要負責這些賽事的前期準備工作。工作組的主要精力在于引導學生參加課余自主訓練,提供學習指導,賽事準備等工作,但是這些工作沒有跟課內(nèi)工作融合成有機整體。
2.3 課程間的銜接工作困難重重
因為課程進度難以與教學計劃保持一致,在制定教學計劃時安排好的課程銜接已經(jīng)失去意義,必須在每次課程結(jié)束后重新研究課程銜接問題,而這又需要準確評估學生對于已經(jīng)講授的知識點的掌握程度。這項工作不僅繁重,而且在授課過程當中,對于整體進度的控制薄弱導致學生對于知識點的掌握差異太大,課程銜接問題就成了難題。
3 以學科競賽為紐帶的課程群建設(shè)模式
為了應對程序設(shè)計課程群建設(shè)中面臨的困難,需要一種新的跨越課程的建設(shè)模式。它應該能夠迅速反映學生的整體學習進度,并能據(jù)以對教學內(nèi)容做出靈活調(diào)整,把課堂講解、實驗指導和自主訓練三條線打造成互動運轉(zhuǎn)的一根軸線,實現(xiàn)課程間的無縫銜接。借助于學科競賽工作與程序設(shè)計課程群工作的直接相關(guān)關(guān)系,才得以提出以學科競賽作為紐帶的程序設(shè)計課程群建設(shè)模式,該模式能夠有效利用前期工作成果。
以學科競賽作為紐帶的程序設(shè)計課程群建設(shè)模式以靜態(tài)的知識點關(guān)系體系為基礎(chǔ),依靠例題、習題、實驗項目和自主訓練題目四個資源庫,依據(jù)JudgeOnLine平臺反映的學生學習進度,在教學過程中動態(tài)調(diào)整課堂授課、作業(yè)習題、實驗項目和自主訓練內(nèi)容。
知識點間的關(guān)系有兩種:層次關(guān)系和依賴關(guān)系。比如,格式化輸入知識點包括整數(shù)輸入、浮點數(shù)輸入、雙精度數(shù)輸入、字符輸入、字符串輸入等子知識點。比如,簡單程序結(jié)構(gòu)知識點依賴程序入口main函數(shù)、printf函數(shù)、字符串、函數(shù)定義和函數(shù)調(diào)用等知識點。當一個知識點依賴的知識點過多時,可以把部分知識點整合成一個新的知識點,然后利用層次關(guān)系簡化知識點的依賴關(guān)系的描述。
例題包括說明性例題和實例性例題兩種類型,說明性的例題用于解說某個語法知識,而實例性例題是解決某個實際問題。說明性例題必須注明要解說的那個知識點,實例性例題必須注明要用到的所有知識點(盡量使用高層次的知識點)。實例性例題需要對題目背景加以說明,這不僅讓學生理解程序的目標,也是使得枯燥的課程帶有趣味性,并具有更強的實用性。但是由于課堂時間有限,不宜花費過多時間在題目背景描述上,所有的實例性例題最好選擇在有限幾個涉及知識面較廣的背景下,每次選擇其中一個問題。這樣做的一個好處是后一個例題可能能用到前一個例題的程序中的部分代碼,從而進一步提高課堂效率。而說明性例題可以借用實例性例題中提到的某個概念作為背景,這要好于干巴巴的語法知識說明,有利于激發(fā)學生的積極性和熱情。
習題主要針對知識點的理解和使用來設(shè)置的,相當于讓學生完成一些說明性例題。主要題型是選擇題、改錯題和程序填空題。這些題目的答題正確與否都可以用軟件系統(tǒng)來檢驗。從而節(jié)約了老師批改作業(yè)的時間。
實驗項目是為了鍛煉學生運用所學知識解決實際問題而設(shè)置的,需要用到的知識點應該是最新學習的知識點和部分以前學習的知識點。實驗項目的背景可以來自生活的各個方面。實驗項目不宜過于復雜,以中等水平的學生可以在1個小時以內(nèi)完成為宜。如果題目比較繁瑣,可以提供部分代碼從而減少工作量。學生的學習興趣是通過一個個成功后獲得的成就感培養(yǎng)起來的,一個難以完成的實驗項目對于學生的積極性的打擊是無法估量的。實驗項目可以在JudgeOnLine平臺上完成,以注釋的形式隨同程序代碼提交設(shè)計說明,以替代實驗報告。
自主訓練題目的難度要稍高于實驗項目。必要的時候,隨同題目說明提供關(guān)于解題所要用到的知識的提示。這一類的題目的難度要低于常見的程序設(shè)計競賽練習題,需要組織力量重新設(shè)計一批題目,或者降低原有題目的難度。
以學科競賽作為紐帶的程序設(shè)計課程群建設(shè)模式的運行過程是一個螺旋式前進的過程。每個周期包括備課、課堂講授、課后習題、實驗、課余自主訓練四個部分。備課工作是以上一個周期中JudgeOnLine平臺中記錄的實驗和自主訓練的情況為依據(jù),確定下一次課要講解的知識點(包括要重復講解的知識點),選擇例題、習題、實驗項目和自主訓練題目,設(shè)計授課流程。有了前面已經(jīng)建設(shè)好的教學資源的幫助,老師備課時可以把更多的時間和精力用于課程進度的控制上,使之既能符合學生的學習進度也盡量跟上課程進度計劃。當出現(xiàn)課程進度被學生整體學習進度嚴重拖后的情況,可以報請教研室采取處理措施。比如,安排教師利用周末時間給進展緩慢的部分學生做特別訓練。如果授課老師在備課時發(fā)現(xiàn)準備好的教學資源有所不足時,可以報請教研室以組織力量根據(jù)新的需要進行補充。
4 結(jié)束語
從IT產(chǎn)業(yè)的發(fā)展趨勢來看,高質(zhì)量的軟件人才是產(chǎn)業(yè)迅速發(fā)展的支撐,因而培養(yǎng)程序設(shè)計能力強的高級專業(yè)人才已經(jīng)成為目前我國各類高校計算機專業(yè)的主要培養(yǎng)目標。程序設(shè)計課程群承擔著把入門的大學生送上成長為社會經(jīng)濟發(fā)展迫切需要的專門人才道路的艱巨的任務(wù)。該文分析了程序設(shè)計課程群建設(shè)運行過程中面臨的困難,提出了以學科競賽為紐帶進行程序設(shè)計課程群建設(shè)的工作模式。這種建設(shè)模式不僅可以使得教學工作靈活運轉(zhuǎn),還能可以借助完備的系統(tǒng)的教學資源減少授課教師用于設(shè)計例題、習題等組成教學內(nèi)容的基本要素的精力,使得他們能更好地進行授課內(nèi)容的組織工作,更多地關(guān)注教學進度與學生學習進度的協(xié)調(diào)。為了完善程序設(shè)計課程群的建設(shè)工作,下一步要進行的研究包括1)把高級語言課程設(shè)計和數(shù)據(jù)結(jié)構(gòu)課程設(shè)計與程序設(shè)計課程群的日常教學工作揉合成更加順暢的整體;2)按照程序設(shè)計能力培養(yǎng)目標的高低進行分級,以適應學生素質(zhì)的差異。
參考文獻:
[1] 李曉明. 關(guān)于計算機人才需求的調(diào)研報告[J]. 計算機教育,2004(8).
[2] 周榮輝,郝曉楓,趙宏宇. 學生程序設(shè)計能力培養(yǎng)的思考[J]. 吉林大學學報:信息科學版,2005(8).
[3] 吳紹兵. 計算思維和程序設(shè)計能力的培養(yǎng)[J]. 計算機教育,2011(16).
[4] 李慧仙.高校課程群三論[J]. 煤炭高等教育,2006(7).
[5] 翁偉. 程序設(shè)計課程群建設(shè)探索與實踐[J]. 計算機教育,2009(23).