高洪皓,陳章進,高 玨,鄒啟明
(上海大學 計算中心,上海 200444)
為響應教育部“新工科建設”需求,各高校根據(jù)“復旦共識”“天大行動”和“北京指南”等精神積極開展課程改革和人才培養(yǎng)實踐[1-2]。計算機專業(yè)除了傳統(tǒng)的計算機科學與技術(80901)、軟件工程(80902)和網(wǎng)絡工程(80903)之外,還包括新型的信息安全(080904K)和物聯(lián)網(wǎng)工程(80905)兩個專業(yè)。因此,亟須對計算機基礎課程進行改革以適應這些新型專業(yè)的知識體系。為了提高學生的創(chuàng)新創(chuàng)業(yè)能力,上海大學計算中心積極開展計算機基礎課程的教學改革和工程教育改革,探索未來卓越人才培養(yǎng)模式和教學方法[3-4]。
程序設計是重要的高校計算機基礎課程,以編程語言為平臺,介紹程序設計的思想和方法。在該課程的學習過程中,學生不僅需要掌握高級程序設計語言的基本知識,更重要的是要在實踐中逐步積累程序設計的思想和方法,培養(yǎng)問題求解和語言應用的能力。然而,學生的實際編程和上機調(diào)試程序的能力遠遠不足。在對該問題進行理論研究和實踐試驗后發(fā)現(xiàn),在程序設計課程中采用軟件大作業(yè)形式并嚴格管理,能在一定程度上加強學生自主學習、收集資料和動手編程的能力并且能為后續(xù)的專業(yè)課程打下良好的編程基礎,較好地服務于新工科建設。
程序設計課程(基礎)介紹程序設計的基本概念和一般方法,要求學生掌握編寫、調(diào)試、測試和維護程序的技能。通過程序設計課程學習,以Java語言為例,學生能掌握結(jié)構(gòu)化程序設計的方法,較熟練地運用Java語言編寫結(jié)構(gòu)化程序,具有較強的閱讀Java程序和撰寫技術文檔的能力。
由于上海大學實行短學期制的教學周期,計算機基礎教學必須實現(xiàn)培養(yǎng)學生基本編程能力這一重要目標。表1為1個學期共10周的教學內(nèi)容,實際教學需要調(diào)整教學重點,強調(diào)基礎知識;適當增加編程量,提高編程難度。在教學過程中,重點講解“運算符、表達式和語句”和“數(shù)據(jù)處理的流程控制”兩個章節(jié)并增加相關案例編程進行實踐強化。
根據(jù)教學大綱,實踐環(huán)節(jié)安排課前、課中、課后3個編程任務。課前預習能夠提前發(fā)現(xiàn)下次程序設計課的問題或薄弱點,幫助學生在課堂上有針對性地進行填補,掌握重點,突破難點,顯著提高課堂學習效率。課中采用2+1模式(2課時授課,1課時上機),即在每兩節(jié)理論課授課結(jié)束后,繼續(xù)一節(jié)上機實驗課程讓學生進行在線編程練習。由于在線判題系統(tǒng)的自動判分系統(tǒng)能提示問題代碼的出錯點以及實際輸出與目標輸出的不同之處,學生能及時發(fā)現(xiàn)問題并思考解決辦法,同時采用研究生和高年級學生作為實驗課助教的輔助形式,鼓勵學生愿意問和敢問編程問題,有效地調(diào)動學生的學習積極性,不斷增強學生的編程自信心。
表1 程序設計基礎(Java)課程教學內(nèi)容
課前階段會在課程網(wǎng)站(http://class.ccshu.net)提前一周發(fā)布下次課上課前需要完成的預習任務和思考題。表2給出了程序設計基礎(Java)每周的預習任務和思考題,其中思考題部分要求學生獨立思考,梳理邏輯,提前做好筆記,在上機練習環(huán)節(jié)進行驗證與解答。
表2 程序設計基礎(Java)每周的預習任務和思考題
課中階段包含兩個環(huán)節(jié),首先是課程知識點的授課環(huán)節(jié),其次是配套的上機實驗環(huán)節(jié)。上機環(huán)節(jié)會圍繞上課知識點和思考題在在線平臺(http://program.ccshu.net)隨機出卷,要求學生在20分鐘內(nèi)完成測試題并提交結(jié)果,測驗成績會作為平時成績計入期末總成績。為了充分降低學生不愿和不敢向任課教師提問的心理負擔,上機環(huán)節(jié)引入了學生助教模式,助教包括高年級本科生和研究生數(shù)名。表3為上海大學2017年秋季學期程序設計基礎(Java)的隨堂測試情況,第3周開始參考人數(shù)趨向穩(wěn)定,維持在80%左右。從測試成績來看,隨著課程的深入,題目難度逐漸提升,但仍然能保持較高的得分,學生的編程能力不斷提高。
表3 2017年秋季學期程序設計基礎(Java)隨堂測試情況
在線平臺的測試題分為順序結(jié)構(gòu)程序設計、選擇結(jié)構(gòu)程序設計、循環(huán)結(jié)構(gòu)程序設計、有關數(shù)組的程序設計、有關函數(shù)的程序設計以及有關文件的程序設計等多個類型。目前題目總數(shù)超300,該平臺的一個顯著優(yōu)點是可以設置輸入和輸出的多組檢查數(shù)據(jù),同時,該平臺允許設置輸出檢驗的相似度。在實際測試過程中,前兩周由于學生對于輸入和輸出不是很熟悉,因此會將相似度設置得低一點避免諸如大小寫和空格不一致等問題,但從第三周開始設置嚴格的匹配模式。在線平臺的學生界面設置了嚴格的答題時間限制,要求學生在規(guī)定的時間內(nèi)完成練習并提交結(jié)果。此外,由于每道題目教師都提前設置了輸入和輸出值,學生提交代碼后會立刻返回得分,如有錯誤還會提示出錯信息以方便修改。這樣的模式有助于學生在一定的壓力下不斷提升自己的編程能力,增強編程信心。
課外采用大作業(yè)的形式,大作業(yè)選題方向包括學生信息管理系統(tǒng)、日歷查詢、計算器程序、撲克牌發(fā)牌、時鐘模擬、俄羅斯方塊游戲、貪吃蛇游戲、五子棋游戲、隨機搖號軟件和其他自擬題目。由于大作業(yè)成績在期末總成績考核中占20%,學生對大作業(yè)的重視程度普遍較高。大作業(yè)的成績評定采用公開答辯的形式,由3~4名專家擔任答辯專家對學生的大作業(yè)進行全面細致評審。大作業(yè)考評機制包括:①專家組成。邀請教研室教師和具有工程實踐的企業(yè)工程師參加答辯。②材料驗收。需要驗收的材料包括Word報告、演示用PPT和大作業(yè)源代碼,其中源代碼執(zhí)行性由研究生輔助校驗目標功能。此外,為了保障大作業(yè)的順利進行,上海大學計算中心啟用了信息技術創(chuàng)新實訓平臺和校企共建實驗室,目前已接待了近5000人次的創(chuàng)新實訓。依托創(chuàng)新實訓平臺和實驗室,除了日常課堂教學,還開展了課外訓練擴展班、競賽訓練班、企業(yè)工程師專題技術/學術講座等實踐實訓活動。
以上海大學2017年秋季學期Java程序設計為例,選課人數(shù)共115人,其中14級學生4人,15級學生46人,16級學生65人。大作業(yè)分組情況:3人組共24組,2人組共20組,1人組共3組。通過分析發(fā)現(xiàn),相較于14級和15級,16級學生在大作業(yè)模式下能更好地開展團隊溝通,嚴密分工,協(xié)同奮進實現(xiàn)目標功能。此外,72%的小組選擇了自擬題目進行設計和實現(xiàn),在一定程度上體現(xiàn)了大學生的創(chuàng)新創(chuàng)業(yè)精神。
在大作業(yè)答辯之前會提前告知學生答辯專家的評分要求。表4給出了專家的評分細則,主要從3個方面考查學生,包括匯報表達能力、軟件完成情況和PPT內(nèi)容。其中,答辯專家會重點關注軟件完成情況,包括軟件功能是否實現(xiàn)、界面是否友好以及使用的便利性等,該項占比50%;其次是對學生的匯報表達能力的考核,注重培養(yǎng)學生的語言表達能力和團隊合作意識。通過嚴格的答辯形式,學生能更加深刻體會和凝練大作業(yè)涉及的各項軟件開發(fā)核心技術。
課程教學結(jié)束后,計算中心調(diào)查統(tǒng)計分析系統(tǒng)(http://os.cc.shu.edu.cn)會要求學生填寫課程調(diào)查問卷。2017年秋季學期Java程序設計課程的調(diào)查問卷共111人參加,以下選取部分調(diào)查結(jié)果進行分析說明。
表4 專家評分表
在編程能力方面,大部分學生認為Java編程能力得到提高,其中21.62%的學生認為極大地提高了Java編程能力,45.95%的學生認為Java編程能力得到了一定的提高, 29.73%的學生認為Java已基本入門,2.7%的學生認為沒有提高??芍?,Java編程能力僅達到基本入門甚至沒有提高的學生比例合計約占32%,這反映出仍有少部分學生存在學習困難和學習態(tài)度不端正的現(xiàn)象。針對這部分學生可以考慮在線測試時適量增加一些課堂內(nèi)已經(jīng)詳細講解過的編程題,適當降低測試題的難度等,逐漸提高這部分學生的編程自信心。針對2.7%的學生需要單獨約談,進一步了解原因和具體的學習困難,考慮安排單獨補課或者興趣班補習等。
在學習積極性方面,91.89%的學生認為大作業(yè)提高了學習積極性,8.11%的學生認為沒有提高。從數(shù)據(jù)可知,學生普遍認可大作業(yè)的模式。如果學期周期沒有限制的話,建議適當增加課外討論,如每2周進行一次進度匯報,重點匯報模塊實現(xiàn)情況、遇到的問題、編程經(jīng)驗分享等,同時組織研究生擔任助教協(xié)助每個小組進行現(xiàn)場指導和調(diào)試程序等。
在課程滿意度方面,97.3%的學生對該課程表示滿意。其中,在授課過程中加強理論聯(lián)系實際,講解編程案例,注重運用啟發(fā)式和參與式的教學方法,能激發(fā)學生學習興趣,啟迪學生思考、聯(lián)想和創(chuàng)新思維。此外,研究生和高年級學生擔任實驗助教也在一定程度上提高了學生的課程滿意度,讓答疑解惑更加方便及時。
高校大類招生模式[5]以第一年全部實行通識教育為主,亟須探索創(chuàng)新人才培養(yǎng)新方法。上海大學較早地實行大類招生制度[6-7],學生通過一年通識課的培養(yǎng)后由學生和專業(yè)學院進行雙向選擇后確定今后專業(yè)方向。這一制度不僅避免了傳統(tǒng)高考招生制度的一考定終身,而且有助于學生在第一年全面了解分流具體專業(yè)的知識結(jié)構(gòu)和培養(yǎng)方案。作為負責全校計算機基礎教學的單位,計算中心已開展了相關課程改革并先行先試,取得了面向大類招生模式的教學改革經(jīng)驗[8-10],包括課程體系、教學體系、學生能力評價體系、考試考評體系等多個方面?!敖虒W—測驗—大作業(yè)”的人才培養(yǎng)模式適合于面向大類招生的計算機基礎課程建設。上海大學通過近2年的教學實踐充分發(fā)掘本科生的創(chuàng)新創(chuàng)業(yè)能力,為后續(xù)專業(yè)課程打好基礎。該模式不僅能提升工科學生的創(chuàng)新精神、創(chuàng)業(yè)意識和實踐能力,而且有助于探索個性化人才培養(yǎng)模式。目前,經(jīng)過該模式培養(yǎng)的部分學生正在積極聯(lián)系學業(yè)導師擴展項目,參加市級和國家級的學科競賽或雙創(chuàng)大賽。