陳 琨
(貴州大學(xué)計算機科學(xué)與技術(shù)學(xué)院 貴州·貴陽 550025)
當前,各高校普遍為非計算機專業(yè)學(xué)生開設(shè)了多種計算機公共基礎(chǔ)課程,包括通識教育課(如“大學(xué)計算機基礎(chǔ)”)及通識拓展教育課(如程序設(shè)計類課程、計算機應(yīng)用類課程、能力拓展類課程等)。其中,程序設(shè)計類公共課一般開設(shè)C 語言、Python語言、Java 語言、VB 語言等課程,其目的是讓學(xué)生掌握程序設(shè)計的基本思想與方法,使學(xué)生可以更好地理解和應(yīng)用計算機軟件,培養(yǎng)學(xué)生利用計算機分析問題、解決問題的能力,提高學(xué)生的計算思維能力。這對于任何專業(yè)都很重要,對學(xué)生自身的發(fā)展和后續(xù)學(xué)習(xí)均大有益處。
作為通識拓展類課程,程序設(shè)計公共課與同一計算機專業(yè)課程相比,在教學(xué)目標、課時安排、學(xué)生基礎(chǔ)等方面都有所區(qū)別。現(xiàn)狀如下:
(1)課時。隨著學(xué)分制在大多數(shù)高校的推進,程序設(shè)計類公共課的授課學(xué)時數(shù)普遍減少,一般從之前的48~54 學(xué)時減少到32 學(xué)時。以貴州大學(xué)的程序設(shè)計類公共課為例,C 語言程序設(shè)計課程的學(xué)時數(shù)為48,而VB、Java、Web 程序設(shè)計等課程的學(xué)時數(shù)皆為32。
大部分程序設(shè)計語言涉及的概念、知識點抽象繁多,語法規(guī)則較復(fù)雜,用法靈活容易出錯,初學(xué)者短時間內(nèi)較難掌握。同時,由于程序設(shè)計類課程實踐性很強,必須給學(xué)生留出上機練習(xí)的時間,使得真正的教師講授時間只有規(guī)定學(xué)時數(shù)的一半左右。如何在有限的學(xué)時內(nèi)較為完整地教授完課程內(nèi)容并取得較好的教學(xué)效果,對于教師來說是一個需要認真規(guī)劃和設(shè)計的任務(wù)。
(2)學(xué)生背景。程序設(shè)計類公共課的授課對象是廣大非計算機專業(yè)學(xué)生,這些學(xué)生學(xué)科背景和認知程度差異較大。比如,大部分文科類、藝體類學(xué)生理科知識基礎(chǔ)較為薄弱、邏輯思維能力相對較差,理解和學(xué)習(xí)程序設(shè)計的基本思想和方法難度較大。而理工科學(xué)生如電子技術(shù)類、工程技術(shù)類等專業(yè)的學(xué)生,理科知識背景與計算機專業(yè)學(xué)生相似,學(xué)習(xí)程序設(shè)計類課程相對有優(yōu)勢。這就造成了程序設(shè)計類公共課的授課對象層次差異很大,教師在講授時很難兼顧所有、因材施教。
此外,學(xué)生對于程序設(shè)計類公共課的重視程度普遍不夠。一是認為這類課程學(xué)了沒什么用,對自己的專業(yè)沒什么輔助,投入的學(xué)習(xí)時間相對較少,大多局限在課堂的教學(xué)與實驗環(huán)節(jié),讓本身課時有限的教學(xué)雪上加霜;二是由于程序設(shè)計是要求邏輯思維比較強的一類課程,很多概念和方法對于初學(xué)者來說比較難以理解,學(xué)生感覺這類課程難學(xué)、難懂,沒有學(xué)好課程的信心,產(chǎn)生混學(xué)分的想法。
(3)授課模式和實驗。傳統(tǒng)的程序設(shè)計公共課授課模式是教師講、學(xué)生聽,然后學(xué)生做作業(yè)、上機練習(xí)。教師很難在有限的課時內(nèi)將所有知識點有質(zhì)有量地講授完,也很難根據(jù)不同學(xué)生的學(xué)習(xí)情況調(diào)整教學(xué)進度和難度,教學(xué)過程針對性不強,教學(xué)效果也差強人意。學(xué)生學(xué)習(xí)缺乏積極主動性,在聽課過程中可能由于某個知識點沒有掌握而影響后續(xù)學(xué)習(xí),影響整個課程的學(xué)習(xí)效果。
在教學(xué)安排上一般按照常量、變量、數(shù)據(jù)類型、語句的順序講解,一開始就介紹很多繁雜的概念,這些細碎的知識點抽象、晦澀,學(xué)生并不清楚這些知識有什么用,只能死記硬背,很快就產(chǎn)生畏難情緒,失去學(xué)習(xí)興趣。
實驗多為演示性、驗證性實驗,針對具體的知識點而設(shè),相互之間缺乏關(guān)聯(lián),學(xué)生在整個課程結(jié)束后不知道如何編寫一個完整的實用程序。
(4)考核方式。程序設(shè)計類公共課通常采取筆試的方式進行考核,整個班級使用同一試卷進行考試,考后由教師統(tǒng)一改卷評分,作為學(xué)生的期末成績。由于程序設(shè)計類課程的實踐性特性,筆試方式實際上并不能很好地反映出考生的實際編程能力和水平,而且不易規(guī)避考試中的違規(guī)、作弊等行為。
向?qū)W生闡明為什么非計算機專業(yè)學(xué)生也要學(xué)點兒程序設(shè)計。此類課程雖然不是非計算機專業(yè)學(xué)生的專業(yè)課,但在培養(yǎng)學(xué)生嚴密的邏輯思維能力、利用計算機解決本專業(yè)問題的能力方面有著非常重要的作用。
同時,程序設(shè)計類公共課一般都與全國計算機等級考試二級考試的科目相對應(yīng),學(xué)生學(xué)完該類公共課后如果有針對性地進行練習(xí)與復(fù)習(xí),通過相應(yīng)計算機等級考試就不是難事了。而全國計算機二級證書號稱當代大學(xué)生必備的三大證書之一,以此為目標,可以大大激發(fā)學(xué)生的學(xué)習(xí)積極性。
對于程序設(shè)計類公共課課時不足的問題,可以采用課堂教學(xué)加微課教學(xué)的方式進行解決。微課指圍繞教學(xué)過程中的某知識點或重點難點錄制簡短的授課微視頻(一般10~15 分鐘),并輔以微教案、微課件、微練習(xí)等配套教學(xué)資源,提供給學(xué)生在課外學(xué)習(xí)。這樣,相當于將有限的課堂學(xué)時無限延伸到了課堂外。同時,學(xué)生可以根據(jù)自己的情況來選擇學(xué)習(xí)時間、地點和內(nèi)容,對于課堂上沒聽懂的知識點或難點,可以課后自行反復(fù)收看收聽,這樣也解決了學(xué)生之間計算機基礎(chǔ)不均衡、層次差別大的問題。
對于學(xué)生認為課程枯燥難懂、缺乏興趣等問題,可以適當改變講授順序和模式,采用案例教學(xué)的方式加以改善。案例教學(xué)是選取現(xiàn)實中真實的問題,由教師帶領(lǐng)學(xué)生共同探討、分析問題,在解決問題的過程中循序漸進地引入知識點的教學(xué)。這種教學(xué)方式不把重點放在瑣碎的語法規(guī)則的講述上,而是通過富含知識點的有趣案例引發(fā)學(xué)生想要解決問題的興趣,在求解問題的過程將算法分析、涉及到的語法知識、編程所用到的程序設(shè)計方法和技巧糅合在一起進行講解,問題解決完相應(yīng)知識也就掌握了。案例教學(xué)能培養(yǎng)學(xué)生主動學(xué)習(xí)和探索的意識,增加學(xué)習(xí)趣味,提高學(xué)生分析問題、解決問題的能力和計算思維能力。
程序設(shè)計類課程是實踐性很強的課程,實驗環(huán)節(jié)在整個課程的教學(xué)中起著舉足輕重的作用。為了使學(xué)生充分領(lǐng)悟程序設(shè)計的基本思想與方法,提高運用計算機解決實際問題的能力,可采用分層次實驗的模式。分層次實驗?zāi)J郊磳嶒灧譃閹追N不同的層次,各層次的實驗教學(xué)目標不同,選取案例的標準也不同:
(1)驗證型實驗。針對程序設(shè)計語言的基本語法、語句及程序基本結(jié)構(gòu)進行練習(xí),通過訓(xùn)練使學(xué)生掌握基本語句和語法,鞏固教材知識點,學(xué)習(xí)編程的基本思路和方法,學(xué)會編寫比較簡單的程序。例如學(xué)生成績輸入、學(xué)生成績打印等題目。
(2)設(shè)計型實驗。針對程序設(shè)計中常見的算法及應(yīng)用進行練習(xí),培養(yǎng)學(xué)生應(yīng)用多個知識點的能力。選用有趣的題目,例如學(xué)生成績排序、雞兔同籠、密碼驗證等題目,增加實驗的趣味性。
(3)綜合型實驗。針對課程的綜合知識和技能進行練習(xí),以實際應(yīng)用開展實驗教學(xué),通過編制完整的實用程序,培養(yǎng)學(xué)生的綜合分析能力、上機調(diào)試能力、查閱資料能力等。例如學(xué)生成績管理系統(tǒng)、通訊錄管理系統(tǒng)等題目。
為了取得好的實驗教學(xué)效果,在不同層次實驗的設(shè)計上應(yīng)采取由淺入深、循序漸進的策略。學(xué)生先從編制簡單程序開始,逐漸利用新知識對之前程序進行完善和功能添加,最后形成功能較完善、設(shè)計較合理、代碼較長的實用程序。這種步步推進的方式可以降低程序設(shè)計難度,幫助學(xué)生融會貫通掌握各章節(jié)知識,鍛煉學(xué)生的綜合運用能力,調(diào)動學(xué)生的參與積極性,打消畏難情緒,樹立信心。
傳統(tǒng)的紙質(zhì)考試方式弊端顯而易見,以機試取代筆試是必然趨勢。智能化的考試系統(tǒng)可以考核學(xué)生的實際編程能力、對課程知識的掌握程度,反映學(xué)生的真實水平,可以減少考場作弊違規(guī)行為,可以將教師從繁重的出卷、閱卷等工作中解脫出來,減輕教師的工作負擔、提高工作效率,還可以對易錯知識點等進行統(tǒng)計匯總,便于教師掌握學(xué)生的總體情況,進行有針對性的教學(xué)改進。
以貴州大學(xué)的“C語言程序設(shè)計”公共課為例,該課程總評成績由平時成績與期末考試成績綜合計算而得。平時成績占20%,根據(jù)學(xué)生的平時作業(yè)、實驗、考勤情況,由教師打分;期末成績占80%,使用自行研發(fā)的C 語言考試系統(tǒng)進行考試。該系統(tǒng)使用本院教師出題并錄入的試題庫,包括單選題、多選題、判斷題和編程題等題型,可實現(xiàn)根據(jù)指定的試卷難度、題型分值、知識點分布等標準進行隨機組卷并自動評分,體現(xiàn)快速、準確、公正等特點。
程序設(shè)計類課程是高校針對非計算機專業(yè)學(xué)生開設(shè)的公共課程,由于其不同于計算機專業(yè)課的特性,以及傳統(tǒng)教學(xué)模式中存在的一些問題,使得其教學(xué)效果普遍不盡如人意。文章針對這些問題提出了相應(yīng)的改進措施和建議。通過師生的不懈努力和探索,一定能將該類課程的教學(xué)質(zhì)量提高到一個新的水平。