国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

網(wǎng)絡(luò)程序設(shè)計(jì)教學(xué)改革探索

2013-09-17 11:59:42崔廣才從立鋼
重慶與世界(教師發(fā)展版) 2013年8期
關(guān)鍵詞:C語言程序設(shè)計(jì)計(jì)算機(jī)網(wǎng)絡(luò)

祁 暉,崔廣才,從立鋼

(長春理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,長春 130022)

一、網(wǎng)絡(luò)程序設(shè)計(jì)課程教學(xué)現(xiàn)狀

網(wǎng)絡(luò)程序設(shè)計(jì)是計(jì)算機(jī)專業(yè)的一門重要的專業(yè)基礎(chǔ)課,對培養(yǎng)學(xué)生的程序設(shè)計(jì)能力,加深理解計(jì)算機(jī)系統(tǒng)、網(wǎng)絡(luò)協(xié)議等起到非常重要的作用。不論學(xué)生將來是從事軟件工程、網(wǎng)絡(luò)工程項(xiàng)目還是計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)的科研工作,都極有可能需要進(jìn)行網(wǎng)絡(luò)程序設(shè)計(jì)開發(fā),由此可見這門課程的重要性。但在實(shí)際教學(xué)過程中,我們發(fā)現(xiàn)不少學(xué)生存在程序設(shè)計(jì)能力不強(qiáng)、操作系統(tǒng)及網(wǎng)絡(luò)協(xié)議基礎(chǔ)知識不扎實(shí)的問題。主要體現(xiàn)在以下幾個(gè)方面:

1.C語言編程能力不強(qiáng),尤其是對C語言的編譯鏈接以及IO編程。因?yàn)槎鄶?shù)學(xué)生在學(xué)習(xí)C語言的時(shí)候使用的開發(fā)環(huán)境是VC,是一種完全圖形化的開發(fā)方式,整個(gè)編譯鏈接過程都是由VC自動完成,因此無法了解編譯鏈接的每個(gè)步驟[1-2]。結(jié)果在調(diào)試教材示例代碼時(shí)就容易出錯(cuò),而且不知道如何解決問題。此外,在學(xué)習(xí)C編程時(shí),注重語法學(xué)習(xí),算法學(xué)習(xí),而忽視了IO編程,而IO編程卻是實(shí)際開發(fā)中經(jīng)常遇到的,尤其是網(wǎng)絡(luò)編程。

2.操作系統(tǒng)基礎(chǔ)薄弱。主要是因?yàn)槟壳氨究撇僮飨到y(tǒng)教學(xué)以理論教學(xué)為主,實(shí)驗(yàn)也主要是注重一些算法的實(shí)現(xiàn),對于操作系統(tǒng)如何實(shí)現(xiàn)進(jìn)程、線程等概念很少提及。因此,學(xué)生在學(xué)習(xí)服務(wù)端編程時(shí),如多進(jìn)程、多線程、信號、同步、互斥等技術(shù)時(shí),感到吃力,尤其是做實(shí)驗(yàn)時(shí),更不知如何操作和調(diào)試。

3.網(wǎng)絡(luò)協(xié)議基礎(chǔ)薄弱。一方面,一些學(xué)生在學(xué)習(xí)網(wǎng)絡(luò)程序設(shè)計(jì)的同時(shí),正在學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)課程。因此,在講述Socket編程時(shí),他們對于建立連接、地址、端口綁定等內(nèi)容理解困難。另一方面,計(jì)算機(jī)網(wǎng)絡(luò)課程教學(xué)注重理論教學(xué),介紹的網(wǎng)絡(luò)技術(shù)比較全面,對網(wǎng)絡(luò)各層協(xié)議均有涉及,而實(shí)際應(yīng)用比較廣泛的還是TCP/IP協(xié)議,不少學(xué)生在這方面的知識還有待進(jìn)一步加強(qiáng),尤其需要掌握一些網(wǎng)絡(luò)數(shù)據(jù)分析的常用工具和方法。

