柴本成 劉玉英


摘要:程序設計基礎課程一直被認為是一門較難教學的課程。本文應用了CDIO的任務驅動教學模式,設計適合程序設計教學的任務,將程序設計中的知識點融合在任務中,并采用在線評判的實踐教學模式,激發了學生學習程序設計的興趣和積極性,從而取得了良好的教學效果。
關鍵詞:程序設計基礎;CDIO;任務驅動
中圖分類號:TP312 ? 文獻標識碼:A ? 論文編號:1674-2117(2015)08-0101-03
程序設計基礎課程是浙江萬里學院計算機科學與技術、軟件工程、信息工程等相關專業的一門重要的基礎課。通過本課程的學習,培養學生使用C語言編寫計算機高級語言程序的能力,掌握結構化程序設計的方法,培養學生程序設計的思想、實際編程和調試程序的能力。[1][2]程序設計課程一直被認為是一門較難教學的課程,學生覺得難學,教師覺得難教。近年來我校采用了基于CDIO的理念對程序設計課程進行教學改革,強調實踐和興趣,使該課程的教學效果有了一定提升。
● IPR-CDIO教育理念
CDIO(Conceive、Design、Implement、Operate,即構思、設計、實現、運行)是國外高等工科教育的一種創新模式。[3]它以產品從研發到運行的生命周期為載體,讓學生以主動的、實踐的、課程之間存在有機聯系的方式學習工程。CDIO因其具有與社會需要一致性、國際先進性、實踐可操作性、全面系統性和普遍適應性等特點而被國際上多所院校所采納,其先進的教育理念已被中國高等工程教育界所接受,有近40所高校正在中國化試點,浙江萬里學院是其中之一。我們學習CDIO教育理念,結合多年的改革實踐,創新地提出了IPR(Interest、Perseverance、Responsibility,即興趣、毅力、責任)-CDIO教育思路,即將學生的探索熱情與興趣、持之以恒的精神和社會責任感的培養,融入到不同級別的項目研發過程。通過項目構思和設計,培養學生的創新意識和創新思維,通過項目的實現和測試運行,培養學生的專業技能,同時借助項目團隊的組織形式、角色化任務分工,激發學生的參與興趣,鍛煉其團隊合作和溝通交流能力,培養其責任感。IPR-CDIO教育宗旨與國家教育方針一致,與“十二五”高等教育重點工作、卓越人才培養計劃等是完全一致的。
課程是人才培養的基本單元,IPR-CDIO教育理念必須通過各門課程來實施,因此課程設計非常關鍵。根據課程地位和性質整合知識點,設計出能集培養學生知識學習、技能訓練、素質成長于一體的小項目,設計為完成項目、訓練IPR素質而采用的教學方法,并使課程知識內容、項目實施、教學方法、教材選擇有機融合,形成一體化的課程教學體系。程序設計基礎課程就是基于IPR-CDIO理念進行教學目標設計、教學內容設計和教學方法設計。
● 教學目標設計
程序設計基礎課程在我校計算機專業和軟件工程專業一年級的兩個學期都要開設。由于多數學生數學和計算機專業知識都比較薄弱,在第一學期的程序設計基礎學習中還能跟得上,但第二學期C語言程序設計的進階內容,如字符串處理、指針、鏈表等內容學生學得就比較吃力。這就需要在進行教學設計時,目標要體現重難點,要有針對性。教學目標設計得好,不但可以激發學生的學習熱情,而且對后續的實習、設計或就業都能產生積極的作用。
● 教學內容改革
基于以上教學目標的要求,我們在教學內容上從兩條線上進行設計,一是基本知識操作路線,二是CDIO工程項目實施路線。基本知識操作路線設計,其程序設計基礎的知識點比較繁雜,結合教學對象,我們抽取了基本的核心內容,包括一維數組的定義和初始化、字符串的定義、常用字符串函數、函數的定義和調用、函數的參數傳遞、指針的定義和初始化、指針作為函數形參、結構體的定義和初始化、文件的定義和初始化、文件的讀和寫,等等。對于比較復雜的內容,如指向指針的指針、鏈表等將其內容進行弱化,作為自主探索內容。理論教學主線很清晰,以程序設計為核心,為后續課程奠定好基礎。實驗教學按照CDIO工程教育理念,將相關知識點分解為多個子任務循序漸進地實施。
1.知識內容優化
經過多年的改革實踐,我們對程序設計基礎理論知識的教學模式以及教學課時都作了相應調整,由原來的純理論教學變為現在的理論和討論相結合的教學。
2.實驗項目設計
根據課程教學初步設有10個實驗項目,部分實驗名稱和結果要求如表1所示。每個實驗的實驗環節都包括實驗目的、實驗內容、相關函數、實驗結果和實驗總結。
3.小組研討項目設計
研討項目以小組為單位, 每4~5人一小組,選舉一名組長,由組長進行組內分工,并負責考勤、合作學習的組織及管理。本課程設計了兩個一級討論題目:
①數組討論:一維數組、二維數組和字符數組的應用,什么是數組越界?如何防止數組越界?要求每個小組通過實例分析,至少完成5個程序。
②函數討論:通過編寫由函數構成的C語言程序,分析函數調用過程中的參數傳遞,討論實參和形參的區別。數組作為函數與變量作為函數的區別、要求每個小組通過實例分析,至少完成5個程序。
③指針討論:地址和指針的關系,給出一些實例要求用指針實現并與數組運用進行比較,利用指針處理字符串。要求每個小組通過實例分析,至少完成5個程序。
以實現目標為主線,以基本知識操作技能遞進學習、軟件設計綜合能力提升培養為兩翼,將知識學習、項目訓練、能力培養融為一體。項目設計是IPR-CDIO課程教學的核心,針對不同性質和級別的課程,項目內涵不一樣,前沿領域的研究、核心算法的分析與實現、模擬小項目實施、綜合課程知識的作品等,均可成為項目;課程級項目也要有研究的內涵,具有啟發引導的目的和意義,而且要大小適中,太大了難以完成,會挫傷學生學習的興趣;太小了又起不到訓練的作用。科學合理的項目設計一定是經過課程組精心研究、多輪實踐而逐漸形成的。
4.教學方法設計
IPR-CDIO強調以興趣為先,社會責任與工程能力訓練為本。教學項目設計是激發興趣的根本,教學方法是激發興趣的手段。CDIO倡導“做中學”教學法,目的是調動學生學習的主動性、積極性和創新性。美國著名哲學家、教育學家和心理學家杜威指出:“從做中學是比從聽中學更好的學習方法。”“學與做相結合的教育將會取代傳授他人學問的被動的教育。”CDIO項目設計的目的就是將學生分成小組置于“做項目”的情境中,為了完成課程學習任務,他們必須去做,去學習探索,去討論解決問題,在堅持完成整個項目生命周期的過程中,達到項目實施能力和IPR素養的鍛煉與提高。
在第一次課堂教學中教師要做好導學工作,要講述課程教學目標、布置項目任務、公布評價指標、設計學生分組等環節,充分展示課程學習藍圖,激發學生想“做”的愿望和興趣,抓住興奮點。該課程在項目實施過程中,設有幾次大討論:文獻綜述、需求分析、方案設計、作品預演、結果匯報等,使所有學生都有展示、表達的機會,特別是在最后的作品匯報中,完全模擬畢業設計答辯過程,全體課程組教師和部分學生代表作為評委,目的是鍛煉學生對問題的描述水平、口頭表達及應變能力。
CDIO把“不求人人成功,但求人人進步”作為教學所追求的一種境界,同時也將之作為教學評價的目標和尺度。以各個小組在達成目標過程中的表現與效果作為評價與獎勵的標準,這種機制可以把個人之間的競爭轉化為小組之間的競爭,從而促使小組內部的合作,增強成員的責任感。
5.教學評價設計
程序設計基礎課程設計了如表2所示的多元評價指標,即評價內容、主體及方法都是多元化的。從表中可看出項目合作過程的成績占總成績的50%,這能促進學生增強團隊協作精神和集體榮譽意識。
這種多元評價方式,可以有效杜絕部分學生靠投機取巧獲取高分的現象,有利于促進學生自覺地參與小組項目合作過程,腳踏實地完成自己的任務,有利于增強學生的自信心和小組集體榮譽感,促進學生反思不足、認識差距,不斷進步與發展。
教師(或工程師)在課程項目實施過程中,主要起引導或指導作用。針對項目實現中涉及的數學知識、編程技巧、藝術修養等,教師應先鼓勵學生用自主學習、小組討論,或與相關專業同學協作等方式去解決問題,通過做中學、在討論中成長的教學方法,鍛煉學生自主解決問題的能力,最后教師要給予評價、總結與后續提升的引導,促進學生向更高的目標邁進。
● 結語
綜上所述,教學內容、教學方法與教學評價的改革,是根據教學實踐過程中學生存在的問題提出的。以上改革已經在程序設計課程教學實踐中運用,并取得了不錯的教學效果。當然,面對不同的學生在使用與設計某種教學方法時,還需要學生的配合才行,也就是說教的方法與學的方法要有機統一。
參考文獻:
[1]劉玉英.C語言程序設計——案例驅動教程[M].北京:清華大學出版社,2011.
[2]劉玉英.C程序設計實驗實踐教程[M].北京:清華大學出版社,2013.
[3]查建中.論“做中學”戰略下的CDIO模式[J].高等工程教育研究,2008(3):2.
基金項目:寧波市特色專業——計算機科學與技術。