饒雪峰 郭振軍
摘要:針對(duì)原有網(wǎng)絡(luò)程序設(shè)計(jì)教學(xué)方案的不足,結(jié)合應(yīng)用型本科高校的實(shí)際情況,從教學(xué)內(nèi)容、教學(xué)方法進(jìn)行了改革探索和研究。新的教學(xué)方案在考慮學(xué)生原有知識(shí)能力水平的基礎(chǔ)上,反映了物聯(lián)網(wǎng)、大數(shù)據(jù)時(shí)代對(duì)網(wǎng)絡(luò)編程能力的內(nèi)在需求,在引導(dǎo)學(xué)生把知識(shí)與實(shí)踐相結(jié)合的過程中,提升了學(xué)生自主學(xué)習(xí)的積極性,對(duì)培養(yǎng)學(xué)生的理論知識(shí)和實(shí)踐運(yùn)用能力,起到了積極作用。
關(guān)鍵詞:網(wǎng)絡(luò)編程;教學(xué)改革;Python
中圖分類號(hào):G642.0? ? ?文獻(xiàn)標(biāo)志碼:A? ? ?文章編號(hào):1674-9324(2019)39-0100-02
網(wǎng)絡(luò)程序設(shè)計(jì)課程是物聯(lián)網(wǎng)工程、網(wǎng)絡(luò)工程專業(yè)的專業(yè)限選課,目的是培養(yǎng)學(xué)生掌握網(wǎng)絡(luò)系統(tǒng)開發(fā)的基本原理,具備網(wǎng)絡(luò)應(yīng)用系統(tǒng)的開發(fā)和設(shè)計(jì)能力。
目前,國內(nèi)多所大學(xué)的計(jì)算機(jī)相關(guān)專業(yè),均開設(shè)了此類課程[1]。在教學(xué)內(nèi)容上,強(qiáng)調(diào)與操作系統(tǒng)Socket套接字機(jī)制相結(jié)合,以套接字的應(yīng)用為核心,輔以網(wǎng)絡(luò)報(bào)文的構(gòu)造及解析,多進(jìn)程、多線程等并發(fā)編程方法的講解,并以實(shí)現(xiàn)簡(jiǎn)單應(yīng)用層協(xié)議的軟件系統(tǒng)作為實(shí)踐教學(xué)內(nèi)容。然而,教學(xué)編程語言較為底層,開發(fā)環(huán)境較為復(fù)雜,對(duì)學(xué)生的編程能力和計(jì)算機(jī)系統(tǒng)理論基礎(chǔ)要求較高,對(duì)于應(yīng)用型本科院校的學(xué)生,掌握起來有一定困難[2]?;谝陨犀F(xiàn)實(shí),提出了基于Python進(jìn)行教學(xué)改革的設(shè)想并加以實(shí)踐,讓學(xué)生專注于對(duì)知識(shí)邏輯層面的理解、組織和運(yùn)用,減輕開發(fā)任務(wù)中對(duì)編程技術(shù)細(xì)節(jié)的掌握負(fù)擔(dān),在有限的學(xué)時(shí)內(nèi),開發(fā)出貼近實(shí)際需求的網(wǎng)絡(luò)應(yīng)用。這對(duì)增強(qiáng)學(xué)生的專業(yè)學(xué)習(xí)信念、激發(fā)自主學(xué)習(xí)動(dòng)力,能起到積極的促進(jìn)作用。
一、現(xiàn)有教學(xué)方案的不足
現(xiàn)有方案以操作系統(tǒng)和協(xié)議報(bào)文結(jié)構(gòu)為核心,強(qiáng)調(diào)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)、操作系統(tǒng)、C/C++等先修課程的綜合運(yùn)用,對(duì)于培養(yǎng)專門從事網(wǎng)絡(luò)軟件系統(tǒng)開發(fā)的人才,起到了重要作用。
然而,隨著近年來技術(shù)的迅猛發(fā)展和社會(huì)需求的演變,原有教學(xué)方案中的不足也越發(fā)明顯:
1.技術(shù)路線略顯陳舊。Windows下的MFC已經(jīng)相對(duì)陳舊,微軟官方和業(yè)界已經(jīng)逐漸棄用MFC框架,轉(zhuǎn)向純WindowsAPI+C++11或.NET平臺(tái)。
2.教學(xué)內(nèi)容偏重底層,未能充分貼合當(dāng)前技術(shù)熱點(diǎn)和需求焦點(diǎn)。現(xiàn)有方案通?;贛FC/C++代碼,展示網(wǎng)絡(luò)報(bào)文解包和封包過程,雖對(duì)掌握計(jì)算機(jī)網(wǎng)絡(luò)體系理論有著重要的意義,但其內(nèi)容在實(shí)際應(yīng)用開發(fā)中,并非不可替代。隨著云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)等應(yīng)用的迅猛發(fā)展,諸如Web API、網(wǎng)絡(luò)數(shù)據(jù)采集、分布式系統(tǒng)、自動(dòng)化運(yùn)維等各類網(wǎng)絡(luò)應(yīng)用層出不窮[3],新時(shí)代的網(wǎng)絡(luò)程序設(shè)計(jì)課程,應(yīng)當(dāng)講求時(shí)效,讓學(xué)生能夠登堂入室,樹立嶄新的網(wǎng)絡(luò)系統(tǒng)全局觀。
二、教學(xué)方案設(shè)計(jì)
1.調(diào)整思路。(1)反思課程定位,突出培養(yǎng)目標(biāo)。結(jié)合應(yīng)用型本科院校的培養(yǎng)實(shí)際情況,授課重點(diǎn)應(yīng)從協(xié)議底層向應(yīng)用系統(tǒng)開發(fā)基礎(chǔ)轉(zhuǎn)移。通過對(duì)典型網(wǎng)絡(luò)應(yīng)用案例的剖析講解,呈現(xiàn)知識(shí)之間的關(guān)聯(lián)性,并加以總結(jié),幫助學(xué)生領(lǐng)會(huì)網(wǎng)絡(luò)體系結(jié)構(gòu)的內(nèi)在規(guī)律。在socket編程的基礎(chǔ)上,圍繞并發(fā)編程代碼模式、應(yīng)用層圍繞諸如HTTP協(xié)議進(jìn)行講解實(shí)踐,在具備較強(qiáng)的實(shí)用性和趣味性的同時(shí),仍要突出其基礎(chǔ)性和系統(tǒng)性。(2)改用解釋型語言作為教學(xué)語言,充分發(fā)揮其開發(fā)高效性。為突出互聯(lián)網(wǎng)、大數(shù)據(jù)的應(yīng)用需求,適宜選擇更易學(xué)習(xí)上手的編程語言。Python具備C的簡(jiǎn)潔、解釋性語言的開發(fā)高效性和Java的跨平臺(tái)部署能力,在網(wǎng)絡(luò)編程應(yīng)用中也得到了業(yè)界的充分認(rèn)可,目前,Python在TOIBE編程語言排行榜上位列第4,從眾多語言中脫穎而出[4]。
2.教學(xué)內(nèi)容設(shè)計(jì)。(1)內(nèi)容選取和編排的原則。①知識(shí)貴在精而不在多。在保證知識(shí)體系完整性的前提下,優(yōu)先保證核心知識(shí)的理解和掌握,不貪大求全。②講述順序應(yīng)強(qiáng)調(diào)其知識(shí)點(diǎn)之間的內(nèi)在邏輯性。a.突出Socket套接字編程和傳輸層協(xié)議特性的關(guān)聯(lián)性。b.突出HTTP協(xié)議在當(dāng)前實(shí)際應(yīng)用中的主體地位。c.結(jié)合操作系統(tǒng)機(jī)制,講解網(wǎng)絡(luò)應(yīng)用的IO密集性,如何選取合適的并發(fā)編程策略。(2)總體內(nèi)容安排及學(xué)習(xí)分配。突出基礎(chǔ)和貫通性,課程內(nèi)容具備自包含性,課程中會(huì)安排適度的冗余,強(qiáng)調(diào)把關(guān)鍵問題講透,體現(xiàn)出課程之間的關(guān)聯(lián)性[5]。
三、教學(xué)方法設(shè)計(jì)
1.強(qiáng)調(diào)學(xué)生對(duì)知識(shí)的理解和運(yùn)用。通過采取提問式的教學(xué)講解,培養(yǎng)學(xué)生主動(dòng)思考的意識(shí);強(qiáng)調(diào)案例演示,用貼近實(shí)際應(yīng)用的程序,揭示知識(shí)點(diǎn)之間的聯(lián)系[6],從而加深學(xué)生對(duì)問題的理解,提升其解決問題的能力。
2.充分考慮學(xué)生對(duì)新知識(shí)的接受能力,提升知識(shí)傳達(dá)的有效性。每次教學(xué),應(yīng)當(dāng)圍繞一到兩個(gè)中心概念進(jìn)行學(xué)習(xí),否則教學(xué)強(qiáng)度較大,易產(chǎn)生超限效應(yīng)。根據(jù)構(gòu)建主義學(xué)習(xí)理論,用學(xué)生已有的概念經(jīng)驗(yàn)來描述新的知識(shí)點(diǎn)。比如在講解Python協(xié)程的行為時(shí),用給被調(diào)試語句下斷點(diǎn)的方式進(jìn)行類比,有效消除了學(xué)生對(duì)新知識(shí)點(diǎn)的陌生感。
3.對(duì)教學(xué)過程實(shí)施反饋收集和動(dòng)態(tài)調(diào)控策略。以填寫在線問卷的方式,既可以提前了解學(xué)生對(duì)先修知識(shí)的掌握情況,又可以檢查課程教學(xué)是否達(dá)到了預(yù)期效果。通過反饋,設(shè)置有針對(duì)性的鞏固練習(xí),最終達(dá)成培養(yǎng)目標(biāo)。
四、結(jié)語
通過此次教學(xué)改革探索,將Python語言引入課堂,配合貼近實(shí)際的案例講解,有效提升了學(xué)生的學(xué)習(xí)熱情。通過積極對(duì)教學(xué)內(nèi)容進(jìn)行反饋調(diào)控,提高了學(xué)生的課堂參與度。反饋結(jié)果表明,學(xué)生的網(wǎng)絡(luò)系統(tǒng)全局觀得到提升,對(duì)網(wǎng)絡(luò)編程方法有了初步掌握,達(dá)到了學(xué)以致用的目的。
受限于多方面因素,探索實(shí)踐中仍存在較多不足,有待后續(xù)改進(jìn):
1.考慮到學(xué)生的專業(yè)基礎(chǔ),部分內(nèi)容并沒有作較高要求,比如并發(fā)編程的部分。
2.Python在培養(yǎng)方案上未作為必修課程,難免會(huì)占用一些寶貴的課時(shí)。
3.課堂教學(xué)手段較為傳統(tǒng)。后續(xù)應(yīng)考慮利用翻轉(zhuǎn)課堂等方法,提高學(xué)生的學(xué)習(xí)自主積極性。
參考文獻(xiàn):
[1]紀(jì)其進(jìn).網(wǎng)絡(luò)工程專業(yè)網(wǎng)絡(luò)程序設(shè)計(jì)課程探討[J].計(jì)算機(jī)教育,2010,(23):74-77.
[2]胡慶輝,阮曉霞,陸玉靖.應(yīng)用型本科計(jì)算機(jī)專業(yè)“網(wǎng)絡(luò)程序設(shè)計(jì)”課程教學(xué)改革探索[J].教育教學(xué)論壇,2015,(28):276-278.
[3]肖鵬,路瑩,李媛媛.以就業(yè)為導(dǎo)向的網(wǎng)絡(luò)程序設(shè)計(jì)課程教學(xué)改革[J].計(jì)算機(jī)教育,2013,(14):21-23.
[4]嵩天,黃天羽,禮欣.Python語言:程序設(shè)計(jì)課程教學(xué)改革的理想選擇[J].中國大學(xué)教學(xué),2016,(02):42-47.
[5]祁暉,崔廣才,從立鋼.網(wǎng)絡(luò)程序設(shè)計(jì)教學(xué)改革探索[J].重慶與世界:學(xué)術(shù)版,2013,30(8):70-72.
[6]蔣崢崢,陳曉紅,王進(jìn),等.網(wǎng)絡(luò)工程專業(yè)“網(wǎng)絡(luò)程序設(shè)計(jì)”課程的案例教學(xué)實(shí)踐[J].計(jì)算機(jī)教育,2013,(2):27-31.
Exploration on Teaching Reform of Network Programming in Python
RAO Xue-feng,GUO Zhen-jun
(Guilin University of Aerospace Technology,Guilin,Guangxi 541004,China)
Abstract:Aiming to resolve shortcomings of the original network programming course teaching scheme,combined with the actual situation of the applied undergraduate colleges,the reform and exploration of the teaching content and teaching methods were carried out.Based on the students' original knowledge ability,the new teaching plan reflects the inherent needs of the Internet programming ability in the Internet of Things and Big Data era.It promotes students' independent learning in the process of guiding students to combine knowledge and practice.The enthusiasm has played a positive role in cultivating students' theoretical knowledge and practical application ability.
Key words:Network Programming;teaching reform exploration;Python