4.網(wǎng)絡(luò)程序設(shè)計(jì)教材過于注重編程知識,而少了一些基礎(chǔ)知識鋪墊、常用網(wǎng)絡(luò)數(shù)據(jù)分析方法介紹。學(xué)生有時(shí)只是照著教材例子編程,但卻不知道為什么要這么編程,當(dāng)運(yùn)行程序出問題時(shí),不會利用常用的網(wǎng)絡(luò)數(shù)據(jù)分析方法來分析并解決問題。

針對以上問題,本文對網(wǎng)絡(luò)程序設(shè)計(jì)及相關(guān)課程的教學(xué)順序、課程的理論教學(xué)及實(shí)驗(yàn)教學(xué)內(nèi)容提出了教學(xué)改革設(shè)想,并在網(wǎng)絡(luò)程序設(shè)計(jì)課程的教學(xué)過程中進(jìn)行了實(shí)踐,實(shí)踐結(jié)果表明新方案在培養(yǎng)學(xué)生學(xué)習(xí)興趣、增強(qiáng)基礎(chǔ)知識方面有一定積極作用。

二、相關(guān)課程的教改方案

(一)課程的教學(xué)順序

和網(wǎng)絡(luò)程序設(shè)計(jì)相關(guān)的課程主要是C語言程序設(shè)計(jì)、計(jì)算機(jī)操作系統(tǒng)和計(jì)算機(jī)網(wǎng)絡(luò)。這三門課程最好是在學(xué)習(xí)網(wǎng)絡(luò)程序設(shè)計(jì)之前學(xué)完,因?yàn)檫@三門課程是學(xué)習(xí)網(wǎng)絡(luò)程序設(shè)計(jì)的基礎(chǔ)。一般來說這4門課程的學(xué)習(xí)順序可以如圖1、圖2或圖3所示。從圖中不難看出,課程順序的一條核心原則是C語言程序設(shè)計(jì)、計(jì)算機(jī)操作系統(tǒng),最后是網(wǎng)絡(luò)程序設(shè)計(jì),而計(jì)算機(jī)網(wǎng)絡(luò)則比較靈活些,可以和計(jì)算機(jī)操作系統(tǒng)或者網(wǎng)絡(luò)程序設(shè)計(jì)一起學(xué)習(xí)。這三種教學(xué)順序在教學(xué)實(shí)踐中都有遇到過,但一般來說推薦前兩種,因?yàn)槿绻跊]有學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)的情況下學(xué)習(xí)網(wǎng)絡(luò)程序設(shè)計(jì),會使學(xué)生無法很好理解一些編程方法以及編程步驟的原理。因此,按照圖3所示的教學(xué)順序進(jìn)行教學(xué)時(shí),需要對網(wǎng)絡(luò)程序設(shè)計(jì)的教學(xué)內(nèi)容做出一定調(diào)整。即講述Socket編程之前需要先簡要介紹TCP/IP協(xié)議,尤其是IP地址以及TCP端口的含義,并可結(jié)合類似Wireshark這樣的工具為學(xué)生演示TCP建立連接、收發(fā)數(shù)據(jù)以及關(guān)閉連接的過程。

圖1 課程教學(xué)順序1

圖2 課程教學(xué)順序2

圖3 課程教學(xué)順序3

(二)C語言程序設(shè)計(jì)的教改方案

