張麗 朱青 張靜
摘要:本文對數字媒體技術專業中計算機知識相關的基礎課程內容進行了調整優化,并從廣度、難度以及內在邏輯的合理性方面設計了課程實驗,實現了在有限的課時內促進學生理解關鍵概念、提高動手能力,學生興趣,培養自學能力的目標。
關鍵詞:數字媒體技術專業;實驗設計;計算機基礎知識;內在邏輯
中圖分類號:G642.4? 文獻標識碼:A? 論文編號:1674-2117(2022)08-0105-03
數字媒體技術專業是數字媒體藝術與計算機技術課程融合發展的專業,計算機技術是該學科的基礎,所以數字媒體技術專業需要設置相應的計算機理論和實踐課程。但該專業的計算機基礎知識需求不同于計算機科學專業,照搬計算機科學專業的課程內容并不可行。因而,筆者對該專業計算機基礎知識的需求進行了梳理,對計算機科學專業相關基礎課程內容進行了調整優化,最終形成了一門名為“計算機系統平臺”的課程。該課程內容涵蓋計算機組成、操作系統原理以及計算機網絡基礎相關知識,其中,操作系統原理和計算機網絡基礎是課程的重點核心內容。為了讓學生能更好地理解和掌握課程內容,筆者設置了實驗環節,幫助學生從感性上認識關鍵概念,同時鍛煉學生的實踐能力,為后續其他專業課程奠定必要的基礎。
由于該課程內容涉及面比較廣,跨度比較大,實驗內容的設計難度較大,既要在有限的課時內完成,還要配合理論知識,促進概念的理解和掌握,提高實踐能力,且內容之間還要銜接有序,有合理的內在邏輯,能有機地結合在一起形成一門課程的實驗體系。在這種情況下,通過對課程目標、課程內容以及專業需求的分析,筆者從以下幾個方面著手,設計出了一套完整的實驗內容,力圖在有限的課時內達到促進學生理解關鍵概念、提高動手能力,引導學生興趣,為進一步自學打好基礎的目標。
● 針對專業需求,進行廣度的內容覆蓋
在計算機基礎方面,數字媒體技術專業的學生首先需要掌握操作系統的使用,進一步了解操作系統的功能,理解操作系統的行為,這樣才能更好地在操作系統平臺上使用數字媒體相關軟件,如視頻剪輯與合成,以及能夠進行程序設計,如游戲程序的開發。因此,筆者把第一個實驗設置為Shell編程,通過該實驗讓學生熟悉Linux操作系統接口,熟練使用Linux操作系統,同時希望學生對脫機接口概念有感性的認識。
對于數字媒體技術專業來說,程序設計很大一部分是通過腳本來實現,因此掌握腳本編程,對數字媒體技術專業學生很重要。Shell編程實驗從語法上讓學生學會腳本的寫法,練習核心的循環結構和分支結構,同時讓學生理解腳本程序的運行過程。
其中,進程是操作系統最核心的一個概念。多進程/多線程編程對數字媒體的應用是至關重要的基礎。理論上的進程概念和進程調度,對學生來說過于抽象,而且進程的動態性使學生更加難以掌握,常與靜態的程序混淆。因此,筆者設置了創建多進程程序的實驗內容,完成該實驗的學生認為,“本次試驗讓我對進程調度的方法、原理、效果有了更深的認識。本次試驗既是對課堂學習知識的檢驗,也是對學生自主學習能力的一個考驗”。
另外,數字媒體技術專業的學生需要對計算機網絡有基本的了解,因為將來可能要設計網絡應用程序,如在線游戲、智能APP等。因此,學生首先要掌握網絡應用程序結構的概念,如C/S結構、B/S結構、P2P結構。應用程序的通信是在傳輸層的支持下實現的,要很好地使用傳輸層的接口,學生需要對傳輸層有基本了解和行為理解,需要清楚傳輸層給應用層提供的基本支持,理解其行為,進而掌握網絡接口的功能和使用方法。而這需要學生先了解網絡分層以及網絡協議的基本概念。為此,筆者在課程內容中設計了網絡分層的動機及網絡參考模型的介紹,并重點介紹了TCP協議的實現機制,配合學生理解概念,以及為設計網絡應用程序奠定基礎。此外,筆者還設計了實現簡化版的文件服務器和客戶端的實驗,以期通過該實驗讓學生首先了解傳輸層接口的基本形式,引入socket的概念,讓學生了解網絡通信的實現手段,同時實踐C/S模式的網絡應用程序結構。
● 針對學生基礎,設計適度的實驗難度
由于是數字媒體技術專業基礎類課程的實驗,因此實驗內容的深度和難度都要與之匹配,不能照搬計算機專業的實驗內容。
筆者的實驗設置從最簡單的Shell編程開始,通過一個簡單的腳本實驗讓學生迅速進入計算機系統知識體系。學生在完成實驗的過程中,不斷試錯,不斷探索,很有成就感。通過實驗,學生掌握了Shell編程的方式,在練習中對獲取進程信息和篩選進程也有了一定的了解,并進一步地認識了之前學習到的關于Shell編程、命令、運算、條件、循環語句的內容。
創建多進程程序實驗,從內容上看非常簡單,只是用系統調用創建特定數目的進程。學生對此會感覺比較容易完成,不會產生對進程概念的為難情緒。但實際上該實驗的完成并不像表面上看起來那樣能夠一蹴而就。教師可設置特別設計的創建進程的數量要求,讓學生無法在一開始就達到實驗目的,必須通過不斷修正程序才能達到實驗目的。
例如,教師可通過對循環創建進程過程的控制,讓學生理解子進程與父進程的關系,理解動態產生出來的子進程是什么,理解子進程產生出來之后處于什么狀態以及進程的程序執行到的位置。然后要求學生創建四個子進程,在學生嘗試的過程中,使其理解“子進程復制全部父進程代碼、子進程的運行是從剛剛創建的語句返回”的含義。
學生通過多個進程的運行順序,能體會操作系統的進程調度和含義,并從將單進程運行模式的思維轉換多進程的關系上,體會進程是不同的任務調度實體,進程調度是操作系統的任務,而不是用戶程序所能夠控制的。例如,學生按照單進程程序順序執行的思想會發現,新創建的子進程并不一定按照創建的順序執行。這時他們首先想到的是哪里出現了問題,通過進一步思考,學生可以理解各個子進程和父進程是同等地位,進程的運行是由操作系統的調度程序決定的。當學生發現這個現象并想清楚時,教師要進一步引導學生思考,如果用戶希望控制多個子進程的運行順序,應該怎么實現呢?在學生的認知里,這些進程是在同一個程序里,可以通過控制語句來實現這個目標,但嘗試卻發現結果并不在他們的控制中。教師可通過該實驗讓學生理解,進程的運行順序是由操作系統調度程序實現的,是不被用戶左右的,同時讓學生明白,雖然子進程是父進程創建的,但它并不是原來進程的一部分,而是一個獨立的競爭CPU的實體。另外,在實驗過程中,教師要引導學生思考程序員想控制進程的運行順序應該怎樣做,讓學生明白這需要借助操作系統提供的進程同步手段,從而讓學生加深對互斥與同步相關的理論內容的理解。
網絡應用程序設計是一個比較復雜的過程,學生需要在其后續專業課程的學習中不斷完善和提高該設計能力。因此,筆者設置了一個簡單的文件服務器設計的實驗作為基礎。該文件服務器的實現具有完整的C/S架構,需要實踐主要的網絡編程接口,是網絡應用程序的基礎。通過該實驗,學生能夠體會完整的網絡應用程序架構以及網絡應用程序的設計算法,但實驗總體邏輯和服務功能比較簡單,與學生目前的基礎和認知相匹配。
● 針對廣度內容,進行合理的內在邏輯設計
筆者把第一個實驗設置成Shell編程,其后的進程程序創建實驗則是一個C語言程序設計。這樣設計遵循了循序漸進的原則,學生通過Shell編程熟悉操作系統,在此基礎上進一步熟悉和使用程序開發環境和工具。Shell編程實驗是進程創建實驗的基礎。這兩個實驗可以讓學生理解腳本程序與編譯后二進制程序運行的區別。
簡化版文件服務器和客戶端實驗要求學生通過并發來解決服務器可擴展性問題。服務進程的創建是建立在前面進程創建實驗基礎上的。文件服務器實驗要求學生畫出服務器的多進程執行流程圖,并通過流程圖進一步確定學生理解進程的獨立性以及進程調度的含義,鞏固進程創建實驗的知識點。
服務器的設計涉及運用信號機制對僵尸子進程的處理,這從實踐角度讓學生對進程間通信機制有了更深入的理解。同時,在實驗設計和調試過程中,讓學生體會網絡應用程序和單機應用程序設計和調試上的區別,體會服務器和客戶端程序的不同設計考慮。在服務器和客戶端數據交互過程中,教師要重點向學生強調基于流的概念,并通過具體語句的實現讓學生理解可靠服務的實現手段,以及基于連接的概念。
● 結語
通過這一系列的設計考慮,筆者借助看似簡單的、有限的實驗內容對重點課程理論內容進行了有效支撐,同時鍛煉了學生的實踐能力,并通過實驗過程提高了學生的自學能力。
參考文獻:
[1]賈浩梅.數字媒體技術專業課程體系構建[J].中阿科技論壇:中英文,2021(02):143-145.
[2]李強,羅添,王晶晶,等.新工科背景下數字媒體專業教學改革探索與實踐[J].包裝工程,2020(S1):140-143.
[3]楊哲.數字媒體技術專業課程體系構建的探討[J].現代教育技術,2011(08):88-91.
[4]廖潔.數字媒體技術專業課程設置探索[J].數字通信世界,2021(01):228-229.
[5]曹琨.數字媒體技術專業課程與實踐教學模式探究[J].電腦知識與技術,2019(29):114-115.