郭麗紅 袁 璟 吳海濤
南京工程學(xué)院信息與通信工程學(xué)院 江蘇南京 211167
自從2016年AlphaGo“打遍天下棋手無對手”以來,編程能力的培養(yǎng)再次成為全球的熱門話題。事實(shí)上,為了順應(yīng)未來發(fā)展需要,對于編程能力的培養(yǎng),世界各國已經(jīng)從基礎(chǔ)教育階段開始抓起。2014年,英國就已經(jīng)明文規(guī)定5~16歲的兒童開始學(xué)習(xí)編程,且將編程知識引入學(xué)校課本,成為必修課程;2016年初,美國前任總統(tǒng)奧巴馬曾投入40億美金,稱要讓每個美國孩子在小學(xué)具備最簡單的編程能力,而美國基礎(chǔ)教育階段約有67.5%的孩子已接受在線編程教育;在我國,2017年7月國務(wù)院印發(fā)了《新一代人工智能發(fā)展規(guī)劃》,其中明確指出要在中小學(xué)階段逐步推廣編程教育。這些充分說明,編程能力的培養(yǎng)變得越來越重要。
隨著未來的發(fā)展,可以預(yù)見我國對這方面的人才需求量會越來越大,在應(yīng)用型高等院校中,如何順應(yīng)社會對人才的需求,如何提升學(xué)生的編程能力、組織好編程類課程的學(xué)習(xí)成為高校教師改革和試行的重點(diǎn)。
編程類語言作為幾乎所有工科院校的必修課程,經(jīng)過多年的傳統(tǒng)教學(xué)后發(fā)現(xiàn),學(xué)生盡管在學(xué)習(xí)過程中掌握良好,但是在實(shí)際的科技創(chuàng)新或者畢業(yè)設(shè)計(jì)中,難以游刃有余地運(yùn)用該語言完成具體的項(xiàng)目或任務(wù);此外,學(xué)生就業(yè)之初,由于缺乏實(shí)際的項(xiàng)目開發(fā)能力,難于快速適應(yīng)自己的工作。因此,項(xiàng)目開發(fā)能力的培養(yǎng)使得項(xiàng)目教學(xué)模式走入了人們的視線。它作為程序設(shè)計(jì)類課程的一種教學(xué)方式,在學(xué)生具備了一定語言基礎(chǔ)知識的前提下,以項(xiàng)目為主線,有目的地完成設(shè)計(jì)[1],具體原因總結(jié)如下。
(1)編程語言的學(xué)習(xí)不同于常規(guī)的基礎(chǔ)教學(xué),它需要活學(xué)活用,要充分調(diào)動邏輯思維、抽象思維和空間思維,而這些思維方式的根源在于調(diào)動學(xué)生學(xué)習(xí)的主動性,所以語言類的學(xué)習(xí)不是學(xué)會做哪些題、看哪些書,而是學(xué)習(xí)這些思維方式,發(fā)揮學(xué)習(xí)主體的能動性,引領(lǐng)學(xué)生打開興趣之門,激發(fā)學(xué)習(xí)的興趣和熱情。
(2)編程類課程是實(shí)踐性很強(qiáng)的課程,只有在實(shí)踐中發(fā)現(xiàn)問題、解決問題,才能深刻認(rèn)識問題,所以實(shí)踐環(huán)節(jié)是進(jìn)一步深刻理解知識點(diǎn)、發(fā)揮實(shí)際效用的環(huán)節(jié),而相對于理論學(xué)習(xí)而言,學(xué)生輕視了這一環(huán)節(jié),缺乏實(shí)戰(zhàn)性,很多實(shí)驗(yàn)應(yīng)付了事,重視程度不夠。學(xué)生大多是為學(xué)分而學(xué),認(rèn)識不到因?yàn)橛杏枚鴮W(xué)的道理,沒有明確的目標(biāo)性。
(3)目前,編程類課程依然采用傳統(tǒng)評價體系,主體上是通過一張?jiān)嚲淼姆謹(jǐn)?shù)估價其能力,在評價學(xué)生的編程能力方面存在一定的局限性。
(4)從畢業(yè)生工作后反饋信息來看,常常出現(xiàn)就業(yè)尷尬的局面,學(xué)生缺乏動手能力和編程能力,企業(yè)對人才的需求和學(xué)校的培養(yǎng)模式存在差距。就像學(xué)生學(xué)習(xí)的是多個零散的點(diǎn),而企業(yè)需要的是一個面,傳統(tǒng)教學(xué)模式缺少把點(diǎn)組合成面的融合能力。
因此,針對傳統(tǒng)教學(xué)中的不足,結(jié)合編程類課程的特點(diǎn)和目前人才需求現(xiàn)狀,把項(xiàng)目式教學(xué)模式融入程序設(shè)計(jì)類課程中[2],以課程群為依托,結(jié)合具體案例,開展項(xiàng)目教學(xué)法,以項(xiàng)目為主線,逐步提高學(xué)生自主式探究的學(xué)習(xí)能力。
在具體實(shí)施項(xiàng)目教學(xué)的過程中,項(xiàng)目式教學(xué)的開展主要包括以下幾方面,這里以通信工程專業(yè)特色為主體,以通信專業(yè)2016級和2017級學(xué)生作為培養(yǎng)對象,設(shè)計(jì)了一些結(jié)合通信類特征的課題,以軟件設(shè)計(jì)類課程為例,采用逐步深入的方式把課題分成三類。
2.1.1 普通應(yīng)用軟件的編寫
選用一些小的應(yīng)用類軟件設(shè)計(jì),讓學(xué)生熟悉和掌握可視化編程,學(xué)會基本控件的使用和執(zhí)行結(jié)果的展示。例如,完成計(jì)算器軟件、簡單的電子秒表、隨機(jī)課堂點(diǎn)名軟件等的編程,從小軟件的編寫和實(shí)現(xiàn)開始,激發(fā)學(xué)生的學(xué)習(xí)熱情。
2.1.2 通信類軟件的設(shè)計(jì)
目前大多數(shù)的應(yīng)用類軟件需要和外界通信,因此網(wǎng)絡(luò)編程技術(shù)、串口通信技術(shù)和數(shù)據(jù)庫技術(shù)是編程必備神器??梢跃帉懥奶焓臆浖毩?xí)網(wǎng)絡(luò)編程,編寫帶有硬件配合的上位機(jī)軟件學(xué)習(xí)串口通信,可以設(shè)計(jì)各類管理相關(guān)的軟件學(xué)習(xí)數(shù)據(jù)庫編程。
2.1.3 網(wǎng)絡(luò)通信協(xié)議的解析
為了進(jìn)一步配合計(jì)算機(jī)網(wǎng)絡(luò)課程的教學(xué),深入地了解網(wǎng)絡(luò)協(xié)議,可以采用原始套接字技術(shù)實(shí)現(xiàn)各種網(wǎng)絡(luò)通信協(xié)議,主要包括數(shù)據(jù)包的組包、解包以及網(wǎng)絡(luò)編程中核心函數(shù)的具體使用。采用C/S模式完成自定義通信協(xié)議的網(wǎng)絡(luò)編程,對深入了解網(wǎng)絡(luò)及網(wǎng)絡(luò)協(xié)議有極大的好處。
以上各個模塊,以課程群為依托,按層次展開,具體如圖1所示,這里加入了通信專業(yè)特色,把它運(yùn)用于實(shí)際的編程中,是體現(xiàn)專業(yè)基礎(chǔ)、提升編程能力的良好形式,類似的執(zhí)行案例還可以按照企業(yè)用戶需求進(jìn)一步改進(jìn),按需還可以加入硬件設(shè)計(jì)環(huán)節(jié),最終目的是提升軟硬件編程能力。
圖1 層次性項(xiàng)目課題
項(xiàng)目教學(xué)模式適用于有一定語言基礎(chǔ)的學(xué)生。學(xué)生掌握了基礎(chǔ)知識,但是缺乏工程實(shí)踐、實(shí)戰(zhàn)演習(xí),也就是說學(xué)生只需要教師點(diǎn)撥,就能在已有知識的基礎(chǔ)上實(shí)現(xiàn)把多個點(diǎn)組成面的跨越。這里,對于多個教學(xué)班的情況,可以采用教師帶學(xué)生,然后學(xué)生幫帶學(xué)生的方式,具體實(shí)現(xiàn)環(huán)節(jié)如圖2所示。
圖2 項(xiàng)目式教學(xué)的實(shí)現(xiàn)環(huán)節(jié)
2.2.1 課堂講授 現(xiàn)場操作
采用小班化教學(xué)方式把課堂講授和現(xiàn)場操作相結(jié)合。以Visual C++為例,如果學(xué)生用繁雜的Visual C++設(shè)計(jì)軟件,單純地學(xué)會簡單的窗口級聯(lián)、數(shù)據(jù)傳遞、消息響應(yīng)機(jī)制、添加菜單命令等,可能需要幾個月的時間,而以教師點(diǎn)撥模式使學(xué)生能很快入手編程,實(shí)現(xiàn)程序設(shè)計(jì)的飛躍。
2.2.2 局部點(diǎn)撥 預(yù)留空間
在教學(xué)過程中,對于一些應(yīng)用案例,教師只需講解或操作完成一部分內(nèi)容,其他的部分留給學(xué)生完成。這樣,一方面把他們引上了路子;另一方面,可以發(fā)揮學(xué)生的主動性自行設(shè)計(jì)完成,既鍛煉學(xué)生的能力,激發(fā)學(xué)習(xí)的熱情,同時進(jìn)一步樹立自信心。
2.2.3 場外指導(dǎo) 難點(diǎn)解析
對于編程人員而言,程序的編寫是一方面,而編寫軟件的難點(diǎn)在于調(diào)試,對于碰到的難題教師可以場外指導(dǎo),為學(xué)生進(jìn)行難點(diǎn)解析,使學(xué)生能迅速解決難題,順利完成設(shè)計(jì)任務(wù)。
2.2.4 學(xué)生幫帶模式的形成
編程語言的學(xué)習(xí)是一種長效機(jī)制,需要經(jīng)驗(yàn)的積累,所以長效學(xué)習(xí)機(jī)制是真正獲取編程能力的有效方法。為長遠(yuǎn)考慮,采用學(xué)生幫帶學(xué)生的模式:能力強(qiáng)者帶動能力弱者,高年級帶低年級,逐步實(shí)現(xiàn)編程技巧和知識的傳承。這樣,形成了一種有效的知識傳承機(jī)制,實(shí)現(xiàn)老生、新生之間的知識良性傳遞。這種學(xué)習(xí)模式,既加深了講授者的編程能力和技巧,又使初始入門的學(xué)生受益。
學(xué)生設(shè)計(jì)作品的展示,一方面樹立了學(xué)生的自信,也讓未涉足編程的學(xué)生有了良性的促進(jìn),對項(xiàng)目式設(shè)計(jì)有實(shí)體參照,激發(fā)學(xué)習(xí)的熱情;另一方面,學(xué)生選題不同,關(guān)注點(diǎn)不同,熟悉的知識點(diǎn)也不一樣,通過這種展示平臺,學(xué)生可以互相交流,互相學(xué)習(xí),從一個知識層面拓寬到多個或更高的層次,同時,也有利于其他課程的學(xué)習(xí)。
這種項(xiàng)目式教學(xué)模式培訓(xùn)周期短、見效快、可控性好。從長遠(yuǎn)的角度看,學(xué)生、教師、學(xué)校都完成了學(xué)習(xí)任務(wù)、教學(xué)目的、培養(yǎng)目標(biāo),具有良好的效用。
對學(xué)生而言,教學(xué)方式的改變使得他們的學(xué)習(xí)由被動變?yōu)橹鲃?,激發(fā)了好奇心和創(chuàng)造力;對教師而言,通過對學(xué)生的指導(dǎo),轉(zhuǎn)變教育觀念和教學(xué)方式,從單純的知識傳遞者變?yōu)閷W(xué)生學(xué)習(xí)的促進(jìn)者、組織者和指導(dǎo)者;對學(xué)校而言,教學(xué)的最終目的是服務(wù)于社會,創(chuàng)造價值,全新的課程理念、培養(yǎng)優(yōu)質(zhì)的學(xué)生、得到社會的承認(rèn)才是教育的終極目標(biāo)[3]。
傳統(tǒng)的教師講、學(xué)生聽的教學(xué)模式淡化了師生間的交流,通過項(xiàng)目教學(xué),師生間必然會討論課題、調(diào)試程序、研究解決問題的方法,這些都無形中增強(qiáng)了師生間的交流,創(chuàng)造了良好的學(xué)術(shù)氛圍,師生間有良好的互動,彼此的充分信任和和諧的教學(xué)氛圍更能促進(jìn)該教學(xué)模式的實(shí)施。
項(xiàng)目教學(xué)模式的引入使得項(xiàng)目完成情況占據(jù)教學(xué)評定的一部分,學(xué)生最終成績的評定并不是以一張?jiān)嚲頌橹?,而是融入了?xiàng)目完成情況、動手能力等多方因素,這種經(jīng)過人性化處理的多方評定方式使得評定結(jié)果更加客觀、靈活,最終的評定結(jié)果真正體現(xiàn)了學(xué)生的編程水平。
把項(xiàng)目教學(xué)法引入教學(xué),很好地幫助學(xué)生在獨(dú)立研究的道路上迅速前進(jìn),對學(xué)生而言不僅提高了理論水平和編程技能,而且在教師有目的的引導(dǎo)下,培養(yǎng)了合作、解決問題等綜合能力。同時,教師在觀察學(xué)生、幫助學(xué)生的過程中,開闊了視野,提高了專業(yè)水平??梢哉f,項(xiàng)目教學(xué)是師生共同完成項(xiàng)目、取得進(jìn)步的教學(xué)方法[4]。在高等教育中,項(xiàng)目教學(xué)法有其獨(dú)特的優(yōu)勢,應(yīng)更進(jìn)一步總結(jié)提高,大力試用推廣。