吳永芬 陳衛(wèi)衛(wèi) 李志剛 李清
摘要:作為一門重要的專業(yè)基礎課程,c語言程序設計課程影響到后續(xù)多門課程的教學實施效果。由于學生的教學背景不同和個體差異,在教學過程中,我們遇到許多需要解決的問題,如學生處于不同的層次水平、工程思維訓練不到位、理論教學如何支撐實踐教學、教師在實踐課中的角色設計、網絡教學環(huán)節(jié)的構建等,為此給出“粗、精、仿、練、操”的教學理念,提出以創(chuàng)新實踐能力為培養(yǎng)目標的實踐教學改革方案。
關鍵詞:創(chuàng)新能力;實踐能力;c語言程序設計;教學改革
0 引言
創(chuàng)新能力的形成和發(fā)展以實踐活動為基礎,實踐能力是創(chuàng)新能力形成和發(fā)展的重要前提條件。早在“十五”期間,教育部高等學校教學指導委員會在《高等學校計算機科學與技術專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行)》中提出的三個輔助建議之一便是“加強學生實踐和動手能力的培養(yǎng)”。
為了指導實踐教學,文獻[1]解讀計算機科學與技術專業(yè)實踐教學體系與規(guī)范內容;文獻進一步構建高校實踐教學體系,由實驗實訓、實習、綜合設計、社會實踐、創(chuàng)新創(chuàng)業(yè)5個子系統(tǒng)組成;文獻從工程實踐角度,分析實踐教育存在的問題以及如何在實踐教育中突出培養(yǎng)學生的工程實踐能力和創(chuàng)新能力;文獻[7—8]對國際創(chuàng)新工程教育模式進行解讀,為中國的實踐教育提供新思路;文獻從某門具體課程角度,探討如何在課程中培養(yǎng)學生的程序設計能力和創(chuàng)新意識。
上述引用文獻從各個角度探討實踐的意義,討論如何通過實踐教學改革提高學生的動手能力和創(chuàng)新能力。要將這些理念運用到具體的課程中,需要與學生的實際狀況、課程特點相結合,并在具體實施過程中突出動手能力培養(yǎng)。c語言程序設計課程是一門重要的專業(yè)基礎課程,通常也是學生進入高校接觸的第一門計算機課程,筆者針對教學過程中遇到的許多需要解決的問題,提出考慮學生水平差異性的實踐教學策略。
1 問題分析
1.1 學生特點分析
高等教育從“精英型”轉變到“大眾型”,同一年入學學生的學習能力和動手能力確實有較大差別。c語言程序設計實際教學過程中,學生之間存在較大差異,大致可分為3個層次。
第1層次學生已有某門編程語言的入門基礎。由于教育背景的差異性,部分學生了解程序設計的基本思想,動手編寫過程序,廣泛閱讀過與信息技術相關的雜志和書籍。c語言是編程入門語言,該層次學生可以通過自學快速完成語法框架的學習,迅速進入深入學習算法問題的階段。對于該層次學生來說,根據(jù)教學內容安排的實驗方案比較淺顯,學生得不到思維能力訓練。
第2層次學生具有一定的信息技術基礎。該層次學生能夠借助計算機中常用工具軟件、網絡平臺進行信息的表示、獲取和處理,解決實際學習中遇到的問題。對于該層次學生來講,雖然沒有程序設計的基礎,但是興趣使得他們在學習該門課的過程中能夠做到扎實好學。
第3層次學生沒有任何信息技術基礎。該層次學生僅對上網、游戲等有所認知,對程序設計、計算機原理等知識不感興趣,學習積極性不高,主動學習能力較弱,語法掌握不牢,實驗進度停滯不前,需要從掌握基本知識點開始加以訓練。
1.2 教學中的問題分析
與學生層次相對應,我們在實踐教學中發(fā)現(xiàn)很多學生容易出現(xiàn)編程錯誤,并且出現(xiàn)錯誤無法自行調試解決或耗費大量時間才能解決。出錯的問題可以歸結為3種。
第1種是語法錯誤問題。出現(xiàn)此類問題的學生基礎薄弱,主觀上感覺較吃力,對語法知識點掌握不牢,編程風格較差,不能根據(jù)錯誤提示判斷錯誤的內容,不會使用調試工具。
第2種問題是語義分析問題。出現(xiàn)此類問題的學生具有一定的語法基礎,但是從語法層次過渡到語義功能編寫時有困難,獨立完成語義實驗能力欠佳。
第3種是算法難度問題。出現(xiàn)此類問題的學生已經能夠獨立完成語義功能的編寫,但是獨立解決問題的能力還有所欠缺,因此我們可在語法功能題的基礎上,超前加入算法題,開發(fā)學生的邏輯思維。
2 解決思路
我們針對上述問題,跟蹤國內外人才培養(yǎng)模式和實踐教學體系;針對實踐環(huán)節(jié)的特點,以培養(yǎng)具有綜合實踐創(chuàng)新能力的人才為目標,研究實踐教學改革方法,構建分層次實踐教學內容體系及規(guī)范評價方法等。
2.1 “粗、精、仿、練、操”教學理念
理論與實踐的關系一直是工程教育爭論的焦點,不同國家處理這一爭論的方式有所不同。在美國,教育界在實踐與理論之間如同鐘擺不斷尋找平衡;而在歐洲,雙元制的工程教育體系分別側重于工程教育的理論和實踐兩個側面。
目前,該課程的授課理念仍停留在語法灌輸以及語義問題的分析與解答層次。理論課與實踐課之間的關系不是分割獨立,而是相輔相成。理論課上學習的內容需要在實踐課中消化、轉化及完善,實踐課需要基本語法、程序框架等理論知識的支撐。我們提出的“粗、精、仿、練、操”5步教學理念具有很強的可操作性,使學生既掌握基本的知識點,又掌握學習方法。
粗,是指粗講基本語法和程序框架,尤其對那些繁雜、比較抽象和“繞人”的內容不能一味灌輸,而要適當?shù)厝趸Z法,縮減單純語法所占篇幅,將大量與語法有關的基本概念滲透在“練”“操”中,重點強調語言的應用,同時配合上機練習,讓學生在理解中加強記憶,以起到事半功倍的效果。
精,就是精講教材中的示例程序,講解設計方法和技巧。大多數(shù)例題都有一定的代表性和漸近性。
仿,是在“精講”的基礎上多出模仿示例,讓學生動手編寫與示例內容和結構相近的程序,逐步“仿造”出“好”程序。
練,就是多做練習題,特別要讓學生在課外作業(yè)中獨立完成程序跟蹤和程序填空題,對鞏固語法規(guī)則和提高學生的程序思維能力大有好處。
操,即上機操作,在紙上編寫的程序是“靜止的”“死”程序,只有上機操作,才能讓程序“活”起來,從而逐步學會如何在調試過程中找出程序中的語法和邏輯錯誤。只有學會在機器上編程并調試,才算真正學會編程。endprint
在實踐課時有限的情況下,想鍛煉好學生的動手實踐能力,理論教學必須起到對實踐教學的最佳支撐作用。5步教學理念將理論課和上機課有機結合起來,擴大了理論課的輻射范圍,理論課和實踐課的精密配合使得學生可以充分利用有限的實踐教學環(huán)節(jié)。
2.2 實踐教學改革思路
“聽過的會忘記,看過的會記得,做過的才能理解”,理解了才能更好地應用,才能有更多的創(chuàng)新。關注學生的行為體驗是做好實踐教學改革的重要環(huán)節(jié)。為了滿足不同層次學生的需要,我們設計4類實驗,構建“語法題一基礎題一設計題一綜合題”的遞進式實踐內容,培養(yǎng)學生的自信心和求知欲,在“理論一實踐一再理論一再實踐”的反復過程中,促進學生學習能力的提高,深受學生歡迎。
1)實踐分層次進行,體現(xiàn)因材施教。
我們按照學生的不同層次將實驗內容設置分成語法題、基礎題、設計題、綜合題4部分。其中,語法實驗題將基本語法知識劃分成多個小問題,專門為基礎較差、平常上機經常犯語法錯誤的學生準備。語法知識的訓練可穿插在每章的基礎題之前,然后再進行基礎題的實驗。對于第3層次學生,基礎較薄弱,必須從語法題做起,然后才能做基礎題,學有余力的部分學生還可以做設計題。對于第2層次學生,基礎扎實的學生可以直接從基礎題做起,而思維比較活躍但經常出現(xiàn)編程語法錯誤的學生,則與第3層次學生一樣,必須從語法題做起。對于第1層次學生,不必循序漸進做實驗,可直接從設計題做起。各層次學生對應的實驗內容設置如圖1所示。
2)實驗分小組完成,培養(yǎng)團隊協(xié)作能力。
實踐有多種內涵,CDIO工程模式要培養(yǎng)的是全面發(fā)展的工程師,既熟悉技術,又懂營銷,具有與人溝通和團隊合作的能力,但這只是一種理念,并未說怎么做和怎么實現(xiàn)。為了培養(yǎng)學生的溝通和團隊合作能力,我們可以將學生分組,讓學生之間配合完成實驗。
隨著進度的加深,到后期做到算法題時,我們可以安排學生4人一組組隊做實驗。小組成員分工明確,第1步討論需求分析,提出要實現(xiàn)的功能;第2步對功能進行模塊劃分,每名成員實現(xiàn)部分模塊,最后有專人將模塊合并并調試,另有專人寫文檔。在實施的過程中,學生需要及時對出現(xiàn)的問題進行交流討論,尋找解決的方法。算法題可由學生自己選擇,也可由教師出題,重要的是學生能夠根據(jù)這些題目內容進行探索。一方面,小組成員通過交流協(xié)作,積極尋找問題的解決方案,類似于企業(yè)中項目的組織實施過程,培養(yǎng)學生的溝通協(xié)作能力;另一方面,算法題的解決思路由學生自己探索,從中尋找學習的樂趣,激發(fā)潛能,培養(yǎng)創(chuàng)新和自主學習能力。算法題實驗分組如圖2所示。
3)實踐內容放人工程或生活背景中,體現(xiàn)學以致用。
創(chuàng)新與掌握知識的多寡并不一定呈正相關,但與工程實踐能力的強弱一定呈正相關。對有條件的學校和學有余力的學生,應鼓勵參與各種形式的課外實踐和創(chuàng)新性題目的研究。融入工程和生活背景的實踐內容,可以提高學生的學習興趣并讓學生學以致用。例如,網上流行的計算機作詞通過將全宋詞本進行詞頻排序后,隨機抽取詞語組合成一首宋詞,意境優(yōu)美,學生完成后非常有成就感;對于貪食蛇、打字母游戲等,學生都興趣盎然,當然這需要教師予以一定的指導,因為有些內容是學生沒有學習過的。另外,將藍橋杯等程序大賽中算法設計思想體現(xiàn)優(yōu)化策略的題目整合到實驗中,并引入少量算法結構題,如鏈表等結構的使用,體現(xiàn)算法的優(yōu)化效果。算法題大體可以分為3種題目:實用趣味題、優(yōu)化策略題(如貪心策略、動態(tài)規(guī)劃、回溯法)、程序設計競賽題。
通過引進不同類型的題目,訓練學生創(chuàng)新思維、自主學習和綜合運用所學知識的能力。學生做完這些題目后,還可以在理論課堂上講解演示,以提高其他學生的學習興趣,增加學生間的互動。
4)完善評價機制。
主動實踐是大學生創(chuàng)新實踐能力培養(yǎng)的關鍵。完善的實踐評價機制體現(xiàn)公平、公正性,有助于督促和激勵學生,激發(fā)學生主動實踐的潛能。為了制訂有效的實踐評價機制,我們設置語法題、基礎題、設計題、綜合題、組員打分5類分數(shù),每類100分,這5類分數(shù)分別乘上權值后求和得到最后的總分。評價機制中每類分數(shù)的比例設置如圖4所示。這里的綜合題相當于附加題,大部分學生并不一定能夠完成,因此加權分數(shù)較少,但教師應鼓勵學生完成此部分題目,充分挖掘每個學生的潛能。
3 實驗效果
近幾年來,通過對C語言程序課程進行實踐教學改革,我們取得了良好的教學效果。從圖5所示的指揮信息系統(tǒng)學院二級c語言通過率可以看出,在2010—2012年,通過率從50.6%逐步上升到92%。另外,在2012年5月參加籃橋杯決賽的7人中,2名學生獲全國二等獎,4名學生獲全國三等獎,1名學生獲全國優(yōu)秀獎。另外,先后有150多名學生在國際大學生數(shù)學建模競賽、計算機仿真大賽、中科院“中科杯”軟件大賽、ACM/ICPC大賽以及校內的“卓越杯”比賽、本科生科技訓練計劃(SRT)項目中獲獎。
4 結語
實踐是實現(xiàn)創(chuàng)新最重要的源泉,是知識到能力、聰明到智慧轉化的催化劑。在實踐教學過程中,關注學生創(chuàng)新能力的培養(yǎng)、探索實踐教學體系建設是一個長期的過程,仍有許多問題值得研究,如整個課程在學習鏈中與后續(xù)課程的銜接問題等。下一步我們將繼續(xù)挖掘實踐教學中的問題,提出更多、更有效的解決方案。
(編輯:宋文婷)endprint