摘要:C++是一門至關(guān)重要的專業(yè)基礎(chǔ)課程,對計算機專業(yè)學生后續(xù)的學習具有深遠的影響。本文深入剖析了C++程序設(shè)計課程在傳統(tǒng)教學模式下存在的問題,并依據(jù)C++程序設(shè)計課程的獨特性質(zhì),結(jié)合個人教學實踐,將“啟發(fā)式”與“案例驅(qū)動”教學法相融合,提出了一種基于啟發(fā)式的程序設(shè)計教學改革實踐探索方案,這對C++程序設(shè)計教學方法的改進具有顯著的參考價值。
關(guān)鍵詞:C++程序設(shè)計;啟發(fā)式;教學方法;教學改革實踐
中圖分類號:G642 文獻標識碼:A
文章編號:1009-3044(2024)23-0161-02
開放科學(資源服務(wù))標識碼(OSID)
0 引言
C++程序設(shè)計不僅是計算機專業(yè)學生的專業(yè)基礎(chǔ)必修課程,在專業(yè)人才培養(yǎng)體系中占據(jù)核心地位,而且隨著教育的發(fā)展,它也逐漸成為越來越多非計算機專業(yè)的公共基礎(chǔ)必修課程,其重要性日益凸顯。掌握程序設(shè)計是深入理解計算機及其工作原理的關(guān)鍵,而C++程序設(shè)計的扎實基礎(chǔ)對后續(xù)專業(yè)學習具有不可或缺的支撐作用[1]。
1 現(xiàn)狀分析
C++程序設(shè)計在整個專業(yè)教育體系中占據(jù)舉足輕重的地位。然而,傳統(tǒng)的教學方法往往側(cè)重語法知識點的灌輸,這種教學方式因內(nèi)容枯燥、難以理解,導(dǎo)致學生學習興趣普遍不高。部分學生不得不依賴死記硬背來應(yīng)對考試[2-3],教學效果不盡如人意。此外,C++復(fù)雜的語法規(guī)則使得學生在學習過程中容易出錯,進而產(chǎn)生畏難情緒。
為了更全面地了解學生的學習狀況,我們針對學校部分學生進行了隨機問卷調(diào)查。調(diào)查結(jié)果顯示,學生對C++的學習普遍感到困難,缺乏興趣,具體表現(xiàn)為4種情況:1) 感興趣、能聽懂、想學;2) 不感興趣但能聽懂;3) 不感興趣但能部分聽懂;4) 不想聽、想放棄。統(tǒng)計結(jié)果如表1所示。
根據(jù)統(tǒng)計表做成更直觀的統(tǒng)計圖,如圖1所示。
通過對學生學習興趣情況的分析及與學生的訪談,可以發(fā)現(xiàn),絕大部分學生對C++程序設(shè)計這門課程持有畏懼態(tài)度,且缺乏興趣。這主要源于兩方面原因:一方面,C++程序設(shè)計課程本身邏輯性強且內(nèi)容較為抽象,給學生理解帶來了一定的難度;另一方面,傳統(tǒng)的教學模式往往偏重知識點的直接講授,而缺乏足夠的啟發(fā)和引導(dǎo),導(dǎo)致這些枯燥的知識點難以有效激發(fā)學生的學習興趣[4]。
為了更好地了解學生對不同類型知識點的掌握情況,通過對學生期末考試不同題型的得分情況進行統(tǒng)計,結(jié)果如表2所示。
將統(tǒng)計表制成柱狀統(tǒng)計圖,如圖2所示。
通過對不同類型題目學生掌握情況的分析,我們可以發(fā)現(xiàn),學生在選擇題、填空題、判斷題等基礎(chǔ)性知識點上掌握較好,得分相對較高;然而,在動手能力要求較高的程序分析題、程序設(shè)計題上則掌握較差,得分相對較低。這一現(xiàn)象揭示了學生在學習過程中可能更多是為了應(yīng)對考試而采取死記硬背的方式,并未真正理解和內(nèi)化知識,因此難以做到學以致用,更無法實現(xiàn)靈活應(yīng)用。這與我們一直倡導(dǎo)的素質(zhì)教育理念相悖。
基于上述分析可以看出,學生對C++程序設(shè)計課程的掌握并不理想,而該課程在整個專業(yè)體系中的重要性又是不容忽視的。因此,對C++程序設(shè)計課程的教學改革勢在必行。
2 基于啟發(fā)式的C++程序設(shè)計教學改革實踐探析方案
針對C++程序設(shè)計教學中存在的問題,我們需要積極尋求切實可行的教學改革實踐探析方案。啟發(fā)式教學是指教師根據(jù)教學目標,遵循教學規(guī)律,在教學過程中依據(jù)學習的客觀規(guī)律,通過引導(dǎo)、指導(dǎo)、開導(dǎo)、啟示、激發(fā)學生的學習興趣,從具體問題出發(fā),通過巧設(shè)懸念,積極引導(dǎo)學生的求知欲,激發(fā)學生學習興趣,形成以學生自主學習為主體,教師進行適當引導(dǎo)的良好互動氛圍,培養(yǎng)學生自主學習能力和分析解決問題能力,讓學生在一種成就感的氛圍中尋求解題方法[5-6]。下面以一道編程題為例,說明具體實現(xiàn)過程。
2.1 提出問題
在教授數(shù)組這一章節(jié)時,由于數(shù)組是一個全新的概念,較為抽象,學生往往難以熟練掌握。此時,教師可以通過一些學生感興趣的實際例子來引導(dǎo)學生主動思考。例如,教師可以提出這樣的問題:“大家平時在電腦上玩撲克牌游戲時,是否思考過電腦是如何實現(xiàn)洗牌的呢?如果讓你來設(shè)計,你會如何設(shè)計?撲克牌的花色和數(shù)字又該如何存儲呢?”接著,教師可以以52張牌為例,引導(dǎo)學生設(shè)計一個簡單的洗牌算法。通過這樣的方式,不僅能激發(fā)學生對數(shù)組這一知識點的興趣,促使他們獨立思考,還能在解決問題后給予他們成就感,進一步加強其學習興趣。同時,這個過程也是對數(shù)組知識點的一次鞏固練習。
2.2 教師給出提示,學生自主分析
提出問題之后,首先給予學生兩分鐘時間進行思考,同時老師進行適當?shù)姆治觯涸诓豢紤]大小王的情況下,總共有52張牌,分為四種花色{紅桃、黑桃、梅花、方塊},每種花色從A到K共有13張牌。可以建議學生按照“紅桃”“黑桃”“梅花”“方塊”的順序給這52張牌編號,其中紅桃A編號為0、紅桃2編號為1,以此類推,直至方塊K編號為51。
隨后,老師繼續(xù)提問以引導(dǎo)學生深入思考:“這52個編號應(yīng)該如何存放呢?”鼓勵學生回答,并通過師生之間的互動,自然地引出使用數(shù)組來存儲這些編號的概念。
最后,老師引導(dǎo)學生進入下一步的思考:“既然是洗牌,那么我們的目標就是將這52個編號隨機地放入數(shù)組中。這里,我們就需要用到隨機函數(shù)。”通過老師的引導(dǎo)以及師生之間的積極互動,共同完成對程序邏輯的分析。最終,由學生根據(jù)這些分析獨立實現(xiàn)程序代碼。
2.3 學生給出答案
這個題目剛開始的時候,學生可能無從下手,但通過老師的引導(dǎo),學生自主思考,師生互動,最后有的學生獨立完成編程任務(wù),給出了如下程序代碼:
#include<iostream.h>
#include<time.h>
#include<stdlib.h>
void main(){
int a[52]={0},k; //定義長度為52的數(shù)組,初始值為0,用來存儲52張撲克牌
char number;
srand(time(0)); //給隨機數(shù)產(chǎn)生一個隨機種子(seed) ,時間在變化,所以種子也不同
for(int i=1;i<53;i++){ //執(zhí)行52次循環(huán),隨機給數(shù)組賦1-52的值。
while(1){
k=rand()%52;
if(a[k]==0){ //數(shù)組中某個元素沒有被賦值的,則賦值,否則while循環(huán)繼續(xù)。
a[k]=i;
break;
}
else continue;
}}}
按上述算法進行了兩次洗牌,兩次洗牌的結(jié)果分別如下所示:
第一次情況為:
第二次情況為:
該學生寫得特別好,通過學習,他/她不僅掌握了隨機函數(shù)和數(shù)組的應(yīng)用,還成功實現(xiàn)了洗牌的功能。采用啟發(fā)式教學方法,借助學生感興趣的實際例子,學生不僅解決了現(xiàn)實問題,而且對數(shù)組、循環(huán)嵌套、隨機函數(shù)等概念有了更深刻的體會。完成程序后,學生深感成就感,學習興趣更加濃厚。此時,老師可以趁熱打鐵,補充條件,如探討如何加入大小王后進行洗牌,以及代碼如何實現(xiàn),以進一步激發(fā)學生的興趣和探索欲。
2.4 學生匯報交流,老師恰當點評總結(jié)
學生完成程序后,老師邀請部分同學上臺演示自己的程序,并要求他們分享對程序的思考過程、編程過程中涉及的知識點、遇到的問題及解決方法,以及此次課程的收獲。老師根據(jù)學生的講解,對學生的自主思考能力、知識點的應(yīng)用情況以及程序的編寫質(zhì)量進行點評。課堂上采用學生互評與教師點評相結(jié)合的多維評價方式,并對學生的表現(xiàn)進行打分,最終將教師打分與學生互評分數(shù)按1:1的比例計算總分,計入學生的平時成績。
3 考試形式改革
通過對考試試卷的深入分析,我們發(fā)現(xiàn)學生對基礎(chǔ)性、記憶性知識的掌握較為扎實,但在動手能力和學以致用方面存在明顯不足。因此,對傳統(tǒng)考試模式進行改革,增加實踐動手環(huán)節(jié)顯得尤為必要,因為學習的最終目的在于解決問題。傳統(tǒng)的筆試形式,包括選擇題、填空題、判斷題、程序分析題和程序設(shè)計題等,雖能在一定程度上考查學生的知識掌握情況,但無法全面評估學生的程序設(shè)計能力和程序調(diào)試能力,與實際應(yīng)用仍有較大差距。考試形式改革的方向是將筆試轉(zhuǎn)變?yōu)闄C試,提供幾套綜合應(yīng)用題,要求學生編程實現(xiàn),以此全面考查學生的知識掌握情況、動手編程能力和程序調(diào)試能力。
4 結(jié)束語
本文首先剖析了C++程序設(shè)計課程的教學現(xiàn)狀,指出了傳統(tǒng)教學方法中學生學習興趣不高、動手能力不強等問題,進而提出了啟發(fā)式教學方法。在啟發(fā)式教學中,學生成為學習的主體,教師則側(cè)重激發(fā)學生的學習興趣、鍛煉其動手能力,并挖掘其學習潛力。此外,本文還引入了多維評價方式以評估課堂教學效果。最后,針對考試形式進行了改革,將傳統(tǒng)的筆試改為機試。通過引入啟發(fā)式教學,學生的學習興趣得到了顯著提升。在未來的教學中,將繼續(xù)根據(jù)學生的具體情況,不斷總結(jié)經(jīng)驗,探索出一套更加適合學生學習的方法,以期取得更加顯著的教學效果。
參考文獻:
[1] 褚美玲.C語言程序設(shè)計課程的混合式教學實踐[J].電子技術(shù),2022(1):162-163.
[2] 雷慧寧.C語言程序設(shè)計課程的教學實踐[J].電子技術(shù),2022(2):142-143.
[3] 鄭芝鴻. 啟發(fā)式教學在本科旅游地理學教學中的應(yīng)用研究[D].廣州:廣州大學,2013.
[4] 章杰瑛.基于 “MOOC+SPOC” 的高校翻轉(zhuǎn)課堂教學模式設(shè)計及應(yīng)用研究[J].湖北開放職業(yè)學院學報,2019,32(15):146-147.
[5] 劉波,戴小鵬,沈岳,等.Matlab融入線性代數(shù)的教學改革與實踐[J].軟件,2014,35(2):150-152.
[6] 楊勁峰,韓曉日,李炳學,等.農(nóng)業(yè)資源與環(huán)境專業(yè)啟發(fā)式實踐教學改革:以“農(nóng)業(yè)生產(chǎn)實習” 為例[J].教育教學論壇,2016(44):132-133.
【通聯(lián)編輯:代影】