陳 凱
合理設(shè)計(jì)教學(xué),揭示概念本質(zhì)
——“SMTP郵件協(xié)議”教學(xué)設(shè)計(jì)
陳 凱
針對(duì)郵件協(xié)議這一抽象概念進(jìn)行有效的概念教學(xué),需要從協(xié)議的本質(zhì)屬性出發(fā),設(shè)計(jì)合理的教學(xué)情境,設(shè)計(jì)簡單易行的學(xué)生實(shí)驗(yàn),讓學(xué)生與協(xié)議之間進(jìn)行互動(dòng),從而體驗(yàn)到從多種現(xiàn)象中抽取出本質(zhì)屬性的過程,將概念內(nèi)化為學(xué)生的經(jīng)驗(yàn),使其真正理解協(xié)議。
概念 概念教學(xué) 郵件協(xié)議
這個(gè)世界中的現(xiàn)象是非常復(fù)雜的,人們在了解和認(rèn)識(shí)現(xiàn)象世界的過程中,將不同事物所具有的共同的特質(zhì)抽象出來加以概括,于是就形成了概念。不同版本的許多百科全書或者詞典,對(duì)于“概念”的描述大致如此。由于人類借助語言來交流,于是就有了所謂名詞,名詞是概念的稱謂,名詞指向概念但不是概念本身。與其說概念是人類思維體系中最基本的構(gòu)筑單位,不如說,是那些指向概念的抽象名詞為人類思維體系構(gòu)建起一種秩序。
語言的意義依賴于它的使用。在教學(xué)中,教師要清楚,對(duì)概念進(jìn)行描述時(shí),指向概念的名詞所處的生活形式是怎樣的,這種生活形式,究竟是用以揭示概念的本質(zhì)屬性,還是僅僅作為諸多概念中的一個(gè)概念存在。
為便于理解,本文以SMTP協(xié)議為例,來闡述這個(gè)問題。
一些教材大致這樣描述SMTP協(xié)議:電子郵件傳送需要兩個(gè)應(yīng)用協(xié)議,即SMTP和POP3協(xié)議;其中,將個(gè)人電子郵件發(fā)送至郵件服務(wù)器,并由郵件服務(wù)器轉(zhuǎn)發(fā)至其他郵件服務(wù)器,所用到的是SMTP協(xié)議。學(xué)生由此可知,郵件并不是直接從某臺(tái)個(gè)人電腦發(fā)送到另一臺(tái)個(gè)人電腦,而是先要借助SMTP協(xié)議發(fā)送給SMTP服務(wù)器的。
另舉一例,某教材在“實(shí)踐活動(dòng)”項(xiàng)目欄目這樣描述:郵件發(fā)送和接收需要用到SMTP協(xié)議和POP3協(xié)議,對(duì)于發(fā)送郵件的操作者而言,他必須在郵件客戶端的設(shè)置頁中指定SMTP服務(wù)器和POP3服務(wù)器,若不作這些設(shè)置,郵件就無法順利送出。在這個(gè)例子中,對(duì)學(xué)生來說,設(shè)置SMTP服務(wù)器是生活實(shí)際操作流程的一系列任務(wù)中無法回避的一項(xiàng)。
再來看如下一段文字:TCP/IP是一組協(xié)議的代名詞,統(tǒng)稱TCP/IP協(xié)議簇;TCP/IP協(xié)議簇中比較重要的協(xié)議有IP協(xié)議、ICMP協(xié)議、TCP協(xié)議、UDP協(xié)議、FTP協(xié)議、DNS協(xié)議、SMTP協(xié)議等等。這段文字的重點(diǎn)在于TCP/IP協(xié)議簇,閱讀者由此可知,SMTP協(xié)議是TCP/IP協(xié)議簇中的一員,其他許多協(xié)議也是,此段文字點(diǎn)明的是SMTP的家族身份,卻并未說明其實(shí)際樣貌。
以上三段文字,其一描述了SMTP協(xié)議參與了哪一項(xiàng)工作,其二說明了SMTP服務(wù)器是郵件客戶端設(shè)置的必需項(xiàng)目,其三借SMTP協(xié)議以及其他若干協(xié)議的名稱給出TCP/IP協(xié)議簇的稱謂。以上三者,由不同角度描述了SMTP協(xié)議,“SMTP”這個(gè)名詞所處生活形式各不相同,然而,這三個(gè)角度,均沒有從技術(shù)本質(zhì)的角度說明到底什么是SMTP協(xié)議,因?yàn)椤癝MTP”這個(gè)名詞本身雖然指向了概念,但上述這些文字和活動(dòng)卻并不真正指向“SMTP”的概念,而是成為整個(gè)計(jì)算機(jī)網(wǎng)絡(luò)中諸多概念中的一個(gè)概念,雖然“SMTP”這個(gè)指向概念的名詞反復(fù)出現(xiàn),但概念的本質(zhì)屬性并沒有被揭示。
某些名詞,人們會(huì)在多個(gè)場合見到、聽到,見得多了、聽得多了,人們即便可能還不了解名詞所指概念的本質(zhì),但卻能很熟練地使用這些名詞。當(dāng)對(duì)名詞的使用變得習(xí)以為常的時(shí)候,人們有時(shí)就放棄了對(duì)于名詞所指概念本質(zhì)屬性的深究,這樣也就輕易地放棄了對(duì)技術(shù)應(yīng)用背后更多奧妙的探索。
(一)人與技術(shù)互動(dòng)的需要
為什么不能讓學(xué)生僅僅滿足于成為技術(shù)產(chǎn)品的用戶,或是成為技術(shù)名詞的使用者,而是非要思考技術(shù)背后那些看不見的原理?是因?yàn)檎麄€(gè)世界越來越和人類的各種技術(shù)創(chuàng)造物融為一體,有些當(dāng)代的技術(shù)思想家,如凱文?凱利(Kevin Kelly)將技術(shù)看成是一個(gè)有機(jī)體,技術(shù)與人類越來越趨向于朝對(duì)方的特性進(jìn)化,彼此互利共生——這要求雙方根據(jù)對(duì)方的改進(jìn)做出適應(yīng)性反應(yīng)與調(diào)整。換個(gè)通俗的比喻,人們已經(jīng)不能再把技術(shù)看成是為人類服務(wù)的仆人,“他”是“有生命的”,有著自己的個(gè)性和特點(diǎn);人們不僅僅接受“他”所做的事情,也要思考“他”何以要這樣做;人們可以和“他”交流并試著改變“他”,而為了改變“他”,學(xué)習(xí)者必須要了解“他”。每一項(xiàng)技術(shù)都有著與其他技術(shù)加以區(qū)別的屬性,正是這些屬性,使得這項(xiàng)技術(shù)的意義和價(jià)值突顯出來。
設(shè)X為一實(shí)或復(fù)的Banach空間,B(X)表示X上有界線性算子全體所構(gòu)成的集合,‖·‖表示X上的范數(shù). 記為X上的恒等算子.
(二)理解與創(chuàng)造技術(shù)的需要
另一個(gè)需要指出的問題是,信息科技與自然科學(xué)最大的不同之處,在于信息科技所研究的對(duì)象主要是人造物而非客觀存在的事物。這些人造物包括實(shí)體的硬件產(chǎn)品和非實(shí)體的軟件。硬件之間、軟件之間,或是硬件與軟件間能夠順利交互,需要人為地設(shè)置被全體公眾認(rèn)可的屬性,大量人工概念由此出現(xiàn)。因此,學(xué)生不能只是學(xué)習(xí)如何使用現(xiàn)成的產(chǎn)品,而更要學(xué)習(xí)如何進(jìn)行新的創(chuàng)造,對(duì)人工概念的本質(zhì)屬性進(jìn)行了解。
邏輯學(xué)中,概念的內(nèi)涵就是概念對(duì)事物的本質(zhì)屬性的反映;而概念的外延,就是具體的、具有概念所反映的特有屬性的事物。因?yàn)楦拍畋举|(zhì)屬性是抽象的,所以一般在教學(xué)中,為了更順利地將概念內(nèi)化為學(xué)生的經(jīng)驗(yàn),要通過事物實(shí)體以及人與實(shí)體互動(dòng)的過程中,逐漸將概念本質(zhì)屬性歸納出來,而不是從一堆抽象的文字描述中去憑空想象概念的樣貌。
以SMTP協(xié)議為例,該協(xié)議的實(shí)體主要是RFC 821文檔,RFC全稱Request For Comments(RFC),是一系列以編號(hào)排定的文件,幾乎所有的互聯(lián)網(wǎng)標(biāo)準(zhǔn)都收錄在RFC文件之中,RFC 821文檔標(biāo)題即為SIMPLE MAIL TRANSFER PROTOCOL,是描述SMTP協(xié)議最早的標(biāo)準(zhǔn)文檔。
至于人與協(xié)議實(shí)體的互動(dòng),則可通過多個(gè)方法顯現(xiàn)出來。在課堂中需要依靠有效的教學(xué)策略,在教師預(yù)設(shè)的簡化情境中,讓學(xué)生體驗(yàn)到從多種現(xiàn)象中抽取本質(zhì)屬性的過程。教學(xué)策略主要有:
(一)閱讀和分析源代碼
可以讓學(xué)生閱讀、修改或編寫SMTP服務(wù)器和客戶端源代碼,然后觀察SMTP服務(wù)器和客戶端的運(yùn)行效果。雖然不同的源代碼所使用的程序語言不同,具體的代碼實(shí)現(xiàn)也不同,但都能體現(xiàn)出其網(wǎng)絡(luò)通信過程均在RFC 821規(guī)范的指導(dǎo)下進(jìn)行。學(xué)生通過對(duì)源代碼的閱讀和理解,如同“打開協(xié)議的黑匣子”,理解協(xié)議的基本內(nèi)容,然后學(xué)生可以歸納出SMTP協(xié)議的本質(zhì)屬性。
然而現(xiàn)實(shí)中,由于學(xué)生知識(shí)技能儲(chǔ)備的限制以及課時(shí)的限制,并無太大可能去閱讀SMTP協(xié)議長近70頁的原始技術(shù)文檔——雖然說那就是SMTP協(xié)議在世界上存在的實(shí)體,也無太大可能真正基于SMTP協(xié)議來設(shè)計(jì)出可正常通信的代碼——雖然說那樣才能展示SMTP協(xié)議真正起作用的原因。因此在教學(xué)中,可以砍去技術(shù)文檔中所有的細(xì)枝末節(jié),將最為核心的內(nèi)容,用圖1所示的方法展現(xiàn)出來。
圖1選取了SMTP協(xié)議所規(guī)定的客戶端與服務(wù)端通信的核心部分。從左到右是客戶端發(fā)往服務(wù)端的信息,從右往左是服務(wù)端發(fā)往客戶端的信息,從上到下是會(huì)話的順序。教學(xué)的重點(diǎn)不是具體的命令、命令格式和對(duì)話順序,而是命令、命令格式和對(duì)話順序的存在感。
圖1 STMP協(xié)議的核心會(huì)話過程
(三)運(yùn)行及測試協(xié)議
協(xié)議是“靜止”的,其作用要在運(yùn)行中才能顯現(xiàn)。通過運(yùn)行學(xué)生才能從結(jié)果的反饋中,理解SMTP協(xié)議何以能保證郵件準(zhǔn)確無誤且安全地傳送,確認(rèn)協(xié)議是否有效。教學(xué)中,可以讓學(xué)生嘗試運(yùn)行協(xié)議,觀察及再現(xiàn)SMTP客戶端和SMTP服務(wù)端的的對(duì)話過程,將對(duì)話過程視作實(shí)驗(yàn)研究的對(duì)象,即不僅安排成功的對(duì)話過程,也安排多種意料之外的話題并觀察客戶端和服務(wù)端的反應(yīng)。通過測試協(xié)議觀察反饋信息,可以更好地理解協(xié)議的工作過程。
(四)用原始的命令行實(shí)現(xiàn)協(xié)議
為了便于普通人使用復(fù)雜的技術(shù),程序員開發(fā)了各種便捷的郵件軟件,人們一鍵便可發(fā)送郵件,完全不用思考郵件的發(fā)送機(jī)制。教學(xué)卻恰恰要拋開“高級(jí)的郵件軟件”,像當(dāng)年開發(fā)郵件軟件的工程師和科學(xué)家一樣,用最原始的命令行執(zhí)行代碼,與計(jì)算機(jī)對(duì)話。教師可使用Telnet軟件來模擬客戶端與服務(wù)端的通信過程,這樣就把本來在郵件軟件背后所做的事情直接顯現(xiàn)出來。
教師在利用SMTP協(xié)議與服務(wù)器進(jìn)行對(duì)話的過程必須快速且準(zhǔn)確,多輸入一個(gè)空格、少輸入一個(gè)回車、寫錯(cuò)任何一個(gè)字母或標(biāo)點(diǎn)或者輸入得太慢,都會(huì)導(dǎo)致郵件傳送失敗。不過,有時(shí)正好可以利用錯(cuò)誤的輸入信息,來展示SMTP協(xié)議中嚴(yán)格的命令格式及會(huì)話順序。
教師在展示與SMTP服務(wù)器的會(huì)話過程之后,可以讓學(xué)生自己試著和服務(wù)器對(duì)話。為簡化操作過程,教師可以將所有需要用到的命令預(yù)先存儲(chǔ)在文本文件中,因?yàn)閷?shí)施操作過程的目的不是讓學(xué)生記憶這些命令,而是體驗(yàn)基于SMTP協(xié)議的完整的通信過程,這樣做可以方便地從文本文件中復(fù)制出命令粘貼到對(duì)話環(huán)境中。若學(xué)生能順利完成與服務(wù)器的所有對(duì)話,就能夠成功向因特網(wǎng)上任意郵件服務(wù)器傳送郵件。
(五)解釋關(guān)鍵代碼
學(xué)生成功發(fā)送郵件并不意味著他們就真的理解了協(xié)議的本質(zhì),教師要解釋何以服務(wù)器能夠響應(yīng)客戶端的命令,并重點(diǎn)解釋關(guān)鍵過程和步驟。這里并不需要、也不可能讓學(xué)生去完整地讀懂軟件代碼,只需要挑選某幾句語句即可。圖2中所示,是當(dāng)客戶端發(fā)送的郵件地址格式錯(cuò)誤時(shí),服務(wù)端會(huì)給予反饋信息“451 Sender address format error.”;可加以對(duì)照的是,在RFC821文檔中,也對(duì)451號(hào)反饋信息有詳細(xì)的描述。不管軟件的編寫者是誰,編寫軟件所用的程序語言是什么,編寫軟件的風(fēng)格怎么樣,在通信過程中都必須遵守RFC821文檔規(guī)定的命令格式和流程。
(六)總結(jié)SMTP協(xié)議的本質(zhì)屬性
有了以上的觀察和交互體驗(yàn)過程,教師就可以引導(dǎo)學(xué)生對(duì)SMTP協(xié)議的本質(zhì)屬性進(jìn)行歸納,總結(jié)要點(diǎn)主要有:
(1)SMTP協(xié)議由一份標(biāo)準(zhǔn)化文檔所定義;
(2)SMTP協(xié)議所規(guī)定的,是為實(shí)現(xiàn)郵件傳輸而進(jìn)行對(duì)話的命令、命令格式與對(duì)話的順序。
以上內(nèi)容大概需要一節(jié)課的時(shí)間來完成,不過為了準(zhǔn)備這節(jié)課,筆者和某個(gè)SMTP服務(wù)器之間進(jìn)行了大概幾百次的對(duì)話,直到最后,筆者終于學(xué)會(huì)把自己偽裝成一臺(tái)機(jī)器了。當(dāng)終于能把對(duì)話進(jìn)行到最后,信息成功發(fā)送出去的時(shí)候,對(duì)于什么是SMTP協(xié)議,幾乎就成了不言自明的事了。這時(shí),所傳送的郵件倒不是什么重要的東西了,重要的是傳送過程的規(guī)范。
幾十年來,人們的通信方式發(fā)生了很大的變化,從撥號(hào)到寬帶、從PC機(jī)到各種移動(dòng)設(shè)備、從郵件軟件到基于WEB頁面的信箱,操作越來越方便,但SMTP協(xié)議基本沒有變。實(shí)際上,從1982年到現(xiàn)在,就一直沒有大的變化,不管通信技術(shù)怎樣發(fā)展,SMTP協(xié)議總是如此,反復(fù)執(zhí)行那些代碼。這個(gè)世界上,變化的事物抓人眼球,不變的東西發(fā)人深思。有些東西在很長時(shí)間里不會(huì)變,但是卻構(gòu)成了豐富多彩的世界;如果想要讓學(xué)生做一點(diǎn)創(chuàng)造,那么就必須去了解那些不變的東西;越長時(shí)間不變、卻仍然處處被用到的東西,往往越有意義;去了解那些不變的東西,然后試著改變它。
陳 凱 上海市位育中學(xué) 200231
圖2 某個(gè)可實(shí)現(xiàn)SMTP服務(wù)器功能的程序源代碼的一部分