C 語言程序設(shè)計(jì)課程是高校計(jì)算機(jī)教育的基礎(chǔ)與重點(diǎn),但多年來,C語言程序設(shè)計(jì)一直是在Windows操作系統(tǒng)下教學(xué),開發(fā)過程也趨向于完全的圖形化開發(fā)。這樣可能使學(xué)生不能很好地理解C語言的整個(gè)編譯鏈接過程,對于深入理解C語言的原理以及操作系統(tǒng)的原理都是不利的。對計(jì)算機(jī)專業(yè)的學(xué)生而言,C語言的基礎(chǔ)對于后續(xù)的學(xué)習(xí)是至關(guān)重要的。因此,在C語言教學(xué)中,尤其是在計(jì)算機(jī)專業(yè)的C語言教學(xué)中,最好是脫離圖形化的集成開發(fā)環(huán)境,使用文本編輯軟件編寫源代碼,而用gcc這樣的編譯程序進(jìn)行C語言程序的編譯鏈接。這樣能使學(xué)生體驗(yàn)C語言編碼、編譯、匯編以及鏈接的全過程,對深入理解C語言的原理是非常有益的。此外,在教學(xué)內(nèi)容上,除了C語言語法之外,可以適當(dāng)增加IO編程的比重,因?yàn)镮O編程在實(shí)際應(yīng)用中是很常用的,網(wǎng)絡(luò)編程更是如此。在實(shí)驗(yàn)教學(xué)上,則應(yīng)當(dāng)增加設(shè)計(jì)類實(shí)驗(yàn)題目的比重,這有助于提高學(xué)生的分析、思考與解決問題的能力[3]。

(三)計(jì)算機(jī)操作系統(tǒng)的教改方案

從目前的教學(xué)實(shí)踐來看,計(jì)算機(jī)操作系統(tǒng)的教學(xué)在教材內(nèi)容、上機(jī)實(shí)習(xí)等方面還無法滿足實(shí)際需求[2]。主要的問題在于,教學(xué)內(nèi)容偏重于理論,都是介紹各種調(diào)度算法、頁面置換算法等。而一個(gè)實(shí)際的操作系統(tǒng)在這些方面的代碼并不多,相反,教學(xué)上比較忽略的IO在操作系統(tǒng)代碼中卻占有很大比重[4]。此外,操作系統(tǒng)實(shí)驗(yàn)也比較偏重算法,而沒有分析或者驗(yàn)證一個(gè)實(shí)際的操作系統(tǒng)。因此,學(xué)生對于一個(gè)操作系統(tǒng)具體是如何實(shí)現(xiàn)進(jìn)程、線程、虛擬內(nèi)存等概念不是很清晰。

本文所提出的教改方案的核心是在操作系統(tǒng)教學(xué)時(shí)應(yīng)基于某一具體的操作系統(tǒng),借助操作系統(tǒng)的一些源代碼來講解操作系統(tǒng)的一些概念是如何實(shí)現(xiàn)的,這能使學(xué)生更好地理解操作系統(tǒng)。當(dāng)然,考慮到現(xiàn)代操作系統(tǒng)的代碼量一般比較龐大且復(fù)雜,不適合一行一行分析,因此可以考慮使用Linux系統(tǒng)的早期源代碼,或者可以利用Linux的早期代碼來做相關(guān)的驗(yàn)證實(shí)驗(yàn),這是一種很好的能讓學(xué)生了解操作系統(tǒng)運(yùn)行的方式。

(四)計(jì)算機(jī)網(wǎng)絡(luò)的教改方案

文獻(xiàn)[5-6]對計(jì)算機(jī)網(wǎng)絡(luò)課程的教學(xué)改革做了探討。計(jì)算機(jī)網(wǎng)絡(luò)課程的教學(xué)現(xiàn)狀同樣是偏重理論、算法,并且介紹的協(xié)議太多,重點(diǎn)不突出。實(shí)際上目前廣泛應(yīng)用的是基于TCP/IP的5層網(wǎng)絡(luò)協(xié)議,而且重點(diǎn)應(yīng)該是網(wǎng)絡(luò)層和傳輸層。因此,本文建議在網(wǎng)絡(luò)理論教學(xué)中適當(dāng)增加TCP/IP協(xié)議的比重。此外,計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)單獨(dú)設(shè)置實(shí)驗(yàn)課程,且與理論教學(xué)有同等重要的地位[7-8]。純粹的理論介紹無法很好地向?qū)W生展現(xiàn)網(wǎng)絡(luò)的運(yùn)作方式。在實(shí)驗(yàn)環(huán)節(jié),應(yīng)重點(diǎn)讓學(xué)生掌握網(wǎng)絡(luò)常用的數(shù)據(jù)捕獲、分析等工具和方法,這樣有助于學(xué)生更好地理解計(jì)算機(jī)網(wǎng)絡(luò)的原理,并掌握檢查、分析和排除網(wǎng)絡(luò)故障的方法,為進(jìn)一步學(xué)習(xí)網(wǎng)絡(luò)程序設(shè)計(jì)以及調(diào)試網(wǎng)絡(luò)程序打下堅(jiān)實(shí)基礎(chǔ)。

