賈凌 黃晶晶
摘? 要:C語言程序設計是一門實踐性較強的課程。文章針對傳統C語言程序設計課程實驗教學中存在的不足,結合山東理工大學教學改革的進展情況,闡述C語言程序設計課程的實驗教學在實驗內容、實驗方式、評價方式等方面所進行的改革與創新。期望構建線上線下相結合、課堂內外相結合的混合式實驗教學模式,提高各專業學生的編程能力、培養應用型本科人才。
關鍵詞:C語言;實驗教學;教學改革;混合式教學
中圖分類號:G642? ? ? 文獻標識碼:A 文章編號:2096-4706(2019)22-0097-03
Abstract:C language programming is a practical course. In view of the shortcomings of the traditional C language programming course experimental teaching,combined with the progress of teaching reform in Shandong University of Technology,this paper expounds the reform and innovation of C language programming course experimental teaching in experimental content,experimental mode,evaluation mode and other aspects. It is expected to build a blended experimental teaching mode that combines online and offline,and both inside and outside the classroom,so as to improve the programming ability of students of all majors and cultivate application-oriented undergraduate talents.
Keywords:C language;experimental teaching;teaching reform;blended teaching
0? 引? 言
隨著信息技術的發展,計算機輔助設計、人工智能、電子商務等各領域對從業者編程能力的要求越來越高,這需要高校對非計算機各專業加強程序設計課程建設,培養學生利用計算機解決本專業領域問題的能力。C語言是一種通用型計算機程序設計語言。它在系統程序、嵌入式系統等領域具有強大的優勢,是絕大多數高校理工類各專業的必學通識課程,具有廣泛而深遠的影響。
以往,在山東理工大學(以下簡稱“我?!保┘叭珖秶鷥人M行的信息化教學改革,多是針對課堂教學,在一定程度上提升了教學質量,然而,對于程序設計課程而言,實踐鍛煉對于提升編程能力至關重要。2018年4月13日,教育部正式印發了《教育信息化2.0行動計劃》,這是教育信息化的再次改革和升級[1]。我校積極研究,迅速行動,對實驗教學模式進行改革。從學生實際出發,采用引領、推動、抬高的步驟,穩步提升學生實踐能力;從實驗教學設計,到落地實施,改革長久以來形成的上機實驗模式,讓學生在實驗教學過程中活躍起來。實踐證明,改革后的實驗教學模式對提升我校理工科學生的整體編程能力、培養創新型人才具有積極意義。
1? 傳統實驗教學中存在的不足
非計算機專業的C語言程序設計實驗教學往往存在以下幾個方面的不足:
1.1? 實驗內容固定
C語言程序設計是面向我校理工科各專業學生開設的計算機公共基礎類課程,在教學過程中采用統一的教學大綱、統一的實驗內容、統一的考試要求?!按蠼y一”的教學設計有利于教育資源的公平化,但不利于以學生為中心的個性化教學需求,各專業學生做相同難度、相同內容的實驗項目,無法滿足不同專業的個別需求,而且學生容易產生畏難情緒,形成復制答案的風氣,影響學習效果。
1.2? 實驗模式單一
C語言程序設計實驗模式通常是教師布置實驗題目,學生自己編寫程序,在此期間,學生遇到問題與教師進行溝通。我校C語言課程班級編制為大班制,在實驗課程上,一位教師面對120名至160名學生,輔導工作量非常大。在教師忙于幫助學生解答問題、調試程序的同時,無法避免部分學生的自我放松,如在上課期間偷偷玩游戲、看視頻等。
1.3? 考核方式不夠客觀
我校以往的實驗考核方式為,以學生在學期中提交的實驗報告為依據,根據各實驗的準確率計分。從早期的由教師手工評閱,到后來的基于ACM競賽的OJ平臺,實現了自動化評測。但是,OJ平臺的評測采用最終程序運行通過即記錄滿分的方式,無法記錄步驟分,非滿分即零分的計分方式一方面缺乏區分度,一方面容易使學生產生挫敗感,不利于激勵學習。
2? 改革與創新措施
進行創新型實驗設計,對實驗教學模式進行混合式教學改革,重構實驗教學體系。具體內容包括以下方面。
2.1? 基于數據分析,認清學生實際情況
在開課之初,設計問卷調查,多角度了解學生情況,發現我校非計算機專業的學生絕大多數沒有編程基礎,但普遍認為學習程序設計是培養計算思維的有效途徑,對個人學業和未來工作具有重要意義,學生的學習態度端正,學習積極性高。
基于對學生情況的精準認識,重新編寫實驗教學大綱,重構實驗教學體系,明確了采用引領、推動、抬高的步驟,穩步、逐步提升學生實踐能力的教學指導思想。
2.2? 改革實驗教學內容
從編程小白到編程高手,編程能力的提升是循序漸進的過程。針對我校學生的實際情況,實驗內容的設計考慮從最基本的題目開始,穩步提升難度。共設計12大主題實驗,其中有11個驗證型和設計型實驗。題目設計先由模仿教材的引領式題目開始,再到填充部分空白的推動式題目,再到獨立編程的抬高式題目。設計多層次、多級別的實驗內容,使不同基礎的學生建立信心,逐步提升實踐能力。其中的1個綜合型實驗,設計為小組協作方式,使小組學生共同努力、共同進步。每個實驗主題都建設了實驗題庫,分類型、分專業進行題目設計,與專業相結合的個別化題目,可以幫助學生了解到本專業對程序設計的需求。
2.3? 改革實驗教學模式
非計算機專業學生數量大、個體差異大,傳統的大班集體上機實驗、教師輔導、課后批閱作業模式使教學效果受限。本文改革以往的實驗教學模式,借鑒浙江大學PTA程序設計類實驗輔助教學平臺與雨課堂智慧教學工具,使兩者有機結合,建立在線資源和實驗為一體的綜合性、立體化實驗課程。
在實驗課前,教師通過雨課堂發布實驗要求與線上資源,學生進行實驗準備,通過課前測試對知識點查缺補漏。教師通過雨課堂的數據匯總提前了解學生的學習狀況,以便在課前能夠及時調整實驗內容。在實驗課上,各小班借助PTA平臺和雨課堂等工具輪流進行翻轉課堂,大班利用PTA平臺進行編程實驗。我校機房為200臺計算機的大機房,分為A、B、C、D四個區域。每次實驗課,選擇一個約40人的自然教學班在A區進行翻轉課堂,其余自然班自主編程。根據程序設計實驗課程的特點,進行翻轉課堂的教學設計,方式不拘一格、多種多樣,目的是切實使學生成為學習的主體,主動探索、主動實踐、主動構建知識體系,提高創新能力。例如,對于驗證型實驗,先由基礎較好的學生講解,再由教師對重點、難點進行針對性講解。對于設計型實驗,先分組進行項目研討,然后邊講解、邊演練;完成之后,展示學生作品,再在組間進行學生提問、學生答疑。對于綜合型實驗,首先分組討論,形成解決方案,教師再進行評價與講解。在實驗課后,利用PTA平臺的實驗資源,鼓勵學生參加校外編程練習,通過與其他學校的橫向比較,鍛煉學生的編程能力,激發學習積極性。
例如,在學習結構體數組的知識點之后,讓學生進行一個“構建學生信息管理系統”的設計型實驗,混合式實驗教學模式的流程如下:
課前,教師利用雨課堂將課件、視頻、習題、實驗任務等信息推送到學生手機,并匯總學習結果。
課中,以項目驅動的方式在小班進行翻轉課堂。學生從自身出發,分析討論這項任務中的數據與操作過程中應包括的內容。學生興趣很高,求同存異,設計出多個版本的結構體類型,例如以下代碼中包含嵌套的結構體:
struct student
{
charnum[12];
char name[20];
char sex;
struct birthday date;
chardep[30];
};
并且分析出結構體與數組各自的特點,以及在本項目中的應用方式。操作方面的討論更加激烈,考慮到增、刪、查、改等方式并討論具體實現方法。在討論中,從程序框架到各函數的設計細節,逐步理順編程思路。學生在利用已有知識探究問題解決辦法的同時,自然會考慮到內存分配問題,進而激發了學習后續知識點“鏈表”的積極性。在完成代碼之后,選取討論過程中具有代表性的思路進行作品展示,進一步分析異同,并引申出優化建議。
課后,一方面要求學生進行學習反思,提交實驗報告;另一方面要求學生在PTA平臺選擇一個校外實驗題目強化學習效果。
2.4? 改革評價模式
實驗教學是C語言程序設計課程的重要環節,是總成績的重要組成部分。目前的實驗評價,僅僅以實驗報告作為評價手段,難以保障真實性和公平性。改革評價體系,加強實驗教學的過程化評價,關注學生個體發展與團隊進步,科學評價學習效果。實驗成績由實驗報告、過程測試、課內成績和課外成績四個部分組成。
在實驗教學中,進行三次過程性測試,通過測試促進學習。PTA平臺能夠記錄代碼的步驟得分,即使程序代碼沒有順利通過運行,學生的努力依然能夠被認可,對學生是莫大的鼓勵,從而激勵學生持續努力。課內成績的評定以翻轉課堂中的表現為依據,實驗模式的改變使學生在實驗課堂上既有相互交流又有自主編程,學生思維活躍,參與度高。課外成績的評定以在PTA平臺參加的校外編程為依據,通過練習其他高校的實驗題目,提高了學生自我挑戰的主動性,使學生從被動編程到主動刷題,在編程中發現成就感。
3? 結? 論
C語言程序設計是一門實踐性很強的課程,學生必須通過有效的實踐訓練,才能在實踐中掌握理論基礎和程序設計的思想和方法,最終提高獨立設計、編寫程序的應用能力。我校進行的實驗教學改革,以學情分析為引導,以學生為主體,以提高學生編程能力為目標,加強學生的參與意識,把交流和分享作為教學的常態,構建了線上線下相結合、課堂內外相結合的混合式實驗教學模式。經過在對2018級學生教學過程中的實踐,發現學生對學習編程的積極性明顯提高,并且為ACM競賽輸送了優秀生源。實踐證明,實驗教學改革對于提高我校非計算機專業學生的編程能力、培養計算思維能力,具有積極意義。
教學改革需要持續研究與實踐,不斷迭代,驗證短期及長期效應。教師需要具備積極應變的能力,不斷探索研究,推動教學改革,才能提高教學質量,培養優秀的應用型人才。
參考文獻:
[1] 王珠珠.教育信息化2.0:核心要義與實施建議 [J].中國遠程教育,2018(7):5-8.
[2] 樸燕姬,金日澤.非計算機專業C語言綜合性實驗的教學探索和實踐 [J].黑龍江科學,2018,9(4):38-39.
[3] 郭銀章,王麗芳.基于項目任務驅動的C語言程序設計課程教學改革與實踐 [J].計算機教育,2017(2):41-44.
[4] 楊焱超,熊盛武,饒文碧,等.基于翻轉課堂的C語言基礎與編程獨立實驗課教學實踐 [J].計算機教育,2016(10):103-105.
[5] 張翠平,趙暉.基于雨課堂混合式學習的C語言課程教學設計 [J].計算機教育,2019(3):85-88.
作者簡介:賈凌(1980-),女,漢族,山東青州人,講師,碩士,研究方向:網絡與信息管理。