王雪麗 曹樹偉



摘 要:對于Linux下C語言編程這門實踐性比較強的課程來說,傳統的教學模式已經不能充分發揮學生的能動性,而在線下課堂教學基礎上增加線上教學,突破了這門課程的教學瓶頸。文章以最優化教與學效果為前提,構建了“線上+線下”教學模式。提出了線下課堂授課地點的改變,凸顯了線上建課的優點,設計了自選任務驅動實踐環節。增加了過程化考核模式,以及改變了考核方式等一系列的改革措施。從最終的教學效果來看,合理安排線上成績權重,充分發揮線上教學軟件的功能,“線上+線下”教學模式非常適合Linux下C語言編程教學。
關鍵詞:Linux C;線上+線下教學;自選任務驅動;過程化考核
中圖分類號:TP3? 文獻標識碼:A? 文章編號:1673-260X(2020)10-0023-05
0 引言
隨著智能時代的到來,許多智能產品應運而生,比如智能手機、智能機器人、智能玩具等。這些智能產品的產生是硬件和軟件相互促進共同向前發展的結果,兩者缺一不可。說到軟件,就不得不提操作系統,目前人們廣泛使用的操作系統是Windows操作系統。桌面化的Windows操作系統的確給計算機的使用者帶來了莫大的便利和視覺享受,但許多智能產品屬于小型處理器,無法安裝Windows操作系統,因而新的操作系統應運而生,其中最受各個行業及高校喜愛的就是開源的Linux操作系統[1]。為了培養出適應時代發展,能夠為祖國復興貢獻力量的人才,全國各大高校開設了很多新興專業,比如大數據、機器人、物聯網工程等,其中與這些新興專業配套的必修課程就包括Linux系統下C語言編程。此課程是一個操作性比較強的課程,想要提高學生學習本課程的積極性并取得良好的學習效果,對教師來說,做好理論知識傳授的同時并安排好實踐環節的及時操作是至關重要的。為了使得理論與實踐最大化結合,本文主要研究基于Linux操作系統的C語言編程教學模式的設計。
1 Linux操作系統的安裝
Linux操作系統的創始人是林納斯·托瓦茲[2],他于1991年,在芬蘭赫爾辛基大學,利用GNU的bash當作開發環境,使用gcc編譯器,成功編寫了針對386機器的Linux內核。Linux操作系統是開源的,只要遵守GNU協議的Linux操作系統愛好者均可在網上下載源碼加以改進,并將修改后的源碼發布到網上供其他人使用。
目前Linux操作系統的應用領域非常廣泛。常用的企業級IT服務器都安裝有Linux、Unix或Windows操作系統,其中Linux因其穩定、開源、安全、高效、可移植性強、支持多用戶多任務、網絡功能強大等特點,發展十分迅猛,在服務器市場占有率已超過80%的份額。隨著云計算的發展,在未來服務器領域,Linux操作系統是大勢所趨[2,3]。由于Linux系統廣泛支持大量的微處理體系結構、硬件設備、圖形支持和通信協議,從因特網設備(如,路由器、交換機、防火墻、負載均衡器)到專用的控制系統(如,自動售貨機,手機,PDA,各種家用電器),它都有非常廣闊的應用市場,所以Linux系統已經成功地躋身于主流嵌入式開發平臺[4]。除以上之外,在計算機個人桌面上,Linux操作系統也占有一席之地。鑒于Linux系統及其嵌入式硬件系統的迅猛發展,基于Linux環境的教學活動的改革勢在必行。
計算機上可以直接安裝Linux操作系統,也可以在Windows環境下安裝虛擬機VMware[5],然后在VMware下安裝Linux操作系統。對于高校來說,使用計算機開設的實驗除了與Linux系統相關的實驗外,全部都是在Windows環境下進行。所以鑒于考慮到計算機的利用率和成本等問題,高校一般都采用在Windows環境下安裝虛擬機,在虛擬機上安裝Linux操作系統的方法。這樣安裝的好處是不同實驗互不干擾,提高了計算機的利用率。
2 Linux C編程特點——系統調用
Linux操作系統為開發者提供了非常豐富的開發工具和友好易用的開發環境,它支持多種高級語言,其中C語言是使用最廣泛的高級語言。為了更好地保護內核空間,Linux系統將程序的運行空間分為內核空間和用戶空間,它們在邏輯上是相互隔離的,如圖1所示。所以在Linux中,用戶程序不能直接訪問內核提供的服務,必須通過調用系統調用函數才能實現。
所謂系統調用是Linux內核提供的功能十分強大的一系列的函數,它位于操作系統接口層,是實現用戶與內核交互的接口,系統調用的功能邏輯圖如圖2所示。
由圖2中可知Linux下C編程的特點是系統調用函數的應用。想要學生能夠在Linux環境下熟練使用C語言實現對文件的訪問,建立服務器和客戶端的配置及連接構建網絡環境等操作,就必須熟練掌握系統調用函數的功能、參數、返回值、及調用格式等。從而提高Linux下C語言編程技能,以提升學生在實踐中分析問題、解決問題的能力,為以后從事相關的工作打下堅實的基礎。
綜上所述可知,對于實踐性如此強的課程,是離不開教師的現場指導的,所以采用純線上教學的方式是存在屏障的[6]。經過對Linux操作系統、實訓課程等課程的線上教學[7]和混合教學[8-10]等新興教學模式的研究,本文會提出一些含有創新性的Linux下C語言編程課程的教學改革,這一改革既能充分利用云課堂上的豐富資源,為Linux C編程注入新鮮的血液,又能使得教與學不脫離、理論與實踐無縫銜接。
3 Linux下C編程教學模式的改革
3.1 傳統教學的弊端
Linux C高級語程序設計這門課程與普通課程的區別是前者更傾向于學生動手能力,既編程能力的訓練,只學習理論知識無法理解其精髓,必須加強實踐教學環節的設計。常規的教學方式是理論課在普通教室授課,實踐課在機房授課,這樣的教學方式總是使得理論與實踐存在斷層,學生不能立即依靠實踐來驗證理論,不能更好地掌握系統調用函數的使用技巧,從而使得教學效果欠佳。
由于新型冠狀肺炎疫情,高校不得不采取純線上教學的方式進行授課,這樣方式的確解決了隔離期間無法面授的困難,但是隨著純線上課程的展開,教與學的屏障也不斷凸顯出來[11]。特別是對于像Linux下C語言編程這種實踐性比較強的課程尤為突出,由此可見,線下教學仍是不可或缺的。為了使學生最大化的提高Linux下C語言編程能力,本文將打破傳統的教學方式,改變了線下教學場所,增添了線上教學,構建了線上加線下的教學模式。
3.2 線下教學場所的改變
本文提出的線下教學方式的改革是:理論課和實踐課不分開教學,即理論課和實踐課都在機房展開,不去刻意劃清理論課和實踐課的授課界限。這樣可實現理論與實踐無縫銜接,不但提高了學生學習本門課程的興趣和積極性,而且對提高教師的教學質量和教學效果有極大幫助。
好的教學效果需要良好的教學環境和教學設施的支撐,授課所使用的機房需要具備以下教學條件:
硬件方面:
(1)多媒體教學設施:投影儀、大屏幕、教師授課計算機等。
(2)學生使用的計算機:保證人手一臺。
(3)黑板或白板:供教師詳細講解知識點或即興舉例時使用。
軟件方面:
(1)Linux操作系統:機房中的每臺計算機都需要安裝此操作系統。
(2)電子教室軟件:此軟件需要安裝到機房中每臺計算機上,教師使用的計算機安裝教師端,學生使用的計算機安裝學生端。
使用此軟件可方便教師在講授過程中將自己的電腦屏幕共享到學生端的界面上,便于講解程序,演示編譯、運行過程。除此之外還可以完成文件傳輸、控制學生界面、線上考試等功能。本校(赤峰學院)使用的是伽卡他卡電子教室軟件。
3.3 線上教學
本文提出的一個具有創新性的改革方案是增加線上教學方式,線上和線下教學方式的有機結合可以隨時隨地掌握學生的學習動態、學習效果、心得體會等,教師可以根據線上教學的統計數據的反饋來不斷修改自己的教學方案,提高自身的教學能力,從而能更好地服務教學。
線上教學是近幾年新興的教學方式,隨著互聯網技術的不斷發展,傳統的課堂正向智能化、智慧化轉變,為深化教學改革提供了有力的手段和方法,使得多樣化、個性化的教學模式如雨后春筍般呈現在各大高校的課堂上。
線上教學需要互聯網平臺的支撐,本校(赤峰學院)采用了功能強大、且深受高校喜愛的學習通平臺[11]作為線上平臺。教師和學生需要在手機或電腦上提前安裝學習通App。在此平臺上教師可以個性化的建課、與學生互動、設置小組討論、直播答疑、發放并批改作業、上傳資料等。學生可以用手機參與搶答、討論等活動,可以在手機上查看所學課程的電子教案、視頻資料、電子文檔,還可以在手機上做作業等,如圖3所示。除此之外使用線上教學還有一個好處是,它可以將整個上課過程中學生與教師的互動情況、教師的講解內容、學生成績分析等全部都記錄下來,這樣方便教師得到教學反饋信息,反思自己的教學方式,從而不斷修改自己的教學方案,以此提高教學能力,更好地服務學生。
3.4 “線上+線下”教學課堂的構建
Linux下C語言編程的實踐性非常強,但也不能忽視理論知識的學習。本文在研究了Linux C高級語言程序設計課程性質及學習通功能的前提下,構建了“線上+線下”教學課堂的構建。線下課堂(機房)完成理論知識的學習及實驗環節的教與學,線上的學習通平臺負責課前預習或線上學習理論知識、課前簽到、課中師生互動、發放和提交作業、課后答疑等。
3.4.1 課前準備
課前準備包括線上和線下課堂的準備。教師根據培養方案和課程大綱的要求提前制作好課件,實驗任務環節的設計,錄制速課視頻,然后將課件及視頻上傳到學習通上開始建立個性化課程,為線上課堂做準備。線上準備包括:
線上教學的智能之處在于,教師可以在線上進行成績管理,如設置權重,統計分數,導出成績等。這樣不但節省統計分數的時間,而且統計信息詳細,操作方便,這是線上建課的原因之一。
3.4.2 課中互動及實踐環節設計
線上、線下課程均可以進行師生互動,為了在互動的過程中隨時隨地方便教師記錄學生課堂表現成績,本文提出了在線下課堂上采用線上進行選人、搶答、小組討論等互動的教學模式。因為課前教師已經在線上建立課程,線下上課過程中,教師可以將自己手機投屏到機房的大屏幕上,這樣,從教師用手機進行選人、搶答等方式與學生互動,到問題回答完畢后給出分數等一系列的操作,學生一目了然。這樣不但方便教師記錄分數,而且還調動了學生學習的積極性,一舉兩得。
實踐環節對于Linux下C語言編程來說至關重要,我們進行教學改革的目的就是為了更好地為實踐環節服務,因為學生只有在實踐環節中才能達到學以致用、用以致學的目的。通過對文獻[12]的研讀,本文對實踐環節提出的教學方法是:自選任務 +綜合應用,即突出學生的主體地位,以學生實踐為主,教師引導為輔。用有趣的、實用性的任務來吸引學生的注意力,幫助他們克服對新知識的膽怯心理,最終達到驅動學生自愿學習的目的。
以網絡編程為例來講解實踐環節的設計思路,我們通常選用基于TCP的socket編程來模擬兩臺計算機之間的通信。為了激發學生學習興趣,教師在備課時可結合當下熱門,多設計幾個任務案例及難易程度不同的任務要求,讓學生在實踐過程中根據自身能力選擇自己感興趣的任務及要求。但記住,這些不同任務的核心知識點必須是相同的,即為socket通信。此處設計兩個任務,任務清單如表1所示。
由表1可知,這兩個任務的核心知識點均為基于TCP協議的套接字socket編程,教師設計任務要求時,切記不要太復雜、太難,對于初學者來說,一定要從最基礎的入手,否則學生會因為挫敗感打消學習的積極性。表1中每個任務都設計了3個難度不同的要求,要求不同,綜合運用程度不同,不同要求對應的綜合運用如表2所示。
從表1和表2中可以看出,不同難度的任務及任務要求可以滿足能力層次不同的學生的需求,讓每一個學生在課堂上都有收獲。學生在教師的指導下通過完整的完成任務,可以大幅度的提高學生的綜合運用知識的能力及編程能力。為了提高學生團隊合作能力,可以以學生小組為單位進行任務驅動。
3.4.3 課后答疑
教與學都需要不斷的歸納總結與反思,這樣才能讓教與學的效果更佳。傳統教學中,線下課堂教學結束后,學生課下遇到問題時很難及時得到解決,從而出現學習斷層,而教師也不能及時通過學生的反饋答疑解難及總結教學效果。線上教學克服了這一困難,教師可以在線上發布活動,讓大家針對某一重點、難點進行討論,讓大家集思廣益,這樣即可高效率地解決問題。
除此之外,教師可以在線上發布作業,學生通過手機做完作業并提交后,教師可以隨時修改作業,并根據線上統計分析學生答題情況,如圖4所示。從圖4中可以看出第7題的正確率是非常低的,教師可以針對其難點進行直播答疑。
綜上,與傳統教學模式相比,線下機房教學結合線上互動、答疑等活動,不但使教師上課、課下歸納總結更加高效,而且教師有更多的時間和精力及時地解答學生遇到的各種問題。學生也會因為理論與實踐的緊密結合,提升了學習成就感,繼而進一步提高了其學習本課程的興趣,形成了良性循環。
4 考核方式的改革
針對上文提出的線上+線下教學模式,考核方式也做了相應的改革。傳統的考核方式是:平時成績(30%)+期末成績(70%),這樣方式無法完全反映學生學習過程中的所有表現情況。為此,本文做出的改革是采取過程化考核方式,對此,學生的成績權重及總成績構成為:
期末考試可以采用機試或筆試的形式,因為Linux C高級語言程序設計這門課程重點在于實踐操作,學以致用,而不在于對系統調用函數的死記硬背,所以期末考試可以采取半開卷的考試形式。半開卷的意思是每位同學可以將自己認為重要的知識點寫在一張A4紙上,考試時可以拿來參考,但除了此A4紙外,考試時不可以攜帶其他的學習資料。
引入過程化考核,可以將學生在學習過程中的綜合表現映射到成績中,這樣不但使得總成績客觀、公正、有效,而且避免了學生學習時不注重過程,考試前突擊的行為。
5 結語
在互聯網不斷發展的大環境下,增加線上教學模式是形勢所趨。在傳統線下課堂教學的基礎上增加線上教學,豐富了教學資源,使得學生不再局限于本校的教學資源,獲得知識的途徑更為廣泛。對教師來說,線上教學為教學模式改革提供了方法和手段。通過目前的教學模式應用表明,線上+線下教學課堂模式結合自選任務驅動+綜合運用的實踐環節的設計非常適合Linux下C語言編程的教學,并對其他實踐性較強的實訓課程的教學具有一定的參考價值。它能充分調動學生學習的積極性,使其獲得成就感,使學生更注重學習過程,形成良性循環,最終收獲“更美更甜的果實”。
參考文獻:
〔1〕郭玉華,鄭嘯.面向計算機系統能力培養的啟發式教學研究與實踐——以“Linux操作系統與程序設計”課程為例[J].工業和信息化教育,2020,8(05):79-83.
〔2〕楊鑄.Linux下C語言應用編程[M].北京:北京航空航天大學出版社,2012.
〔3〕王耀華,劉詠霖,張磊.Linux下高效可靠的應用同步升級技術[J].網絡安全技術與應用,2020,20(05):12-14.
〔4〕韓璞,王耀寬,胡四平.基于嵌入式Linux的農用無人機視覺導航算法及應用[J].農機化研究,2020,42(11):224-228.
〔5〕張松林,高建,李樹波.虛擬機VMware在Linux操作系統管理教學中的運用[J].現代信息科技,2019,3(24):123-125.
〔6〕關少化,范愛玲.線上教學的教與學屏障及其突破[J].北京教育(高教),2020,72(05):55-57.
〔7〕劉瀟瀟..基于“互聯網+”的Linux課程智慧課堂教學模式研究[J].辦公自動化,2019,24(24):21-22.
〔8〕項響琴.線上線下深度融合,打造程序設計“金課”[J].電腦知識與技術,2020,16(11):180-181+191.
〔9〕李建新.混合教學在Linux課程教學中的應用研究[J].信息與電腦(理論版),2019,31(03):243-244.
〔10〕雷永鋒,李興紅,王笑宇,孫莉莉.實訓課程線上線下混合式教學模式研究[J].大眾科技,2020,22(03):106-108.
〔11〕邱桂佳,杜軼君,周瑾.基于超星學習通教學平臺的混合式教學模式在藥學概論中的應用[J].西部素質教育,2020,6(06):108-110.
〔12〕李哲,房勝,黃玲.任務+項目驅動的Linux應用開發課程模式探索[J].軟件,2020,41(04):271-274.