張 泳,柯海豐,陳 蒙
(1.浙江大學城市學院 計算機與計算科學學院,浙江 杭州 310015;2.新疆大學 科學技術學院,新疆 阿克蘇 843000)
當我國高等教育發(fā)展到一定階段時,應用型成為必然發(fā)展方向:一方面,隨著我國高等教育普及程度和規(guī)模的擴大,傳統(tǒng)的精英教育逐漸向應用型轉化;另一方面,社會對應用型人才的需求也不斷擴大,使應用型本科院校的比重不斷增大[1]。
計算機類專業(yè)是典型的工科專業(yè),實踐性強,對學生的應用能力要求高,程序設計應用創(chuàng)新能力更是該專業(yè)的核心能力,直接決定了專業(yè)人才培養(yǎng)的質量。然而,傳統(tǒng)的計算機類專業(yè)在人才培養(yǎng)過程中,偏重于理論知識的系統(tǒng)性和完整性,忽視了對學生的實際應用能力的培養(yǎng)[2],從而出現(xiàn)畢業(yè)生專業(yè)能力與企業(yè)需要不匹配的現(xiàn)象。同時,目前在實際專業(yè)教學過程中仍存在一些問題:①課堂教學在教學學時、教學形式、教學規(guī)章制度等方面受限,對學生應用創(chuàng)新能力的培養(yǎng)不充分;②第二課堂沒有被有效地組織和利用于學生自主自覺的學習;③學生鉆研創(chuàng)新能力不夠。因此,對應用型本科院校計算機類專業(yè)培養(yǎng)學生的程序設計應用創(chuàng)新能力進行研究探討具有重要的現(xiàn)實意義與價值。
筆者以培養(yǎng)學生的程序設計應用創(chuàng)新能力為目標,提出了以程序設計競賽為驅動平臺的改革思路,設計了以程序設計競賽為主線的課程群,組織了基于主題的混合探究式學習,開展了一系列學生應用創(chuàng)新科研項目,從而構建了“競賽驅動,課程內(nèi)外融合;探究學習,應用創(chuàng)新并重”的程序設計應用創(chuàng)新能力培養(yǎng)體系(如圖1所示),取得了良好實效。
圖1 程序設計應用創(chuàng)新能力培養(yǎng)體系
多年的實踐證實,學科競賽作為第二課堂范疇,它是學生鞏固、應用和拓展專業(yè)知識的場地,更是學生專業(yè)關鍵能力培養(yǎng)和體現(xiàn)的重要平臺[3]。通過開展程序設計競賽活動,吸引和鼓勵學生把課余時間充分利用起來,從而為專業(yè)人才培養(yǎng)目標服務。
開展程序設計競賽是一個系統(tǒng)工程,經(jīng)過10余年的探索與實踐,筆者設計出一套行之有效的程序設計競賽實施方案,包括“課程競賽(新生選拔)—校級程序設計競賽—省級程序設計競賽— ACM/ICPC亞洲區(qū)賽”的年度競賽計劃,“新生選拔—基礎訓練—暑期集訓—進階訓練—組隊參賽”的培養(yǎng)途徑(如圖2所示)。培養(yǎng)途徑的各階段與課程掛鉤,也與賽事配合,并在實踐中不斷豐富完善各環(huán)節(jié)內(nèi)容。實施方案由ACM程序設計競賽學生社團為主體執(zhí)行和實施,充分調(diào)動了學生的積極性[4]。近年來,參與競賽的學生人數(shù)不斷增加,已成為學院參與人數(shù)最多的競賽之一,這促使學生的程序設計能力與水平不斷增強,獲獎數(shù)量與質量穩(wěn)步提升。
圖2 程序設計競賽組織方案
對于應用型本科高校的計算機類專業(yè),程序設計應用能力的重要性不言而喻[5]。如何上好第一門程序設計語言課以及后續(xù)的數(shù)據(jù)結構與算法課程,基本決定了學生專業(yè)基礎能力的高低。筆者以計算機類專業(yè)教學計劃中的“程序設計”“數(shù)據(jù)結構”2門必修課程為基礎,陸續(xù)開設了“ACM程序設計基礎”、“ACM程序設計實訓”(短學期)、“ACM程序設計進階”3門相關聯(lián)的后續(xù)選修課程,從而構建一個以程序設計競賽為平臺、課內(nèi)外融合的課程群(見表1),以競賽促教學。在“程序設計”“數(shù)據(jù)結構”課程中,通過改革實踐教學方法和考核方式,開展配套的課程競賽(獲獎者加分),激發(fā)學生興趣,實現(xiàn)與競賽對接,培養(yǎng)學生的基本程序設計編碼能力。在“ACM程序設計基礎”“ACM程序設計進階”課程中,設計“教(老師教)—學(學生學)—練(課外練)—賽(現(xiàn)場賽)”的教學路徑,每3周安排1次現(xiàn)場編程賽,課程成績以競賽排名為主,從而進一步培養(yǎng)和提高學生的算法設計與實現(xiàn)能力。在“ACM程序設計實訓”短學期課程中,則以集中訓練和隊內(nèi)競賽的方式強化學生的程序設計算法實現(xiàn)能力。
表1 競賽驅動的課程群設計
程序設計競賽難度大、要求高,學生需要經(jīng)過刻苦訓練和鉆研,才能具備很強的應用創(chuàng)新能力。探究式學習是以培養(yǎng)學生的研究創(chuàng)新精神為目的,以類似科學研究的過程、方法和形式進行的學習,具有主體性、開放性、綜合性和實踐性的特點。因此,程序設計競賽與探究式學習在對學生的培養(yǎng)目標與特點方面是有許多相近之處。
在當前計算機網(wǎng)絡日益發(fā)達的環(huán)境下,在教師指導下基于計算機網(wǎng)絡的探究式學習模式更為可取。學生針對研究的主題或問題,開展網(wǎng)上自主探究,通過網(wǎng)絡查找、收集相關資料和數(shù)據(jù),進行深入分析和研究,并開展網(wǎng)上交流與協(xié)作,將自己的研究成果或問題在網(wǎng)上發(fā)布,與同學進行交流[6]。然而,單一的學習模式往往無法取得理想的效果,因此,在開展程序設計競賽具體培訓相關的探究式學習過程中,還可以應用線上與線下混合的學習模式(如圖3所示),即“E(ELearning)+ C(Classroom)”的混合學習模式。同時,根據(jù)研究任務的性質不同,運用個人獨立研究、小組合作研究、個人研究與集體討論相結合等3種不同的組織形式。在實際組織研究性學習活動時,需要先規(guī)劃好各項研究主題任務,然后再根據(jù)不同的主題任務選擇合適的組織形式。通常,個人獨立研究形式可用于競賽試題分析工作,小組合作形式可用于專題研究任務,而個人研究與集體討論相結合的形式比較適用于內(nèi)部集訓任務。多年的實踐表明,這種混合模式的研究性學習對培養(yǎng)和提高學生的鉆研能力和創(chuàng)新能力效果頗佳。
通過探究式學習,學生獲得了各類程序設計算法的相關知識和應用場景。更重要的是,在自主學習過程中培養(yǎng)了比普通課程學習更強的程序設計應用能力和研究創(chuàng)新能力,這必將為學生在后期進行科研活動以及將來的行業(yè)發(fā)展乃至終身學習打下堅實的基礎。
圖3 混合探究式學習
參加競賽不是目的,不能為競賽而競賽。通過競賽驅動的課內(nèi)外培養(yǎng)體系,學生已經(jīng)具備了一定的程序設計應用創(chuàng)新能力,教師還要給他們提供能夠發(fā)揮和展示其才能的場所。大學生科研項目是一個理想的平臺,組織學生有計劃有選擇地開展一些能夠發(fā)揮其程序設計特長的應用創(chuàng)新項目,使學生才能落實到項目層面,從而實現(xiàn)從能力培養(yǎng)到為社會經(jīng)濟做貢獻的轉化。
調(diào)查分析表明,在目前的大學生科研訓練計劃(SRTP)實施過程中,普遍存在參與學生的科研主體性欠缺、科研素質不高等問題[7]。學生遇到難題時,通常直接詢問指導教師,很少自己查資料鉆研解決,通過前期培養(yǎng)體系培養(yǎng)的學生,已經(jīng)具備了一定的科研素養(yǎng)。通過各級SRTP的磨煉,其專業(yè)能力會得到進一步的加強和提升。
通過實踐,筆者發(fā)現(xiàn),通過競賽驅動的課內(nèi)外結合體系培養(yǎng)的學生,在開展大學生科研創(chuàng)新活動時,腦子活、肯鉆研,科研項目的質量與成果也比一般學生好,深受指導教師歡迎。當然,這些學生比較適合于具有一定難度的算法設計與開發(fā)類的項目。當前,基于大數(shù)據(jù)的數(shù)據(jù)挖掘相關的專題項目研究與開發(fā)是專業(yè)熱點之一,其中算法設計至關重要,學生從中可以找到新的用武之地。
對于計算機類專業(yè)人才培養(yǎng)來說,程序設計應用創(chuàng)新能力是其核心的專業(yè)能力,筆者在多年的教學實踐中逐漸構建出這套程序設計應用創(chuàng)新能力培養(yǎng)體系,在實踐中獲得了較好的效果,學生的程序設計應用創(chuàng)新能力逐步提高,在學科競賽、科研項目、就業(yè)深造等方面都取得了可喜的成績。隨著社會經(jīng)濟和產(chǎn)業(yè)技術的發(fā)展,筆者將不斷完善培養(yǎng)體系,從而培養(yǎng)出更高質量的計算機應用人才。