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