三、網(wǎng)絡(luò)程序設(shè)計(jì)的教改方案

(一)理論教學(xué)的教改方案

網(wǎng)絡(luò)程序設(shè)計(jì)實(shí)際上是一種應(yīng)用程序設(shè)計(jì),一般是在傳輸層之上進(jìn)行程序開發(fā),主要的編程接口是Socket。針對網(wǎng)絡(luò)程序的這一特性,提出以下幾點(diǎn)理論課教學(xué)的教改思路:

1.開發(fā)平臺以Linux操作系統(tǒng)為主。因?yàn)長inux是一個(gè)開放平臺,而且在Linux平臺上有很多支持網(wǎng)絡(luò)數(shù)據(jù)捕獲和分析的優(yōu)秀軟件,這些都可以免費(fèi)獲得,并且能根據(jù)自己的實(shí)際需要進(jìn)行修改。另外,學(xué)生在進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)捕獲和分析時(shí)一般是在本機(jī)上進(jìn)行,Linux平臺的軟件工具非常完美,因?yàn)長inux平臺有環(huán)回接口,而Windows平臺無環(huán)回接口。

2.在講解Socket接口之前必須對TCP/IP協(xié)議做簡要介紹。重點(diǎn)是網(wǎng)絡(luò)層和傳輸層,尤其是IP地址、端口等概念,以及 TCP建立、關(guān)閉連接的過程、TCP與 UDP的異同等。

3.在介紹應(yīng)用層協(xié)議設(shè)計(jì)時(shí)可以選擇HTTP協(xié)議作為案例。因?yàn)镠TTP是目前使用非常廣泛的一個(gè)應(yīng)用層協(xié)議,而且協(xié)議相對簡單,容易實(shí)現(xiàn)。在介紹協(xié)議的過程中必須結(jié)合使用網(wǎng)絡(luò)流量捕獲分析工具。

4.重點(diǎn)以服務(wù)器端編程為主。雖然從理論上看,客戶端和服務(wù)端是平等的,但實(shí)際上服務(wù)端一般都是要服務(wù)多個(gè)客戶端,因此在服務(wù)端編程時(shí),需要考慮的問題更多。在服務(wù)端編程時(shí)需要引入進(jìn)程、線程、信號等概念以及高級IO技術(shù)。因此,服務(wù)端編程相對客戶端編程更復(fù)雜,對編程能力和基礎(chǔ)知識的要求更高。服務(wù)端編程要采取循序漸進(jìn)的方法,在實(shí)踐中可以采用對一個(gè)案例不斷改進(jìn)的方式進(jìn)行教學(xué)。如一個(gè)HTTP服務(wù)器,可以從一個(gè)最簡單的文件讀寫的服務(wù)器開始,改進(jìn)成一個(gè)多進(jìn)程服務(wù)器,再到多線程服務(wù)器,直至多路復(fù)用的多線程服務(wù)器。

(二)實(shí)驗(yàn)教學(xué)的教改方案

1.適當(dāng)增加實(shí)驗(yàn)課教學(xué)學(xué)時(shí)。因?yàn)榫W(wǎng)絡(luò)程序設(shè)計(jì)畢竟是一門注重培養(yǎng)學(xué)生編程能力的課程,增加實(shí)驗(yàn)課教學(xué)學(xué)時(shí)使學(xué)生有更多動手練習(xí)的機(jī)會,同時(shí)教師也有更多時(shí)間指導(dǎo)學(xué)生,并能布置更多、更全面的實(shí)驗(yàn)題目。

