劉紅霞
[摘 要]計算機思維已成為國內(nèi)外計算機教育界高度關(guān)注的一個教學(xué)改革研究熱點問題??梢詮膽?yīng)用型本科院校程序設(shè)計課程教學(xué)改革面臨的實際問題入手,提出基于計算思維能力的非計算機專業(yè)C語言程序設(shè)計課程教學(xué)改革想法?;陧椖恐匦略O(shè)計、組織教學(xué)實踐活動,就理論教學(xué)、實踐教學(xué)等環(huán)節(jié)進行改革與探討,進而提高學(xué)生的自主學(xué)習(xí)能力、實踐應(yīng)用能力和團隊協(xié)作能力。
[關(guān)鍵詞]計算思維能力 科學(xué)行動能力 C語言程序設(shè)計 教學(xué)改革
[中圖分類號] G420 [文獻標(biāo)識碼] A [文章編號] 2095-3437(2015)08-0116-02
一、引言
近年來計算機思維已成為國內(nèi)外計算機教育界高度關(guān)注的一個教學(xué)改革研究熱點問題。2010年7月,九校聯(lián)盟(C9)發(fā)表的“計算機基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明”中已經(jīng)明確提出高等院校計算機基礎(chǔ)教學(xué)的核心任務(wù)就是培養(yǎng)計算思維能力。[1]因此,高等院校計算機基礎(chǔ)教學(xué)的任務(wù)就是要讓計算機專業(yè)學(xué)生不僅為各專業(yè)領(lǐng)域提供解決專業(yè)問題的有效方法和手段,還要讓他們形成處理問題的一種思維方式。
從現(xiàn)有查閱的相關(guān)資料以及從我校計算機基礎(chǔ)教學(xué)現(xiàn)狀調(diào)研的實際情況出發(fā),筆者認(rèn)為應(yīng)用型本科院校的計算機基礎(chǔ)教學(xué)應(yīng)以相關(guān)理論知識和基本技能為基礎(chǔ),注重培養(yǎng)學(xué)生的科學(xué)行動能力[2],即面向應(yīng)用,提升計算思維能力。
二、C語言程序設(shè)計課程教學(xué)現(xiàn)狀
C語言程序設(shè)計課程在本校已開設(shè)多年,經(jīng)過多年的教學(xué)改革和實踐,取得了較好的教學(xué)效果,但在本課程的實際教學(xué)中,依然存在如下幾方面的問題:
(1)學(xué)生對該課程的學(xué)習(xí)目的和意義不甚了解。在實際教學(xué)工作中筆者等人發(fā)現(xiàn),由于公共課課時一再壓縮,教師在授課時急于追趕進度,按照教材的章節(jié)順序?qū)⒏鱾€知識點逐一教授給學(xué)生。學(xué)生對于一些知識點似懂非懂,一知半解,許多學(xué)生并不明白其學(xué)習(xí)的目的和意義。學(xué)生只是機械地學(xué)習(xí),而不是自主、有目的地學(xué)習(xí),因而難以將整個知識體系融會貫通,導(dǎo)致應(yīng)用計算機解決專業(yè)問題的能力較弱。
(2)課程理論與實踐脫節(jié)。傳統(tǒng)的教學(xué)模式是先進行理論教學(xué),后進行實踐操作,讓學(xué)生按照實驗教材進行實踐操作,二者不能互相融為一體。此外,學(xué)生的層次不一,對于理論知識難以內(nèi)化,這必然使學(xué)生在理論課中感到語法句法的枯燥乏味,同時感覺算法的內(nèi)容難度過大,難以對這門課程的學(xué)習(xí)產(chǎn)生興趣。
(3)教學(xué)方法單一。大部分教師在講授C語言時,往往把C語法規(guī)則等相關(guān)理論知識的講解作為教學(xué)重點,不太注重算法的分析和設(shè)計。在講解例題時多關(guān)注語言的語法解析,和實際生活偏離太遠(yuǎn),課程與學(xué)生專業(yè)背景結(jié)合不緊密,學(xué)生學(xué)習(xí)興趣不高,學(xué)習(xí)積極性差。
針對以上問題我們試圖從增加輔導(dǎo)課時、舉辦競賽等途徑進行改善,但收效不明顯。而計算思維的培養(yǎng)恰恰是解決這一問題的有效途徑。
三、基于計算思維能力與信息應(yīng)用能力培養(yǎng)的教學(xué)改革實踐
計算思維能力培養(yǎng)的教學(xué)方法大體有問題啟發(fā)式教學(xué)法、案例教學(xué)法和項目教學(xué)法。對于學(xué)生解決問題的能力和科學(xué)行動能力的培養(yǎng),也常以案例教學(xué)法和項目教學(xué)法作為其教學(xué)方法。因此教師必須要認(rèn)真研究和思考如何在教學(xué)中開展案例教學(xué)和項目教學(xué)。C語言程序設(shè)計課程中的許多知識點都適合培養(yǎng)學(xué)生的計算思維能力,特別是分析設(shè)計程序時如何科學(xué)分析問題并進行數(shù)學(xué)抽象,如何對問題進行符合邏輯的算法設(shè)計、編程與調(diào)試以及生成可執(zhí)行的程序,都是對計算思維的很好的詮釋。因此,在培養(yǎng)學(xué)生計算思維能力方面最理想的課程之一就是C語言程序設(shè)計。
(一)理論教學(xué)
(1)以案例為線索重新安排教學(xué)內(nèi)容。認(rèn)真分析學(xué)生的認(rèn)知規(guī)律和專業(yè)背景,遵循“理論為輔,實踐為主”的教學(xué)原則,通過教學(xué)案例重新設(shè)計教學(xué)內(nèi)容和章節(jié)順序。在課堂教學(xué)中應(yīng)盡量淡化語法規(guī)則,通過實例應(yīng)用一些實用的語法,讓學(xué)生從實用的角度出發(fā)有選擇性地學(xué)習(xí)語法規(guī)則,而不是死記硬背。通過案例盡早引入函數(shù)和指針等概念分散教學(xué)難點,符合學(xué)生的認(rèn)知規(guī)律。在講解具體程序時多采用單步調(diào)試執(zhí)行程序的方式,讓學(xué)生能清晰地體會程序的執(zhí)行過程,為后續(xù)復(fù)雜程序的學(xué)習(xí)奠定良好的基礎(chǔ)。
(2)通過案例教學(xué)法培養(yǎng)學(xué)生解決問題的能力。在講解案例時從計算思維的角度出發(fā),引導(dǎo)學(xué)生體會分析、解決問題的基本思路,求解問題的已知信息、中間結(jié)果和最終結(jié)果,學(xué)會抽象化地描述問題,然后逐步明晰解決問題的方法和步驟,即算法的設(shè)計,最后利用C語言完成代碼的編寫、調(diào)試和執(zhí)行,最終實現(xiàn)該算法,達到解決問題的目的。在這個問題的求解過程中,將解決問題的過程提升到培養(yǎng)計算思維的高度,讓學(xué)生更深刻地理解計算思維的本質(zhì)。
(3)設(shè)計使用多種方式將程序與學(xué)生的專業(yè)領(lǐng)域內(nèi)容相融合。比如以與專業(yè)相關(guān)的項目為出發(fā)點進行基礎(chǔ)內(nèi)容的介紹等。在具體的教學(xué)過程中只要求學(xué)生具備基本的編程素養(yǎng)和解決本專業(yè)應(yīng)用問題的能力,不同專業(yè)的項目要以相關(guān)專業(yè)領(lǐng)域的應(yīng)用為基礎(chǔ)、以程序設(shè)計方法為主線,目的是培養(yǎng)學(xué)生的應(yīng)用能力和提高學(xué)生的學(xué)習(xí)興趣,讓學(xué)生多從各種角度去了解和掌握C語言以及程序設(shè)計的精髓。例如,數(shù)學(xué)類、管理類專業(yè)的學(xué)生可以重點學(xué)習(xí)與數(shù)據(jù)庫交互處理的技術(shù)。
(二)實踐教學(xué)
實踐教學(xué)是鞏固理論知識、積累實踐操作經(jīng)驗的重要環(huán)節(jié)。在此環(huán)節(jié)的教學(xué)中應(yīng)重點訓(xùn)練學(xué)生運用計算思維方法去解決實際問題。在教學(xué)內(nèi)容設(shè)計方面應(yīng)注意由淺入深、循序漸進,因此筆者分別設(shè)置初級、中級和高級3種類型的實驗項目。在初級和高級實驗教學(xué)環(huán)節(jié),我們著力做好以下幾個方面的工作:
(1)按步驟上機實踐。教師在每次上機實踐課前,給學(xué)生布置實驗課的中級項目內(nèi)容,要求學(xué)生利用課余時間分析問題并設(shè)計擬定好算法,畫出流程圖,寫出代碼。上課時教師適時抽查學(xué)生完成這部分工作的情況。上機課第一項工作是要求學(xué)生完成初級項目的測試,測試由無紙化考試系統(tǒng)支持,測試通過后,剩余時間讓學(xué)生完成中級項目的程序調(diào)試工作,在調(diào)試過程中,教師及時對學(xué)生存在的疑問進行解答。規(guī)范化的上機實踐工作讓學(xué)生養(yǎng)成一個良好的學(xué)習(xí)和訓(xùn)練習(xí)慣,全面提高學(xué)生在遇到問題時獨立分析問題和解決問題的能力。
(2)教師上機指導(dǎo)。上機實踐中程序的調(diào)試主要是排除代碼的語法和邏輯錯誤。因此在每次上機過程中,對于程序編譯鏈接時出現(xiàn)的錯誤,要求學(xué)生記錄錯誤信息并分析原因,避免再犯同樣的錯誤。教師對常見的錯誤集中進行講解,教給學(xué)生規(guī)避錯誤的基本方法,逐步培養(yǎng)學(xué)生獨立調(diào)試程序的能力。對學(xué)生算法方面的疑問,不直接為學(xué)生指出代碼中的問題,而是逐步引導(dǎo)學(xué)生自己找出問題。這樣有利于培養(yǎng)學(xué)生獨立發(fā)現(xiàn)問題、分析問題的能力。
(3)總結(jié)上機實踐。每次上機實踐課結(jié)束后,要求學(xué)生在課后對本次上機實踐的工作進行及時歸納和總結(jié),對各個環(huán)節(jié)出現(xiàn)的問題進行總結(jié)和反思。對于普遍存在的問題,教師集中講解答疑。及時、有效的總結(jié)和反思可以有效地提升學(xué)生的計算思維能力。
(4)高級實驗項目驅(qū)動。通過高級項目的實際開發(fā)過程,引導(dǎo)學(xué)生創(chuàng)造性地運用知識發(fā)現(xiàn)問題、研究問題和解決問題,促使學(xué)生在這個過程中積累知識、培養(yǎng)和鍛煉思維能力。建立學(xué)生學(xué)習(xí)互助小組,培養(yǎng)學(xué)生協(xié)作學(xué)習(xí)的能力。教師也可以在項目實踐中真正了解教與學(xué)的缺陷,推進教學(xué)模式轉(zhuǎn)變。[3]
(5)結(jié)合學(xué)生專業(yè)背景,維持學(xué)習(xí)積極性。將C語言融入專業(yè)應(yīng)用中,可以有效地提升學(xué)生的學(xué)習(xí)積極性。教師在授課中應(yīng)結(jié)合學(xué)生的專業(yè)應(yīng)用方向,精心選擇、準(zhǔn)備與學(xué)生專業(yè)相關(guān)的項目案例進行教學(xué)設(shè)計。選擇的項目要具備針對性、典型性和實踐性的特點。[4]例如,對于信息類專業(yè),可以選用各種信息系統(tǒng)的項目引導(dǎo)課程的教學(xué)。
(三)課程考核
本課程結(jié)合實際應(yīng)用,引入企業(yè)項目化考核方式,更加注重對學(xué)習(xí)過程的考核。建立以自動評測系統(tǒng)和實踐能力考核為主的多元化考核體系。期末總成績由期末機試成績(40%)、實驗項目考核成績(40%)和平時成績(20%)組成。實驗項目成績由中級項目和高級項目兩項實驗成績組成。即從項目的實施情況記錄、小組項目的成果展示、實驗報告的總結(jié)以及小組成員的合作態(tài)度等各個方面評定學(xué)生成績。平時成績依據(jù)課堂表現(xiàn)、考勤情況和小組協(xié)作三方面組成。這樣做的目的是讓學(xué)生的最終成績能更客觀地反映學(xué)生的學(xué)習(xí)過程和學(xué)習(xí)效果,突出能力培養(yǎng)目標(biāo),減輕學(xué)生的考試壓力。
四、結(jié)語
培養(yǎng)科學(xué)行動能力,提升計算思維能力是應(yīng)用型本科院校非計算機專業(yè)的計算機課程的教學(xué)目標(biāo)。實踐證明,在教學(xué)中應(yīng)該有意識地在理論教學(xué)和實踐教學(xué)的各個環(huán)節(jié)中融入計算思維的培養(yǎng)。在實踐課的教學(xué)環(huán)節(jié),通過分級項目的形式由易到難地把學(xué)生融入項目達標(biāo)與設(shè)計實現(xiàn)的過程中,不僅僅有助于學(xué)生理解計算機分析解決實際問題的思想,更有助于提高學(xué)生利用計算思維方式來解決實際問題的能力與團隊協(xié)作能力。
[ 注 釋 ]
[1] 何欽銘,陸漢權(quán),馮博琴.計算機基礎(chǔ)教學(xué)的核心任務(wù)是計算思維能力的培養(yǎng):《九校聯(lián)盟(C9)計算機基礎(chǔ)教學(xué)發(fā)展戰(zhàn)略聯(lián)合聲明》解讀[J].中國大學(xué)教學(xué),2010(9):5-9.
[2] 譚浩強.研究計算思維,堅持面向應(yīng)用[J].計算機教育,2012(21):45-49.
[3] Wing J M.Computational thinking[J].Communications of the ACM,2006(3):35.
[4] 鄧紅衛(wèi),王櫻,魏書堤,蔣瀚洋.基于計算思維能力與信息應(yīng)用能力的程序設(shè)計課程教學(xué)改革[J].計算機教育,2014(3):65-69.
[責(zé)任編輯:覃侶冰]