張 競 朱子楠 梁 晗 張 麗
咸陽師范學院計算機學院 陜西咸陽 712000
在C語言程序設計課程中,基于雨課堂、阿爾法等教學平臺,經(jīng)過精心設計的線上線下教學混合式教學模式的步驟:創(chuàng)設場景,激發(fā)學生的學習興趣和動力→適應場景,養(yǎng)成良好的學習習慣→內(nèi)化場景,形成專業(yè)能力→升級場景,形成專業(yè)技術→升華場景,上升為專業(yè)藝術。通過這樣小步慢走的進步,希望能夠更好地、超預期地完成C語言程序設計課程的教學任務。
例如,在C語言程序設計課程的循環(huán)模塊教學中,給學生提出如下三個問題:
例1-1 已知一個數(shù)列的第n項an=3n+2,計算該數(shù)列的前n項和sn。
例1-2 已知一個數(shù)列的第n項an=a*n+b(a和b都是常量),計算該數(shù)列的前n項和sn。
不提倡任課教師直接給出解決問題的方法答案,課上首先讓學生自己尋找或者探索解決問題的方法,然后教師再提供參考答案(培養(yǎng)學生自學能力和環(huán)境適應能力)。
例如,引導學生自己通過教材、書籍、網(wǎng)絡等自學或請教別人,尋找探索計算數(shù)列的前n項和sn的方法。
步驟1 首先,學生尋找探索計算數(shù)列的前n項和sn的方法。
步驟2 然后,教師再提供計算數(shù)列的前n項和sn的參考答案。
例1-1 已知一個數(shù)列第n項an=3n+2,計算該數(shù)列的前n項和sn
方法1 使用while語句的循環(huán)程序實現(xiàn)
#include
int main()
{ int n,k=1,an,sn=0;
printf("n = ");
scanf("%d",&n);
while(k<=n)
{ an=3*k+2;
sn=sn+an;
k++;
}
printf("sn = %d ", sn);
return 0;
}
方法2 使用for語句的循環(huán)程序實現(xiàn)
#include
int main()
{ int n,k,an,sn=0;
printf("n = ");
scanf("%d",&n);
for(k=1;k<=n;k++)
{ an=3*k+2;
sn=sn+an;
}
printf("sn = %d ", sn);
return 0;
}
例1-2 已知一個數(shù)列第n項an=a*n+b,計算該數(shù)列的前n項和sn(a和b是常量)。
方法1 使用while語句的循環(huán)程序實現(xiàn)
#include
int main()
{ int a,b,n,k=1,an,sn=0;
printf("a b n = ");
scanf("%d%d%d",&a,&b,&n);
while(k<=n)
{ an=a*k+b;
sn=sn+an;
k++;
}
printf("sn = %d ", sn);
return 0;
}
方法2 使用for語句的循環(huán)程序實現(xiàn)
#include
int main()
{ int a,b,n,k,an,sn=0;
printf("a b n = ");
scanf("%d%d%d",&a,&b,&n);
for(k=1;k<=n;k++)
{ an=a*k+b;
sn=sn+an;
}
printf("sn = %d ", sn);
return 0;
}
首先,通過努力,學生初步探索嘗試性地解決了一個新問題,然后需要獨立使用該方法解決一定數(shù)量的同類問題,才有可能基本掌握這類解決問題的通用方法。因此,需要學生自己獨立解答下面這些練習題并需要做更多的練習題:
習題3-1 計算自然數(shù)列1,2,3,4,5,6,7,8,…的前n項和sn。[1]
習題3-2 計算斐波那契數(shù)列1,1,2,3,5,8,13,21,34,55,…的前n項和sn。[2]
步驟1 學生最好能獨自設計出上面的練習題程序(訓練學生獨自設計程序能力)。
步驟2 教師給出設計上面的練習題程序的參考答案,供大家參考。
習題3-1 計算自然數(shù)列1,2,3,4,5,6,7,8,…的前n項和sn。[1]
方法1 使用while語句的循環(huán)程序實現(xiàn)
#include
int main()
{ int n,k=1,an,sn=0;
printf("n = ");
scanf("%d",&n);
while(k<=n)
{ an=k+1;
sn=sn+an;
k++;
}
printf("sn = %d ", sn);
return 0;
}
方法2 使用for語句的循環(huán)程序實現(xiàn)
#include
int main()
{ int n,k,an,sn=0;
printf("n = ");
scanf("%d",&n);
for(k=1;k<=n;k++)
{ an= k;
sn=sn+an;
}
printf("sn = %d ", sn);
return 0;
}
習題3-2 計算斐波那契數(shù)列1,1,2,3,5,8,13,21,34,55,……的前n項和sn。[2]
方法1 使用while語句的循環(huán)程序實現(xiàn)
#include
int main()
{ int a1=1,a2=1,k=3,n,an,sn=a1+a2;
printf("n = ");
scanf("%d",&n);
if(n==1) sn=a1;
else if(n==2) sn=sn;
else while(k<=n)
{ an=a1+a2;
sn=sn+an;
a1=a2;
a2=an;
k++;
}
printf("sn = %d ", sn);
return 0;
}
方法2 使用for語句的循環(huán)程序實現(xiàn)
#include
int main()
{ int a1=1,a2=1,k,n,an,sn=a1+a2;
printf("n = ");
scanf("%d",&n);
if(n==1) sn=a1;
else if(n==2) sn=sn;
else for(k=3;k<=n;k++)
{ an=a1+a2;
sn=sn+an;
a1=a2;
a2=an;
}
printf("sn = %d ", sn);
return 0;
}
在線下,通過學生使用可以更新的題庫平臺,測驗檢查并訓練學生更正確、更規(guī)范地運用知識解決問題的應用能力,使自己的專業(yè)能力逐步不斷地向專業(yè)技術方面升級。
學習的目的,是為了應用,在線下通過認真做題庫的測驗檢查,訓練并提升學生掌握專業(yè)技能的熟練程度。學生一旦通過測驗檢查,就有可能把知識內(nèi)化成自己的技能,創(chuàng)造更高的價值。
學生會做題,并不能保證邏輯合理、過程規(guī)范、方法簡捷、結果正確。只有通過不斷地超大量的正規(guī)測驗檢查的訓練,才有可能使得自己的專業(yè)能力升華為專業(yè)技術。
在C語言程序設計課程教學中,伴隨著題庫升級,學生不斷地使用雨課堂和阿爾法平臺測驗檢查,只有累積測驗成績的平均分不低于80分的學生,才可以通過本門課程的正規(guī)測驗檢查。
方法1 雨課堂平臺的測驗檢查

方法2 阿爾法平臺的測驗檢查

學生可以通過面對面或者電話、QQ、微信、郵件等方式進行交流。通過交流,在老師啟發(fā)、引導下,喚醒學生的意識,使學生在學習上獲得頓悟,突然理解了知識點,使學生的專業(yè)知識技術升華為專業(yè)藝術。
改進C語言程序設計課程的教學方法,除了采用線上線下混合式教學模式以外,也需要借鑒一些優(yōu)秀教師的教學方法,關注最新的教學技術發(fā)展,不斷引入新的理論知識,對自身的教學內(nèi)容進行更新,還需要根據(jù)學生自身的個性特點,提高教學的趣味性,讓學生對課程產(chǎn)生喜愛,激發(fā)學生的興趣。要與時俱進,跟上時代的步伐,增強學生主動探索能力和對知識的綜合應用能力,改進課程教學方法,達到提高課堂教學的效果。