2.實(shí)驗(yàn)平臺以Linux平臺為主??紤]到目前多數(shù)實(shí)驗(yàn)設(shè)備上安裝的是Windows操作系統(tǒng),因此可以利用虛擬機(jī)技術(shù),在Windows操作系統(tǒng)上虛擬Linux系統(tǒng)。在實(shí)際教學(xué)中,我們自己制作了一個(gè)簡易的Linux系統(tǒng),無圖形界面,但網(wǎng)絡(luò)和編程軟件齊備,可以運(yùn)行于配置較低的實(shí)驗(yàn)設(shè)備上。我們測試過的配置為:CPU單核2.0GHz,內(nèi)存256MB。學(xué)生在這樣的平臺上可以學(xué)習(xí)Linux操作系統(tǒng)的基本使用方法、C程序的編譯鏈接、網(wǎng)絡(luò)數(shù)據(jù)的捕獲和分析等技術(shù)。

3.在每個(gè)實(shí)驗(yàn)題目中,最好都有相關(guān)的網(wǎng)絡(luò)數(shù)據(jù)的捕獲和分析,并要求學(xué)生將關(guān)鍵的網(wǎng)絡(luò)數(shù)據(jù)記錄實(shí)驗(yàn)報(bào)告。這有利于學(xué)生學(xué)習(xí)使用網(wǎng)絡(luò)數(shù)據(jù)捕獲和分析軟件工具,掌握如何捕獲以及過濾網(wǎng)絡(luò)數(shù)據(jù),如何利用這些軟件工具輔助調(diào)試網(wǎng)絡(luò)程序。

4.適當(dāng)增加設(shè)計(jì)、創(chuàng)新類實(shí)驗(yàn)題目的比重。實(shí)驗(yàn)題目可以基于課堂教學(xué)的實(shí)例,在此基礎(chǔ)上做一定的改動。這樣使得實(shí)驗(yàn)教學(xué)不會脫離課堂教學(xué),并給學(xué)生留有一定的思考空間。例如,一個(gè)HTTP文件服務(wù)器。在課堂教學(xué)時(shí),可能只是演示了服務(wù)端向?yàn)g覽器輸出HTML文件的方法。實(shí)驗(yàn)教學(xué)時(shí),可以以此為出發(fā)點(diǎn),讓學(xué)生用相同的方法輸出其他任意類型的文件,并觀察瀏覽器的反應(yīng)。接著,指導(dǎo)學(xué)生訪問互聯(lián)網(wǎng)上同類型的文件,并使用Wireshark捕獲、過濾HTTP數(shù)據(jù),分析HTTP頭部與訪問HTML文件時(shí)的異同,最終修改HTTP文件服務(wù)器使其支持任意類型的文件。

四、結(jié)束語

將上述網(wǎng)絡(luò)程序設(shè)計(jì)教改方案應(yīng)用到實(shí)際教學(xué)中,我們發(fā)現(xiàn)學(xué)生的學(xué)習(xí)興趣有了一定提高。學(xué)生普遍對于Linux操作系統(tǒng)以及網(wǎng)絡(luò)數(shù)據(jù)捕獲和分析有濃厚的興趣。這從一個(gè)側(cè)面反映出純粹的理論教學(xué)是比較枯燥的,如果能將理論教學(xué)和實(shí)際應(yīng)用相結(jié)合,則學(xué)習(xí)會更加生動,也會獲得學(xué)生的歡迎[9]。計(jì)算機(jī)學(xué)科本身就是一門理論和實(shí)踐相結(jié)合的學(xué)科,而程序設(shè)計(jì)則更加注重實(shí)踐。如何將理論落到實(shí)處,讓學(xué)生能夠看得見、摸得著是本教改方案的核心思想。由于計(jì)算機(jī)學(xué)科也是一門發(fā)展非常迅速的學(xué)科,新的硬件技術(shù)、網(wǎng)絡(luò)技術(shù)、編程技術(shù)在不斷涌現(xiàn),教學(xué)的內(nèi)容和方法也得跟得上技術(shù)的發(fā)展,因此教學(xué)改革也是一個(gè)不斷持續(xù)的過程。

