摘 要:針對理工類非計算機專業計算機基礎教育課程體系中的C程序設計課程的案例式任務驅動教學方法。本文結合C語言編寫的實際案例,分析案例教學的優勢所在,同時闡明了任務驅動教學法的實施經過設計任務、布置任務、實踐任務和成果展示、評價學習任務等階段。以此激發學生的學習興趣,調動學生學習的積極性和主動性,從而提高該課程的教學效果。
關鍵詞:基礎教育;案例;任務驅動
1 背景
目前,鑒于理工類非計算機專業的計算機基礎課程涉及內容多、學科背景不同、培養層次不同等原因,我們立足于本學科的培養目標,制定了相關的課程體系和培養模式。在理工類非計算機專業的計算機基礎教育課程體系程序設計基礎課程中,主要開設的高級語言是C,C++,VC,VB。程序設計基礎課程的目標是培養學生的程序設計思想、方法和利用計算機解決本專業問題的能力。
為了縮短與內地院校在計算機教學理念和教學方法上存在的差距,應進行教學大綱、教學方法和教學手段的改革,不斷總結經驗,尋求一條合理有效、切實可行的途徑。理工類非計算機專業計算機基礎教育程序設計基礎課程體系的C程序設計是一門計算機公共基礎課,其涉及概念多,規則復雜,數據類型和運算符豐富,使許多初學者望而生畏。作者長期從事高校計算機基礎教育工作,在C程序設計課程教學中運用了案例式任務驅動教學法,現和大家共同探討。
2 案例式任務驅動教學
為兼顧理工類不同專業提出的不同要求,需要采取不同的教學方法,從而激發學生學習該課程的積極性,我們運用了案例式任務驅動教學方法。此方法實際上是案例與任務驅動相結合的一種教學方法。
2.1 案例教學
在C程序設計的教學過程中采用“精選案例”來說明程序設計的基本語法、基本算法、基本理論知識、應用技能和具體實現過程。并將其融為一體,通過具體案例的實現來講解每個知識點,從而激發學生從系統掌握理論知識到實現各個環節的綜合應用能力的興趣,更好地培養學生自主學習和終身學習的能力[1]。
2.1.1 案例教學激發學生學習興趣
案例教學中,教師所選的案例要盡量貼近實際,選題同時具有典型性、綜合性和示范性,并突出其難點與實用價值。通過講解使學生體會到難點不難,解決難點問題的關鍵所在等。我們曾選擇“學籍管理系統”,“小游戲”等作為案例。
首先,給學生做精選案例系統的演示,讓學生體會用C程序設計方法編程應用的實際效果。通過展示友好的界面、演示完善的功能、對比學生的實際生活,極大激發了學生的學習興趣。
2.1.2 案例教學培養學生的跟隨創新、集成創新和自主創新能力
1) 通過教師的精選案例培養學生的程序閱讀能力。閱讀程序對學生編程能力的提高具有很好的促進作用。學生通過模仿、借鑒已有程序的設計方法和技
基金項目:新疆大學21世紀教改工程二期項目(XJU2008JGT13)。
作者簡介:阿里甫?庫爾班,男,維吾爾族,副教授,研究領域為計算機基礎教育、多文種信息處理、數據庫應用。
巧,逐漸形成自己的編程思路。隨后要求學生在精選案例程序的基礎上或者在它的外圍,自行增加新的功能。這種創新本身也具有重要的意義,程序的核心模塊雖然借鑒他人,但是極大縮短了學生的學習周期,提高了學生的超前學習能力,逐步形成高效的程序設計思想和動態調試方法,培養了學生的跟隨創新能力。
2) 通過精選的案例培養學生的程序集成能力。學生掌握了某些實用的案例程序之后,經過有效、合理的組合進一步完成難度更大、綜合性強、具有新增功能的其他應用程序[2]。
3) 進行一定的跟隨創新和集成創新訓練之后,學生積累了一定的編程技巧和經驗,最終目的是培養學生獨立分析問題,解決問題的能力,使學生掌握更加廣泛和深入的內容,并圍繞重點和難點等方面進行不斷探索,最終達到學生自主開發應用程序的目標。
2.1.3 學籍管理系統的案例教學
學籍管理系統對學生來講非常熟悉。在C程序設計的第一節課,首先拋開課本,演示用C語言編寫的“學籍管理系統”小程序。通過演示程序,從使用者的角度討論設計需求,激發學生學習C程序設計課程的興趣。其次對程序結構進行講解,最后對程序功能進行詳細的解釋。通過此方法,學生對C程序設計課程的數據類型、運算符、表達式、語句及程序設計方法、選擇結構、循環結構、自定義函數、數組、指針、結構體與共用體、文件等每個知識點內容產生了初步的認識。
進一步結合傳統的教學中講述C語言的數據類型、標識符,變量等概念的方法,按照教材的理論知識脈絡強調其詳細的使用規則。將傳統教學方法和案例教學方法有機結合起來取得了較滿意的教學效果。
“學籍管理系統”的數據結構定義與C語言的數據類型、標識符,變量等內容并行講解。
1) 學生基本信息描述的數據結構。
typedef struct {
int sno;//整性變量名,分類,定義講解
char sname[18];//數組基類型,定義,元素
int sex;//借整型、字符型、來描述邏輯數據
int room;// 整性變量名,分類,定義講解
int fon;// 整性變量名,分類,定義講解
} StudentInfo;
2) 學生成績信息描述的數據結構。
typedef struct {
int sno; //整性變量名,分類,定義講解
char courseNo[6];
char couseName[30];
int grade1; //課程學分
int float 2; //平時成績,浮點型數據、分類、定義講解
int float 3; //實驗成績
int float 4; //卷面成績
float z; //綜合成績
float sx; //實際學分
} GradeInfo
3) 結合案例講解循環,如While (1),子函數定義,多分支選擇語句switch語句。
While (1)
{
MainMenu(); //調用菜單子函數
scanf ("%