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