連新澤,鄒董董,李 婧,廖雪峰
(溫州理工學院 數據科學與人工智能學院,浙江 溫州 325000)
程序設計能力是軟件開發人員的基本功,只有懂得程序設計,才能進一步懂得計算機,才能真正了解計算是怎樣工作的。通過學習程序設計課程,懂得計算機的工作原理,才能更好地理解和應用計算機。基于此,程序設計課程作為計算機相關專業一門重要的專業基礎課,主要以培養學生的程序設計能力為目標,突出教學內容的基礎性和實踐性。在課程教學改革方面,貫徹知識、能力、素養辯證統一的思想,結合學生特點,更新教學方法、教學內容和考核方式,激發學生的學習興趣,增強學生的創新思維能力,提高學生對程序設計的理解和應用能力。培養和提高學生在編程與調試過程中獨立分析問題與解決問題的能力,同時為后續開設應用性課程做好知識準備,使得學生畢業后更能勝任軟件開發工作。因此,對計算機專業進行程序設計類課程教學模式改革具有十分重要的意義。
隨著計算機技術及網絡技術的發展,以網絡技術為支撐平臺的計算機技術已經具備了較大規模的普及與應用的基礎。利用計算機網絡組織實施大規模異地實時在線考試,已經成為當前各類教學與考試的一種重要方式。PTA平臺是浙江大學國家級程序設計系列課程教學團隊與網易公司、杭州百騰教育科技有限公司合作,于2015年9月推出的面向高校和社會的程序自動評測、開放式的教學輔助平臺。到目前為止,平臺有近7萬題量(包含“C語言程序設計”“Java語言程序設計”等課程),由于平臺為開放式平臺,教師可以在平臺上添加題目,題庫的量在持續增加。
程序設計課程是計算機專業課程的先導課,大多數高校選用“C語言程序設計”這門課程,一般都安排在一年級的第一學期開設。基本上采用“提出知識點—解釋知識點—提出案例—講解案例—上機練習”五步式教學模式進行教學,這種教學模式主要存在以下問題。
程序設計課程作業批改是一項很重的教學工作任務,以每個班級50位學生為例,一次作業10個題目,每個題目計20行代碼,全班總共代碼約10000行,約250頁的代碼文檔;目前一般普通高校1位教師,承擔2個班級的教學任務,則一個星期約有500頁的作業文檔需要批改。教師認真仔細查閱每一行代碼,批改每一位學生的作業,幾乎是不可能完成的任務,一般采用的方式是輪流選取部分學生的作業進行批改。這種批改作業的方式,導致部分學生存在僥幸心理,以致不認真完成作業,同時,教師也較難全面了解班級學習情況。
程序設計課程是各大高校計算機科學與技術及軟件工程學科的專業基礎課程,也是有關學科的必修課程。但是,對于剛入學的學生而言,學習積極性不高,分析其原因,一是課程難度較大,程序設計課程內容較多,部分大一學生在高中沒有接觸程序設計,確實存在一定的難度;二是興趣不高,針對知識點的案例過于枯燥,而且上機實驗時,學生常將教材或習題集上的程序代碼抄寫到編譯器中,進行簡單測試后,直接提交到機房服務器就算完成作業,對結果是否完全正確并不知情,更談不上透徹理解程序;三是教學過于側重理論,這種以理論為主的“填鴨式”教學模式,容易造成學生理解不深刻并形成考完試即忘的應付式學習模式,由于沒有實際的項目拓展,使學生的學習變得索然無味。以上問題直接影響了計算機語言類課程的學習效果,導致這些課程的及格率偏低,學生對程序設計課程的抱怨較多,嚴重影響了學生的學習積極性。
程序設計課程較其他課程有所不同,它是一門實踐操作性較強的學科,對學生的上機能力要求較高。現有的教學方式,學生練習的代碼量不足,而且存在抄襲現象,很大程度上限制了學生程序設計能力的提高。實驗課程通常是要求在規定數目的實驗中完成給定的題目,實驗數目和題目數目均受到限制,一般課程結束,好的學生完成的題量也是幾十題而已。這樣的代碼量對培養好的程序設計能力所需要的代碼量來說,明顯不足,若增加練習量,按現有的教學方法,與教師工作量繁重又存在矛盾,該矛盾導致學生練習不夠,掌握知識不夠扎實。
《教育部關于加快建設高水平本科教育全面提高人才培養能力的意見》中加強學生學習過程管理、嚴格過程考核標準、加大過程考核成績在課程總成績中的比重精神,浙江省教育廳規定原則上課程平時考核成績占課程總成績的比例不低于40%。然而,現在的平時成績中,作業成績的考核相對比較松散,缺乏依據,由于教師教學工作任務繁重等原因,教師無法完整、細致地批改作業,而且無法辨別抄襲現象,嚴重影響了考核的客觀性。
針對現在存在的教師教學工作任務繁重、學生學習積極性不高、學生掌握知識不扎實、課程過程考核缺乏依據四個問題,我們將從四個方面進行改革。
針對以上存在的四個問題,我們將從教學方法上進行改革,由傳統的“五步式”教學模式的“以教為本”“以師為本”,轉向“以學為本”“以生為本”的線上線下混合式教學模式。創新教學方式,有效地結合慕課學習資源,教師在課堂上不再單向傳遞課程知識,重點放在組織學生進行重點難點的討論,包括課程知識點、上機編程練習中遇到的難題,以及平時的上機測試遇到的問題。以培養學生的能力為出發點,課堂上學生變成了主角,所有的討論與互動都以學生為中心展開。新課堂模式的顯著特點是實現了學生學習方式的根本轉變,自主學習、合作探究、小組展示成為學生主要的學習方式。提前將全班學生分成若干個小組,按小組布置任務,課堂內每個小組坐在一起,方便討論,同時鼓勵同組成員之間相互幫忙,以小組為單位對PTA平臺中的題目展開討論,并按小組類似于天梯賽開展班級內部的競賽活動。
計算機語言類課程的知識點十分龐雜瑣碎,使得學生難以厘清脈絡,從而無法有效掌握。我們將按照“分層分類、抓大放小、突出重點”的原則,化繁為簡,厘清脈絡。對課程內容進行分層分類,初級教學階段的課程內容設置為主要加強基礎語法的學習,以簡單有趣的案例作為學習內容,促進學生主動學習;中級教學階段更傾向于中、大型規模的實際案例研究與重建,在初級階段掌握基礎語法的基礎上,將具有一定規模的典型案例作為研究對象,對案例進行程序架構分析、程序模塊的功能研究、具體功能算法的實現研究;高級教學階段則更注重團隊項目立項與開發,鍛煉學生的團隊協作能力和項目開發能力。以小組為單位進行項目設計、項目開發、項目測試、項目修正與完善、結項,整個流程作為教學的一部分。
現有的實踐教學形式一般采用“一次實驗兩個課時”,這種實踐教學方式不夠充分,不夠綜合,也不夠深入,無法有效地培養學生綜合運用知識解決實際問題的能力。我們將實踐教學分為兩類:第一類是以鞏固每次課堂所學知識為主,稱為“鞏固性實驗”。“鞏固性實驗”是基礎語法知識點的鞏固,教師在PTA平臺上設計選擇題和填空題,并頒布作業,學生通過手機端或電腦端登錄PTA平臺,線上完成相關練習和作業。第二類是以提高學生綜合編程能力為主的“綜合性實驗”。“綜合性實驗”是課程知識點在實際問題中的綜合運用,教師根據教學內容選用PTA平臺的題目或者自主設計編程題,形成教師個體題庫,學生通過電腦端登錄PTA平臺,完成相關題目訓練,以此達到鞏固知識點及將知識點運用于實際的能力。通過這種實踐教學改革方式,學生不僅鞏固了知識點,而且從“綜合性實驗”訓練中提高了其編程和動手實踐能力,確保了學生對知識的全面掌握。
越來越多的高校重視課程的過程考核,但是存在教學過程考核缺乏依據的弊端。針對這個問題,我們對課程考核方式進行了改革,程序設計課程總成績采用平時成績+平時測試成績+期末測試成績相結合的方式:平時成績占20%,包括考勤、課堂表現、上機實驗和作業完成情況,分別占平時成績的20%、20%、40%和20%;平時測試成績占30%,安排4次平時測試;期末成績占50%。上機實驗、作業、平時測試和期末測試全部在PTA平臺上完成,同時,為了避免抄襲現象,平時測試采用閉卷考試,并且其80%的試題來自上機實驗和平時作業的原題,并規定若平時測試中來自上機實驗和平時作業的原題部分得分率低于50%,判定作業為抄襲,平時作業成績無效,以此來杜絕抄襲作業的現象。
本文的第一節敘述中提出,教師任教兩個班級,需要每周要批改500頁的作業文檔,若每一頁批改時間為2分鐘計,則每周批改作業這項工作需要占用約17個小時。教學改革后教師將不需要批改作業和測試試卷,只需要查看PTA提供的作業和測試試卷分析報告,根據分析報告,教師可以了解和掌握學生的整體情況,包括學生代碼的規范性、每道題的錯誤率和錯誤原因、學生完成作業的時間等一系列數據,為后續的課堂教學改革提供了翔實的數據支撐,同時,由于教師教學工作壓力減輕,教師有更多的時間與學生交流和討論,從而提升了與學生相處的融洽程度,有利于提高學生的整體成績,進而提高學生對教師教學的評價。
高等教育教學一項重要的任務是培養學生的自主學習能力,提升學生的學習興趣是培養自主學習能力的關鍵所在。基于PTA平臺的教學改革,從三方面提升了學生學習的興趣:一是PTA平臺的題目都是經過資深教師和專家精心設計的,不僅具有趣味性,而且都有實際應用背景,學生在閱讀題目時已被題目的背景深深吸引,讓學生感受到學有所用,增加了學生的學習興趣。二是PTA平臺具有排名功能,學生學習過程中你追我趕的學習方式,可極大地刺激和激發學生的學習動力,提高學生的學習興趣。三是平臺具有即時反饋功能,提交代碼以后,馬上得到反饋,或者有其他的提示,類似游戲通關的過程,學生從中獲得了回報和極大的滿足感。
在之前的實驗課上,不少學生常將教材或習題集上的程序代碼抄寫到編譯器中,然后提交到機房服務器就算完成作業,對結果是否完全正確并不知情,更談不上透徹理解程序。在PTA 平臺上訓練,若學生提交的代碼測試存在不正確之處,該題不能獲得全部的分數,學生必須找出錯誤所在,修改程序代碼,直到通過所有測試數據組的測試。這種訓練,不僅提高了學生思考問題和算法設計的能力,而且提高了程序的改錯調試能力,經過反復的練習,很大程度上提高了學生的編程能力。
PTA平臺雖然設計得很人性化,并給教師和學生都提供了操作指導用書,但是剛開始時,學生常常感到無從下手,在上機操作過程中經常出現各類問題。特別是學生在編譯器上運行正確的程序代碼,到PTA平臺提交后,出現不能得分或者不能得滿分的現象。
解決這個問題,我們需從兩方面入手:一是教師前期耐心地講解和輔導,在操作前給學生詳細介紹平臺的操作流程,并告知學生平臺給出錯誤提示的含義,及時幫助學生解決遇到的各類問題。二是鼓勵學生多學多練習,給學生足夠的信心,在經歷了2~3次上機實驗操作后,學生基本能很好地使用平臺上的相關操作。
PTA平臺的優點之一是可以隨時隨地通過網絡進行答題,這種優點引發的一個弊端是出現抄襲現象。雖然一直對學生強調誠信的重要性,但是還是不可避免地存在一些學生通過復制同學的代碼來提交答題的情況。
解決這個問題,我們需三方面入手:一是教導,讓學生知道抄襲屬于作弊行為,高校對作弊的處罰非常嚴重,會影響學生誠信的評價。二是依賴于平臺的技術手段,PTA平臺具有“查重”功能,對學生與學生之間提交的代碼進行“查重”,來辨別是否存在抄襲行為。三是從制度方面入手,平時測試在規定的時間和地點進行,采用閉卷考試并且有教師監考。
針對程序設計課程教學過程中存在的學生學習興趣、效率不高,教師工作任務繁重等問題,本文基于PTA平臺,對程序設計課程的教學方法、教學內容、實踐教學和考核方式等方面進行了改革,通過改革,減輕了教師的工作負擔,提高了學生的學習興趣和編程能力。