馬小蕾
(內(nèi)蒙古民族大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,內(nèi)蒙古 通遼 028000)
在教學(xué)方式上存在的問題由來已久,工程教育理念滯后[1]。在C++語言的教學(xué)中,理論學(xué)時偏多,實(shí)驗(yàn)學(xué)時較少。從內(nèi)蒙古民族大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)近兩年年的達(dá)成度報告上來看,“高級語言程序設(shè)計(jì)”的課程目標(biāo)分為以下三類。
課程目標(biāo)1:掌握計(jì)算機(jī)中數(shù)據(jù)的表示形式、數(shù)據(jù)類型與運(yùn)算符的基本概念;掌握函數(shù)、數(shù)組、指針的基本概念;掌握結(jié)構(gòu)體類型、類和對象、繼承和派生的基本概念。能夠?qū)?shí)際問題進(jìn)行抽象描述,將實(shí)際問題抽象轉(zhuǎn)化為計(jì)算機(jī)可處理的問題并對其建模求解。
課程目標(biāo)2:掌握程序的三種基本控制結(jié)構(gòu);掌握面向過程和面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想,能對具體問題進(jìn)行算法表述,并能結(jié)合相關(guān)科學(xué)原理和數(shù)學(xué)模型正確表達(dá)計(jì)算機(jī)領(lǐng)域復(fù)雜工程問題。
課程目標(biāo)3:掌握面向過程和面向?qū)ο蟪绦蛟O(shè)計(jì)的方法和技巧,并能熟練進(jìn)行程序設(shè)計(jì);具有對計(jì)算機(jī)系統(tǒng)自底向上和自頂向下的設(shè)計(jì)開發(fā)能力。
對學(xué)生本門課程的評價和評分采取下述方法。
對課程目標(biāo)的達(dá)成情況采用定性與定量相結(jié)合的評價方式。
(1)定性評價。學(xué)院評價小組及“高級語言程序設(shè)計(jì)”課程組對課程目標(biāo)及課程目標(biāo)分解能否有效支撐畢業(yè)要求相關(guān)指標(biāo)點(diǎn),課程內(nèi)容、教學(xué)方法能否有效支持課程目標(biāo)實(shí)現(xiàn),課程考核方式、主要評價依據(jù)是否合理進(jìn)行了多次討論和修訂,在課程期末考試階段,采用機(jī)考組卷方式,對機(jī)考題目類型進(jìn)行確認(rèn),對是否覆蓋指標(biāo)點(diǎn)及課程目標(biāo),是否側(cè)重非標(biāo)試題注重能力考核等內(nèi)容進(jìn)行分析。
(2)定量評價。定量評價通過計(jì)算課程目標(biāo)達(dá)成度完成。
(1)課堂表現(xiàn)成績:主要考核課上回答問題、做練習(xí)和小組討論的參與情況,主要評價依據(jù)是課堂提問、課堂練習(xí)和小組討論等。
(2)在線測試成績:主要考核對每堂課知識點(diǎn)的預(yù)習(xí)以及課后的復(fù)習(xí)情況,主要評價依據(jù)是網(wǎng)上測試。
(3)作業(yè)成績:主要考核學(xué)生對課堂知識點(diǎn)的復(fù)習(xí)、理解和掌握程度,主要評價依據(jù)是網(wǎng)上提交作業(yè)。
(4)期末考試成績:主要考核學(xué)生對面向過程程序設(shè)計(jì)的基礎(chǔ)知識、類與對象的基本概念和程序設(shè)計(jì)方法的掌握程度,主要評價依據(jù)是機(jī)考形式考試,主要題型為單項(xiàng)選擇題、判斷題、程序填空題、程序改錯題和程序設(shè)計(jì)題。
在課程教學(xué)大綱中按優(yōu)秀、良好、合格、不合格四個檔次給出了成績構(gòu)成項(xiàng)的詳細(xì)評分標(biāo)準(zhǔn),依據(jù)學(xué)生對各課程目標(biāo)相關(guān)知識點(diǎn)的掌握、運(yùn)用、動手操作程度以及課堂整體表現(xiàn)情況、在線測試結(jié)果、作業(yè)評判結(jié)果、期末考試成績等進(jìn)行量化打分,最終計(jì)算出單個課程目標(biāo)達(dá)成度評價值,具體每個成績構(gòu)成項(xiàng)的量化評分標(biāo)準(zhǔn)細(xì)則見課程的教學(xué)大綱。
針對課程目標(biāo)以及評價標(biāo)準(zhǔn),分析學(xué)生成績,總結(jié)近兩年的本院學(xué)生在本門課程上存在的問題。由于基礎(chǔ)學(xué)時過長,對學(xué)生的能力培養(yǎng)泛化,面向過程和面向?qū)ο髢呻A段的教學(xué)設(shè)置,使得學(xué)生產(chǎn)生基礎(chǔ)遺忘等問題。在教學(xué)中,將程序設(shè)計(jì)基礎(chǔ)和面向?qū)ο笳n程進(jìn)行合并,設(shè)置為高級語言課程;將教學(xué)內(nèi)容分為兩大板塊,面向過程部分及面向?qū)ο蟛糠帧Un程采用2019版培養(yǎng)方案和2019版教學(xué)大綱指導(dǎo)教學(xué),設(shè)置明確的課程目標(biāo),將教學(xué)內(nèi)容與學(xué)生能力培養(yǎng)相對應(yīng);在大綱中設(shè)置多樣化的過程性考核方式,全面評價學(xué)生的學(xué)習(xí)情況;制作課程目標(biāo)達(dá)成情況分析報告,對課程的教與學(xué)進(jìn)行定性定量評價。
以2020-2021第一學(xué)期為例,課程目標(biāo)1、2、3中均有未達(dá)到預(yù)定期望值的學(xué)生(見圖1圖2),并隨著課程目標(biāo)難度的增加,未達(dá)預(yù)期學(xué)生人數(shù)顯著升高。這表明學(xué)生在學(xué)習(xí)過程中,對實(shí)際問題的數(shù)據(jù)抽象能力不足,不能很好地進(jìn)行思維轉(zhuǎn)換。其中課程目標(biāo)1未達(dá)到預(yù)期人數(shù)為31人,占比41.3%。末考的平均分相對不高,對應(yīng)的試題類型為程序改錯1題,表明部分學(xué)生基本理論知識尚不扎實(shí),沒有很好地進(jìn)行預(yù)習(xí)和復(fù)習(xí)。課程目標(biāo)2未達(dá)到預(yù)期人數(shù)為38人,占比50.6%,表明有一半以上的同學(xué)對算法和編程理念掌握不扎實(shí),對算法類編程知識掌握不是很好。課程目標(biāo)3未達(dá)預(yù)期人數(shù)為38人,占比50.6%,表明有一半以上同學(xué)對類和對象的概念掌握不牢固,類的設(shè)計(jì)不能很好地完成。
圖1 課程目標(biāo)1達(dá)成情況
圖2 課程目標(biāo)2達(dá)成情況
個體分析:綜合學(xué)生成績分析,在對不及格試卷和未達(dá)到預(yù)定期望同學(xué)試卷進(jìn)行分析發(fā)現(xiàn),學(xué)生對于程序設(shè)計(jì)問題不具備良好的數(shù)據(jù)抽象能力,不能很好地建立數(shù)據(jù)模型;并且對于循環(huán)語句、函數(shù)問題、類和對象等基礎(chǔ)知識掌握不牢固。在課程目標(biāo)3未達(dá)到預(yù)期的38人當(dāng)中,絕大部分對類的程序設(shè)計(jì)題目不能作答,僅能進(jìn)行數(shù)據(jù)類型的定義,算法設(shè)計(jì)部分基本為空白。在對不及格學(xué)生的統(tǒng)計(jì)過程中發(fā)現(xiàn),基本知識的掌握、數(shù)據(jù)類型的定義都不是很好掌握,特別是程序設(shè)計(jì)題目并未作答,反映出部分學(xué)生學(xué)習(xí)興趣度不高,缺乏獨(dú)立學(xué)習(xí)問題的能力。
在課堂上,教師以講練結(jié)合的方式為主,但理論講解時間偏長,對于剛?cè)雽W(xué)初次接觸編程語言的大一學(xué)生而言,晦澀難懂。由于并未積極的采取科學(xué)的教學(xué)方式,缺乏新意,導(dǎo)致課堂授課效果不佳,部分學(xué)生對學(xué)習(xí)失去了興趣,對自身產(chǎn)生了懷疑。這與創(chuàng)新能力培養(yǎng)人才培養(yǎng)目標(biāo)的理念不符。
部分學(xué)生學(xué)習(xí)主動性和自覺性差。在教學(xué)中雖然采取講練結(jié)合,輔以實(shí)驗(yàn),但由于C++語言理論枯燥,難度大,學(xué)生只是初步掌握了C++語法知識和調(diào)試技巧,缺乏主動學(xué)習(xí)和構(gòu)建知識的動力,不能獨(dú)立地對問題進(jìn)行抽象并運(yùn)用知識加以解決,有惰性,學(xué)習(xí)氛圍和學(xué)習(xí)風(fēng)氣不濃。
我院現(xiàn)有專業(yè)課教師雖然具有深厚的理論功底,但是缺乏大型工程實(shí)踐經(jīng)驗(yàn),在實(shí)際教學(xué)過程中會出現(xiàn)重理論輕實(shí)踐的問題。同時由于師資不足,專業(yè)課老師授課學(xué)時較多,缺少進(jìn)修和提高自身教學(xué)水平的機(jī)會,很大程度上影響了教學(xué)質(zhì)量。
在今后的教學(xué)中需要增加基本理論知識的測試,以示例形式引導(dǎo)學(xué)生學(xué)習(xí),培養(yǎng)興趣;進(jìn)一步增加類和對象的教學(xué)內(nèi)容,多展示實(shí)例,以小組討論形式調(diào)動學(xué)生積極性并進(jìn)行分析解答,實(shí)時評價,及時發(fā)現(xiàn)問題并解決問題,提高教學(xué)質(zhì)量。
根據(jù)以往教學(xué)情況,加強(qiáng)課前和課后自測,增加案例、圖例,開拓學(xué)生視野,調(diào)動學(xué)生積極性,讓學(xué)生主動積極參與進(jìn)來。
從多視角來看,大部分同學(xué)達(dá)到了學(xué)習(xí)預(yù)期目標(biāo)。對于初次接受這種未知領(lǐng)域的編程技術(shù),學(xué)生的接受能力符合預(yù)期,可以在課程末期進(jìn)行工程性實(shí)踐,讓學(xué)生理解這門課程的實(shí)際應(yīng)用。具體措施如下。
對于初入大學(xué)的第一門專業(yè)課,學(xué)生的興趣程度,從某種意義上講,取決于任課老師,只要學(xué)生產(chǎn)生興趣,就會主動地學(xué)習(xí)這門課程,也會為后續(xù)的專業(yè)學(xué)習(xí)打下良好的基礎(chǔ)。因此任課教師的第一堂課要精心準(zhǔn)備、精心講授,以激發(fā)學(xué)生正確的學(xué)習(xí)動機(jī)。隨著“十三五”規(guī)劃的完成與“十四五”的開始,IT行業(yè)是發(fā)展的重要行業(yè),IT人員的薪資持續(xù)增高。無論是就業(yè)、考研、自主創(chuàng)業(yè),C++語言和面向?qū)ο缶幊潭际怯?jì)算機(jī)專業(yè)畢業(yè)生的基本要求。第一堂課可以展示我院優(yōu)秀學(xué)員創(chuàng)業(yè)情況,就業(yè)情況,同時展示一些小游戲,圖像的處理具體說明為什么要學(xué)習(xí)C++語言,它的應(yīng)用場景有哪些,激發(fā)學(xué)生的學(xué)習(xí)動力。
培養(yǎng)學(xué)生的編程思想是C++語言程序設(shè)計(jì)教學(xué)的重要目標(biāo),掌握C++語言相關(guān)技術(shù),具備編程思想,可以將理論知識轉(zhuǎn)化為實(shí)際運(yùn)用,從而提高分析問題、解決實(shí)際開發(fā)問題的能力。
從歷屆的教學(xué)評價和學(xué)生反饋的情況來看,學(xué)生從離開高中那種題海模式到大一學(xué)習(xí)這門需要理論和實(shí)際相結(jié)合的課程,這種跨度對學(xué)生們來說較大,因此需要教師們在引導(dǎo)教學(xué)上多下功夫。案例教學(xué)在學(xué)校其他工科課程中已經(jīng)起到了良好的效果,但不同的學(xué)科和不同層次的學(xué)生應(yīng)采取相應(yīng)的教學(xué)方式,所以如何運(yùn)用案例教學(xué)是至關(guān)重要的。好的案例和授課方式能激發(fā)學(xué)生的求知欲,有助于學(xué)生理解C++語言枯燥的語法知識,同時也能提高分析問題解決問題的能力。因此采取案例教學(xué),對于學(xué)院的學(xué)生來說,首要是具有趣味性,激發(fā)學(xué)生的學(xué)習(xí)興趣,增強(qiáng)課堂教學(xué)教學(xué)效果;其次案例的選擇要符合教材的特點(diǎn),具有針對性,由淺入深。
首先,在第一堂課的講解中,可以展示采用C++語言編寫的游戲,例如,人機(jī)大戰(zhàn)。讓學(xué)生們討論,這個游戲存在的缺陷。從而引出這個游戲所用到的C++語言的知識有哪些,也是這本書所學(xué)習(xí)的內(nèi)容,當(dāng)本學(xué)期課程結(jié)束時,同學(xué)們會獨(dú)立開發(fā)出類似人機(jī)大戰(zhàn)的游戲。而在每堂課的講解時,需要根據(jù)教學(xué)大綱、教學(xué)內(nèi)容,實(shí)時配套相應(yīng)的案例。例如,在講解“子函數(shù)”時,可以以學(xué)生們感興趣的基因編輯為例,引入動態(tài)規(guī)劃算法中的編輯距離,結(jié)合課件具體講解子函數(shù)的用途、定義的格式等,抓住學(xué)生的注意力,提高教學(xué)效率。
其次,教學(xué)過程應(yīng)該是多樣化的、靈活的、因人而異,不能局限于教師講解,要以多種形式輔助。例如,在冒泡排序的學(xué)習(xí)中,由于排序過程比較抽象,可以用視頻的形式展現(xiàn),網(wǎng)上有許多關(guān)于冒泡排序的舞蹈視頻,生動形象,比教師直接講解對學(xué)生的觸動和理解影響更大一些。
再次,案例教學(xué)也不應(yīng)局限現(xiàn)場教學(xué),在學(xué)生課上對案例深入了解并掌握教師所傳授的理論知識后,教師可以適當(dāng)布置程序設(shè)計(jì)任務(wù)、線上作業(yè),PTA平臺練習(xí)等。學(xué)生模仿課上的教學(xué)案例,完成本次布置任務(wù)的程序設(shè)計(jì)之作。可以根據(jù)案例的難度,動態(tài)地讓學(xué)生選擇自主設(shè)計(jì)或者是小組合作設(shè)計(jì),開展探究性的高級語言程序設(shè)計(jì)實(shí)踐活動,教師適當(dāng)輔以指導(dǎo),讓學(xué)生也能夠掌握C++語言程序設(shè)計(jì)的方法和要領(lǐng)。
最后,在學(xué)生完成小組討論和程序設(shè)計(jì)以及線上作業(yè)后,教師應(yīng)對本次運(yùn)用案例情況做出科學(xué)總結(jié),說明學(xué)生設(shè)計(jì)存在的問題和優(yōu)點(diǎn),對存在的問題給出應(yīng)對解決措施,同時要鼓勵學(xué)生,并對優(yōu)秀的作品進(jìn)行展示,提高學(xué)生的積極性。
本文簡單分析了內(nèi)蒙古民族大學(xué)計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí)“高級語言程序設(shè)計(jì)”課程的現(xiàn)狀;為培養(yǎng)適合當(dāng)前社會需要的人才,提升本院學(xué)生的競爭力,提出了符合本院學(xué)生特點(diǎn)的案例教學(xué)法,以調(diào)動學(xué)生的積極性,激發(fā)學(xué)生學(xué)習(xí)的主動性,打好編程語言的基礎(chǔ)?!?/p>