[1] 宋勁彬.一站式學(xué)習(xí)C編程(升級版)[M].北京:電子工業(yè)出版,2011.

[2] 陳建勛,肖竟華.“計(jì)算機(jī)操作系統(tǒng)”教學(xué)改革探索與實(shí)踐[J].高等理科教育,2007(3):68-70.

[3] 陳智俐,付沙,薛娟.計(jì)算機(jī)程序設(shè)計(jì)類課程實(shí)驗(yàn)教學(xué)改革與研究[J].計(jì)算機(jī)時(shí)代,2010(4):56 -58.

[4] 趙炯.Linux內(nèi)核完全剖析:基于0.12內(nèi)核[M].北京:機(jī)械工業(yè)出版社,2009.

[5] 劉彥保.計(jì)算機(jī)網(wǎng)絡(luò)課程教學(xué)改革探討[J].高等理科教育,2007(3):78-81.

[6] 陳靜,符發(fā),邢詒杏.計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)改革[J].實(shí)驗(yàn)科學(xué)與技術(shù),2007,5(3):80 -82.

[7] 舒忠梅,尹冬生,李文軍,等.計(jì)算機(jī)專業(yè)實(shí)驗(yàn)教學(xué)改革的實(shí)踐與探討[J].實(shí)驗(yàn)室研究與探索,2007,26(12):290-294.

[8] 沈安東,於曉明.計(jì)算機(jī)實(shí)驗(yàn)教學(xué)改革的探索與實(shí)踐[J].實(shí)驗(yàn)室研究與探索,2010,29(4):83 -85.

[9] 葛桂萍,朱范德,羅家奇,等.計(jì)算機(jī)硬件系統(tǒng)實(shí)驗(yàn)教學(xué)改革的研究[J].實(shí)驗(yàn)室研究與探索,2007,26(8):98-99.

猜你喜歡
C語言程序設(shè)計(jì)計(jì)算機(jī)網(wǎng)絡(luò)
基于Visual Studio Code的C語言程序設(shè)計(jì)實(shí)踐教學(xué)探索
從細(xì)節(jié)入手,談PLC程序設(shè)計(jì)技巧
電子制作(2019年9期)2019-05-30 09:42:04
計(jì)算機(jī)網(wǎng)絡(luò)環(huán)境下混合式教學(xué)模式實(shí)踐與探索
電子制作(2018年16期)2018-09-26 03:27:08
基于C語言的計(jì)算機(jī)軟件編程
電子制作(2018年16期)2018-09-26 03:27:08
計(jì)算機(jī)網(wǎng)絡(luò)信息安全及防護(hù)策略
電子制作(2018年12期)2018-08-01 00:47:58
高職高專院校C語言程序設(shè)計(jì)教學(xué)改革探索
計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的應(yīng)用探討
PLC梯形圖程序設(shè)計(jì)技巧及應(yīng)用
論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
計(jì)算機(jī)網(wǎng)絡(luò)維護(hù)工作的思考
河南科技(2014年19期)2014-02-27 14:15:24
绥宁县| 济宁市| 壤塘县| 贵阳市| 蓝山县| 阳城县| 景洪市| 清徐县| 眉山市| 佛学| 诸暨市| 丹凤县| 铜陵市| 福鼎市| 静宁县| 辽源市| 夏津县| 剑川县| 岑巩县| 扶绥县| 咸宁市| 吉安县| 平泉县| 和政县| 新疆| 青阳县| 高青县| 连城县| 子洲县| 阳东县| 辉南县| 凤山县| 富蕴县| 樟树市| 衡东县| 叙永县| 盐山县| 嘉义市| 若羌县| 大埔区| 积石山|