趙磊 焦鉻
摘 要: 針對C語言程序設(shè)計教學中存在的問題,將ACM/ICPC競賽引入到日常教學中。通過建立協(xié)作式學習模式,推行實驗課趣味化、學習時間分散化,開展程序鑒賞和討論,改革考核手段等方法來實施C語言程序設(shè)計課程的教學改革。這些方法在實際教學應(yīng)用中取得了一定的成效。
關(guān)鍵詞: C語言; ACM/ICPC; 協(xié)作式; 鑒賞課
中圖分類號:TP312 文獻標志碼:A 文章編號:1006-8228(2016)01-66-03
Discussion on the introduction of ACM/ICPC in the teaching of C language programming
Zhao Lei1, Jiao Ge1,2
(1. Computer department of Hengyang Normal University, Hengyang, Hunan 421001, China;
2. College of Electrical and Information Engineering, Hunan Institute of Traffic Engineering)
Abstract: For the problems in the teaching of C language programming, the ACM/ICPC (ACM International Collegiate Programming Contest) is introduced into the daily teaching. Through the establishment of collaborative learning model, implementation of interesting experiment courses and learning time decentralization, carrying out the program appreciation and discussion, reforming assessment means, and other methods, the teaching reform of C language programming course is implemented. These methods have achieved certain results in the teaching practice.
Key words: C language; ACM/ICPC; collaboration; appreciation class
0 引言
長期以來,C語言程序設(shè)計是理科專業(yè)學生必修的一門課程[1],具有表達能力強,簡潔緊湊、靈活方便,程序設(shè)計自由度大,生成目標代碼質(zhì)量高,程序執(zhí)行效率高等特點。正是由于C語言的這些特點,它又是一門比較難掌握的課程。探討如何提高這門課程的教學質(zhì)量對提高學生的程序設(shè)計能力至關(guān)重要。
大學生競賽是激勵學生樹立創(chuàng)造性思維、提高教育教學水平的一種有效途徑。近年來,各高等院校積極鼓勵學生參與各類學科競賽,高度重視學科競賽在教學改革中的應(yīng)用,通過參與競賽的學習模式,激發(fā)學生學習的主動學習意識,增強集體合作意識,促進創(chuàng)造性人才的培養(yǎng)。本文將ACM國際大學生程序設(shè)計競賽(ACM International Collegiate Programming Contest,簡稱ACM/ICPC)引入到C語言教學中,探討這種新的C語言程序設(shè)計課程教學模式。
1 ACM/ICPC簡介
ACM國際大學生程序設(shè)計競賽(ACM International Collegiate Programming Contest,簡稱ACM/ICPC)是全球規(guī)模最大,最有影響力的大學生程序設(shè)計競賽。其目的在于使大學生運用計算機來充分展示自己分析問題和解決問題的能力。ACM/ICPC始于1970年,到2013年止已經(jīng)舉辦了37屆。這項國際頂級賽事是大學生智力與計算機解題能力的競賽,是大學生展示水平與才華的大舞臺,是全球高校計算機教育成果的直接體現(xiàn)。該項競賽分為區(qū)域賽和世界總決賽,各大洲的區(qū)域賽安排在上一年的9月-12月進行,第一名自動獲得參加世界決賽資格,世界總決賽安排在每年的3月-5月舉行[2]。
ACM/ICPC要求以團隊的形式參賽,每個隊伍由3名隊員組成。每隊使用一臺計算機,要求選手在全封閉的環(huán)境內(nèi)(不能有任何通訊設(shè)備,可以攜帶任何紙質(zhì)資料)連續(xù)5個小時對8-11個問題進行解答。競賽采用英文命題,題目涉及面非常廣。需要參賽學生具有扎實的基本功、良好的分析問題的能力、較好的團隊協(xié)作能力和壓力下編寫程序的能力。該競賽為學生提供了一個學習和使用程序設(shè)計語言和算法的完整實踐模式,讓學生以精通編程為榮,形成一個積極向上的學習氛圍。
2 當前C語言程序設(shè)計教學存在的問題
2.1 教學模式陳舊,實驗內(nèi)容模板化
在當前的教學模式中,教師在教授學生的過程中往往覺得自己已經(jīng)很賣力,學生在學習的過程中也花了很多精力,但學生學完之后往往只是把教師課堂上講授的內(nèi)容復制到自己的實驗課中,并沒有很好地理解程序并建立自己的編程思想,實驗中學生僅僅是把老師理論課堂上講授的程序代碼通過鍵盤輸入到電腦中運行,得到一個顯示結(jié)果而已,所以實驗基本上成了驗證性的實驗,很多學生并不能真正地設(shè)計程序,更不能結(jié)合課程來解決一些生活中的實際應(yīng)用性問題。
2.2 課程考核模式單一,高分低能現(xiàn)象嚴重
C語言程序設(shè)計課程考核在很多學校還主要采用筆試為主的傳統(tǒng)考核模式,考試內(nèi)容往往是學生做過的類似題目,試卷成績在總成績中的比例為70%,平時成績占學生的總成績比例的30%。確實有很多高分學生,然而在這些高分學生中能夠很好的建立編程思想,解決實際問題的學生卻不多。這種考核模式不利于學生綜合實踐能力和創(chuàng)新能力的培養(yǎng),最終形成“高分低能”的現(xiàn)象。
2.3 缺乏互助學習氛圍,團隊協(xié)作意識較差
當前軟件項目開發(fā)都是以團隊形式實施的,團隊成員之間需要合理分工和無障礙溝通[3]。但是在C語言程序設(shè)計的課程教學中以項目組為單位來開展教學活動的機會非常少,更談不上互助學習和協(xié)作。
2.4 實踐教學改革力度不夠
盡管近年很多大學的C語言程序設(shè)計課程的實踐教學與以前相比有了一些改善,但仍存在很多不足。首先是沒有形成一個有利于培養(yǎng)高素質(zhì)創(chuàng)新型人才的培養(yǎng)體系;其次當前教育形式重于實質(zhì),在人才培養(yǎng)過程中沒有從根本上進行教學方法和技術(shù)的改革;再次很多學校只重視理論教學和課堂教學,輕視實踐環(huán)節(jié),只強調(diào)從理論上對知識點的掌握,對程序的實現(xiàn)重視不夠,造成有相當數(shù)量的學生C語言的程序?qū)崿F(xiàn)和調(diào)試能力很差。
3 引入ACM/ICPC的教學改革
3.1 協(xié)作式學習模式
ACM/ICPC競賽是以小組的形式參賽,小組由3名隊員組成。比賽期間,小組成員共同使用一臺電腦,要求小組成員必須在規(guī)定時間內(nèi)解決制定的程序問題[4]。這種競賽機制與協(xié)作式學習模式正好是一致的。在C語言教學中,教師可以把學生分成幾個小組,共同分析教學內(nèi)容,在短時間內(nèi)完成適當難度的題目,最終通過相互幫助、協(xié)作,使得枯燥無味、難于分析的問題變得簡單起來。在C語言教學中適當?shù)乩眠@種學習模式,不僅可以大大改進解題效率,同時使得每個學生都有成就感,能夠發(fā)揮所長,避之所短,利用各自的專業(yè)和特長,分工合作,集體討論,根據(jù)不同的題型,由不同的人員負責分析、討論和講解,從而加快學習進度。這樣的教學效果最終發(fā)展了學生的個人思維能力,增強了小組之間的溝通能力及對同伙差異的包容能力。
3.2 實驗課趣味化,時間分散化
傳統(tǒng)的程序設(shè)計類實驗題目普遍比較枯燥,難以調(diào)動學生的學習興趣和設(shè)計思路[5]。任課老師可以將實驗題目生活化、趣味化,充分激發(fā)學生的學習主動性和積極性,將被動學習轉(zhuǎn)化為主動學習。同時考慮到實驗課時非常有限,可以使用ACM/ICPC的在線評測系統(tǒng),學生注冊后可以在任何時間登陸該系統(tǒng)進行選題、提交、評測和討論等自主學習環(huán)節(jié),將有限的課內(nèi)練習時間延續(xù)到課外。
3.3 開展程序鑒賞課,討論課堂
我們可以嘗試設(shè)置程序鑒賞課,老師和同學均可搜集一些有特點且具有應(yīng)用性的程序拿到課堂上鑒賞,通過經(jīng)常性的程序鑒賞和討論,能夠開拓教師和學生的編程視野,提高學生的編程興趣,只有提高興趣,喜歡編寫程序,才能寫出好的程序。
3.4 改革考核手段
ACM/ICPC模式的重要特點之一是完善而嚴謹?shù)目己藱C制,所以我們將ACM的考核方式借鑒到C語言課程的考核環(huán)節(jié)中,采用ACM/ICPC模式的黑箱測試,將學生在“在線評測系統(tǒng)”中獲得的成績以50%的權(quán)重加入到課程考核指標當中。這樣,一方面減少了教師的工作量,降低了考核錯誤率,另一方面做到了客觀、公正,更好地發(fā)掘?qū)W生的創(chuàng)新能力,提高學生對知識點的掌握程度。
4 結(jié)束語
通過引入ACM/ICPC競賽到C語言程序設(shè)計的課堂教學中,可以培養(yǎng)學生的自主學習與協(xié)作學習能力,加強教師與學生、學生與學生之間的相互交流和溝通,激發(fā)學生的創(chuàng)造性思維,使學生更好地掌握C語言程序設(shè)計,提高了教學效果。從這幾年學校督導組的評價和學生的評教看,證明了這種改革能夠推動C語言程序設(shè)計課程的建設(shè),有助于培養(yǎng)學生的邏輯思維、程序設(shè)計、團隊合作和協(xié)同能力。
參考文獻(References):
[1] 譚浩強.C語言設(shè)計(第三版)[M].清華大學出版社,2005.
[2] 吳文虎.世界大學生程序設(shè)計競賽(ACM/ICPC)高級教程[M].
中國鐵道出版社,2009.
[3] 楊松濤,王斌,張海燕.從ACM/ICPC競賽探討大學生的能力
培養(yǎng)[J].計算機教育,2010.24:16-18
[4] 徐本柱,王浩,胡學鋼.ACM/ICPC的教學與實踐[J].合肥工業(yè)
大學學報(社會科學版),2008.22(6):133-137
[5] 張熠,陳榮欽.以ACM為導向構(gòu)建C語言實驗教學新平臺的
研究與實踐[J].臺州學院學報,2009.31(6):70-74