孫 笑 微
(沈陽師范大學 軟件學院, 沈陽 110034)
2017年2月,國家教育部推進新工科[1-4]建設,先后形成了“北京指南”“復旦共識”和“天大行動”等,共同探討了新工科的文化內涵和發展方向,同時全力探索形成領跑全球工程教育的中國模式和中國經驗,助力高等教育強國建設。
C語言程序設計是計算機科學與技術專業中的專業基礎必修課,該課程是學生了解和掌握計算機軟件知識和C語言程序設計的主要課程。本課程不僅要求學生有較強的邏輯推理能力和扎實的數學基礎,而且還要具備一定的分析問題和解決問題的能力,以及實踐操作的能力。為了加強計算機高等人才的培養,使之更適應“新工科”的需求,實際解決高?!敖獭迸c“學”中存在的普遍問題,需要對《C語言程序設計》課程的實踐教學方法進行改革[5-8],使之更好地適應時代的發展與進步。
本文將運用PTA[9-11]平臺對C語言程序設計課程進行教學改革,實現全國資源共享,管理簡單,數據分析準確,幫助教師分析學生知識掌握程度,發現問題,有針對性地開展教學和指導,從而促進學生程序設計能力的提高,為未來的高校教學改革提出新的依據和方法。
C語言程序設計是計算機科學與技術、軟件工程和網絡工程專業的一門理論性、實踐性、應用性很強的重要專業基礎必修課程。以沈陽師范大學(以下簡稱“我?!?軟件學院網絡工程專業C語言程序設計課程為例,每年計劃招生人數為90人,2個教學班,即教學班人數為40~50人之間,教師在過去的傳統課堂上以理論講授為主,教學內容偏重枯燥的語法規則,雖然在教學中也引入慕課[12-13]、雨課堂[14-15]等教學手段和方法,但是仍然只能夠關注到學生的理論課堂部分,對實踐部分沒有有效的監督工具和手段,學生對C語言的學習,特別是上機操作實驗部分存在普遍的畏難情緒,導致最終學習效果不理想。
C語言程序設計課程是一門實踐性操作性很強的學科,對學生的上機實踐操作能力要求很高。軟件學院網絡工程專業19級C語言程序設計的教學計劃為72學時,其中理論學時42學時,實驗學時30學時,教師很難與學生進行有效同步,時間的延遲和平臺無法統一等問題導致實踐操作部分問題集壓,由于C語言知識點連貫,使得一部分同學最終喪失學習興趣,期末成績不理想等,同時題目的局限性和考核方式的主觀性也很難訓練出學生扎實的編程能力。
根據主動學習理論的要求,課程將分為開課前、開課中和開課后3部分進行設計。開課前,教師根據教學計劃設計詳細的教學大綱和教學實驗日歷,選取合適的教材、輔導書、難度相應的習題集和教案。開課中分為每章節的課前、課中和課后。課前,要求學生按照教學實驗日歷,通過雨課堂預習任務單和教材進行知識點的自學,利用PTA布置每一章節相關內容的習題,注意習題集的難度要適中,設置成隨機模式以便期末組試卷用。開課中,通過PTA 導出學生完成的習題答卷,課堂上可以隨機抽查學生的程序。對于正確的程序也可以讓學生們探討有沒有更好的,時間復雜度更小的解決方案,針對學生未注意到而又重要的部分,教師可以引導提問,激發學生的主動思考。課程結束后,創建百題刷分習題集,將之前章節中所有的編程題(不僅限于題庫的題)匯總,可以不設置結束時間,或設置較晚的結束時間,給學生充分的練習過程,同時讓同學們回顧學習過程,總結學習方法,為后續專業課程的學習奠定基礎。
PTA(Programming Teaching Assistant)是程序設計類實驗輔助教學平臺,該系統將用戶分為3種角色:管理員、教師和學生。教師可以建立并分享自己的題目集、創建自己的班級、添加學生、布置作業、統計成績并進行數據采集和分析等。學生可以登錄系統根據教師布置的任務完成相關習題,查看習題完成情況和自己所得分數,并且查看自己在班級中的排名,了解自己在班級中處于什么樣的位置,及時調整自己的學習態度和學習計劃。本文針對軟件學院網絡工程專業2019級90名學生進行PTA學習實踐,縱向對比他們與往屆非使用PTA平臺的學生在實驗成績和實驗效果上的差別,從而進行教學改革研究。
在開課前,C語言程序設計教學研討組開會討論每個教學章節要布置的電子作業,即題目集。如圖1所示為題目集編輯頁面。

圖1 題目集編輯頁Fig.1 Exercise Set Editing Page
PTA現有的題庫內已經有將近3 000多道C語言相關的題目,題型涵蓋判斷題、單選題、多選題、填空題、程序填空題、函數題、編程題以及主觀題等,題目集在初始化的時候除了需要設置習題的開始時間和結束時間,還可以開啟隨機組卷,其中包含題目順序隨機和答案順序隨機,以方便期末的時候利用這些現有的題目集進行隨機組卷。被選到題目集中的習題可以隨時刪除和增加,由于開啟了隨機組卷,試題會根據原有習題分數自動進行題池的劃分,這時可以利用習題左上角的上下按鈕進行題池的合并和拆分,以方便形成分數統一標準一致的題池,為了讓學生對所有題目都能夠充分練習,還需要把幾選幾的選項進行修改,以便學生能夠練到所有題型。每一類型的習題分數可以事先統一好,這樣在期末組卷時會有統一的標準,也大大減少了后期的工作量。如圖2所示為題庫題型列表。

圖2 題庫題型列表Fig.2 List of Question Types in Question Bank
PTA提供了題目集分享功能,可以保證同一教學組布置相同的作業,避免大家重復勞動。教師可以在設置好題目集并添加好題目后,生成分享碼,其他教師使用該分享碼可以生成自己的題目集,也可以對題目集進行修改,但是此修改只針對教師個人習題集,不會影響其他教師的習題集。每章習題結束后,教師可以查詢學生作業完成詳情和分數。如圖3所示為部分學生答題情況。

圖3 成績排名Fig.3 Ranking of Achievements
PTA還提供了OMS監考系統,可以開啟隨機座位功能以及考試防作弊系統。監考老師利用微信監考小程序將考場中所有學生的信息通過掃描二維碼的方式掃到電腦上,學生可以根據電腦上的個人信息找到自己的座位進行考試。考試過程中,學生在考試時間內可以答題,教師也可以在手機端或者PC端查看學生是否有違紀行為,一旦違紀(即打開和考試相關的其他應用端)系統會自動報警。考試結束后,學生可以查看自己成績在班級中的排名,教師也可以導出所有學生的答卷、成績單、正答率、得分代碼以及試卷分析等。
將PTA平臺應用到我校軟件學院網絡工程專業2019級學生的C語言程序設計實踐教學中進行嘗試,經過與2018級學生進行對比,得到學生C語言程序設計課程的平均成績(其中包括平時成績30%、期中成績20%、期末成績50%)、不及格率、優秀率和學生參加ACM國際大學生程序設計競賽人數的對比,如表1所示。
通過實驗數據可以看出,PTA平臺提高了課程的通過率和優秀率,培養了學生的實踐動手能力,也大大提高了學生程序設計競賽的成績。這為軟件學院其他實踐課程給出了很好的經驗和改革依據。

表1 “C語言程序設計”實踐教學改革教學效果對比Table 1 “C language programming” practice teaching reform of the teaching effect
基于PTA平臺實現C語言程序設計課程的教學改革的開展,對于有效的豐富教學資源,提高學生的自主學習主觀能動性、提高學生的編程能力和計算機操作能力都具有至關重要的作用。同時加強了師生互動,提高了教師教學的效率和學生學習的效率,確保將學生自主創新的熱情激發出來,讓學生學會積極思考,將所學知識融會貫通,以此來不斷地提高學生的編程能力和動手實踐能力,促進學生全面發展,為高校教學改革提出新的方向和目標。