郝飛
(陜西師范大學 計算機科學學院,陜西 西安 710119)
淺析課堂小測驗在《面向對象程序設計(C++)》教學設計中的應用*
郝飛
(陜西師范大學 計算機科學學院,陜西 西安 710119)
針對《面向對象程序設計(C++)》課程的特點,結合國外高校Quizz驅動的課堂教學模式,提出在教學設計中引入課堂小測驗的方法,并探討了課堂測驗題目的精選、組織實施以及評估考核在教學中應注意的要點。最后,通過給定一個典型案例分析,闡述了利用小測驗掌握教與學中存在的問題,對學生的情況了如指掌,從而做到有的放矢,事半功倍,提高教學質量,從而提高學生的成績。
課堂小測驗;面向對象程序設計;題目精選;課堂測驗
程序設計語言是程序設計的思維工具和載體,面向對象程序設計(Object Oriented Programming,OOP)技術是目前程序設計與軟件開發的主流,是培養計算機專業人才的重點內容。其中,《面向對象程序設計(C++)》因C++語言較好地反映現代軟件新技術,又與C語言完全兼容等特點,受到應用開發者和系統設計者的青睞,是一門重要的專業必修課程,也是數據結構、編譯原理、面向對象數據庫和軟件工程等課程的基礎。另外,由于C++程序設計語言牽涉到的概念比較復雜,規則繁多,使用靈活但容易出錯,因此C++也被視為較難學習和掌握的程序設計語言。
筆者認為,傳統的課堂講授方法使得理論和實踐脫節,使得課堂顯得空洞、單一,不容易見到成果,隨之而來的是學生學習熱情和興趣的逐漸消退。筆者結合自己在國外留學期間所經歷的教學模式及其前期的教學實踐和探索,認為在《面向對象程序設計(C++)》教學設計環節中加入課堂小測驗,是一種可以及時檢驗學習成果,極大地提高學生的學習積極性和熱情的手段。
如何針對師范院校的免費師范生進行C++語言教學,使學生能夠了解C++語言程序設計的級別概念和方法,掌握C++語言的編程技巧,達到舉一反三的教學效果,特別是讓學生由被動學習轉變為主動學習,是每一位計算機教師在教學中應該努力探討的問題。本文將聚焦《面向對象程序設計(C++)》教學設計中的改革,本著“溫故而知新”的學習理念,探討課堂小測驗在《面向對象程序設計(C++)》教學設計中的應用。
《論語》有云:“溫故而知新,可以為師矣。”其真諦在于溫習已學的知識,并且由其中獲得新的領悟,可以憑借這一點就可以成為老師了。課堂小測驗的教學設計正是本著這樣的理念而產生,它靈活、短小、精悍,可應用并活躍在眾多課堂教學環節中。
1.2.1 實時精準地發現學生的學習效果
以筆者自身的教學經驗為例,在新內容開講前的8分鐘課堂小測驗中,筆者會挑選能夠反饋上堂課教學重點、難點的兩三個題,也會挑一些學生易錯的題來鞏固自己的教學效果。學生可以通過每天的課堂小測驗來檢測自己的學習狀況,從而達到隨時補缺補漏的目的。
1.2.2 培養學生獨立解決問題的能力
因為課堂小測驗是由學生在有限時間內單獨完成,因此可以培養學生獨立解決問題的能力。
1.2.3 消除學生在考試中出現的緊張現象
每次的課堂小測驗就如同一次小型的考試,學生經歷的多了,到了期末考試的時候就不會畏懼考試了,因此可以幫助消除學生在考試過程中出現的緊張現象。
1.2.4 有利于督促學生出勤
眾所周知,大學課堂上學生的缺勤、教師的點名已經成為一個老大難的問題。其中,隨機點名不失為一種好的考勤手段。而針對學生人數較多的班級,點名往往浪費了很多寶貴的課堂時間。課堂小測試的設置,能充分利用這段寶貴的點名時間,能既達到考勤的目的,又實時檢測學生對上節課知識點的掌握情況。
課堂小測驗的實施流程如圖1所示。

圖1 課堂小測驗的實施流程
顯然,該實施流程主要包含課堂測驗題目精選、課堂測驗執行、測驗題目講解、評價與考核。從實施主體角度而言,教師應在課堂測驗的過程中不斷地反思和總結,進而改進教學策略,以應對動態變化的課堂和學生的各種需求。首先,精選的課堂測驗題目可以有效督促學生主動學習,因為課堂測試的成績不僅與平時成績掛鉤,還與上課日常考勤緊密相關;其次,在課堂測驗過程中,教師給學生創造了一個完全類似期末考試的環境,以增強學生的臨場考試能力。在課堂測驗之后,教師及時收回學生的測驗結果,緊接著利用3~5 min時間講解該題目,可讓學生進一步掌握和鞏固上節課所學到的知識點、算法思想,以達到“趁熱打鐵”的良好效果。學生也可以及時發現自己的問題并糾正錯誤。課后,教師要針對收回的測驗報告進行客觀的評分,并做好記錄。教師可以委托學習委員定期公布學生每次的課堂測驗成績,使學生對通過積累平時成績增加該門課程的總分心中有數。
筆者通過一個實際的案例在《面向對象程序設計(C++)》教學中的運用來直觀地解釋課堂小測驗在教學過程中的實施和應用。
要求教師在備課時,結合上一節講授過的重要知識點,選擇一兩個相對容易的題目(切記,題目不要過多,課堂新內容授課時間更寶貴)。例如,在學習完數組和字符串的內容后,筆者的課堂小測驗題目如圖2所示。
測驗題目難度需適宜,這主要出于2方面的考慮:①題目太難會占用大家很多作答時間;②題目過于難也容易讓學生產生挫敗感,影響學習積極性。所以,這里要求教師根據學生對知識點的掌握情況,“因地制宜”地設置課堂測驗題目。

