黃麗韶
摘要:為了提高學生的C語言程序設計思維和編程技巧,文章嘗試以CDIO工程教育模式進行教學改革,完整的設計了C語言課程的教學目標,邏輯體系框架,知識要點、能力要點的掌握程度,實施方法及考核方式。
關(guān)鍵詞:CDIO工程教育;C語言;教學改革
C語言程序設計是我院計算機科學與技術(shù)專業(yè)開設的第一門核心專業(yè)基礎(chǔ)課,是后續(xù)專業(yè)課程的先修課程,是計算機專業(yè)規(guī)劃里的一門重要課程。學生在學習的過程中基本上能掌握結(jié)構(gòu)化程序設計的基本知識,但缺乏程序設計思維,并不具備掌握工程化思想進行系統(tǒng)開發(fā)的能力。文章基于CDIO工程教育模式嘗試對C語言課程進行教學改革,旨在以問題驅(qū)動的方式,引起學生的學習興趣,調(diào)動學生的學習主動性,讓學生按照軟件工程的思想從需求分析、系統(tǒng)設計到系統(tǒng)編碼,再到系統(tǒng)測試,進行項目的設計與開發(fā)。
1 教學目標的設計
學習C語言課程,將為后續(xù)其他編程類課程的學習打下一定的基礎(chǔ),并且培養(yǎng)學生在10個方面的CDIO能力,分別是一下內(nèi)容。
(l)計算機軟件開發(fā)知識:熟練掌握C語言基礎(chǔ)知識。
(2)系統(tǒng)的顯現(xiàn)和交互作用:培養(yǎng)學生識別系統(tǒng)所表現(xiàn)的行為和功能特性的能力。培養(yǎng)學生識別系統(tǒng)單元間的重要接口的能力。
(3)解決問題時的妥協(xié)、判斷和平衡:掌握C語言程序設計中跟蹤調(diào)試的技巧,在編寫程序的過程中及時發(fā)現(xiàn)問題并解決,理解程序測試的重要性,能根據(jù)測試結(jié)果修改程序。
(4)分析問題:運用所學知識解決問題。
(5)驗證假設與結(jié)論:能夠根據(jù)需求、設計階段的假設,通過編程驗證得出符合系統(tǒng)的功能。
(6)綜合和通用化:能夠運用所學知識解決實際問題,在解決過程中學會融會貫通,靈活應用。
(7)發(fā)現(xiàn)問題和表述問題:在編寫、測試、運行程序的過程中善于發(fā)現(xiàn)問題,運用所學知識加以解決。
(8)軟件工程知識:掌握主流軟件開發(fā)過程模型。掌握軟件工程的基本原理,進行項目開發(fā)。掌握軟件開發(fā)基本工具的使用方法。
(9)設計過程:分析備選設計方案;選擇初始設計方案;綜合最終設計。
(10)軟件實現(xiàn)過程:將高層組成部分分解為模塊設計,討論算法,描述編程語言,實施底層設計。
2 教學內(nèi)容的邏輯體系框架
教學內(nèi)容主要分為3個部分:第1個部分采用30個以上生動活潑的小案例,按照分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、函數(shù)、指針和字符串、結(jié)構(gòu)體與鏈表、文件、C語言圖形函數(shù)八大部分知識分類,將C語言全部的語法學習一遍,所有案例既鍛煉了學生的邏輯思維能力,又能解決實際問題。第2個部分設計1個實際的大項目,完全按照軟件工程的思想從項目的需求分析、系統(tǒng)設計、系統(tǒng)編碼、系統(tǒng)測試等環(huán)節(jié)進行,從而使學生熟悉項目的開發(fā)流程,培養(yǎng)學生軟件工程的設計思想。第3部分設計1個游戲,目的是提高學生的學習興趣,擴展學生的知識面。
3 知識要點及掌握程序
教學的知識要點主要按以下8個單元進行闡述。 一單元的知識要點:if else、if else if、switch語法及其靈活運用,掌握程度為運用。二單元的知識要點:while、do while、for語法及其靈活運用,循環(huán)的嵌套,枚舉法,多重循環(huán),倒推法,掌握程度為運用。三大循環(huán)典型結(jié)構(gòu)及邏輯思維能力訓練方法總結(jié),掌握程度為理解記憶。三單元的知識要點:數(shù)組元素的定義、引用,數(shù)組元素的查找,一維數(shù)組的應用,二維數(shù)組元素的查找,二維數(shù)組的應用,掌握程度為運用。一維和二維數(shù)組的定義、引用、查找等基本操作及其靈活運用,掌握程度為理解記憶。四單元的知識要點:無參函數(shù)的定義、應用,有參有返函數(shù)的定義、應用,函數(shù)的綜合應用,掌握程度為運用。介紹函數(shù)的四鐘形式及其應用,掌握程度為理解記憶。五單元的知識要點:字符串的應用,指針與字符串的綜合應用,掌握程度為語用。指針與字符串的基本概念及其應用,掌握程度為理解記憶。六單元的知識要點:結(jié)構(gòu)體數(shù)組的應用,鏈表的應用,掌握程度為應用。結(jié)構(gòu)體、鏈表的基本概念和應用,掌握程度為理解記憶。七單元的知識要點:文件的打開和關(guān)閉,在文件中讀寫一個字符串,文件是數(shù)據(jù)塊的讀寫,文件和鏈表的綜合應用,文件各知識點的綜合應用,掌握程度為運用。八單元的知識要點:圖形顯示的基本原理、畫線函數(shù)的應用,圓、橢圓等函數(shù)的應用,矩形、填充等函數(shù)的應用,C語言圖形處理函數(shù)的綜合應用,掌握程度為記憶運用。
4 能力要點和掌握程度
能力要點和掌握程度,如表1所示。
5 教學設計與實施方法
本課程理論為48學時,實踐為32學時。為了達到良好的學習效果,還需要學生在課外進行大量的自學,查閱相關(guān)的資料。課外學習學時建議達到32學時以上。實施方法主要是邊講邊練,項目組研發(fā)形式開發(fā)模擬實際工作場景的實踐教學。教學實施方法主要包括講授教學法、實驗教學法、自主學習法等,具體如下:
(l)本課程以提高學生的編程技巧、培養(yǎng)軟件工程思想為主導,主要通過項目訓練加強學生動手操作和解決實際問題的能力。
(2)教學過程中,以學生為主體,鼓勵學生自主學習,團隊協(xié)作等,加強工程能力的訓練,運用啟發(fā)引導、任務引領(lǐng)、問題導向、分組討論、協(xié)同教學等多種互動式教學方法,完成課程教學任務。
(3)教學實施過程中,提供豐富的教育資源,如課件、案例、錄像、網(wǎng)絡資源等等,并輔助以大量的課后訓練,提高學生的編程能力。
實踐環(huán)節(jié)設計的主要項目包括單元組項目和課程綜合項目,其中單元組項目是上述提到的8個知識單元項目,課程綜合項目設計為商品庫存管理系統(tǒng)和貪吃蛇游戲。該系統(tǒng)主要實現(xiàn)對中小型商品流通公司商品庫存的相關(guān)業(yè)務進行管理,主要包括商品的入庫管理、出庫管理、庫存信息維護、客戶信息維護、供應商信息維護、查詢統(tǒng)計及其用戶管理等7大功能。主要的項目成果是項目報告,實施方法是實驗教學法。貪吃蛇游戲主要是在屏幕上給定的一個區(qū)域內(nèi)進行,玩家通過控制鍵盤上的上、下、左、右方向鍵來控制“蛇”的前進方向。屏幕上隨機出現(xiàn)“食物”,只要蛇頭位置與食物重合,就認為吃到食物,蛇身正常一節(jié),分數(shù)也增加。玩家可持續(xù)玩,直到蛇碰到周圍的墻壁或蛇頭撞上蛇身體,游戲結(jié)束。項目的成果為項目報告,實施的方法主要是實驗教學法。
6 結(jié)語
本課程采用百分制,滿分100分。實驗成績由平時成績、答辯和實習報告考核成績3部分構(gòu)成。平時成績占總成績的60%,分為學生評定和教師評定兩個部分,比例為3:7左右。答辯占總成績的10%。實習報告占總成績的30%??己擞址譃樾纬尚钥己撕徒K結(jié)性考核。形成性考核占60%,主要有系統(tǒng)分析,系統(tǒng)設計,系統(tǒng)實現(xiàn),測試與評價。考核的主要內(nèi)容包括:課堂表現(xiàn)及作業(yè)完成情況,系統(tǒng)各功能的代碼完成情況,測試結(jié)果及組間評價結(jié)果。終結(jié)性考核占40%,主要是答辯和項目報告。答辯主要是系統(tǒng)各功能模塊知識點的掌握情況,項目報告主要是填寫是否規(guī)范,內(nèi)容是否正確,代碼填寫風格是否一致。