摘 要:目前,開放源代碼的LAMP組合已經(jīng)超過了很多同類的開發(fā)軟件,越來越多的用戶和開發(fā)人員選擇LAMP開發(fā)Web系統(tǒng)。LAMP中的P就指PHP。因此很多高校都開設(shè)了PHP相關(guān)課程。我院開設(shè)的《PHP網(wǎng)站編程技術(shù)》是網(wǎng)絡(luò)工程和網(wǎng)絡(luò)安全專業(yè)的重要課程,這門課程實(shí)踐性很強(qiáng),因此采取理論加實(shí)踐的綜合教學(xué)模式。本文簡(jiǎn)單介紹了PHP網(wǎng)絡(luò)編程技術(shù),以及對(duì)這門課程實(shí)踐教學(xué)存在的問題進(jìn)行了分析,提出了PHP網(wǎng)絡(luò)編程技術(shù)實(shí)踐教學(xué)改革措施,為往后《PHP網(wǎng)站編程技術(shù)》課程的提升提供重要幫助。
關(guān)鍵詞:PHP網(wǎng)站編程技術(shù) 實(shí)踐教學(xué) 改革
引言
PHP網(wǎng)絡(luò)編程技術(shù)始創(chuàng)于1994年Rasmus Lerdorf為了維護(hù)個(gè)人網(wǎng)頁而編寫的簡(jiǎn)單程序技術(shù),后來他個(gè)人發(fā)現(xiàn)用混合的語言比原來的編寫程序更加簡(jiǎn)單,于是重新探索,將不同種程序語言綜合起來,發(fā)現(xiàn)可以制作簡(jiǎn)單的動(dòng)態(tài)網(wǎng)頁,這也是PHP網(wǎng)站編程技術(shù)的早期運(yùn)用。經(jīng)過程序師多年的探索,現(xiàn)如今已經(jīng)運(yùn)用該項(xiàng)技術(shù)開發(fā)了大量的應(yīng)用網(wǎng)站已經(jīng)軟件。
PHP網(wǎng)絡(luò)編程技術(shù)是一種在語法上吸收了C語言、 Java和Perl的優(yōu)勢(shì),進(jìn)行動(dòng)態(tài)網(wǎng)頁編程的技術(shù)。由于PHP混合了多種語法優(yōu)勢(shì),所以,它的執(zhí)行速度比CGI或者Perl更快。PHP編程出來的動(dòng)態(tài)頁面跟用其他的編程出來的相比較,在執(zhí)行命令上PHP是將程序直接嵌入到HTML的文檔中去進(jìn)行執(zhí)行,就效率而言,它能夠比完全生成HTML標(biāo)記的CGI還高很多。除此之外, PHP還能夠?qū)幾g后代碼進(jìn)行編程,并且編程后的譯文具有加密和優(yōu)化代碼的功能。
目前,軟件學(xué)院主要有軟件工程和網(wǎng)絡(luò)工程兩個(gè)大方向。軟件工程又分為幾個(gè)專業(yè),這些學(xué)生主要學(xué)習(xí)軟件開發(fā)、游戲開發(fā)、嵌入式開發(fā)等。網(wǎng)絡(luò)工程的學(xué)生以前主要學(xué)習(xí)網(wǎng)絡(luò)搭建、服務(wù)器配置等內(nèi)容。為了給網(wǎng)絡(luò)專業(yè)的學(xué)生提供更多的就業(yè)出路,我們?cè)涸谇皫啄曷氏乳_設(shè)了《PHP網(wǎng)站編程技術(shù)》這門課程。《PHP網(wǎng)站編程技術(shù)》這門課一共48個(gè)課時(shí),其中理論課時(shí)和實(shí)驗(yàn)課時(shí)各占24個(gè),除此之外還有一周的課程設(shè)計(jì),是一門實(shí)踐性很強(qiáng)的課,因此實(shí)踐教學(xué)非常重要。
一、《PHP網(wǎng)站編程技術(shù)》實(shí)踐教學(xué)現(xiàn)狀
《PHP網(wǎng)站編程技術(shù)》是一門綜合性很強(qiáng)的學(xué)科,不僅要求學(xué)生掌握網(wǎng)絡(luò)基礎(chǔ)知識(shí)、頁面設(shè)計(jì)、PHP編程技術(shù),還要求具有一定的MySQL數(shù)據(jù)庫知識(shí)和Linux操作系統(tǒng)知識(shí)。因此,如果單獨(dú)的理論灌輸而缺乏實(shí)戰(zhàn)經(jīng)驗(yàn)的話,學(xué)生永遠(yuǎn)都是一知半解。而對(duì)于傳統(tǒng)的PHP網(wǎng)站編程技術(shù)實(shí)踐教學(xué)的設(shè)計(jì)上往往忽視了培養(yǎng)學(xué)生實(shí)際的實(shí)踐能力,只是為了考察或測(cè)試學(xué)生對(duì)某個(gè)知識(shí)點(diǎn)掌握情況,而沒有把這個(gè)知識(shí)點(diǎn)真正運(yùn)用到項(xiàng)目中,所以最終真正搭建一個(gè)完整的Web系統(tǒng)的學(xué)生很少。例如:我們之前這門課有10個(gè)實(shí)驗(yàn): PHP基礎(chǔ)、PHP表達(dá)式、PHP流程控制、PHP數(shù)組、PHP數(shù)據(jù)采集、PHP函數(shù)、基于Mysql的PHP管理系統(tǒng)數(shù)據(jù)庫、PHP會(huì)話控制、字符串處理、 PHP綜合應(yīng)用。除了最后一個(gè)實(shí)驗(yàn),每個(gè)實(shí)驗(yàn)只考察到一兩個(gè)知識(shí)點(diǎn),而且很多實(shí)驗(yàn)例如表達(dá)式和函數(shù)沒有很具體的項(xiàng)目背景。這些學(xué)生即便是做出來了,也沒任何成就感。
二、《PHP網(wǎng)站編程技術(shù)》實(shí)驗(yàn)教學(xué)改革
(一)實(shí)驗(yàn)內(nèi)容改革
實(shí)驗(yàn)是實(shí)踐類課程的重要環(huán)節(jié),從學(xué)時(shí)分配上我們也看到了這一點(diǎn),實(shí)驗(yàn)內(nèi)容安排的是否恰當(dāng)直接影響了學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)效果,因此實(shí)踐改革的第一步就是實(shí)驗(yàn)的改革。具體方法是:改變傳統(tǒng)的“知識(shí)點(diǎn)”式的實(shí)驗(yàn)內(nèi)容,采用“項(xiàng)目式”的實(shí)驗(yàn)?zāi)J?。?xiàng)目主要來自老師的累積。
具體的做法是將一個(gè)項(xiàng)目抽離成10個(gè)實(shí)驗(yàn),逐步完成一個(gè)完整的項(xiàng)目。下面以“新聞發(fā)布系統(tǒng)”為例,講解一個(gè)實(shí)驗(yàn)的安排。第一個(gè)實(shí)驗(yàn)是“網(wǎng)站開發(fā)流程”。通過帶了幾年的畢業(yè)設(shè)計(jì)發(fā)現(xiàn),很多同學(xué)在這方面很欠缺。通過這個(gè)實(shí)驗(yàn)讓學(xué)生了解如何進(jìn)行需求分析,系統(tǒng)設(shè)計(jì)等。因?yàn)榫W(wǎng)絡(luò)專業(yè)的學(xué)生沒有學(xué)習(xí)過軟件工程這門課,很多同學(xué)對(duì)網(wǎng)站開發(fā)流程一無所知,所以先從宏觀讓學(xué)生有所認(rèn)識(shí)。這個(gè)實(shí)驗(yàn)最終讓學(xué)生學(xué)會(huì)畫用例圖、功能模塊圖、數(shù)據(jù)流圖、數(shù)據(jù)字典、E-R圖。雖然學(xué)生還沒學(xué)MySQL數(shù)據(jù)庫,但是他們之前有學(xué)過數(shù)據(jù)庫原理這門課,因此數(shù)據(jù)字典、E-R圖等內(nèi)容他們接觸過,但可能不知道是干什么用的,通過這個(gè)實(shí)驗(yàn)就讓學(xué)生體會(huì)到了知識(shí)的具體實(shí)踐。接下來,講到PHP數(shù)據(jù)的提交和收集時(shí),我們讓學(xué)生做新聞發(fā)布系統(tǒng)的注冊(cè)頁面和登錄頁面,讓學(xué)生體會(huì)到$_GET和$_POST這兩個(gè)內(nèi)置數(shù)組如何使用。講到MySQL數(shù)據(jù)庫時(shí),我們讓學(xué)生把第一個(gè)試驗(yàn)中數(shù)據(jù)庫設(shè)計(jì)的結(jié)果實(shí)施到MySQL中。講PHP如何訪問MySQL時(shí),我們讓學(xué)生把注冊(cè)用戶的信息添加到數(shù)據(jù)庫中,以及讓學(xué)生把新聞內(nèi)容分頁顯示出來。講到cookie和session時(shí),我們讓學(xué)生把注冊(cè)頁面進(jìn)行修改和完善,讓網(wǎng)站記住學(xué)生的登錄信息。講到MVC的時(shí)候,我們讓學(xué)生用框架的方式重寫新聞發(fā)布系統(tǒng)。這樣下來,我們通過不停的補(bǔ)充和完善一個(gè)項(xiàng)目,不僅使學(xué)生掌握了知識(shí)點(diǎn),而且體會(huì)到了具體的應(yīng)用,學(xué)生看到一步步完整的網(wǎng)站,學(xué)習(xí)興趣也會(huì)提高。
授課時(shí)我發(fā)現(xiàn),有一些學(xué)生會(huì)自學(xué)這門課程,所以一個(gè)班學(xué)生的水平并不一樣,為了解決這個(gè)問題,采取的方法是同一個(gè)實(shí)驗(yàn)分為必做部分和選作部分。必做部分是對(duì)基本知識(shí)點(diǎn)的考察,選作部分屬于知識(shí)點(diǎn)的擴(kuò)展。這樣,水平相對(duì)好點(diǎn)的學(xué)生不會(huì)覺得沒事可做,而且給這些學(xué)生提供了充分發(fā)揮能力的空間。
(二)實(shí)驗(yàn)考核改革
《PHP網(wǎng)站編程技術(shù)》成績(jī)有三部分組成:平時(shí)成績(jī)、實(shí)驗(yàn)成績(jī)和課程設(shè)計(jì)成績(jī)。其中平時(shí)成績(jī)主要為出勤率。以往的實(shí)驗(yàn)成績(jī)主要看學(xué)生的實(shí)驗(yàn)實(shí)驗(yàn)報(bào)告。實(shí)驗(yàn)報(bào)告并不能很好的展現(xiàn)實(shí)驗(yàn)的過程,也不能實(shí)現(xiàn)和學(xué)生的互動(dòng)。為此我們采取了以下的方法:將實(shí)驗(yàn)成績(jī)分為兩部分,第一部分主要取決于課堂上實(shí)驗(yàn)過程中,老師對(duì)每個(gè)學(xué)生實(shí)驗(yàn)進(jìn)度的檢查以及其他交流情況;第二部分,讓學(xué)生把實(shí)驗(yàn)的結(jié)果提交的專門的實(shí)驗(yàn)系統(tǒng)中,該系統(tǒng)不僅可以看到實(shí)驗(yàn)報(bào)告冊(cè),還可以看到學(xué)生完成的具體項(xiàng)目?jī)?nèi)容、代碼,老師根據(jù)代碼運(yùn)行情況打分。這樣不僅可以督促學(xué)生完成實(shí)驗(yàn),而且能真實(shí)反映學(xué)生的掌握情況。
三、《PHP網(wǎng)站編程技術(shù)》課程設(shè)計(jì)教學(xué)改革
(一)課程設(shè)計(jì)內(nèi)容改革
課程設(shè)計(jì)同樣也是是工程類本科教學(xué)的重要環(huán)節(jié),課程設(shè)計(jì)教學(xué)中必須緊緊的圍繞培養(yǎng)目標(biāo)的要求。充分調(diào)動(dòng)師生的積極性,尤其是教學(xué)改革的主力軍學(xué)生的主觀能動(dòng)性,使他們積極投身于課程設(shè)計(jì)教學(xué)的改革,參與課程設(shè)計(jì)教學(xué)改革的全過程。獨(dú)立自主的完成課程設(shè)計(jì)任務(wù),可以使學(xué)生的理論知識(shí)得到深化,實(shí)踐能力受到培養(yǎng)。同時(shí)學(xué)生的思維創(chuàng)新能力、項(xiàng)目設(shè)計(jì)、評(píng)價(jià)能力都得到了訓(xùn)練。
課程設(shè)計(jì)是實(shí)驗(yàn)的升華,如果說實(shí)驗(yàn)是在老師的指導(dǎo)下分解項(xiàng)目的,課程設(shè)計(jì)就要靠學(xué)生自己來分析和解決問題。因此,它不僅鍛煉了學(xué)生的創(chuàng)造力、分析力、還有解決問題的能力以及團(tuán)隊(duì)合作的能力。
在以往的課程設(shè)計(jì)中,我們更多的是讓學(xué)生自己出題目獨(dú)立完成。這樣做雖然可以鍛煉學(xué)生獨(dú)立思考的能力,但往往導(dǎo)致學(xué)生做出來的項(xiàng)目太簡(jiǎn)單,不符合實(shí)際。因此我們提出了一種新的課程設(shè)計(jì)模式,也就是將企業(yè)中網(wǎng)站開發(fā)的真實(shí)組織結(jié)構(gòu)還原于課程設(shè)計(jì)中,鍛煉學(xué)生的團(tuán)隊(duì)合作意識(shí)的同時(shí)讓學(xué)生了解企業(yè)的軟件開發(fā)模型。
課程設(shè)計(jì)由6人一組,學(xué)生自由組合,每組按照自己的方式組織開發(fā)團(tuán)隊(duì),整個(gè)團(tuán)隊(duì)有以下幾種分工:產(chǎn)品管理:1個(gè)人,前期負(fù)責(zé)和客戶交流,了解客戶的期望,以進(jìn)行需求分析,后期負(fù)責(zé)向客戶展示產(chǎn)品,獲取客戶的意見,除此之外,還要負(fù)責(zé)整個(gè)項(xiàng)目的推進(jìn)及協(xié)調(diào);前臺(tái)開發(fā):2個(gè)人,負(fù)責(zé)網(wǎng)站美工,網(wǎng)頁布局等內(nèi)容,初步布局后由產(chǎn)品管理交給客戶提出修改意見;后臺(tái)開發(fā):2個(gè)人根據(jù)產(chǎn)品管理提供的需求分析進(jìn)行具體動(dòng)態(tài)頁面功能的實(shí)現(xiàn)和數(shù)據(jù)庫的部署,此過程必須嚴(yán)格按照需求分析進(jìn)行,并且是反復(fù)修改;測(cè)試:一個(gè)人,負(fù)責(zé)所有頁面功能數(shù)據(jù)的測(cè)試,把測(cè)試結(jié)果返回給開發(fā)人員。在整個(gè)過程中,教師可以扮演客戶的角色,針對(duì)要開發(fā)的項(xiàng)目回答學(xué)生的調(diào)研問題,并提出功能和界面設(shè)計(jì)的要求。
最后,必須要求學(xué)生提交完整的開發(fā)文檔。實(shí)際上,一個(gè)成功完善的網(wǎng)站項(xiàng)目,最終產(chǎn)出的不只是可交付的實(shí)際網(wǎng)站,還包括產(chǎn)品開發(fā)過程中的文檔。文檔是產(chǎn)品的重要組成部分,而且以后能得到一定的復(fù)用,一位著名的軟件工程專家曾說過:只要提供完美的構(gòu)架、需求與設(shè)計(jì)文檔,在沒有源代碼的情況下,可以重新開發(fā)出一款與原來一樣的產(chǎn)品。這句話道出了文檔的重要性。因此我們要求學(xué)生在完成網(wǎng)站的同時(shí)完成相關(guān)的文檔。文檔主要包括包括需求分析說明、代碼文檔、軟件功能說明等。需求分析說明中要包含用例圖、數(shù)據(jù)流圖、數(shù)組字典、E-R圖等,代碼文檔中要詳細(xì)說明定義了哪些類,哪些函數(shù)等,以及都有哪些功能。軟件功能說明書要寫明網(wǎng)站的功能模塊圖,以及流程圖。
(二)課程設(shè)計(jì)考核改革
在課程設(shè)計(jì)的考核中切記考核的形式和內(nèi)容大于考核的結(jié)果。考核的目的不是給學(xué)生一個(gè)成績(jī),而更多的是了解學(xué)生的掌握情況,優(yōu)點(diǎn)以及存在的不足,以便及時(shí)給出意見。為此我們要采用多方位、多角度、綜合性的考核模式。在這種考核模式中我們對(duì)學(xué)生及項(xiàng)目的評(píng)估主要看以下幾個(gè)方面:第一,需求分析階段和老師的交流情況;第二,項(xiàng)目演示過程中,功能的完整度;第三,整個(gè)項(xiàng)目的難易度;第四,網(wǎng)站的布局安排;第五,文檔的完整度。最終給出學(xué)生優(yōu)、良、中、差、不及格五個(gè)等級(jí)的成績(jī)。
四、結(jié)束語
《PHP網(wǎng)站編程技術(shù)》作為一門實(shí)踐性較強(qiáng)的課程,在教學(xué)的方法上應(yīng)有別于一般的基礎(chǔ)理論課程.提升學(xué)生的主動(dòng)性,通過對(duì)教學(xué)內(nèi)容及實(shí)驗(yàn)內(nèi)容的合理安排對(duì)學(xué)生進(jìn)行正確引導(dǎo)并提高學(xué)生實(shí)際動(dòng)手能力是其中的關(guān)鍵.我們對(duì)該課程的改革力求提高學(xué)生分析和解決問題的能力,通過教學(xué)實(shí)踐的探索,這種教學(xué)方法極大地提高了學(xué)生學(xué)習(xí)的積極性,取得了良好的教學(xué)效果。
參考文獻(xiàn)
[1] 汪建偉.基于項(xiàng)目推動(dòng)的《PHP網(wǎng)站編程技術(shù)》實(shí)踐教學(xué)改革[J].現(xiàn)代教育改革信息息,2013,12(17):137-228.
[2] 嚴(yán)榮麗.淺談《PHP網(wǎng)站編程技術(shù)》實(shí)踐教學(xué)改革[J].網(wǎng)絡(luò)編程技術(shù),2014,10(26):45-46.
[3] 許蜀玲.基于項(xiàng)目推動(dòng)的《PHP網(wǎng)站編程技術(shù)》實(shí)踐教學(xué)改革[J].網(wǎng)站編程管理,2016,12(17):237-238.
[4] 楊武.《網(wǎng)頁制作》教學(xué)改革的思考與實(shí)踐[J].高校網(wǎng)絡(luò)改革,2016,12(17):237-238.
[5] 周華強(qiáng).《網(wǎng)頁設(shè)計(jì)與制作》課程教學(xué)改革研究與實(shí)踐[J].山西煤炭管理干部學(xué)院學(xué)報(bào),2012,10(26):45-46.
作者簡(jiǎn)介
姜彬彬,女,漢族,1982年3月生,河南南陽人,計(jì)算機(jī)工程碩士,講師,研究方向:網(wǎng)絡(luò)及網(wǎng)絡(luò)安全。