時間:2022-06-03 12:59:13
導(dǎo)言:作為寫作愛好者,不可錯過為您精心挑選的10篇程序設(shè)計實訓(xùn)總結(jié),它們將為您的寫作提供全新的視角,我們衷心期待您的閱讀,并希望這些內(nèi)容能為您提供靈感和參考。
0.引言
C語言程序設(shè)計實訓(xùn)這門課程要求學(xué)生掌握計算機程序設(shè)計語言的基本知識和程序設(shè)計的方法與技術(shù),培養(yǎng)學(xué)生應(yīng)用計算機解決實際問題的能力,重視學(xué)生實際編程能力和程序思維能力的培養(yǎng),通過學(xué)生上機編寫程序來提升學(xué)生的編程能力,培養(yǎng)學(xué)生的學(xué)習(xí)興趣和創(chuàng)新能力。
C語言程序設(shè)計為其前導(dǎo)課程,是對其前導(dǎo)課程知識的鞏固、實踐與提升,是ACM程序設(shè)計課程的基礎(chǔ),通過此次實訓(xùn)為程序設(shè)計比賽和ACM大賽輸送人才,使更多的學(xué)生在全國的各種編程比賽中取得好成績,同時為學(xué)生畢業(yè)后從事編程工作打下良好的基礎(chǔ),為企事業(yè)單位輸送程序設(shè)計人才。
本人根據(jù)C程序設(shè)計實訓(xùn)課程教學(xué)中存在的問題對教學(xué)內(nèi)容、教學(xué)方法,考核方式進行了改革,并以本校2010級軟件班學(xué)生為試點進行教學(xué),總結(jié)了一些經(jīng)驗。
1.教學(xué)中存在的問題及解決對策
1.1實訓(xùn)內(nèi)容單一
實訓(xùn)教學(xué)內(nèi)容應(yīng)該首先根據(jù)C語言的特點對知識進行整合,然后引入針對性較強的典型綜合實例,從程序整體向各個核心知識點滲透。教師可以根據(jù)學(xué)生的實際情況設(shè)計實訓(xùn)項目,內(nèi)容應(yīng)覆蓋學(xué)生所學(xué)的知識,突出實用性,內(nèi)容最好為學(xué)生所熟悉領(lǐng)域或?qū)W生感興趣的領(lǐng)域。如果學(xué)生層次不一,可以根據(jù)學(xué)生對基礎(chǔ)知識的掌握情況設(shè)置不同的實訓(xùn)內(nèi)容。
1.2教學(xué)方法單一
在實訓(xùn)教學(xué)過程中,應(yīng)將重點放在分析程序設(shè)計過程上,培養(yǎng)學(xué)生良好的編程習(xí)慣,逐步提高學(xué)生編程能力。單一實訓(xùn)手段要達到這一目標(biāo)是很困難的,這就要求運用多種實訓(xùn)教學(xué)方法,讓學(xué)生對編程有個很好的理解過程。
可以引入多種教學(xué)方法。以前的實訓(xùn)課程不能激發(fā)學(xué)生的學(xué)習(xí)興趣,主要是因為課堂是由老師主載,學(xué)生是被動的學(xué)習(xí),不能成為課堂的主人。我們將采用多種教學(xué)方法來激發(fā)學(xué)生的興趣,轉(zhuǎn)變老師和學(xué)生的課堂角色。
(1)基于ACM模式的教學(xué)方法。ACM的教學(xué)模式是結(jié)合具體的問題講授概念與理論,輔以課堂討論,做習(xí)題等多項教學(xué)手段。在教學(xué)過程中,安排學(xué)生深入有關(guān)實際問題進行研究,加深對所學(xué)理論的認(rèn)識,利用網(wǎng)站進行程序設(shè)計。以往的教學(xué)是按照基礎(chǔ)知識、循環(huán)結(jié)構(gòu)語句、結(jié)構(gòu)體語句等知識點的順序進行講解。基于ACM的教學(xué)方式是按照習(xí)題所屬知識類別進行理論講解,離散數(shù)學(xué)、初等數(shù)論、數(shù)值計算、人工智能、動態(tài)規(guī)劃算法、圖算法等知識點進行講解與練習(xí)。ACM的教學(xué)模式在一定程度上將基礎(chǔ)學(xué)科很好地運用于程序設(shè)計當(dāng)中,有利于知識的融合,可以提高學(xué)生的思維能力,在做練習(xí)時舉一些趣味習(xí)題,激發(fā)學(xué)生的興趣。
基于ACM的教學(xué)方法的優(yōu)點如下:
①知識分類講解可以加深學(xué)生對知識的理解,更加系統(tǒng)。
②ACM所選的題目趣味化生活化,可以激發(fā)學(xué)生的學(xué)習(xí)興趣。
③題目所含知識面廣泛,有利于知識的鞏固。
④分組培養(yǎng)大家的團隊協(xié)作精神。
⑤學(xué)生講解培養(yǎng)學(xué)生的表達能力與思維能力。
(2)討論式教學(xué)法。由于每一道程序題可以有不同的編寫方法,答案不唯一,所以很適合使用討論式教學(xué)方法。將學(xué)生以三人為一個團體進行分組,在組內(nèi)討論編程方法,上機編寫程序并進行驗證,由組內(nèi)推舉成員向大家進行講解和演示,有不同編程方法的組可以繼續(xù)演示,最后由老師進行總結(jié),并選出時間和空間復(fù)雜度最小的程序,同時也可以發(fā)現(xiàn)學(xué)生在編程過程中出現(xiàn)的常見錯誤,發(fā)揮學(xué)生的團隊精神,提高學(xué)生的表達能力。
(3)任務(wù)驅(qū)動法。在實訓(xùn)課堂上,學(xué)生需明確要完成的任務(wù),依照實訓(xùn)任務(wù)完成實訓(xùn)。題目由易到難,知識點由單分支到多種分支情況的應(yīng)用,這樣適合學(xué)生學(xué)習(xí)特點及編程由易到難的編寫過程。
1.3考試一錘定音
這門課程主要是培養(yǎng)和檢驗學(xué)生的編程能力,所以不能以一次考試來決定學(xué)生的最終成績,檢驗過程應(yīng)該貫穿整個學(xué)習(xí)過程。引入過程性考核思路,總成績分部累加。采用平時計分和最終考核相結(jié)合的方式,以每節(jié)課的發(fā)言演示情況來給出平時等級,一學(xué)期進行累計,按累計成績進行排名,前三分之一學(xué)生可以免去最后的考核,以平時成績作為最終成績,這樣也可以激勵大家踴躍發(fā)言,剩下的學(xué)生參加最終考核,最后成績由平時成績和最后一次考核的成績各占一部分比例來組成。通過實踐檢驗,課程考核方法改革后,考核出了學(xué)生的實際操作水平,用過程性考核思想后,在學(xué)習(xí)過程中時刻檢驗學(xué)生的學(xué)習(xí)接受掌握情況,加大了課程全程質(zhì)量監(jiān)控力度,課程考核結(jié)果基本能夠反映學(xué)生學(xué)習(xí)后真正的計算機應(yīng)用能力水平??己私Y(jié)果公平、有效,這也是現(xiàn)在倡導(dǎo)的全過程考試。
2.總結(jié)
通過對C程序設(shè)計實訓(xùn)課程的教學(xué)內(nèi)容、教學(xué)方法、考核方式的改革,并對2010級軟件班學(xué)生進行試點后,使學(xué)生理解模塊化程序設(shè)計的基本思想,掌握結(jié)構(gòu)化程序設(shè)計的基本方法,掌握C語言的數(shù)據(jù)結(jié)構(gòu)、程序結(jié)構(gòu)、語句以及控制結(jié)構(gòu)的使用方法,能用程序設(shè)計技術(shù)解決一定難度的實際問題,掌握在實際開發(fā)環(huán)境下進行編輯、編譯、連接、調(diào)試和運行的方法;綜合訓(xùn)練學(xué)生分析問題的基本方法,提高解決實際問題的能力,培養(yǎng)學(xué)生的專項技能和職業(yè)能力。
【參考文獻】
[1]王嵩.C語言程序設(shè)計.教學(xué)探索與實踐[J].教書育人,2006,(35).
[2]王美娜.C語言程序設(shè)計.教學(xué)方法探析[J].科教文匯(下旬刊),2007,(04).
[3]曾鴻.基于項目的軟件工程綜合實訓(xùn)教學(xué)模式[J].中國職業(yè)技術(shù)教育,2008,(12).
中圖分類號:G642 文獻標(biāo)識碼:B
1引言
“C語言”是從事計算機軟、硬件開發(fā)和應(yīng)用人員必備的專業(yè)知識。C語言既具有高級語言的特點,又具有低級語言的功能,語法結(jié)構(gòu)簡潔精妙,便于描述算法,寫出的程序效率高,運用C語言可以編寫系統(tǒng)底層的內(nèi)核程序。C++、Java、C#、J#、perl等高級語言也是衍生自C語言,所以掌握了C語言,可以很容易掌握這些新型的語言去開發(fā)程序。因此在高等院校與計算機相關(guān)專業(yè)的教學(xué)計劃中,“C語言程序設(shè)計”是一門必修的基礎(chǔ)課及核心課程,是一門理論性和實踐性均較強的課程。開設(shè)“C語言程序設(shè)計”課程主要培養(yǎng)學(xué)生掌握結(jié)構(gòu)化程序設(shè)計的基本方法,建立嚴(yán)謹(jǐn)?shù)某绦蛟O(shè)計思想及較強的動手編寫及調(diào)試程序的能力,逐步培養(yǎng)獨立分析問題和解決問題的能力。同時為數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)及其他高級語言課程等后續(xù)專業(yè)課程的學(xué)習(xí)打下扎實的理論和實踐基礎(chǔ)。
在以往的教學(xué)過程中,大部分學(xué)生對學(xué)習(xí)“C語言程序設(shè)計”存在畏難情緒,更不知如何運用C語言解決實際問題。教學(xué)效果不理想,給后續(xù)學(xué)習(xí)造成障礙。筆者在教學(xué)中調(diào)整了以往按部就班的教學(xué)模式和重理論輕實踐的教學(xué)理念,將模塊化案例教學(xué)引入“C語言程序設(shè)計”的課程中,進行了教材整合和強化實踐教學(xué),并圍繞模塊化案例展開C語言教學(xué),以案例引出C語言的知識點。全部授課都以程序設(shè)計為目的,收到顯著的教學(xué)效果。
2課程進行整合,建立模塊化案例教學(xué)
2.1傳統(tǒng)的教學(xué)模式以語言知識為主線
傳統(tǒng)的“C語言程序設(shè)計”課程教學(xué)模式采用以語言知識為主線,按照變量、數(shù)據(jù)類型、表達式、數(shù)據(jù)輸入/輸出、流程控制、函數(shù)、指針、結(jié)構(gòu)、文件等順序進行教學(xué),實訓(xùn)課多以驗證為主。學(xué)生在學(xué)習(xí)的過程中每一知識點都是獨立聽記,不能將所學(xué)知識進行綜合運用。因此,學(xué)生是邊學(xué)邊忘,學(xué)習(xí)后續(xù)內(nèi)容沒有前期知識支撐,學(xué)到5~6周就失去學(xué)習(xí)的興趣和信心,甚至有些學(xué)生放棄對該門課的學(xué)習(xí),到期末考試突擊復(fù)習(xí),不及格率比較高。
2.2課程整合以程序設(shè)計為主線
課程整合以程序設(shè)計為主線貫穿語言各知識點,就是將“C語言程序設(shè)計”課程內(nèi)容分解為四個模塊,即C語言基本程序設(shè)計模塊、函數(shù)模塊、指針模塊、文件模塊,每一模塊都以案例展開C語言的知識點教學(xué),講解C語言的理論知識為目的,上機實訓(xùn)以授課中的案例貫穿始終,即強化理論知識的掌握,便于后續(xù)知識的學(xué)習(xí),同時還要逐步培養(yǎng)學(xué)生編寫C程序的能力,緊緊圍繞這四個模塊的案例舉一反三展開程序設(shè)計的實訓(xùn)。
2.2.1基本程序設(shè)計模塊
利用“統(tǒng)計一名學(xué)生的三門課程平均成績”的程序,引導(dǎo)出變量、數(shù)據(jù)類型、表達式、數(shù)據(jù)輸入/輸出等C語言基本知識。這階段主要是引導(dǎo)學(xué)生掌握C語言程序的基本結(jié)構(gòu),編寫程序的基本方法,是學(xué)習(xí)C語言入門階段。如圖1所示。
2.2.2函數(shù)模塊
C程序是由若干函數(shù)構(gòu)成的,函數(shù)是C語言的核心知識。因此,在講函數(shù)知識及設(shè)計函數(shù)程序時,將前面講述的計算學(xué)生多門課程成績組合成較完整的C程序案例。如圖2所示。
通過這個案例講清C語言中變量的存儲類型的區(qū)別和功能,函數(shù)調(diào)用、參數(shù)傳遞的方式及要求,按值和按地址傳遞區(qū)別。在講函數(shù)調(diào)用時啟發(fā)學(xué)生逐步完成圖2各個程序模塊的組合。同時調(diào)動學(xué)生的積極性逐步擴展圖2中的功能,將所學(xué)的知識進行綜合應(yīng)用,并提出預(yù)處理和文件包含知識概念及運用。
2.2.3指針模塊
指針是C語言的重要功能,正確而靈活地運用指針,可以動態(tài)分配內(nèi)存和對物理地址直接進行操作,方便地使用字符串和數(shù)組,有效地表示復(fù)雜的數(shù)據(jù)結(jié)構(gòu),在函數(shù)調(diào)用時能獲得1個以上的函數(shù)值。指針內(nèi)容非常豐富,而且復(fù)雜,這部分是C語言的重點,也是學(xué)習(xí)的難點。按常規(guī)模式教學(xué),學(xué)生對指針知識理解難、運用更難,部分學(xué)生到此幾乎放棄學(xué)習(xí)。采用模塊案例教學(xué),學(xué)生首先了解指針的運用,調(diào)動學(xué)生學(xué)習(xí)的興趣和學(xué)習(xí)的欲望,然后逐步從指針案例中啟發(fā)引出知識點,邊學(xué)邊用,通過實例反復(fù)練習(xí),學(xué)生能較靈活運用指針知識編寫程序。指針模塊如圖3所示。
首先利用演示鏈表案例引導(dǎo)出動態(tài)分配內(nèi)存。然后演示用指針修改數(shù)組處理學(xué)生成績排序的程序案例,或者設(shè)計較簡單的對硬件操作的案例,讓學(xué)生了解指針知識運用之后,再由學(xué)生模仿將函數(shù)模塊中用數(shù)組存儲數(shù)據(jù)修改為用指針進行數(shù)據(jù)處理。在知識引申的過程中,逐步提出字符串指針、指針數(shù)組及指針數(shù)組做main()函數(shù)的參數(shù)的運用。
2.2.4文件模塊
主要講述輸入輸出函數(shù),將內(nèi)存中存儲的數(shù)據(jù)輸出到外存上,仍然利用案例分析文件的概念及文件的運用。
3圍繞案例展開教學(xué)
在基本程序設(shè)計模塊中,以計算1名學(xué)生三科成績的平均成績這個程序開始引導(dǎo)C語言基本知識。程序如下:
#include
main()
{ int scor1,scor2,scor3;
float grade, total;
total = 0.0;
printf(“Enter grades: \n");
scanf("scor1=%d ,scor2=%d ,scor3=%d", &scor1, &scor2, &scor3);
total= scor1 + scor2 + scor3;
grade=total/3;
printf(“Grade average is %.2f\n", grade);
getch();
}
3.1案例啟發(fā)教學(xué),使學(xué)生輕松聽課
在案例教學(xué)過程中,要求學(xué)生熟記模塊中程序。例如:第一次課熟記“統(tǒng)計1名學(xué)生三科成績”這個程序。然后調(diào)動學(xué)生學(xué)習(xí)的積極性和主動性,引導(dǎo)學(xué)生積極思考和參與,一起分析程序中語句的含義,在分析語句的過程中,采用啟發(fā)式的循序漸進、由淺到深、由易到難,逐步提出新問題,引出C程序中新知識,用新知識解決新問題,再舉一反三寫出對應(yīng)不同問題的C語言程序。例如:提出判斷并輸出學(xué)生三科成績的最高分和最低分引出分支結(jié)構(gòu)。提出若是8門課,進行總成績統(tǒng)計的簡便方法,由此引導(dǎo)出循環(huán)結(jié)構(gòu)。根據(jù)對成績升序或降序排序引導(dǎo)出一維數(shù)組,再計算多個學(xué)生中每個學(xué)生多科成績引導(dǎo)出二維數(shù)組等,根據(jù)引導(dǎo)的知識逐步擴展和加深知識的運用。
保證學(xué)生動腦、用心聽課。教師在講解每個基本知識的過程中不要面面俱到,對常用的編程知識細(xì)講熟練,不常用的知識略講或用表格統(tǒng)解,有些基礎(chǔ)知識是隨著編程逐步引出或者以后應(yīng)用時在自學(xué),保證學(xué)生聽課不疲勞。聽得懂、跟得上、興趣濃,興趣是學(xué)習(xí)的動力,動力會產(chǎn)生效果。同時要求學(xué)生強化記憶判斷最高分、成績排序等程序,以便于后續(xù)課由用戶建立的若干個自定義函數(shù)構(gòu)成較完整的程序。在分析函數(shù)案例過程中,講清數(shù)據(jù)存儲類型的區(qū)別及參數(shù)的使用等知識。授課過程如圖4所示,每節(jié)課結(jié)束前教師與學(xué)生共同總結(jié)本節(jié)課的重點知識,便于課后復(fù)習(xí)。
3.2培養(yǎng)閱讀程序的能力
讀程序是學(xué)習(xí)C語言入門最快,也是最好的方法。教師在講述程序中各語句含義的時候,首先培養(yǎng)學(xué)生閱讀程序的能力。在閱讀程序的同時注重培養(yǎng)學(xué)生掌握C程序的結(jié)構(gòu)。例如:編寫程序首先根據(jù)表達式確定變量及變量的數(shù)據(jù)類型,然后給變量賦值(直接賦值或通過鍵盤接受值),再進行運算,最后輸出計算后的結(jié)果等。要求學(xué)生不放過每一章中提到的所有例題,仔細(xì)研讀程序,直到每一行都理解了??炊畡e人是如何解決問題的,學(xué)習(xí)解決問題的方法和程序設(shè)計技巧,掌握程序結(jié)構(gòu)。為了使學(xué)生盡快掌握編程思想和基本結(jié)構(gòu),教師課后給學(xué)生布置一些設(shè)計C程序作業(yè),由學(xué)生根據(jù)自身能力,閱讀程序、修改程序、給程序補充語句以及寫出程序運行結(jié)果,強化訓(xùn)練。
3.3培養(yǎng)學(xué)生編寫程序能力,掌握分析問題算法
3.3.1模仿編寫程序
“C語言程序設(shè)計”是一門實踐性很強的課程,“紙上談兵”光學(xué)不練是學(xué)不好C語言的。在閱讀程序的過程中,培養(yǎng)學(xué)生學(xué)會模仿編寫程序,如果沒有深刻地理解C語言的語句及掌握編寫程序的基本方法,模仿編寫程序也是一句空話。在模擬編寫程序時,如果寫不出來,回過頭來再繼續(xù)研究例題,想想自己為什么寫不出來,然后再去寫這段程序,反反復(fù)復(fù),直到熟練為止,在模仿編程的過程中培養(yǎng)學(xué)生養(yǎng)成良好的編程風(fēng)格。
3.3.2分析算法
利用C語言編程解決實際問題,所需要的不僅僅是C語言語句,還需要相關(guān)的專業(yè)知識及算法。例如,如果你不知道計算π的公式,即使C語言學(xué)得再好也無法編寫計算π的近似值的程序。如果不知道判斷閏年的條件,就無法計算某年是否為閏年。所以在程序設(shè)計過程中,必須注重培養(yǎng)學(xué)生分析問題及找到解決問題的最優(yōu)算法,這是設(shè)計程序的重要條件。
3.4強化編程能力的訓(xùn)練,樹立編程信心
教師在全部的授課過程中,時時鼓勵學(xué)生能學(xué)好C語言。因此教師在提供豐富多樣的實驗題目時,注重學(xué)生的差異,讓學(xué)生根據(jù)自身水平和興趣,選擇自己能理解的訓(xùn)練題目。讓每一個學(xué)生都能享受編寫程序獲得成功的喜悅,以促進學(xué)生堅定學(xué)習(xí)的信心和激情。同時教師鼓勵學(xué)生在學(xué)習(xí)“C語言程序設(shè)計”的過程中,閱讀一本C語言方面參考書,經(jīng)常上一些好的C語言論壇進行學(xué)習(xí)、交流,開闊自己的視野。教師也經(jīng)常組織學(xué)生進行師生間、學(xué)生間的學(xué)習(xí)交流活動,對實訓(xùn)題目采取自測、在線判題等活動。這些多種交流學(xué)習(xí)方式,其目的是充分發(fā)揮學(xué)生在教學(xué)活動中的主體地位,調(diào)動學(xué)生學(xué)習(xí)的主觀能動性和求知欲望,使學(xué)生在交流中得到學(xué)習(xí)、思考,取長補短獲取編程的技巧。成績考核以筆試、實訓(xùn)、交流等多種形式,每一環(huán)節(jié)著重考核學(xué)生綜合運用所學(xué)知識編寫程序、解決實際問題的能力。
4圍繞模塊案例開展實訓(xùn)教學(xué)
在“C語言程序設(shè)計”的實訓(xùn)教學(xué)中,通過上機調(diào)試模塊中的案例強化學(xué)生對所學(xué)知識的運用及深化理解,不僅培養(yǎng)學(xué)生編寫程序、調(diào)試程序的專業(yè)技能,同時注重對學(xué)生的人際技能方面的培養(yǎng)。
4.1培養(yǎng)學(xué)生專業(yè)技能
4.1.1調(diào)試基本程序設(shè)計模塊
初學(xué)者首先掌握C語言編程軟件的使用及調(diào)試程序的基本方法,修改程序中出現(xiàn)的語句、語法、程序流程等錯誤,積累調(diào)試程序的經(jīng)驗。在調(diào)試程序的過程中,逐步培養(yǎng)學(xué)生主動思考、分析、探索、發(fā)現(xiàn)出錯的原因,并且能獨立加以解決。再通過修改已經(jīng)運行程序的某些語句,查看程序發(fā)生的變化及分析結(jié)果變化的原因,加深對新學(xué)知識點的理解。實現(xiàn)“輸入”程序加深知識的記憶,“修改”程序加深對知識的理解。記憶和理解相輔相成,相互促進編程能力的提高。
4.1.2培養(yǎng)綜合實訓(xùn)能力
當(dāng)學(xué)生掌握了基本調(diào)試程序方法之后,對函數(shù)模塊、指針模塊、文件模塊案例進行調(diào)試,提高學(xué)生調(diào)試綜合程序的能力,修改程序中出現(xiàn)的邏輯結(jié)構(gòu)、流程錯誤。綜合實訓(xùn)可以根據(jù)函數(shù)模塊案例建立學(xué)習(xí)小組,每個自定義函數(shù)分配給小組中不同學(xué)生獨立編寫程序、調(diào)試、運行,逐步養(yǎng)成獨立分析問題,運用知識解決問題的能力和自學(xué)能力。然后將小組中每個人編寫的程序綜合在一起,進行綜合調(diào)試、運行。調(diào)動學(xué)生求知欲望及運用知識的能力,鼓勵學(xué)生樹立創(chuàng)新意識,增加程序的功能,利用開放的實訓(xùn)環(huán)境進行自主調(diào)試,培養(yǎng)學(xué)生自我發(fā)展的意識。
4.1.3撰寫實驗報告
實驗報告是對實訓(xùn)的總結(jié)和知識的鞏固,總結(jié)實訓(xùn)中調(diào)試程序的經(jīng)驗、收獲、不足和需要解決的問題,便于后續(xù)實訓(xùn)課的操作。實驗報告也是師生交流的最好手段,老師掌握每個學(xué)生實訓(xùn)過程中的問題、想法、效果等,可以調(diào)整授課進度和方法,提高學(xué)生學(xué)習(xí)效果。
4.2注重學(xué)生人際技能培養(yǎng)
作者簡介:侯春明(1979-),男,白族,湖南吉首人,吉首大學(xué)信息科學(xué)與工程學(xué)院,講師。(湖南 吉首 416000)
基金項目:本文系吉首大學(xué)校級教改課題“計算機課程群教學(xué)中技能培養(yǎng)的教學(xué)改革與實踐”的研究成果。
中圖分類號:G642.45 文獻標(biāo)識碼:A 文章編號:1007-0079(2013)28-0163-02
高校信息類專業(yè)(如計算機科學(xué)與技術(shù)、網(wǎng)絡(luò)工程、電子信息工程、通信工程、物聯(lián)網(wǎng)工程等)課程體系中,程序設(shè)計類的課程占有相當(dāng)?shù)谋戎?。常見的專業(yè)課有“C語言程序設(shè)計”、“Visual Foxpro程序設(shè)計”、“面向?qū)ο蟪绦蛟O(shè)計”、“匯編語言程序設(shè)計”、“網(wǎng)絡(luò)程序設(shè)計”等。由于信息類專業(yè)的應(yīng)用領(lǐng)域非常強調(diào)技術(shù)實現(xiàn),普通高校學(xué)生必須具備較強的編程能力,才能滿足社會對人才的要求。據(jù)統(tǒng)計,普通二本高校信息類畢業(yè)生,除了小部分繼續(xù)攻讀碩士博士學(xué)位外,絕大部分都在畢業(yè)后直接從事專業(yè)技術(shù)工作。[1]雖然不同專業(yè)對計算機編程能力的要求和應(yīng)用領(lǐng)域各有不同,比如電子信息工程和物聯(lián)網(wǎng)工程更側(cè)重對硬件的控制和嵌入式方向,而計算機科學(xué)與技術(shù)和網(wǎng)絡(luò)工程等專業(yè)更側(cè)重系統(tǒng)軟件開發(fā)和應(yīng)用軟件的開發(fā)。但是從整體上看,這些信息類專業(yè)都對學(xué)生的編程能力提出了較高要求。為了達到相應(yīng)的培養(yǎng)目標(biāo),相關(guān)課程群應(yīng)該在課程實訓(xùn)環(huán)節(jié)進行改進,以求提高學(xué)生的程序設(shè)計能力,進而全面提升學(xué)生的專業(yè)水平和動手能力,為國家和社會培養(yǎng)合格的人才,這是需要深入研究的課題。[2]
一、計算機課程群實訓(xùn)課的特點與不足
計算機課程群的實訓(xùn)課程是連接理論課程與編程能力的橋梁,程序設(shè)計類課程群對編程能力的培養(yǎng)尤為重要。但是在教學(xué)實踐過程中,要達到全面提升學(xué)生動手編程能力的狀態(tài),面臨諸多困難。
1.課時不足
隨著高校課程體系的全面改進,為了寬口徑的培養(yǎng)學(xué)生,以便學(xué)生將來能有更廣闊的就業(yè)領(lǐng)域,信息類的各個專業(yè)被加入了越來越多的課程,程序設(shè)計類課程也面臨著課時緊縮的問題。一方面要保證理論課的講授與教學(xué),另一方面要保證學(xué)生動手編程能力的提高。這樣理論課程的時間顯得非常緊張,必須在有限的時間內(nèi)盡可能的把該語言中的各種各樣的知識點傳授給學(xué)生,還要保證他們能有足夠的課時在實訓(xùn)課環(huán)節(jié)完成相關(guān)的實訓(xùn)內(nèi)容,為此在時間和教學(xué)上就要合理安排。
2.技術(shù)的快速發(fā)展
信息類專業(yè)發(fā)展速度迅猛,很多技術(shù)在過去的幾年快速的誕生和崛起。傳統(tǒng)的程序設(shè)計類課程主要是側(cè)重對基本語法的掌握和中小規(guī)模問題的分析與解決。比如運用一些經(jīng)典的算法解決某些數(shù)學(xué)問題,并編程實現(xiàn)。這樣的培養(yǎng)模式的結(jié)果是畢業(yè)生的動手實踐能力無法滿足社會上IT企業(yè)對人才的要求。
3.師資力量不足
高校教師的教學(xué)負(fù)擔(dān)很重,除了要完成各種教學(xué)和科研任務(wù)外,還要負(fù)責(zé)學(xué)生管理工作。從全局來看,高校的信息類專業(yè)是新興專業(yè),很多高校的該專業(yè)教師以中青年為主,部分教師還需要進一步進行深造,比如攻讀博士、博士后、做訪問學(xué)者、參與各種學(xué)術(shù)交流等。因此,在計算機程序設(shè)計類的實訓(xùn)課中,很多時候都是一個教師輔導(dǎo)數(shù)十人學(xué)生。師資力量不足也是制約學(xué)生的計算機程序設(shè)計能力全面提高的重要因素。
二、計算機課程群實訓(xùn)課的教學(xué)改革建議
1.針對不同專業(yè)進行有重點的課程設(shè)計
為了提高計算機專業(yè)畢業(yè)生的職業(yè)素養(yǎng)與編程能力,學(xué)校應(yīng)該加強學(xué)生的實訓(xùn)教學(xué)環(huán)節(jié)。[3]雖然信息類的不同專業(yè)都會開設(shè)各種程序設(shè)計課程,但是不同的專業(yè)側(cè)重點明顯不同,比如電子信息、電子科技、物聯(lián)網(wǎng)等專業(yè),從專業(yè)培養(yǎng)目標(biāo)上看更接近對硬件的控制。在實訓(xùn)課的綜合訓(xùn)練項目以及相應(yīng)的課程設(shè)計的培養(yǎng)環(huán)節(jié)上,可以考慮做單片機、嵌入式系統(tǒng)中的項目。將編程能力訓(xùn)練放到具體的硬件控制項目中,既符合相關(guān)專業(yè)的專業(yè)培養(yǎng)目標(biāo),又能幫助學(xué)生有效的將程序設(shè)計課程與硬件類課程群進行融合,既提高了編程能力,又提高了綜合的專業(yè)知識的應(yīng)用能力。比如C語言程序設(shè)計,如果只是反復(fù)的訓(xùn)練經(jīng)典的算法和習(xí)題,編程能力的提高還是有限。但是如果學(xué)生完成一個軟硬件相結(jié)合的系統(tǒng)設(shè)計,對C語言在單片機控制或嵌入式中的應(yīng)用開發(fā)能力就會快速增強。當(dāng)然,對于計算機科學(xué)與技術(shù)或網(wǎng)絡(luò)工程這樣的專業(yè),其專業(yè)培養(yǎng)目標(biāo)更偏向于上層應(yīng)用,也可以選擇相關(guān)的實用性的軟件開發(fā)項目(如數(shù)據(jù)庫系統(tǒng)等)來訓(xùn)練學(xué)生的動手編程能力。在完成項目的同時,學(xué)生一方面加深了對相應(yīng)專業(yè)課的認(rèn)識,另一方面也加強了編程能力。
2.充分調(diào)動不同學(xué)生群體的學(xué)習(xí)積極性
在高校的專業(yè)人才培養(yǎng)模式中,不能按照一個固定的模式要求所有的學(xué)生,必須考慮到學(xué)生自身的實際情況,調(diào)動不同學(xué)生群體的積極性,才能最大限度的提升學(xué)生的程序設(shè)計能力。比如現(xiàn)在很多高校都將計算機等級考試和學(xué)位證掛鉤,非計算機專業(yè)的學(xué)生必須通過計算機等級考試,才能順利獲得學(xué)位證。針對這一學(xué)生群體,應(yīng)該將針對等級考試的訓(xùn)練合理的放入到實訓(xùn)環(huán)節(jié),同時鼓勵學(xué)生積極主動的多做等級考試的習(xí)題,并在上機實訓(xùn)的過程中多做題庫中的題。一方面可以提升編程能力和動手能力,另一方面也能提高通過等級考試的概率。
最近幾年,高校程序設(shè)計比賽以及其他的一些設(shè)計類比賽越來越受到高校和學(xué)生的重視。對于有志于參加全校、全省、全國甚至世界級比賽的學(xué)生,在實訓(xùn)環(huán)節(jié)中可以積極引導(dǎo)他們進行相關(guān)的訓(xùn)練。比如參加ACM程序設(shè)計大賽的學(xué)生,可以鼓勵他們在實訓(xùn)環(huán)節(jié)中,在完成正常學(xué)習(xí)任務(wù)的基礎(chǔ)上,充分調(diào)動主觀能動性,多練習(xí)ACM題庫中的習(xí)題,由淺入深,步步推進。而立志參加嵌入式系統(tǒng)設(shè)計的學(xué)生,也可以主動去編寫一些嵌入式環(huán)境中的程序。使學(xué)生群體在提高自身編程水平的同時,也能更加接近相應(yīng)大賽的要求,收到一箭雙雕的效果。還有一些學(xué)生,立志于從事應(yīng)用系統(tǒng)的開發(fā),比如網(wǎng)站系統(tǒng)設(shè)計、數(shù)據(jù)庫系統(tǒng)設(shè)計、電子商務(wù)系統(tǒng)、智能手機應(yīng)用系統(tǒng)、物聯(lián)網(wǎng)應(yīng)用系統(tǒng)等。該學(xué)生群體對學(xué)習(xí)的實用性比較看重,更愿意在畢業(yè)前就找到專業(yè)領(lǐng)域的一個主攻方向,孜孜不倦地鉆研該方向,往實用的方向發(fā)展。結(jié)合這些學(xué)生的興趣和愛好,應(yīng)該在相關(guān)的實訓(xùn)訓(xùn)練和課程設(shè)計中鼓勵他們多動手寫程序,進而力爭做出對社會有實用價值的應(yīng)用系統(tǒng)。在提升了編程能力的同時,也能更多的為社會作出貢獻。
3.加強對編程能力的考核
傳統(tǒng)的教學(xué)模式注重對知識的考察,計算機類課程群也不例外。一門專業(yè)課學(xué)習(xí)完成后,最常見的考核方式就是閉卷考試。這種方式可以很好地檢查學(xué)生對該課程知識體系的掌握程度,但是對編程類的課程群來說,閉卷考試很難全面考核學(xué)生的編程能力。在教學(xué)實踐中,經(jīng)常遇到書本知識掌握良好但上機編程能力較差的學(xué)生。為了促使學(xué)生參與編程能力訓(xùn)練,應(yīng)該加強對編程能力的考核。比如組織上機考試,將考試成績納入到整體的考核成績中;也可以鼓勵學(xué)生提交應(yīng)用軟件系統(tǒng)。但是上機考試在實踐中也存在一定的困難,如普通考試,一個班級只要2個監(jiān)考教師即可,但為了避免學(xué)生作弊,計算機上機考試需要大量的教師參與監(jiān)考。另外,如果是固定的幾個習(xí)題,在機房的環(huán)境中不便于監(jiān)考,而如果是從海量題庫中隨機抽題,又很難做到絕對的公平,因為有的學(xué)生可能抽到較為容易的題目,而有的學(xué)生則可能抽到較困難的題目。但是從發(fā)展趨勢上看,為了提高信息類專業(yè)學(xué)生的編程能力,加強對編程能力的考核還是非常有必要的。
4.在校企合作中加強編程能力的培養(yǎng)
信息類專業(yè)學(xué)生的一個主要就業(yè)領(lǐng)域是IT企業(yè),如何培養(yǎng)適應(yīng)現(xiàn)代IT企業(yè)的合格畢業(yè)生,一直是高校信息類專業(yè)教師研究的重要課題。外部社會和技術(shù)變化越來越快,高校中的很多課程和教學(xué)變化往往不能及時和外部接軌。為了解決這個問題,可以考慮廣泛開展校企合作,選擇一些專業(yè)對口的大企業(yè),以實習(xí)的方式組織學(xué)生去企業(yè)學(xué)習(xí),在實踐中提高學(xué)生的程序設(shè)計能力。高校的程序設(shè)計類課程更多的是注重學(xué)生知識體系的建立和基本編程能力的培養(yǎng),而各類IT公司更看重的是學(xué)生的實際研發(fā)能力。高校應(yīng)該盡量和IT企業(yè)開展合作,一方面鼓勵學(xué)生積極參與到企業(yè)的實際項目研發(fā)中,另一方面也可以擴寬學(xué)生的就業(yè)渠道,全面提升學(xué)生的編程能力。但是實現(xiàn)起來也有諸多困難,比如:高校的課程安排緊湊,學(xué)生要擠出較長的時間參與企業(yè)的軟件研發(fā),時間上比較困難;有的高校位于經(jīng)濟不發(fā)達地區(qū),高校所在城市很難找到能提供相應(yīng)機會的企業(yè);低年級學(xué)生沒有技術(shù)實力參與到企業(yè)的研發(fā)中,而高年級學(xué)生尤其是大四學(xué)生,又面臨找工作的就業(yè)壓力,到處參加面試也會給相關(guān)的實訓(xùn)和實習(xí)工作造成影響。
三、在提高學(xué)生編程能力上的一些實踐
作為二本高校的計算機教師,在教學(xué)過程作了一些有益的教學(xué)改革嘗試,初步取得了一些效果。作為班主任,在自己管理的班級中對學(xué)生進行分類,鉆研應(yīng)用技術(shù)的學(xué)生,鼓勵他們組成興趣小組(比如嵌入開發(fā)小組、電子設(shè)計小組、信息安全技術(shù)小組、數(shù)據(jù)庫應(yīng)用技術(shù)小組等),在實際項目的研發(fā)中提高編程能力。這些學(xué)生畢業(yè)后大部分成長為國內(nèi)一些IT企業(yè)的技術(shù)骨干,而將來選擇從事IT領(lǐng)域非研發(fā)方向(如管理、市場、技術(shù)支持類工作崗位)的學(xué)生,則鼓勵他們學(xué)好基礎(chǔ)知識,擴寬知識面,同時積極參加計算機等級考試和其他的一些技術(shù)類證書考試。為他們收集大量的考試資料,調(diào)動相關(guān)學(xué)生的學(xué)習(xí)興趣,鼓勵他們多通過相應(yīng)考試。對于立志參加各類學(xué)科競賽的學(xué)生,則鼓勵他們更多的將精力放到比賽的訓(xùn)練和準(zhǔn)備上來,并指導(dǎo)部分學(xué)生獲得了較好的競賽成績。
四、結(jié)論
針對高等院校尤其是二本高校計算機課程群的實訓(xùn)課程的現(xiàn)狀進行了分析,特別是針對程序設(shè)計能力不強的現(xiàn)狀進行了分析,給出了在程序設(shè)計類課程群的實訓(xùn)環(huán)節(jié)進行教學(xué)改革的一些建議,并總結(jié)了為提升學(xué)生編程能力所積累的一些工作經(jīng)驗,以期為廣大的工作在教學(xué)崗位的計算機教師提供參考。
參考文獻:
1、前言
計算機程序設(shè)計是計算機專業(yè)學(xué)生的基本能力,對提高學(xué)生的就業(yè)質(zhì)量是一個重要的能力,因此加強學(xué)生的程序設(shè)計能力培養(yǎng)對提高學(xué)生就業(yè)率,提高學(xué)生的就業(yè)質(zhì)量都是很重要的。但高職學(xué)生由于基礎(chǔ)較差、邏輯思維能力較弱,用傳統(tǒng)的教學(xué)方式按學(xué)科體系教學(xué),從基本概念,基礎(chǔ)知識入手,一步步理解掌握,再到應(yīng)用的方式教學(xué),學(xué)生學(xué)著沒興趣,理解困難,學(xué)完了不會應(yīng)用,教學(xué)效果很差,學(xué)生學(xué)完程序設(shè)計課程基本不會做開發(fā)設(shè)計。由于程序設(shè)計是計算機專業(yè)的主干課程,相關(guān)課程較多,學(xué)生一旦失去興趣,放棄學(xué)習(xí),幾乎等于放棄了大部分專業(yè)學(xué)習(xí),因此培養(yǎng)學(xué)生對程序設(shè)計的興趣,提高程序設(shè)計課程的教學(xué)質(zhì)量,對計算機專業(yè)是至關(guān)重要的。
2、認(rèn)真做好課前準(zhǔn)備
2.1選擇好要設(shè)計的項目。項目設(shè)計教學(xué)要選擇好所用的項目,項目過簡單涵蓋的知識面不能滿足教學(xué)的要求,項目過難學(xué)生難以理解,增加教學(xué)難度。因此選擇合適的項目案例進行教學(xué),是項目設(shè)計教學(xué)的關(guān)鍵,項目設(shè)計教學(xué)包括課堂教學(xué)、實訓(xùn)和課程設(shè)計,課堂教學(xué)的案例應(yīng)該是連續(xù)的,前后關(guān)聯(lián)的,案例涉及的知識點要循序漸進,實訓(xùn)是程序設(shè)計課程的關(guān)鍵環(huán)節(jié),實訓(xùn)的項目要和課堂教學(xué)的接近但又不要完全相同,要留給學(xué)生獨立完成的內(nèi)容,否則實訓(xùn)課就變成了打字課。課程設(shè)計是對程序設(shè)計類課程的綜合應(yīng)用,也是培養(yǎng)學(xué)生程序設(shè)計能力的必不可少的環(huán)節(jié),課程設(shè)計的題目要和教學(xué)與實訓(xùn)的內(nèi)容接近和相似,但要在平時上機實訓(xùn)的內(nèi)容上有一定的擴展,要盡量涵蓋所學(xué)的內(nèi)容,要有適當(dāng)?shù)碾y度,課程設(shè)計任務(wù)太少使得設(shè)計過程中學(xué)生閑暇多,涉及到的知識點少,動手能力得不到很好的鍛煉,從而影響了教學(xué)質(zhì)量。設(shè)計任務(wù)分量過大,學(xué)生難以完成,導(dǎo)致設(shè)計過程草草收兵,應(yīng)付了事,挫傷了學(xué)生的學(xué)習(xí)熱情。課程設(shè)計應(yīng)該選擇一個較完整的項目,讓學(xué)生從分析任務(wù)開始,到看到一個能運行的較完整的成果,這樣能大大提高學(xué)生對程序設(shè)計的興趣。因此選擇合適的項目是項目設(shè)計的關(guān)鍵,只有選擇了合適的項目才能達到預(yù)期的效果。
2.2做好各門課之間的協(xié)調(diào)。程序設(shè)計能力的培養(yǎng)是由多門課程來完成的,包括面向?qū)ο蟪绦蛟O(shè)計,數(shù)據(jù)庫、信息系統(tǒng)開發(fā)等課程,在教學(xué)中各門課程要相互關(guān)聯(lián)配合,前期課程要為后續(xù)課程打基礎(chǔ)做鋪墊,后續(xù)課程要結(jié)合前期課程的內(nèi)容,這樣學(xué)生學(xué)起來前后有連續(xù),知識點反復(fù)使用,加深了理解,也知道這些知識的用途,學(xué)習(xí)的目的性也更強。因此制定好各門課程的教學(xué)大綱是關(guān)鍵,各門課程的知識點和內(nèi)容要互相協(xié)調(diào)和補充。
3、做好教與導(dǎo)的關(guān)系
3.1理論與應(yīng)用相結(jié)合
程序設(shè)計能力表現(xiàn)在項目開發(fā)上,開發(fā)能力的培養(yǎng)中,教學(xué)的重點是培養(yǎng)學(xué)生分析問題和解決問題的方法和步驟,高職的重點在應(yīng)用,因此教學(xué)中重點是教會學(xué)生基本概念和知識點的應(yīng)用,注重培養(yǎng)學(xué)生用學(xué)過的知識和查找別人的成功例子,開發(fā)項目中有大量的相似工作是自己和前人已經(jīng)做過,教會學(xué)生看懂這些案例,把這些案例變成自己的程序,能快速地實現(xiàn)自己的項目,過去我們單獨地講解每個命令、控件的用法,學(xué)生用起來很困難,分離的代碼學(xué)生也不會在項目開發(fā)中使用。用項目案例講解,代碼是上下文連貫的,學(xué)生就容易理解,再重點介紹針對不同的應(yīng)用怎樣修改哪些內(nèi)容,這樣學(xué)生也會在別的項目中使用,收到了較好的效果。
3.2做好上機實訓(xùn)輔導(dǎo)
上機實訓(xùn)是能力培養(yǎng)的重要步驟,有時學(xué)生課堂上聽懂了,上機實訓(xùn)卻不會做,或者只會照著書本輸代碼,不知道代碼的用途,這樣就沒有達到目的,因此上機指導(dǎo)也是教學(xué)環(huán)節(jié)的重點,不能只訓(xùn)不導(dǎo),老師要在實訓(xùn)過程中認(rèn)真指導(dǎo)學(xué)生,對學(xué)生出現(xiàn)的問題要及時解決,這對老師的實際操作能力提出了較高的要求,如果老師不熟練,不能及時幫學(xué)生解決碰到的問題,學(xué)生被問題難住就會失去信心。老師在幫助學(xué)生解決問題的同時也能指導(dǎo)和培養(yǎng)學(xué)生發(fā)現(xiàn)問題和解決問題的能力,增強學(xué)生的信心和興趣。
3.3做好課程設(shè)計的指導(dǎo)是關(guān)鍵
能力的培養(yǎng)是綜合的,課程設(shè)計可以把所學(xué)的知識綜合起來應(yīng)用,因此課程設(shè)計的選題非常關(guān)鍵。課程設(shè)計中老師要認(rèn)真做好準(zhǔn)備,認(rèn)真寫好設(shè)計任務(wù)書,任務(wù)書應(yīng)包括:(1)設(shè)計目的、任務(wù);(2)設(shè)計依據(jù);(3)設(shè)計相關(guān)資料;(4)設(shè)計步驟與要求;(5)成果內(nèi)容;(6)設(shè)計進度安排;(7)紀(jì)律要求;(8)成績考核標(biāo)準(zhǔn)。如有必要,還應(yīng)編入相應(yīng)的設(shè)計例題,供學(xué)生進行課程設(shè)計時參考,但也不能把老師做好的項目程序給學(xué)生,把課程設(shè)計變成打字和調(diào)試,這對程序設(shè)計能力的培養(yǎng)是不利的。課程設(shè)計中老師要隨時檢查輔導(dǎo),督促學(xué)生認(rèn)真完成任務(wù),也要及時幫學(xué)生解決碰到的問題。對優(yōu)秀的學(xué)生可以根據(jù)情況追加一些內(nèi)容,這樣能讓好學(xué)生學(xué)到更多的知識,提升自學(xué)能力和自信心,也能帶動中等學(xué)生的積極行。在課程設(shè)計中知道老師要對一些設(shè)計規(guī)范、設(shè)計方法和設(shè)計步驟做詳細(xì)介紹,培養(yǎng)學(xué)生的職業(yè)技能和規(guī)范的設(shè)計步驟,這對學(xué)生畢業(yè)后的就業(yè)是有很大幫助的。設(shè)計過程中要倡導(dǎo)同學(xué)間互相討論、互相幫助、互相學(xué)習(xí)、共同提高的團隊精神,對一些學(xué)生做的好的通用類可以介紹給其他同學(xué)用,這可以培養(yǎng)學(xué)生的團隊互助精神。項目課程設(shè)計用小組的形式比較好,這樣能照顧到程度不同的學(xué)生,能力強的學(xué)生承擔(dān)一些較難和關(guān)鍵的任務(wù),能力較差的學(xué)生承擔(dān)一些簡單的任務(wù),學(xué)生之間互相幫助,相互學(xué)習(xí),共同完成設(shè)計任務(wù),培養(yǎng)了學(xué)生的團隊精神,在同學(xué)的鼓勵和督促下能力差的學(xué)生也不會輕易放棄。
一、引言
隨著信息技術(shù)的發(fā)展和普及,社會對信息類人才的要求越來越高,很多高校都設(shè)立了信息類的相關(guān)專業(yè)以滿足社會發(fā)展的需求。其中程序設(shè)計類課程是信息類專業(yè)的重要基礎(chǔ)課程之一,這類課程主要是通過理論知識的傳授與實驗結(jié)合,培養(yǎng)學(xué)生的邏輯思維能力和實踐能力。桂林理工大學(xué)信息類專業(yè)中程序設(shè)計類課程占到了很大的比例,主要包括程序設(shè)計方法學(xué)、高級語言程序設(shè)計、面向?qū)ο蟪绦蛟O(shè)計、Java程序設(shè)計等,這些課程之間存在很強的互聯(lián)關(guān)系,屬于核心課程,所以此類課程群的建設(shè)將會促進一系列課程的良性發(fā)展。由于程序設(shè)計類課程群和生產(chǎn)實踐緊密相關(guān),所以它對培養(yǎng)“三實型人才”起到非常重要的作用。所謂新“三實型”人才主要是指實干、實踐和實用,其中實干是對思維的培養(yǎng),實踐則是實際動手能力,實用是指所學(xué)符合社會需求。本文主要針對程序設(shè)計類課程進行探討,首先,結(jié)合我校信息類專業(yè)的特點,對程序設(shè)計類課程群建設(shè)的現(xiàn)狀進行了分析;之后,指出了現(xiàn)在程序設(shè)計類課程群方面存在的不足;最后,針對存在的問題,并結(jié)合程序設(shè)計類課程的實踐教學(xué)認(rèn)真總結(jié)經(jīng)驗,對該類課程的建設(shè)和發(fā)展提出一系列相關(guān)的研究和探索。
二、課程教學(xué)現(xiàn)狀及存在的問題
1.地域性問題。我校位于西部地區(qū),經(jīng)濟較為落后,高校生源多來自本省和其他經(jīng)濟落后區(qū)域。以信息類某專業(yè)某年級為例統(tǒng)計(表1),學(xué)生人數(shù)為81人,77.78%的學(xué)生生源地為本省,其中65.43%的為偏遠(yuǎn)山區(qū)。這些來自經(jīng)濟發(fā)展較慢地區(qū)的學(xué)生,大多數(shù)是在進入大學(xué)后才正式接觸Windows操作系統(tǒng)的計算機,所以起點低、學(xué)習(xí)難度大是程序設(shè)計類課程教學(xué)中遇到的問題之一。
表1 信息類某專業(yè)某年級學(xué)生生源地統(tǒng)計表
學(xué)生生源地 比例
生源地來自城鎮(zhèn) 34.57%
生源地來自農(nóng)村 65.43%
生源地來自省外 22.22%
來自東部發(fā)達沿海省市 7.40%
少數(shù)民族比例 34.57%
2.課程特點的問題。程序設(shè)計類課程最大的特點就是注重學(xué)生實踐思維及解決問題能力的培養(yǎng)。與其他偏理論的課程相比,這門課程的實驗課時比例大,但是由于實驗課時間比較緊張,學(xué)生在學(xué)習(xí)過程中缺乏自我約束能力,容易被各種網(wǎng)絡(luò)娛樂吸引,所以盡管程序設(shè)計類課程要求掌握的語法和句法比較基礎(chǔ)和簡單,但由于上述問題的存在,很難達到培養(yǎng)學(xué)生程序設(shè)計思維的目的。課程的考核方式也存在一定的缺陷,由于理論考試分值占比偏大,實驗操作分值小,所以大多學(xué)生采取考前突擊、臨時抱佛腳的方式應(yīng)對考試,很少在平時實踐中慢慢思考、揣摩和體會。
3.傳統(tǒng)教學(xué)方法的問題。教師在程序設(shè)計教學(xué)過程中一般套用的模式是:先從語言的發(fā)展史開始,再到相關(guān)的語法、語義,之后通過簡單實例和實驗教學(xué)結(jié)合的方式讓學(xué)生理解程序設(shè)計,培養(yǎng)學(xué)生的程序設(shè)計思維能力。由于程序設(shè)計語言枯燥,沒有形象生動的畫面,單一的教學(xué)方式讓學(xué)生失去對程序語言類學(xué)科學(xué)習(xí)的興趣。另外,由于不同的程序設(shè)計語言中很多語義和語法規(guī)則都不相同,增加了編寫程序的煩瑣與枯燥,讓學(xué)生去記住每一種規(guī)則和含義,還要去調(diào)試找到程序錯誤,更使得學(xué)生學(xué)不懂、聽不懂,學(xué)習(xí)思路更加混亂,極大地降低學(xué)習(xí)的效率和學(xué)習(xí)此類課程的積極性。
三、課程教學(xué)改革思路
1.教競結(jié)合。我校信息類相關(guān)專業(yè)一共六個,可以分為計算機和電子信息通信兩大類,總數(shù)達到1800余人。經(jīng)過教學(xué)團隊的長期教學(xué)實踐總結(jié)發(fā)現(xiàn),學(xué)生對參與科技類競賽的積極性很高,所以從2015年開始每個專業(yè)都選擇一項有利于本專業(yè)發(fā)展的全國性競賽項目,而且在教學(xué)上也設(shè)置了相應(yīng)的課程引導(dǎo),幫助學(xué)生參賽。為讓學(xué)生對ACM國際程序設(shè)計大賽有一個初步的了解,學(xué)校特設(shè)ACM程序設(shè)計實踐課程,同時這也是廣西高校首次將國際大賽ACM引入到課堂教學(xué)中。另外,我校仍然大力支持傳統(tǒng)比賽,如“藍橋杯大賽”“中國軟件杯設(shè)計大賽”等,這些課程都采用了相應(yīng)的算法類教學(xué)。
2.教學(xué)課程設(shè)置改革。對于程序設(shè)計類課程,除了保持原有的理論學(xué)時,還要加強對實驗教學(xué)的監(jiān)督和管理,加大實驗考核比例,增設(shè)實訓(xùn)實踐類課程。其中實訓(xùn)類課程的開展主要是在學(xué)生完成某個程序設(shè)計課程后進行的,課程時間較為集中,主要在實驗室機房完成,實訓(xùn)題目主要由教師設(shè)定,學(xué)生也可以根據(jù)自身情況和教師商量后確定題目。而實踐類課程主要是在學(xué)校的課外實習(xí)基地展開,由企業(yè)有經(jīng)驗的工程師帶領(lǐng)學(xué)生完成實踐,解決實際問題。教學(xué)課程的改革,將有利于理論與實踐的結(jié)合,使學(xué)生增強動手能力,引導(dǎo)“三實型”人才的培養(yǎng)。
3.師資培養(yǎng)。由于程序設(shè)計類課程具有很強的實踐性,要求教師不僅有深厚的理論知識,還需要有一定的工程實踐背景。所以為了適應(yīng)工程型教育的需求,學(xué)院加強了對教學(xué)團隊的培養(yǎng),除了引進博士學(xué)歷的人才外,還引入工程型的教師,要求其有2?3年的工程實踐背景,參與過企業(yè)項目開發(fā),具備工程實踐經(jīng)驗。另一方面,積極協(xié)助青年教師去國內(nèi)985/211高校和國外高水平大學(xué)進修或者訪學(xué),鼓勵青年教師申報各種基金項目。
四、總結(jié)
本文結(jié)合我校信息類專業(yè)的特點,依據(jù)教學(xué)團隊多年實踐教學(xué)經(jīng)驗,提出了一系列程序設(shè)計類課程改革和探索的新思路。相信通過課程設(shè)置的改革,將競賽融入教學(xué)中,能有效地引導(dǎo)新“三實型”人才的培養(yǎng),增強學(xué)生動手實踐編程的能力,增加學(xué)生未來就業(yè)的籌碼。此外,在今后的教學(xué)中,教師將進一步深化課堂教學(xué)研究,教學(xué)水平還會不斷提高。
互聯(lián)網(wǎng)技術(shù)的高速發(fā)展已經(jīng)對我國的教育領(lǐng)域產(chǎn)生了深遠(yuǎn)的影響。與此同時,“Java程序設(shè)計”課程的教學(xué)和改革也迎來了挑戰(zhàn)和機遇。因此,為了提高“Java程序設(shè)計”課程教學(xué)質(zhì)量和教學(xué)效果,充分發(fā)揮學(xué)生的主動學(xué)習(xí)積極性,探索線下線下的混合式教學(xué)模式顯得非常必要。教師要不斷深化和改革課程教學(xué),創(chuàng)新教學(xué)模式,最大限度上提高課程價值。混合式教學(xué)(即線上教學(xué))與傳統(tǒng)課堂教學(xué)(即線下教學(xué))相融合,可以在很大程度上推動“Java程序設(shè)計”高職院校的教學(xué)獲得新的成效。然而結(jié)合實際情況,雖然我國大多數(shù)高職院校開展了“Java程序設(shè)計”課程的混合式教學(xué),但是,教學(xué)過程中還存在著不少的問題和弊端。因此,高校教師還需要深入對“Java程序設(shè)計”課程混合式教學(xué)模式的研究和探討。
1 高職“Java程序設(shè)計”課程教學(xué)現(xiàn)狀
“Java程序設(shè)計”是我國高職院校軟件技術(shù)專業(yè)的一門重要專業(yè)基礎(chǔ)課程,其主要內(nèi)容比較廣泛,而個體差異廣泛存在于我國高職院校的學(xué)生中,并且很大一部分學(xué)生的計算機思維能力較弱,自我約束能力和自我學(xué)習(xí)能力較差,這就導(dǎo)致了在進行“Java程序設(shè)計”課程教學(xué)時存在著巨大的困難[1]。
1.1 學(xué)生正確學(xué)習(xí)意識不足
由于高職院校中的學(xué)生普遍缺乏良好的自我約束和自我學(xué)習(xí)能力,同時也對專業(yè)不夠重視,對課程的認(rèn)識性不足,相當(dāng)一部分學(xué)生在課堂中打瞌睡、玩手機,這讓“Java程序設(shè)計”課程的教學(xué)變得十分困難。
1.2 課程實訓(xùn)安排不合理
由于“Java程序設(shè)計”課程在很多高職院校中只會開設(shè)一學(xué)期,因此學(xué)生對于課程的整體學(xué)習(xí)和課程進度的把握顯得十分有限?!癑ava程序設(shè)計”課程目前朝著多樣化的趨勢發(fā)展,然而,我國高職院校“Java程序設(shè)計”課程普遍缺乏對實訓(xùn)課程的合理安排,并且可能會降低已有的實訓(xùn)課程難度來滿足基礎(chǔ)較差的同學(xué),導(dǎo)致實訓(xùn)效果和實訓(xùn)效率很低。
1.3 課程體系建設(shè)還有待加強
許多高職院校在進行“Java程序設(shè)計”課程的教學(xué)和設(shè)計時,往往都沒有考慮到學(xué)生的基礎(chǔ)能力是比較薄弱的,忽略了學(xué)生只是軟件技術(shù)專業(yè)的“初學(xué)者”身份。教師在專業(yè)課程的教學(xué)過程中,也沒有進行對階段性教學(xué)成果的總結(jié)與反思,只是不斷地要求學(xué)生進行專業(yè)知識和技能的學(xué)習(xí),從而導(dǎo)致學(xué)生缺乏對課程的總結(jié)和反思。同時,缺乏對“Java程序設(shè)計”這門課程的后續(xù)安排,缺乏循序漸進的課程體系,使得學(xué)生的學(xué)習(xí)動力不足,課程前后銜接不完善也導(dǎo)致了學(xué)生出現(xiàn)知識脫節(jié)的情況,不利于學(xué)生的長期學(xué)習(xí)。
2 線上線下混合教學(xué)模式分析
2.1 合理科學(xué)的教學(xué)評價體系
筆者認(rèn)為,一個完整的課程評價體系應(yīng)當(dāng)是貫穿在整個混合教學(xué)過程中的,評價體系應(yīng)當(dāng)完整地將學(xué)生在學(xué)習(xí)過程中的狀態(tài)展示出來,在教師進行課程的全面教學(xué)過程中,要充分鼓勵學(xué)生積極自主參加教學(xué)評價,從而讓學(xué)生能夠掌握自身的學(xué)習(xí)狀態(tài)。教師也應(yīng)當(dāng)在教學(xué)過程中,充分地對學(xué)生知識掌握能力和技能掌握能力進行綜合評價,并且設(shè)置學(xué)習(xí)小組,對學(xué)習(xí)小組長進行領(lǐng)導(dǎo)力評價。建立起這種評價體系,能夠在很大程度上帶動學(xué)生的積極性,提高學(xué)習(xí)積極性。
2.2 充分認(rèn)識學(xué)生的學(xué)習(xí)需求
學(xué)生的學(xué)習(xí)需求是任何一門課程能夠良好實施的重要基礎(chǔ)。課程教學(xué)目標(biāo)應(yīng)當(dāng)在充分結(jié)合了學(xué)生學(xué)習(xí)需求的基礎(chǔ)上進行設(shè)定,為后續(xù)的教學(xué)工作最大化提供便利[2]。學(xué)生的學(xué)習(xí)需求一般來講是分為主觀和客觀的。在學(xué)生的角度而言,主觀學(xué)習(xí)需求就是對教學(xué)成果和教學(xué)目標(biāo)實現(xiàn)的期望,而學(xué)生今后的職業(yè)發(fā)展、社會地位、薪資待遇等因素則是學(xué)生的客觀學(xué)習(xí)需求?!癑ava程序設(shè)計”課程混合式教學(xué)要充分地對學(xué)生的主觀和客戶學(xué)習(xí)需求進行平衡,盡量做到主觀需求和客觀需求能夠?qū)Φ取?/p>
2.3 教學(xué)策略制定
“互聯(lián)網(wǎng)+”大背景下,線上線下混合式教學(xué)已經(jīng)成為各高職院校教學(xué)的基本模式。傳統(tǒng)式教學(xué)是一種很強的主觀式行為,強調(diào)的是教師的教學(xué)行為,而混合式教學(xué)策略則是充分展示教學(xué)環(huán)境和教學(xué)資源等元素。在制定混合式教學(xué)策略時,教師要注重隨時對課程進行優(yōu)化和改善,比如可以對學(xué)生進行分層次教學(xué),對不同層次水平的學(xué)生安排不同的教學(xué)實施任務(wù),能夠幫助教師很好地完成教學(xué)任務(wù),同時也能夠高效地達到教學(xué)目標(biāo)。
3 線上線下混合式教學(xué)在“Java程序設(shè)計”課程中的具體應(yīng)用
3.1 設(shè)置合理的教學(xué)項目和情景
“互聯(lián)網(wǎng)+”背景下,不同課程的教學(xué)項目和情景、課程設(shè)計形式等都是多種多樣的。通過利用互聯(lián)網(wǎng)將學(xué)生的學(xué)習(xí)和課程的教學(xué)緊密聯(lián)合在一起,是一種當(dāng)下非常新興的教學(xué)模式,同時也是一種重要的、不同于傳統(tǒng)教學(xué)模式的突破。在混合式教學(xué)模式中,教師需要把互聯(lián)網(wǎng)課程與課程實施項目、理論情景進行緊密結(jié)合,比如可以在教學(xué)過程中設(shè)置圖書館管理系統(tǒng)、學(xué)生信息管理系統(tǒng)等情景,并對其進行合理設(shè)計,能夠在一定程度上提高學(xué)生的學(xué)習(xí)興趣[3]。
3.2 提高實驗課程占比,提高實驗教學(xué)力度
實驗教學(xué)在“Java程序設(shè)計”課程中占比非常大,教師在設(shè)計混合式教學(xué)的過程中,應(yīng)當(dāng)著重突出實驗教學(xué)的力度,充分體現(xiàn)“Java程序設(shè)計”教學(xué)的實用性和適用性,增加實驗教學(xué)在課程中的課時占比[4]。教師還應(yīng)當(dāng)在每一次實訓(xùn)課程開展前,提前給學(xué)生布置實訓(xùn)任務(wù),讓學(xué)生充分地對學(xué)習(xí)任務(wù)進行了解和預(yù)習(xí),這也能夠讓學(xué)生在課外進行自主探索學(xué)習(xí)。此外,教師在課程的期中考核和期末考核中也應(yīng)設(shè)置充分的實驗內(nèi)容,這也能在一定程度上提高學(xué)生將理論知識轉(zhuǎn)化為實踐應(yīng)用的能力。如此,才能夠大大地提高混合式教學(xué)的教學(xué)效率,充分發(fā)揮實訓(xùn)教學(xué)和實訓(xùn)課程的作用。
3.3 優(yōu)化和不斷完善課程體系
“Java程序設(shè)計”課程旨在提高學(xué)生編程能力,提高項目開發(fā)能力,因此,課程體系的不斷優(yōu)化和改善對于“Java程序設(shè)計”課程的混合式教學(xué)實施顯得尤為重要?!癑ava程序設(shè)計”前中期要求學(xué)生重點掌握語法基礎(chǔ)、數(shù)據(jù)庫等知識,后期則需要學(xué)生重點掌握面向?qū)ο蟆ava高級特性等知識。所以,對學(xué)生進行綜合評價,掌握學(xué)生的學(xué)習(xí)需求,了解學(xué)生的學(xué)習(xí)能力,是教師不斷優(yōu)化和改善課程體系的良好方式。只有構(gòu)建出合理且科學(xué)的課程體系,“Java程序設(shè)計”課程的教學(xué)實施效果才能得到良好的保證。
4 結(jié)語
總之,開展和實施混合式教學(xué)對于“Java程序設(shè)計”課程的教學(xué)有十分重要的作用。許多高職院校也在大力地建設(shè)和發(fā)展自己的網(wǎng)絡(luò)課程,并已經(jīng)在教學(xué)過程中實施混合式教學(xué)。教師也可以在“互聯(lián)網(wǎng)+”大背景下不斷地進行網(wǎng)絡(luò)課程教學(xué)創(chuàng)新,為學(xué)生創(chuàng)造和提供良好的學(xué)習(xí)條件。
[參考文獻]
[1]劉長旺.基于工程實踐能力培養(yǎng)的Java程序設(shè)計課程教學(xué)改革研究[J].教育教學(xué)論壇,2017 (25 ):134-135.
1計算機專業(yè)程序設(shè)計課程實踐教學(xué)的主要范疇
計算機專業(yè)程序設(shè)計課程實踐教學(xué)主要包括上機實驗、綜合練習(xí)、課程設(shè)計、軟件開發(fā)實訓(xùn)等幾個方面。上機實驗是最基本的實踐教學(xué),由任課教師根據(jù)理論教學(xué)的具體進度,設(shè)置一些簡單的實驗,要求學(xué)生在規(guī)定時間內(nèi)完成,通過這些實驗加強學(xué)生對理論知識的理解和掌握。綜合練習(xí)一般在經(jīng)歷了一定的學(xué)習(xí)階段之后,任課教師根據(jù)現(xiàn)階段學(xué)生的學(xué)習(xí)情況,結(jié)合日常生活、工作中面臨的實際問題,設(shè)置一些難度較小的綜合性練習(xí)題,要求學(xué)生在規(guī)定的時間內(nèi)進行調(diào)查分析,然后應(yīng)用所學(xué)知識解決問題。綜合練習(xí)主要側(cè)重某一方面具體知識的應(yīng)用。課程設(shè)計是在本門課程學(xué)習(xí)完畢后,任課老師根據(jù)教學(xué)大綱的要求,結(jié)合課程的特點和實際應(yīng)用,設(shè)置一些難度適中、綜合性強的課題,要求學(xué)生按要求完成課題任務(wù)。課程設(shè)計主要考查學(xué)生對知識綜合運用的能力,培養(yǎng)學(xué)生利用所學(xué)知識來分析問題、解決問題的能力。軟件開發(fā)實訓(xùn)則是通過實際軟件項目來提高學(xué)生的職業(yè)綜合技能。計算機程序設(shè)計實踐教學(xué)都采取由淺入深的原則進行,其過程為:上機實驗綜合練習(xí)課程設(shè)計軟件開發(fā)實訓(xùn)。
2計算機專業(yè)程序設(shè)計課程實踐教學(xué)的重要性
2.1加強實踐教學(xué)是實現(xiàn)計算機專業(yè)程序設(shè)計課程教學(xué)目標(biāo)的要求計算機程序設(shè)計課程的主要目的是培養(yǎng)學(xué)生的程序基本開發(fā)能力、程序代碼編寫能力和程序調(diào)試應(yīng)用能力,重點培養(yǎng)學(xué)生的算法應(yīng)用分析能力和數(shù)據(jù)綜合處理能力。其主要任務(wù)是通過日常教學(xué),使學(xué)生掌握程序設(shè)計的一般方法和程序設(shè)計的具體過程,掌握計算機程序設(shè)計語言的語言特征,具備程序設(shè)計師的基礎(chǔ)應(yīng)用能力。在教學(xué)過程中,任課教師應(yīng)以人才培養(yǎng)為目標(biāo),側(cè)重編程綜合應(yīng)用能力的培養(yǎng),通過具體的實踐教學(xué)來提高學(xué)生的職業(yè)技能。
2.2實踐教學(xué)是提高程序設(shè)計課程教學(xué)質(zhì)量的重要手段實踐教學(xué)是培養(yǎng)學(xué)生動手能力的重要手段,是提高學(xué)生的動手能力和職業(yè)技能最有效的方式,是對學(xué)生理論知識掌握程度的檢驗?!爸R來源于實踐”,“實踐是檢驗真理的唯一標(biāo)準(zhǔn)”,計算機程序設(shè)計課程的理論知識應(yīng)通過編程實踐體現(xiàn),通過具體的程序設(shè)計案例和實際編程來提高學(xué)生對理論知識的掌握,學(xué)生
綜合編程能力的強弱是檢驗計算機專業(yè)程序設(shè)計課程教學(xué)質(zhì)量的基本標(biāo)準(zhǔn)。
3成人教育業(yè)程序設(shè)計課程實踐教學(xué)存在的問題
我國成人教育業(yè)程序設(shè)計課程的實踐教學(xué)存在問題的體現(xiàn)在下述方面:①實踐設(shè)施不足,教學(xué)條件不完善;②對教學(xué)認(rèn)識不足,實踐教學(xué)不受重視;③實踐教學(xué)方法陳舊,考核方式單一。 轉(zhuǎn)貼于
4積極探索,構(gòu)建合理的程序設(shè)計課程實踐教學(xué)模式
4.1實踐教學(xué)要符合教學(xué)目標(biāo)的需要計算機專業(yè)程序設(shè)計課程實踐教學(xué)必須緊緊圍繞專業(yè)培養(yǎng)目標(biāo)、人才培養(yǎng)規(guī)格進行。要結(jié)合專業(yè)特點更新教學(xué)內(nèi)容,調(diào)整實踐教學(xué)內(nèi)容、方法和手段。實踐教學(xué)內(nèi)容的更新,要注重對學(xué)生編程綜合能力的培養(yǎng)和創(chuàng)新能力的培養(yǎng),要對已有的實踐教學(xué)內(nèi)容進行篩選、整合,改變單一的演示性、驗證性實驗,增加綜合性、設(shè)計性、創(chuàng)新性實驗,要充分利用計算機課程的教學(xué)特征,提高實踐教學(xué)效果。
4.2以社會就業(yè)需求為主導(dǎo),開展多種形式的實踐教學(xué)程序設(shè)計課程實踐教學(xué)主要有上機實驗、課程章節(jié)綜合練習(xí)、大作業(yè)、課程設(shè)計、軟件項目實訓(xùn)、校外軟件基地實習(xí)、軟件合作企業(yè)頂崗實習(xí)、校內(nèi)軟件課題研發(fā)等。其中實訓(xùn)、實習(xí)和研發(fā)都是采用“真題真做”。通過上述這些實踐過程,學(xué)生的程序設(shè)計綜合應(yīng)用能力和軟件開發(fā)能力都能得到良好的鍛煉。
4.3程序設(shè)計課程實踐教學(xué)設(shè)計一般要求定教學(xué)的具體內(nèi)容。大多數(shù)情形下,采用實例教學(xué)效果比較明顯,通過實例的演練促進學(xué)生對知識的掌握。實例式實踐教學(xué)設(shè)計一般應(yīng)包括教學(xué)目標(biāo)、課時要求、教學(xué)組織、教學(xué)內(nèi)容、實踐方式、實踐總結(jié)、成績評定等幾部分內(nèi)容。在設(shè)計實踐教學(xué)內(nèi)容的過程中,應(yīng)做好三個方面工作。一是要結(jié)合學(xué)生實際情況,盡量體現(xiàn)知識性、實用性,激發(fā)學(xué)生的靈感和創(chuàng)造欲,使學(xué)生對實踐內(nèi)容感興趣,以充分調(diào)動學(xué)生的學(xué)習(xí)積極性和主觀能動性,促進學(xué)生積極創(chuàng)新,完成實踐內(nèi)容。二是應(yīng)注重理論教學(xué)與實踐教學(xué)相結(jié)合,保證實踐教學(xué)與理論課教學(xué)相適應(yīng),加深學(xué)生對基本理論、基本知識的理解和掌握。三是保證實踐題目難度和工作量適中,學(xué)生通過自己的努力,可以在規(guī)定時間內(nèi)完成實踐任務(wù),實踐方式可以靈活多變。
目前,程序設(shè)計類課程已作為中職計算機專業(yè)的一門重要課程。在學(xué)生完成了計算機基礎(chǔ)知識的學(xué)習(xí)后,通常要學(xué)習(xí)一些高級語言的程序設(shè)計類課程,如VB、C#、ASP. NET等,而這些課程要求學(xué)生必須有較好的計算機基礎(chǔ)和靈活的邏輯思維能力才能學(xué)好。在實際的教學(xué)過程中,雖然實施了“理實一體化”的教學(xué)模式和以學(xué)生為主、項目化教學(xué)等方式,但效果并不理想。所以,必須尋找一種更有效的教學(xué)方法來提高程序設(shè)計類課程的教學(xué)效果。
一、教學(xué)現(xiàn)狀及原因分析
相信大部分計算機教師在教學(xué)生程序設(shè)計類課程時362總有這樣的感覺:講理論知識時很多很全,學(xué)生感覺枯燥無味;實訓(xùn)操作時,學(xué)生沒興趣,消極應(yīng)對。那么,是什么原因造成以上現(xiàn)象呢?我認(rèn)為有以下幾點。
1.課程的特點。程序設(shè)計類課程一般都是由理論知識和實訓(xùn)操作兩部分構(gòu)成,是一門專業(yè)性較強的課程,要求學(xué)生對知識點掌握十分透徹,并具備一定的邏輯思維能力。如C#語言中學(xué)生必須要掌握.NET框架和基類庫、程序的構(gòu)成和結(jié)構(gòu)、類、數(shù)組等概念才能較好地完成實訓(xùn)操作。概念之抽象是學(xué)生難以學(xué)好的一個原因。
2.學(xué)生的特點。中職學(xué)生大多計算機基礎(chǔ)薄弱、學(xué)習(xí)興趣低、自主學(xué)習(xí)能力差。但他們又對新鮮事物充滿好奇,能進行探索和思考。通過調(diào)查發(fā)現(xiàn),大多數(shù)學(xué)生覺得學(xué)不好的原因是覺得課程知識點難懂,實訓(xùn)操作模式單一(主要是完成書本中的項目實訓(xùn)),沒有積極性。
3.教學(xué)設(shè)計與方法。在傳統(tǒng)的教學(xué)中,教師一般將書本的理論知識先講授,再讓學(xué)生通過項目實訓(xùn)來鞏固所學(xué)知識,通常采取任務(wù)驅(qū)動、小組合作學(xué)習(xí)、教師引導(dǎo)的方法完成實訓(xùn)任務(wù)。然而在書本中,每一個項目對應(yīng)的是一個知識點的專項實訓(xùn),項目與項目之間相對獨立,學(xué)生一旦沒有對知識點掌握透徹,就很難完成項目實訓(xùn)。雖然有小組合作,但由于知識抽象,掌握知識技巧的學(xué)生也很難教會不懂的學(xué)生。
二、項目結(jié)合,大膽探索
針對以上現(xiàn)象,如何提高程序設(shè)計類課程的教學(xué)效果呢?本人經(jīng)過研究和探索發(fā)現(xiàn),要讓學(xué)生學(xué)好程序設(shè)計類課程,光靠書本理論的講授和實訓(xùn)是不夠的,只有充分地激起學(xué)生的興趣,學(xué)生才能想學(xué)、去學(xué)、喜歡學(xué),主動性和積極性才能提高。對此,本人總結(jié)出了一套“項目結(jié)合”的教學(xué)方法,就是打破傳統(tǒng)的教學(xué)法,將某一章節(jié)獨立的項目重新設(shè)計,循序漸進地結(jié)合起來,提高項目的趣味性,用興趣綁住學(xué)生。比如在《Windows程序設(shè)計案例教程(C#)》中第二章,書本中的項目依次是時鐘實例、加法練習(xí)器實例、項目選擇器實例、選擇題應(yīng)答器實例、倒計時實例和英文字母練習(xí)器實例。通過對項目和教學(xué)的重新設(shè)計,我以英文字母練習(xí)器實例為主線,將倒計時實例、選擇題應(yīng)答器實例、加法練習(xí)器實例中的重要知識點結(jié)合起來,形成了一個趣味性強、知識點關(guān)聯(lián)性高的一個新項目。下面以《Windows程序設(shè)計案例教程(C#)》中第二章的《英文字母練習(xí)器》教學(xué)為例,和大家探討“項目結(jié)合”的方法在實際教學(xué)過程中的作用。教學(xué)設(shè)計和教學(xué)方法分為如下幾個步驟:
1.引入游戲,創(chuàng)設(shè)情境。教師展示一款大家都比較熟悉的“切西瓜”游戲,并進行操作演示,同時讓學(xué)生觀察思考,分析游戲的功能,從而激發(fā)學(xué)生興趣,學(xué)生通過觀察分析出游戲所具備的功能,為新課作鋪墊。教學(xué)方法可采用學(xué)生觀察法,討論法。
2.項目要點剖析,提高認(rèn)識。首先,以書本中的英文字母練習(xí)器實例為基礎(chǔ),分析項目的功能、關(guān)鍵技術(shù)、設(shè)計的方法等,如timer的功能、pictureBox的作用等。然后,對比“切西瓜”游戲,讓學(xué)生分析項目中的不足及完善的方法。教學(xué)方法可采用小組討論、教師引導(dǎo)。
中圖分類號:TP312.1-4 文獻標(biāo)識碼:A 文章編號:1007-9599 (2012) 16-0000-02
C#作為一種簡單、現(xiàn)代、面向?qū)ο笄翌愋桶踩木幊陶Z言,由C和C++語言衍生而來,雖然與C和C++有相似之處,但是它有自身的特點和優(yōu)點。C#語言的優(yōu)勢如下:
具有高度的靈活的性和強大的底層控制能力,能與計算機硬件直接通信。
具有可移植性,盡管程序的編寫是針對所使用的操作系統(tǒng)和特定的計算機硬件系統(tǒng)的,但是只需要做少量的修改就可以應(yīng)用于其他系統(tǒng)。
代碼高效,具有相當(dāng)?shù)膱?zhí)行效率。
1 課程特點
根據(jù)高職教學(xué)的特點在課程設(shè)計上體現(xiàn)“以就業(yè)需要確定崗位,以崗位確定能力(技能、技術(shù))”的原則。每一崗位技能由一個系列課程(2~4門課程+1~2門實訓(xùn)課程)教學(xué)進行培養(yǎng),形成“崗位系列課程鏈”。也就是,把職業(yè)崗位要求的一項專門技術(shù)看成是一項任務(wù),并設(shè)計成一個貫穿教學(xué)全過程的課程鏈;以核心知識課程打好技術(shù)和能力基礎(chǔ);以行動導(dǎo)向的實訓(xùn)課程或課程設(shè)計項目培養(yǎng)職業(yè)需要的技能。在軟件開發(fā)核心能力的培養(yǎng)中,C#程序設(shè)計是非常重要的一環(huán),所以在課程講授主線上,按照“讀程”、“編程”、“開發(fā)”、“測試”、“研發(fā)”的能力結(jié)構(gòu)和學(xué)習(xí)過程設(shè)置教學(xué)環(huán)節(jié),學(xué)生可按“模塊化、組合型、進階式”等方式選擇學(xué)習(xí)內(nèi)容,逐步深入掌握編程知識,并兼顧其他能力培養(yǎng)。
2 教學(xué)實施及管理
在實際教學(xué)中,教學(xué)模塊設(shè)計以軟件開發(fā)崗位任職要求、工作過程為導(dǎo)向,任務(wù)驅(qū)動,遵循由易到難的規(guī)律,形成由單一能力培養(yǎng)到綜合能力培養(yǎng)的思路。把軟件開發(fā)分為C/S和B/S兩種模式,對于兩種模式分別以綜合實訓(xùn)項目入手,強調(diào)實際工作能力的培養(yǎng),而不是單一知識點的掌握。目前,企業(yè)對畢業(yè)生的用人標(biāo)準(zhǔn)中,動手能力、學(xué)習(xí)能力、與人溝通能力和團隊合作能力,是其選擇人才的重要標(biāo)準(zhǔn)。動手能力和實踐經(jīng)驗的提高,必須在實踐環(huán)節(jié)的教學(xué)管理中加以訓(xùn)練和培養(yǎng)。通過實踐課環(huán)節(jié)的學(xué)習(xí),學(xué)生的動手能力、自主學(xué)習(xí)能力等技能都得到了提高。而其項目開發(fā)本身的趣味性和挑戰(zhàn)性,很好地激發(fā)了學(xué)生對實踐環(huán)節(jié)的學(xué)習(xí)積極性。因此,加強實踐環(huán)節(jié)的培養(yǎng)是C#程序設(shè)計課程的教學(xué)重點。在教學(xué)中綜合運用多種教學(xué)方法。根據(jù)C#程序設(shè)計課程的特點,并通過幾個學(xué)期的教學(xué)實踐證明,采用項目教學(xué)法,在不同的項目中設(shè)計小的教學(xué)情境,模擬真實的工作環(huán)境,用實際任務(wù)驅(qū)動教學(xué)的開展,采用激勵式教學(xué)法、團隊互助式教學(xué)法等多種方法共同使用,使學(xué)生更好的掌握各項知識和技能。對于不同的知識點靈活的運用不同的教學(xué)方法,達到良好的教學(xué)效果。
3 校企合作課程建設(shè)
深化教學(xué)改革,遵循軟件技術(shù)職業(yè)能力的形成規(guī)律,發(fā)揮教師的實踐工作經(jīng)驗,強化任務(wù)(案例)驅(qū)動和“以做為主”的教學(xué)方法,將企業(yè)中真實項目、案例和技巧融入到教學(xué)中,使課程的講授更加貼近企業(yè)的真實工作環(huán)境和技術(shù)要求,并進一步強化“以教師為主導(dǎo),學(xué)生為主體”的教學(xué)理念。
在教學(xué)中通過角色扮演的方式模擬企業(yè)的實際工作環(huán)境,使學(xué)生感受更加真實。企業(yè)技術(shù)人員和教師在軟件開發(fā)實訓(xùn)項目中通過扮演項目經(jīng)理以及系統(tǒng)設(shè)計師等角色,帶領(lǐng)學(xué)生完成真實的軟件項目。軟件開發(fā)是一個多角色協(xié)作的過程,有配置經(jīng)理、開發(fā)人員、文檔作者、測試人員、維護人員幾個角色可供選擇,只有在實訓(xùn)項目中讓學(xué)生通過扮演適當(dāng)?shù)慕巧?,才能給學(xué)生真正溝通,協(xié)作體驗,并獲得適應(yīng)未來工作需要的實際經(jīng)驗。
4 多種教學(xué)手段的應(yīng)用
4.1 精心設(shè)計教學(xué)課件,合理設(shè)計教學(xué)情境
在課堂教學(xué)中,不是死板的運用PPT演示知識點,而是把知識點穿插在實際案例中,合理的設(shè)計教學(xué)情境,讓學(xué)生更加深刻的理解所學(xué)知識點。
4.2 講解編程思路,引導(dǎo)學(xué)生編程
在教學(xué)過程中,教師并不是把大段的程序發(fā)給學(xué)生,再給學(xué)生講解程序功能,這樣只會使學(xué)生一味的抄襲,缺乏自我思考。教師應(yīng)該引導(dǎo)學(xué)生,讓學(xué)生參加到程序的開發(fā)中,隨著教師的思路一同完成的程序的編寫,并把程序中相近的部分讓學(xué)生獨立完成。
4.3 利用LanStar教學(xué)廣播系統(tǒng)
在教師講解知識點和課后總結(jié)中,通過廣播教學(xué)方式,讓全體學(xué)生的注意力集中在教師身上,提高教學(xué)效果。在學(xué)生自主練習(xí)時,學(xué)生可以運用LanStar系統(tǒng)進行課堂提問,教師可以及時輔導(dǎo),并且可以讓學(xué)生自己把優(yōu)秀的學(xué)生作品,通過LanStar系統(tǒng)展示給其他同學(xué),提高學(xué)生的綜合素質(zhì)。
4.4 利用互聯(lián)網(wǎng)進行課后教學(xué)輔導(dǎo)
課后教師運用QQ、MSN等軟件,為學(xué)生提供遠(yuǎn)程在線指導(dǎo)隨時解決學(xué)生在學(xué)習(xí)過程中所遇到的問題,教師可以通過QQ軟件提供的遠(yuǎn)程協(xié)助功能,教師可以遠(yuǎn)程登錄學(xué)生的電腦,為學(xué)生解決編程中的各項問題,使學(xué)生的學(xué)習(xí)不再局限于有限的課堂教學(xué)時間。
5 探索以技能考核的新方式
在考核方式上,知識理論性按融合了知識點與技能點的試卷形式進行考核,項目設(shè)計按作品完成情況進行考核,實訓(xùn)操作按操作和測試過程中學(xué)生現(xiàn)場表現(xiàn)進行考核,對于不同內(nèi)容采用不同的考核方式,考核標(biāo)準(zhǔn)也有所不同,該標(biāo)準(zhǔn)應(yīng)包括:實訓(xùn)題庫(學(xué)生必須掌握的操作技能)、評價標(biāo)準(zhǔn)、組織形式等內(nèi)容。實行終結(jié)性考核與過程性考試相結(jié)合的方式。以實際技能為導(dǎo)向,把實踐能力和項目能力納入考核范圍。采用筆試、機試、綜合作業(yè)、項目評審考核等方法。并以此全面衡量和控制教學(xué)質(zhì)量。
所以,在課程的考核中既要考核學(xué)生理論知識的掌握程度,學(xué)生的實踐動手能力,更要考核學(xué)生的團隊協(xié)作能力,通過平時的知識點考核和最終的項目展示、項目答辯達到預(yù)期效果。
6 總結(jié)
在C#程序設(shè)計課程的教學(xué)中,通過與企業(yè)之間的合作,取得了良好的教學(xué)效果,教學(xué)中采用企業(yè)的真實項目開展教學(xué),并邀請企業(yè)技術(shù)人員與學(xué)校專職教師共同完成課程的講授,既發(fā)揮了教師理論知識強的優(yōu)點,也使學(xué)生在企業(yè)技術(shù)人員身上學(xué)到了最新的實踐技能。 “工學(xué)結(jié)合”項目貫徹整個教學(xué)過程,學(xué)生在課程學(xué)習(xí)中,參與企業(yè)的真實案例,讓學(xué)生在真實企業(yè)環(huán)境中提升崗位技能。在教學(xué)中,強化任務(wù)驅(qū)動和“以做為主”的教學(xué)方法,將大量真實的任務(wù)、案例和操作技巧融入教學(xué)內(nèi)容,使課程內(nèi)容緊貼生產(chǎn)實踐和技術(shù)前沿,強化“以教師為主導(dǎo),學(xué)生為主體”的教學(xué)理念。
參考文獻:
[1]王婧.任務(wù)驅(qū)動法在計算機課程教學(xué)中的應(yīng)用[J].計算機教育,2011,8.
[2]游祖元.C#案例教程[J].電子工業(yè)出版社,2008,8.
C語言程序設(shè)計既是高等學(xué)校一門重要的公共基礎(chǔ)課程,也是計算機專業(yè)的一門專業(yè)基礎(chǔ)課。由于邏輯性和實踐性強,使該課程的教學(xué)和實踐存在一些誤區(qū),主要表現(xiàn)如下。
1) 學(xué)生不清楚本專業(yè)的特點。多數(shù)高校將本課程安排在大一的第一學(xué)期,由于對于本專業(yè)的課程體系了解不夠,導(dǎo)致新生對各專業(yè)特點混淆不清,有的學(xué)生去報考計算機等級考試,結(jié)果有的還不如非計算機專業(yè)的學(xué)生,致使一些學(xué)生學(xué)習(xí)消沉。我們通過和學(xué)生談心,得知不只是大一有這種現(xiàn)象,大二的學(xué)生甚至也存在這種心理[1]。
2) 學(xué)生學(xué)習(xí)本課程目的不明確,興趣不高。在教學(xué)中,有不少學(xué)生問,既然C#和Java是現(xiàn)在的主流編程語言,為什么還要讓我們學(xué)習(xí)C語言?所以我們在第一堂課介紹計算機語言發(fā)展時,將C語言和其他語言作比較,強調(diào)C語言是當(dāng)前程序員共同的語言,它使程序員互相溝通,比流行語言都更接近機器。C語言更適合解決某些小型程序的編程,在編寫底層的設(shè)備驅(qū)動程序和內(nèi)嵌應(yīng)用程序時,往往是更好的選擇。有了C的基礎(chǔ),在需要時進一步學(xué)習(xí)其他語言,也是很容易過渡的。當(dāng)然,第一堂課上,我們把重點放在培養(yǎng)學(xué)生的興趣上,所以會用1個學(xué)時去展示歷年實訓(xùn)的優(yōu)秀作品,這些作品都是完整的系統(tǒng),除了包涵基礎(chǔ)知識,還有高級技術(shù)。我們向?qū)W生灌輸學(xué)習(xí)這門課程的境界:Beginner―Advanced―Professional。
3) 任課教師對課程的定位、理解和把握不夠。老師只有有一桶水,才能教給學(xué)生一碗水,教得了學(xué)生不等于教得好學(xué)生,學(xué)生的評教正說明了此問題。
通過實踐,我們對計算機專業(yè)本課程教師的要求是:“復(fù)合型”的教師――既要精通這門課程,還要有3年以上實際項目開發(fā)經(jīng)驗,并且非常熟悉計算機其他學(xué)科的知識,而“教師的成功在于培養(yǎng)出值得自己崇拜的人[2]”。
因此,我們對本課程的定位是,以程序設(shè)計為中心,掌握語法,了解算法,重在算法的實現(xiàn)――編程。算法是靈魂,語法是基礎(chǔ),編程是中心。處理好三者的關(guān)系,直接決定了教學(xué)的成敗。
算法盡管重要,但本課程不是算法設(shè)計課程,不可能過多地介紹算法,更不是在研究算法。我們要在學(xué)生學(xué)習(xí)編程的過程中,介紹相關(guān)的典型算法,引導(dǎo)學(xué)生面對問題去思考如何構(gòu)造算法,編寫程序的過程本身就是設(shè)計算法的過程。
為此,我們對本課程體系進行了改革,并將本課程與計算機其他學(xué)科進行了融合教學(xué)與實踐,取得了非常好的效果。
1課程體系的改革
1) 修改教學(xué)環(huán)節(jié)。
我們把原計劃一學(xué)期的教學(xué)時間調(diào)整為一學(xué)年。第一學(xué)期進行C語言程序設(shè)計基礎(chǔ)的教學(xué),第二學(xué)期進行C語言程序設(shè)計的進階教學(xué),在學(xué)年末進行該門課的實訓(xùn),接著的暑假進行校外實習(xí)。根據(jù)不同專業(yè),我們還開了小學(xué)期,在小學(xué)期里有連續(xù)12周的實驗環(huán)節(jié)。
2) 修訂培養(yǎng)計劃和大綱,改革考核方式。
我們把本課程的教學(xué)改革與本學(xué)院的“卓越工程師計劃”相結(jié)合,組織教師外出考察、研討,然后重新修訂了培養(yǎng)計劃、教學(xué)大綱、實驗大綱、實訓(xùn)大綱、實綱。相應(yīng)地,考核方式也作了調(diào)整:基礎(chǔ)教學(xué)由筆試轉(zhuǎn)向機試,試題難度高于非計算機專業(yè)的等級考試,每次考試的題庫都將重新命題和審閱。進階教學(xué)由考試轉(zhuǎn)向完成3 000行以上大作業(yè)形式的考查,實訓(xùn)由過去的全班一個模擬題目轉(zhuǎn)向提供多個實際驗收簽定過的項目,進行C版本的再次開發(fā),實習(xí)由過去的只是到實習(xí)基地參觀調(diào)整為直接進企業(yè)拜師跟班學(xué)習(xí)。
3) 豐富配套的教學(xué)資源。
我校組織編寫了《C語言程序設(shè)計基礎(chǔ)及進階教程》,被評為“十一五”國家級規(guī)劃教材,已于2010年由清華大學(xué)出版社出版發(fā)行。我們還配套編印了上機實驗的實踐教程(將在今年教材的第二版時一并出版),以及實訓(xùn)時的實訓(xùn)教材和實習(xí)的實習(xí)教程,并建設(shè)了精品課程在線學(xué)習(xí)平臺,供師生討論和交流。制作了與教材配套的課件與教案,供教學(xué)參考。
我們專門搭建了學(xué)校ACM/ICPC在線測評平臺,并組建了容納120人的競賽專用機房,成立了ACM/ICPC競賽班。2008年起,河南省計算機學(xué)會主辦一年一次的河南省大學(xué)生程序設(shè)計競賽,我們每年都組隊參加,在過去的三屆競賽上,共獲得4枚金獎、2枚銀獎、1枚銅獎。2009年參加亞洲區(qū)賽現(xiàn)場賽獲得優(yōu)秀獎。2010年參加第35屆亞洲區(qū)賽,通過預(yù)賽,獲得天津賽區(qū)、杭州賽區(qū)和成都賽區(qū)的決賽資格,并在成都賽區(qū)獲得1枚銅牌,排名第59名,是河南省該項賽事最好成績,為學(xué)校爭得了榮譽。在學(xué)校內(nèi)部,我們從2009年開始每年組織兩次全校程序設(shè)計競賽,至今已經(jīng)主辦了四次校級競賽。
4) 轉(zhuǎn)變教學(xué)理念。
我們提出了C語言與計算機相關(guān)課程的融合教學(xué)與實踐的教學(xué)理念。
5) 采用新的教學(xué)方法。
在課堂教學(xué)中,我們使用任務(wù)驅(qū)動、課堂討論、3W1H教學(xué)法、現(xiàn)場編程教學(xué)法、課堂陷阱教學(xué)法、任務(wù)分解教學(xué)法、任務(wù)貫穿教學(xué)法、分散集中教學(xué)法、兩段教學(xué)法、實訓(xùn)優(yōu)秀作品展示激勵法、融合教學(xué)法等多種教學(xué)法,在課外使用網(wǎng)上在線討論與答疑、競賽輔導(dǎo)撥高法、課題組觀摩討論法。我們打破大學(xué)考試試卷不評講的一貫做法,在第二學(xué)期的進階課程第一堂課評講上學(xué)期期末試卷[3]。
(1)3W1H教學(xué)法。即:What――解決什么問題,Why――通過實際生活例子引入為什么要解決這個問題,Where――在什么條件下能夠解決,How――如何運用學(xué)到的方法、技術(shù)來解決問題。
(2) 現(xiàn)場編程教學(xué)法。在講授有代碼編寫的理論課時,當(dāng)一個理論知識介紹完后,教師出一個難易程度適當(dāng)且有代表性的題目,讓學(xué)生隨堂寫代碼,并抽學(xué)生到黑板上寫,或者抽幾份學(xué)生作業(yè)當(dāng)場點評。
(3) 課堂陷阱教學(xué)法。在期中檢查座談會上,有的老教師說學(xué)生很難發(fā)現(xiàn)自己程序的錯誤,而課堂上即使是老師手下的一個筆誤,學(xué)生也能發(fā)現(xiàn)并喊錯了。我們正是可以利用學(xué)生這種“容許自己范錯,不許老師失誤”的習(xí)慣,對于學(xué)生書寫代碼時容易出錯,或者上機碰到的共性問題,我們在課堂上演示時設(shè)下陷阱,故意把代碼寫錯,有的學(xué)生當(dāng)時就能發(fā)現(xiàn),而有的學(xué)生在編譯時才發(fā)現(xiàn)有錯,我們用自己的錯誤來吸引學(xué)生注意力,加深學(xué)生的印象。
(4) 課題組觀摩討論法。我們組織本課題組教師每兩周進行一次教學(xué)觀摩討論,取長補短,相互學(xué)習(xí),推廣好的教學(xué)方法。
(5) 實訓(xùn)優(yōu)秀作品展示激勵法。我們在第一學(xué)期基礎(chǔ)課程的第一堂課上展示往屆的優(yōu)秀實訓(xùn)作品,讓學(xué)生覺得既好奇又深奧,極大地激勵了學(xué)生的興趣。臨到畢業(yè),大部分學(xué)生還能對這堂課記憶猶新。
2與計算機相關(guān)課程的融合教學(xué)
通過近5年的實踐與總結(jié),我們認(rèn)為如果把C語言程序設(shè)計與計算機相關(guān)課程進行融合教學(xué),必將促進學(xué)生對該門課程的理解,同時凝聚專業(yè)特色,促進其他課程的學(xué)習(xí),對于學(xué)生的自學(xué)與綜合能力的培養(yǎng)都有積極的作用。
1) 與數(shù)據(jù)結(jié)構(gòu)融合。
在講到C語言中的基本數(shù)據(jù)類型與構(gòu)造類型時,圍繞數(shù)據(jù)結(jié)構(gòu)的一條主線――四種結(jié)構(gòu)兩種存儲,聯(lián)系數(shù)據(jù)結(jié)構(gòu)中的數(shù)據(jù)類型,在抽象數(shù)據(jù)類型ADT中只定義了基本操作,復(fù)雜的操作是通過基本操作實現(xiàn)的。在抽象數(shù)據(jù)類型中定義的操作與C語言中的各種類型的運算,比如取余運算符“%”,在C語言中僅限整數(shù)。在講到查找與排序時,對照數(shù)據(jù)結(jié)構(gòu)中的查找與排序,介紹一些經(jīng)典和效率高的算法。在講到遞歸函數(shù)調(diào)用時,用數(shù)據(jù)結(jié)構(gòu)中的遞歸調(diào)用時棧的進棧出棧變化過程講解。在講到scanf函數(shù)和其他讀取字符函數(shù)時,將內(nèi)存與鍵盤輸入緩沖區(qū)結(jié)合,使學(xué)生更容易理解數(shù)據(jù)的輸入格式。
2) 與操作系統(tǒng)融合。
在講到變量的數(shù)據(jù)類型及變量的存儲類型時,結(jié)合操作系統(tǒng)的內(nèi)存結(jié)構(gòu),講解內(nèi)存區(qū)域分為6個不同的部分來存儲不同的數(shù)據(jù),使學(xué)生了解內(nèi)存組織的有序性。特殊地,寄存器變量不占內(nèi)存,而字符串常量存放在符號常量區(qū),通過講解內(nèi)存結(jié)構(gòu),學(xué)生就明白靜態(tài)變量為什么第一次使用時會初始化,以后再使用時用的是上一次的值。在講解數(shù)組的連續(xù)存儲、鏈表的動態(tài)存儲時,結(jié)合內(nèi)存就會理解得更透徹些,甚至可補充內(nèi)存中堆與棧使用的知識[4]。
3) 與計算機組成原理融合。
入學(xué)時,教師介紹計算機發(fā)展,一般都會講到馮•諾依曼原理,那么為什么要學(xué)習(xí)語言呢?還得從計算機組成原理來講,從電腦城裝配電腦介紹起,首先運用BIOS程序,然后再啟動操作系統(tǒng),最后再運行用戶的應(yīng)用程序。而BIOS程序、操作系統(tǒng)和應(yīng)用軟件都是用語言開發(fā)出來的軟件,之前都曾經(jīng)有過C語言版本,BIOS現(xiàn)在還是C語言編寫的,而操作系統(tǒng)的一些內(nèi)核也還有C語言的許多代碼。因為大一第一學(xué)期的計算機科學(xué)導(dǎo)論與本課程是同步開設(shè),學(xué)生對計算機的了解還是有限的。同樣地,在講到C語言的三種進制數(shù)、位運算、指針時,與計算機的字長、補碼運算、指令加以對照,就容易理解些。
4) 與面向?qū)ο笳Z言融合。
掌握好一門語言,可以自學(xué)其他語言。做到這點不容易,因為大學(xué)專業(yè)課的特點是學(xué)一門結(jié)一門,沒有哪所大學(xué)或哪個專業(yè)開設(shè)了所有語言,所以在語言課之間融合對照學(xué)習(xí),會收到非常好的效果。比如講到結(jié)構(gòu)體時,與面向?qū)ο笾械念悓φ眨瑢⒔Y(jié)構(gòu)體變量與對象對照,就比較好理解數(shù)據(jù)類型和類不占內(nèi)存,對象與變量占內(nèi)存了。講到函數(shù)時,與方法對照,講到函數(shù)參數(shù)時,補充面向?qū)ο笾幸玫氖褂?,對將來學(xué)習(xí)面向?qū)ο笳Z言和數(shù)據(jù)結(jié)構(gòu)非常有益。
5) 與數(shù)據(jù)庫原理融合。
程序所需數(shù)據(jù)從哪兒來?運行結(jié)果保存到哪兒去?在講到文件操作時,將C語言中用到的文件與數(shù)據(jù)庫中數(shù)據(jù)文件作比較,再聯(lián)系結(jié)構(gòu)體成員與數(shù)據(jù)庫中的字段、記錄,使學(xué)生對程序的理解更完整一些。
6) 與編譯原理融合。
在演示程序開發(fā)過程、多文件的操作、編譯預(yù)處理時,均可以聯(lián)系編譯原理中編譯器的詞法/語法分析,教師可以演示單步編譯,鼓勵學(xué)生思考編譯的過程。
7) 與高等數(shù)學(xué)、線性代數(shù)、概率論、離散數(shù)學(xué)、數(shù)值分析、運籌學(xué)等融合。
如果能將學(xué)習(xí)C語言與離散數(shù)學(xué)中的集合論、代數(shù)系統(tǒng)、圖論結(jié)合,再解決高等數(shù)學(xué)、線性代數(shù)、概率統(tǒng)計、幾何、數(shù)值分析和運籌學(xué)中的數(shù)學(xué)問題,能夠極大提高學(xué)生的興趣,也鞏固了所學(xué)的知識。
8) 與網(wǎng)絡(luò)融合。
使用C語言可以開發(fā)C/S結(jié)構(gòu)的客戶端與服務(wù)器端程序,在實訓(xùn)和實習(xí)時可以分層次進行一些高級的練習(xí),比如C/S結(jié)構(gòu)的網(wǎng)絡(luò)編程。再提出一些問題,比如如何實現(xiàn)抓圖和打印等,培養(yǎng)學(xué)生的自學(xué)習(xí)慣。
9) 與軟件工程融合。
結(jié)合專業(yè)特點,講解軟件開發(fā)不僅僅是寫代碼,還是一個模型的開發(fā)過程,對于學(xué)生將來畢業(yè)做好畢業(yè)設(shè)計與寫好畢業(yè)論文有指導(dǎo)意義。特別是軟件工程和軟件測試專業(yè)更是需要了解。
其實,我們在講授C語言程序設(shè)計時,幾乎可以和所有計算機專業(yè)課程聯(lián)系起來,比如選修課算法分析與設(shè)計,還可以和ACM/ICPC結(jié)合,通過ACM/ICPC競賽的題目尋找合適的教學(xué)切入點,有時也可以引入離散數(shù)學(xué)中的邏輯推理知識,或者構(gòu)造一種教學(xué)情境,讓大家感興趣,能被吸引住,使學(xué)生一步步跟著往前走,比如抽幾名學(xué)生排隊講排序算法。
也可以和非計算機專業(yè)課程聯(lián)系起來,比如計算機英語。同樣地,在教學(xué)過程中,融合一些新的技術(shù),比如物聯(lián)網(wǎng)、CPS計劃等,學(xué)生會更感興趣。如何融合比較教學(xué),既能深入淺出地完成教學(xué)任務(wù)又不拖延學(xué)時,需要把握好這個度。
3與計算機其他課程的融合實踐環(huán)節(jié)
除了做到融合教學(xué)外,在實踐環(huán)節(jié)上如何融合也至關(guān)重要。
1) 搭建ACM/ICPC校內(nèi)在線測評平臺。
我們采取競賽輔導(dǎo)拔高法,成立競賽班,采取“講-幫-帶”的方式,建立了鄭州輕工業(yè)學(xué)院在線測評平臺,如圖1所示。豐富了題庫,組織校內(nèi)選拔賽,教師帶隊參加競賽。
自2009年開始,我們每年舉辦兩次全校性質(zhì)的大學(xué)生程序設(shè)計競賽:12月舉辦新生程序設(shè)計競賽(個人賽)、5月舉辦一次全校程序設(shè)計競賽(組隊賽)。均有IT公司贊助,并有開幕式和頒獎儀式,極大地提高了學(xué)生的編程熱情。
參加ACM/ICPC競賽,有助于培養(yǎng)學(xué)生的抽象思維、邏輯思維、心理素質(zhì)、團隊合作和協(xié)同能力[5]。
2) 與考研結(jié)合。
我們從大一第一學(xué)期就讓學(xué)生思考自己將來的出路:工作或考研。如果工作就必須學(xué)好知識,重視實踐,提高動手能力。
3) 與操作系統(tǒng)、C++融合實訓(xùn)。
在后續(xù)的操作系統(tǒng)和C++的實訓(xùn)時,安排我們C語言程序設(shè)計課題組的教師參與實訓(xùn),使得C語言程序設(shè)計課程的學(xué)習(xí)更加長期有效。
4) 把等級考試當(dāng)做門檻。
我們把全國和河南省歷年計算機等級考試的題目穿插到平時的教學(xué)中,讓學(xué)生把握每個知識點。
5) 介紹學(xué)生參加教師的項目。
我們在授課的同時,也有心培養(yǎng)一些勤于思考用心的學(xué)生,介紹他們參與到教師的應(yīng)急系統(tǒng)、嵌入式、GIS、網(wǎng)絡(luò)等實際項目開發(fā)中,引導(dǎo)學(xué)生自學(xué)C++和Java、JSP等工具,讓他們從實踐中得到鍛煉,積累經(jīng)驗。
6) 跨學(xué)科實訓(xùn)并總結(jié)。
在第二學(xué)期期末的實訓(xùn)環(huán)節(jié),我們讓學(xué)生分組去做一些稍微大一點的題目。比如C語言語法分析模擬器、BIOS模擬器、科學(xué)型計算器、TC模擬器、Windows小游戲、信息系統(tǒng)等。在實訓(xùn)結(jié)束后,我們安排優(yōu)秀實訓(xùn)作品展示總結(jié)會,也是對一學(xué)年課程學(xué)習(xí)的總結(jié)。有很多外專業(yè)的學(xué)生自愿來參加。通過展示交流,學(xué)生看到了別人的成績,也看到了自己的差距。
4結(jié)語
通過對C語言程序設(shè)計存在問題進行思考和分析,我們結(jié)合學(xué)校實際,提出了C語言程序設(shè)計與計算機相關(guān)課程的融合教學(xué)與實踐。經(jīng)過4年的教學(xué)與實踐檢驗,取得了較好的教學(xué)效果,對C語言程序設(shè)計,以及其他程序設(shè)計語言的教學(xué)都有一定的指導(dǎo)意義。
參考文獻:
[1] 李玉梅.“C語言程序設(shè)計”課程的“教、學(xué)、做”一體化的探索與實踐[J]. 科技創(chuàng)新導(dǎo)報,2010(28):164.
[2] 朱立華,俞瓊. C語言教材建設(shè)的研究與實踐[J]. 計算機教育,2009(13):150-153.
[3] 徐小青,李曉東.“高級語言程序設(shè)計”課程教學(xué)改革與實踐[J]. 計算機教育,2009(13):46-48.
[4] 王祥瑞. C語言中的內(nèi)存泄漏分析[J]. 長春大學(xué)學(xué)報,2009(6):27-29.
[5] 武建華. 基于ACM模式的數(shù)據(jù)結(jié)構(gòu)實踐教學(xué)改革與探索[J]. 計算機教育,2009(13):114-116.
Integrated Teaching and Practice of C Language Program Design and Other Subjects of Computer
YAN Hongyan1, JIN Baohua1, ZHANG Xiaojuan2, XU Hongxia3