前言:想要寫出一篇引人入勝的文章?我們特意為您整理了C++程序設(shè)計教學(xué)方法研究范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:為了提高c++程序設(shè)計課程的教學(xué)效果,培養(yǎng)學(xué)生的程序設(shè)計思維和能力,采用有效的教學(xué)方法是非常必要的。本文基于C++程序設(shè)計課程教學(xué)現(xiàn)狀的分析,對課程教學(xué)方法進行了研究,設(shè)計了理論教學(xué)和實驗教學(xué)的教學(xué)方案,闡述了教學(xué)方案的實施細節(jié)。實踐結(jié)果表明,采用該方案組織的課程教學(xué)能夠有效提高學(xué)生的學(xué)習(xí)效果。
關(guān)鍵詞:C++;程序設(shè)計;教學(xué)方法;項目驅(qū)動
1引言
C++程序設(shè)計是南通大學(xué)計算機相關(guān)專業(yè)的專業(yè)基礎(chǔ)課。課程教學(xué)的主要目的是培養(yǎng)學(xué)生的程序設(shè)計思維和能力,為后續(xù)學(xué)習(xí)專業(yè)課程打下堅實的基礎(chǔ)。程序設(shè)計能力是計算機相關(guān)專業(yè)能力的重要組成部分[1],將直接影響學(xué)生后續(xù)課程的學(xué)習(xí)和未來發(fā)展。作為面向?qū)ο蟮某绦蛟O(shè)計語言課程,C++程序設(shè)計的內(nèi)容既包含了面向過程的程序設(shè)計,也包含面向?qū)ο蟮某绦蛟O(shè)計[2],內(nèi)容相對較復(fù)雜,學(xué)生學(xué)習(xí)有一定的難度。由于C++程序設(shè)計課程的重要性,很多教師對課程的教學(xué)方法進行了探討。陳晉音等引入翻轉(zhuǎn)課堂為C++程序設(shè)計課程設(shè)計了相應(yīng)的教學(xué)方法[3]。趙宇晴等根據(jù)認知任務(wù)分析的方法和過程,設(shè)計了C++程序設(shè)計的教學(xué)過程[4]。梁鳳蘭探討了案例教學(xué)在C++程序設(shè)計課程教學(xué)中的應(yīng)用方法[5]。針對南通大學(xué)計算機相關(guān)專業(yè)的學(xué)生,任課教師曾作了很多嘗試,但教學(xué)效果一直不太理想,課程不及格率居高不下。造成課程教學(xué)效果不佳的主要原因包括:(1)缺乏必要的課程基礎(chǔ)知識、非圖形化的編程教學(xué)及缺乏數(shù)據(jù)共享手段,造成學(xué)生學(xué)習(xí)的動力和興趣不足。(2)重理論、輕實踐的課程教學(xué)安排和考核方法導(dǎo)致部分學(xué)生通過死記硬背語法規(guī)則和典型例題來應(yīng)付考試,學(xué)生缺乏正確的學(xué)習(xí)方法。(3)面向?qū)ο蟪绦蛟O(shè)計未能貫穿整個教學(xué)過程,且學(xué)時安排過少,造成學(xué)生對面向?qū)ο蟪绦蛟O(shè)計方法的掌握普遍不好。(4)電子產(chǎn)品嚴重擠占了學(xué)生的學(xué)習(xí)時間,造成部分學(xué)生的學(xué)習(xí)時間嚴重不足[6]。為了提高C++程序設(shè)計課程的教學(xué)效果,本文基于課程教學(xué)現(xiàn)狀的分析,針對課程教學(xué)過程中所存在的問題,對課程教學(xué)進行研究和實踐。相比以理論教學(xué)為重點的教學(xué)方法研究[3-5],本文研究了教和學(xué)的整個過程,設(shè)計了適應(yīng)學(xué)生學(xué)習(xí)特點和C++知識結(jié)構(gòu)的課程教學(xué)方案。
2教學(xué)過程
2.1理論教學(xué)
理論教學(xué)的目的是使學(xué)生在熟悉C++語法規(guī)則的基礎(chǔ)上,培養(yǎng)學(xué)生程序設(shè)計思維和能力。理論教學(xué)的效果直接決定課程的教學(xué)效果。在C++課程理論教學(xué)過程中,主要從以下方面進行研究和實踐。(1)構(gòu)建學(xué)生學(xué)習(xí)的知識基礎(chǔ)。根據(jù)學(xué)習(xí)遷移理論[7],學(xué)生已有的知識會對他們接受新知識的程度影響很大。為了構(gòu)建學(xué)生學(xué)習(xí)的基礎(chǔ)知識,在課程開始階段安排4個學(xué)時講授計算機的組成、信息的表示和存儲、內(nèi)存的構(gòu)成和訪問方法以及程序的執(zhí)行過程等課程基礎(chǔ)知識,以此來支撐后續(xù)內(nèi)容的學(xué)習(xí),從而幫助學(xué)生更好地理解所學(xué)內(nèi)容。(2)激發(fā)學(xué)生的學(xué)習(xí)興趣。興趣是最好的老師[8]。如果學(xué)生對課程內(nèi)容缺乏興趣,則無法調(diào)動他們學(xué)習(xí)的積極性、主動性和探索精神。在教學(xué)過程中,從以下方面激發(fā)學(xué)生的學(xué)習(xí)興趣:①通過操作系統(tǒng)和數(shù)據(jù)結(jié)構(gòu)課程部分實驗源代碼和運行效果的展示,使學(xué)生了解C++程序設(shè)計對后續(xù)專業(yè)課程學(xué)習(xí)的作用,從而認識到學(xué)好C++程序設(shè)計是“有用”的。②向?qū)W生展示C++語言編寫的“貪吃蛇”、“五子棋”等游戲,并對源程序中部分代碼進行修改,演示修改后的效果,鼓勵學(xué)生在課程的學(xué)習(xí)過程中,根據(jù)所學(xué)內(nèi)容對相應(yīng)源程序進行修改,從而理解C++是“有趣”的。③在課程前期,通過提供學(xué)習(xí)資源和課外輔導(dǎo),給學(xué)生引入BC++和VC++兩種圖形界面設(shè)計方法,供有興趣的學(xué)生選擇學(xué)習(xí),從而理解C++是可以“圖形化”的。(3)調(diào)整課程教學(xué)內(nèi)容的組織順序。為了使學(xué)生盡早接觸文件和面向?qū)ο蟪绦蛟O(shè)計,加深學(xué)生對C++及面向?qū)ο蟪绦蛟O(shè)計的理解,在課程教學(xué)過程中,將課程內(nèi)容的組織順序調(diào)整為“基本數(shù)據(jù)類型和表達式、文件、函數(shù)、面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)、控制結(jié)構(gòu)、數(shù)組、指針、結(jié)構(gòu)體”,即將文件、函數(shù)和面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)內(nèi)容提前。課程進行過程中,要求學(xué)生在程序設(shè)計時將輸入數(shù)據(jù)首先寫入文件,程序調(diào)試時直接從文件中讀取數(shù)據(jù);在學(xué)生完成函數(shù)和面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)的學(xué)習(xí)后,后期內(nèi)容均基于面向?qū)ο蟪绦蛟O(shè)計思想和方法展開,從而將面向?qū)ο蟪绦蛟O(shè)計貫穿整個課程的學(xué)習(xí),以強化學(xué)生對面向?qū)ο蟪绦蛟O(shè)計思想和方法的理解。(4)引入項目驅(qū)動的教學(xué)方法。課程理論課時只有48學(xué)時,在課堂上完全講授所有內(nèi)容比較困難。且這種填鴨式的教學(xué)方法也不能滿足新工科“培養(yǎng)學(xué)生計算思維、學(xué)習(xí)自主性和創(chuàng)新能力”的要求[9]。為此,在教學(xué)過程引入項目驅(qū)動的教學(xué)方法[10-11]。引入若干項目供學(xué)生自由選擇,每個項目采用任務(wù)驅(qū)動的教學(xué)方法[12-13]。以學(xué)生管理系統(tǒng)為例,教師把知識點融入到項目的任務(wù)中(見表1)。學(xué)生依次完成各個獨立的任務(wù),最終完成整個項目,從而把教學(xué)方式從“以教為主”轉(zhuǎn)變成“以學(xué)為主”,以充分提高學(xué)生學(xué)習(xí)的積極性和主動性。課程教學(xué)過程的組織如圖1所示。(5)營造學(xué)生相互幫助、促進和監(jiān)督的學(xué)習(xí)氛圍。本課程的學(xué)生來自全國多個省份,地區(qū)及個體差異導(dǎo)致學(xué)生學(xué)習(xí)的積極性、主動性和能力都存在較大差異。為了營造學(xué)生相互幫助、促進和監(jiān)督的學(xué)習(xí)氛圍,在教學(xué)過程中,把學(xué)生分成若干個學(xué)習(xí)小組,每組不超過5人。在課程開始時,由學(xué)生自由組合,課程進行6周后,通過對學(xué)生學(xué)習(xí)情況的評估,將學(xué)生按學(xué)習(xí)情況從高到低分為A、B、C、D和E共5個等級,由A等級的學(xué)生從B、C、D和E等級中每個等級至多選擇一名學(xué)生,重新組成學(xué)習(xí)小組。除期末閉卷考試外,其它各項考核均既考慮小組總體情況,也考慮小組內(nèi)個體差異,以此對學(xué)習(xí)積極性不高或?qū)W習(xí)困難的學(xué)生進行幫助、促進和監(jiān)督。
2.2實驗教學(xué)
課程實驗教學(xué)的目的是鞏固學(xué)生對C++程序設(shè)計理論課程所學(xué)知識的理解。培養(yǎng)學(xué)生的程序設(shè)計、編寫和調(diào)試能力,是達到課程教學(xué)目標必不可少的組成部分。為了使學(xué)生能夠有效地調(diào)試程序,編寫出有質(zhì)量的程序,實驗教學(xué)過程中采取了以下措施:(1)通過對“C++常見錯誤及解決方法”的分析和集成環(huán)境中程序調(diào)試方法的講解,培養(yǎng)學(xué)生識別出錯原因和改錯的能力。(2)通過增加程序閱讀環(huán)節(jié)和交換調(diào)試,培養(yǎng)學(xué)生程序閱讀和調(diào)試能力。(3)通過制定實驗評分規(guī)則,鼓勵學(xué)生對同一問題探究多種解決方法,并分析每種方法的時間效率和空間效率,以提高編程能力和算法效率意識。
3教學(xué)效果
以上教學(xué)方法在2020級“數(shù)據(jù)科學(xué)與大數(shù)據(jù)技術(shù)”專業(yè)(共63人)經(jīng)一個學(xué)期的實踐,取得了較好的效果。所有小組均完成了項目開發(fā),大部分學(xué)生較好地掌握了C++程序設(shè)計的基礎(chǔ)知識和程序設(shè)計方法。課程考核成績相對2019級(共62人)有了一定的提高(成績分布情況見表2)。期末考核平均得為79.14分,90分及以上的學(xué)生所占比例為23.81%,僅有1位學(xué)生不及格(占比1.59%)。從教學(xué)過程和效果來看,課程教學(xué)方案有效的主要原因包括:(1)學(xué)習(xí)基礎(chǔ)的構(gòu)建減少了學(xué)生的畏難情緒。(2)對C++認識的加深和項目驅(qū)動教學(xué)方法的引入,明顯增強了學(xué)生的學(xué)習(xí)積極性和主動性。(3)課程內(nèi)容組織順序的調(diào)整和實驗教學(xué)的改革措施,加強了學(xué)生對面向?qū)ο蟪绦蛟O(shè)計思想的理解,并增加了課程的趣味性。(4)小組學(xué)習(xí)的組織方式,有效地幫助和督促了少數(shù)學(xué)習(xí)困難的學(xué)生。
4結(jié)束語
本文首先對南通大學(xué)計算機相關(guān)專業(yè)C++程序設(shè)計課程教學(xué)的現(xiàn)狀進行了研究,分析了教學(xué)效果不佳的原因,然后從理論教學(xué)和實驗教學(xué)方面進行教學(xué)過程和方法的研究和實踐。實踐結(jié)果表明,本文設(shè)計的教學(xué)方案,能有效地激發(fā)學(xué)生的學(xué)習(xí)積極性和主動性,提高了教學(xué)效果,學(xué)生的程序設(shè)計能力有了一定程度的提高。但仍然有部分學(xué)生沒有達到課程要求。在以后的教學(xué)中,將通過設(shè)計不同難度的項目和加強階段性評估來進行分層教學(xué),以更好地幫助學(xué)習(xí)困難的學(xué)生。
作者:陳文蘭 單位:南通大學(xué)信息科學(xué)技術(shù)學(xué)院