圖2 課堂測試題目樣例
測驗執行前,教師需運用傳統講授法對數組的定義、初始化及使用數組和字符串基本操作等內容作簡單、系統的回顧和復習,讓學生對上一節課所學過的知識有總體的把握,然后讓學生在接下來的課堂測驗中慢慢感受和理解所學到的內容。課堂測驗一般設定6~8 min,讓學生在指定的實驗報告紙上作答,并在規定的測驗時間結束后統一交回給教師。
題目1:對于一個原來依順序存放的8,6,5,4,1,我們考慮利用數組來存儲。為此,先定義一個大小為5的整數數組a[5],并初始化該數組,如下:
int a[5]={8,6,5,4,1}
根據題目要求,該問題其實可以轉化為將數組a[5]中的元素逆序排列,具體思路就是將數組的元素下標轉化為對應的[5-i]輸出即可保證元素逆序打印,即輸出a[5-i]。根據免費師范生的特點,給出測驗題目1的具體參考代碼。
#include〈iostream.h〉
int main()
{
int i;
int a[5]={8,6,5,4,1};
for( i=1;i〈=5;i++)
{
cout〈〈a[5-i]〈〈endl;//下標轉換
}
return 0;
}
運行結果如圖3所示。
題目2:給定2個字符串str1="China"、str2="Beijing",根據字符串的基本操作"+"操作符,調用C++頭文件〈string.h〉,從而將2個字符串鏈接后的字符存放到一個新的字符串變量str3中。測驗題目2的具體參考代碼。
#include〈iostream〉
#include〈string.h〉
using namespace std;
int main()
{
string str1="China";
string str2="Beijing";
string str3;
str3=str1+str2;
cout〈〈str3〈〈endl;
return 0;
}
運行結果如圖4所示。課堂測驗題目講解過程中一個重要的環節是學生參與問題的討論,分析題目,提出解決問題的算法,使師生能夠交流、互動。

圖3 運行結果(一)

圖4 運行結果(二)
筆者認為,將課堂測驗成績作為平時成績考核的一部分是很有必要的。其評價標準嚴格按照期末考試的標準,給出得分點,并以10分制系統記錄好學生每次的課堂測驗成績,對成績不理想的學生及時幫助查找原因,糾正錯誤,查漏補缺。這樣,一些平時依賴性較強的學生會及時發現問題的緊迫性,會逐漸從筆記本中走出來,從而逐漸培養自身獨立解決問題的能力。每次的課堂小測驗也使得成績暫時領先的學生不敢放松,成績差的學生不會氣餒,始終保持旺盛的學習斗志,這樣才能有效地提高教學效率。
教學實踐表明,在《面向對象程序設計(C++)》教學設計中引入課堂小測驗,能夠充分調動學生學習積極性,提高學生分析問題和解決問題的能力。
所以在教學中合理、有效地實施課堂小測驗,不但可以跟蹤學生對已學知識的掌握情況,而且還極大地督促了學生由被動學習到主動學習的轉變。同時,課堂小測驗的實施使得教學過程充滿了挑戰性、趣味性,較為理想地解決傳統教學中遇到的若干問題。
[1]肖明.案例教學法在“C++語言程序設計”教學中的應用[J].計算機教育,2010(6):83-86.
[2]李春梅.數學課堂小測試在教學中的作用[J].中學課程輔導:教學研究,2015,9(23):67.
[3]袁運浩,葛洪偉,楊金龍,等.面向對象程序設計的交互式教學模式探討[J].教育教學論壇,2015(40):191-192.
[4]吳煒,楊曉敏,任和.面向對象程序設計課程改革與實踐[J].教育教學論壇,2014(50):246-247.
TP311.11-4;G712
A
10.15913/j.cnki.kjycx.2017.20.102
2095-6835(2017)20-0102-03
*[項目]陜西師范大學第四批信息化示范課程建設項目,陜西師范大學教學模式創新與實踐專項基金項目(JSJX2017L118)
郝飛,男,博士,副教授,研究方向為社會計算、普適計算、大數據分析與處理。
〔編輯:劉曉芳〕