彭東海,袁輝勇,余煥杰,容浩杰,余 勝
(韶關學院 信息工程學院,廣東 韶關 512005)
教育部從2017年2月開始展開了一系列研討會,會議內(nèi)容圍繞“新工科”建設進行展開,從“新工科”建設三部曲“復旦共識”“天大行動”“北京指南”中不難看出,“新工科”建設日益成為高校改革新熱點。高校對傳統(tǒng)工科的創(chuàng)新性建設及“新工科”的推進建設在這些研討會后有新思路和新方向。
新興產(chǎn)業(yè)需要的人工智能、云計算、機器人等專業(yè)就是“新工科”專業(yè),同時也包括了經(jīng)歷改造與升級后的傳統(tǒng)工科專業(yè)。“新工科”專業(yè)設置將圍繞以工業(yè)智能、互聯(lián)網(wǎng)為核心,傳統(tǒng)工科將以信息化建設為主要手段,對傳統(tǒng)的原有專業(yè)進行創(chuàng)新性建設。在“新工科”模式下,人才培養(yǎng)的方式將有所改變,這就要求高等教育方式有所改革。“新工科”建設已成為高校研究的“新風向”,但一流高校對“新工科”研究大多比地方性本科院校更廣泛、更深入,作為本科教育主力軍的地方本科院校不應落后,應因地制宜,根據(jù)校內(nèi)教師實際情況,加快對“新工科”建設展開研究與探索。
“新工科”背景下,人才的培養(yǎng)要緊緊圍繞產(chǎn)業(yè)鏈、創(chuàng)新鏈展開,根據(jù)技術需求設立專業(yè),根據(jù)技術所需改善內(nèi)容,把能否自主學習新內(nèi)容,能否合作解決新需求作為衡量畢業(yè)生是否達到企業(yè)需要的高層次技術人才的重要標準。傳統(tǒng)的Java課程教學方式與教學理念不符合“新工科”對于人才的培養(yǎng)方向,不利于解決新經(jīng)濟對于新人才的需求問題[1]。
以往的課程模式是一種知識灌輸?shù)哪J剑挥薪處熥鳛橹黧w進行輸出,學生被動輸入,無法即時地對知識進行加工處理然后再輸出。學生只是被動思考,于是思維變得僵化,在處理實際問題的時候,反應變得遲鈍,專業(yè)知識的應用能力出現(xiàn)欠缺[2]。
“新工科”背景下,學生不僅要有理論基礎,也要有解決實際問題的實踐能力,在解決市場新需求上有創(chuàng)新能力,在合作開發(fā)時有工程能力。教師應在有效的學時中將理論與實踐相結合,提高教學效率,促進學生多維發(fā)展,鼓勵學生自主學習、發(fā)散思維解決實際問題,考核標準以項目內(nèi)容為主。教師在課堂上使用的項目案例可結合過往經(jīng)典的項目與現(xiàn)代企業(yè)的實際項目。通過對比新老項目的不同,鼓勵學生對老項目存在問題提出解決方案,理解現(xiàn)代企業(yè)是如何實現(xiàn)項目的設計與開發(fā)。學生通過這些項目案例能從根本上掌握知識,并將知識運用到實際,培養(yǎng)“新工科”建設需要的面對問題的實踐能力、解決需求的創(chuàng)新能力、開發(fā)項目的團隊合作能力等,滿足未來企業(yè)對高層次新人才的高需求。
學術型教師知識豐厚,科研能力強,但工程實踐經(jīng)驗、工程實踐能力不及從企業(yè)聘請的兼職教師。因此,課程可由企業(yè)聘請的兼職教師和高校教師共同設計。由兼職教師和高校教師共同設計的教材有利于銜接實訓內(nèi)容和課程內(nèi)容,有利于將工程實踐和理論知識相結合,有利于有效培養(yǎng)學生工程能力,讓學生能在做項目的過程中學習理論,能將所學理論投入到實際工程開發(fā)中。同時,因互聯(lián)網(wǎng)改變了傳統(tǒng)授課模式,教師不再是知識的唯一來源,學生對教師的依賴性減弱,故教師要從教學的主導者變成輔助者、服務者[3]。
“新工科”不僅強調問題導向,更是強調戰(zhàn)略導向。“新工科”的建設必須以戰(zhàn)略全局的眼界開展,利用戰(zhàn)略眼光和戰(zhàn)略思維,對理念轉變進行提速;教育改革的深化,不僅需要培養(yǎng)推動傳統(tǒng)產(chǎn)業(yè)轉型升級的當前需要的人才,還需要培養(yǎng)促進新興產(chǎn)業(yè)、提升發(fā)展的未來需要的人才?!靶鹿た啤笔且粋€更高層次的開放工程教育模式,要以開放促改革、促創(chuàng)新,對外加強國際交流與合作,對內(nèi)推進工程教育資源開放和教育治理,加快形成對外開放與對內(nèi)開放深度融合的共建共享模式[4]。
傳統(tǒng)工科人才相對于“新工科”人才來說,工程實踐性較弱、創(chuàng)新能力不足,且在經(jīng)濟、社會和管理上都不及其優(yōu)秀?!靶鹿た啤毙枨蟮氖侨宋乃仞B(yǎng)更高,學科知識覆蓋面更廣、學習新技術能力更強且能快速將新技術運用到解決實際問題的高層次人才。
廣東信息產(chǎn)業(yè)非常發(fā)達,信息類專業(yè)畢業(yè)生逐年增加,但是人才質量參差不齊且差距較大,難以滿足新企業(yè)新專業(yè)日益增長的對全新多維人才的需求。由于信息類專業(yè)學生學習的專業(yè)知識是對原有傳統(tǒng)專業(yè)建設與升級的手段,他們將成為信息工程技術行業(yè)的業(yè)務骨干和基層工作者,也是專業(yè)未來能否成功升級,能否成功轉型的關鍵人物,所以各高校培養(yǎng)人才的質量直接關系到地方信息技術產(chǎn)業(yè)乃至當?shù)匚磥砩鐣慕?jīng)濟發(fā)展。地方高校與當?shù)仄髽I(yè)的融合度不夠,很多高校在自身實驗室建設中僅圍繞課程進行實驗室建設,實驗條件資源不夠,實驗內(nèi)容單一,缺少實踐基地[5]。“新工科”背景下項目化課程體系的構建關系學校、關系社會,更關系于國家。計算機科學與技術是韶關學院的一個省級特色專業(yè),以程序設計類課程為例探索項目主題,建立創(chuàng)新創(chuàng)業(yè)教育平臺將學校、企業(yè)及學生三方相聯(lián)系,加強培養(yǎng)創(chuàng)新創(chuàng)業(yè)教育意識,改進創(chuàng)新創(chuàng)業(yè)教育方式。專業(yè)教育在總體設計、教材、課程知識點、課程考核等方面將創(chuàng)新創(chuàng)業(yè)元素與專業(yè)知識融合,樹立信息安全理念,優(yōu)化培養(yǎng)工程技術人才,培養(yǎng)學生的創(chuàng)新能力,提高學生的綜合水平,具有重要的現(xiàn)實意義。研究成果將對于同類型高校信息類專業(yè)教學改革、新時代信息工程技術人才培養(yǎng)起到一定的示范和帶動作用。
項目化課程體系的構建是應用型地方本科院校實現(xiàn)創(chuàng)新創(chuàng)業(yè)深化改革的重要途徑,該研究立足于地方應用型本科院校。根據(jù)當下實際發(fā)展需求制定相應的人才培養(yǎng)目標和培養(yǎng)方案,并根據(jù)專業(yè)特色、學校定位和學科知識內(nèi)容有效地進行整合進而滿足這些要求,這對工程類專業(yè)教學而言,無疑是一種挑戰(zhàn)[6]。根據(jù)實踐教學情況,以計算機科學與技術專業(yè)中的程序設計類課程為例,剖析當前“新工科”背景下項目化課程建設不夠充分的一系列現(xiàn)狀,結合專業(yè)教育,從學校、教師及學生3個層面出發(fā),提出應對策略,為地方應用型本科院校提供新思路,將專業(yè)教育與項目式教學充分結合,提高學生就業(yè)能力,適應社會主義市場需求?;趹眯腿瞬排囵B(yǎng)的特點,教師不但具有較高的學科專業(yè)理論和知識,還應具備豐富的實踐經(jīng)驗及動手操作的能力[7]。
Java 是“互聯(lián)網(wǎng)+”、人工智能等新興產(chǎn)業(yè)的重要技術工具,其地位和作用顯而易見。采用項目式教學可以使學生更容易掌握知識,在畢業(yè)后進入企業(yè)能迅速將所學投入項目研發(fā),利于推動“互聯(lián)網(wǎng)+”、人工智能等新興產(chǎn)業(yè)發(fā)展。
課程創(chuàng)新了教學的總體設計,采用YY聊天室項目開發(fā)的教學方式,客戶端需要實現(xiàn)用戶界面、注冊和登錄、發(fā)送聊天信息和事件響應處理等功能,服務器端需要實現(xiàn)用戶的注冊和登錄驗證、使用服務線程接收和轉發(fā)聊天信息,并保存在數(shù)據(jù)庫中等功能。使用流程是先啟動服務器,再進行用戶注冊和登錄,最后是用戶之間的聊天,實現(xiàn)了一對一、一對多和多對多聊天。該課程項目的總體框架可參考圖1。
圖1 課程項目總體框架圖
Java程序設計在課堂教學中雖然采用了多媒體進行教學,但是教學形式依然是傳統(tǒng)的模式,即教師在講堂上講,學生被動來接受知識[8]。
在純粹的知識點講授過程中,學生會感覺枯燥無味,影響學習積極性,因而為本課程設計了多個YY聊天室子項目,把各個知識點融匯其中來引導學生的創(chuàng)新思維。
項目的第一部分:初始化工程——登錄界面。在創(chuàng)建登錄界面時,將運用到繼承、Swing圖形界面 JFrame、JPanel、JButton、JLabel、JText-Field、JTabbedPane、GridLayout、JCheckBox、JPasswordField等知識點。項目的第二部分是創(chuàng)建好友列表界面,需要學生掌握Swing圖形界面JScrollPane、CardLayout、ImageIcon,事件處理機制ActionListener、MouseListener 以及 MouseEntered。接下來是YY聊天室的最后一項內(nèi)容——創(chuàng)建好友聊天界面,需要學生使用的知識點有:Swing圖形界面 TextArea、JPanel、TextField、JButton、ImageIcon,事件處理機制MouseClicked、MouseExited等。聊天室的內(nèi)容完成后,學生需要進行服務器端的搭建。其次是服務器端的登錄驗證——使用對象流。該功能需要的知識點有:網(wǎng)絡編程(ServerSocket、Socket、ObjectOutputStream、ObjectInputStream)等,用戶對象的傳輸?shù)取m椖康牡谌糠质且粚σ涣奶旃δ?,該功能要完?個內(nèi)容,分別是:實現(xiàn)多個用戶同時向服務器發(fā)送聊天信息、服務器轉發(fā)聊天信息、實現(xiàn)多對多聊天,即多線程。該部分需要使用較多的知識點,舉例如下:序列化Serializable、多線程Thread、ObjectOutputStream、消息對象傳輸、多線程Runnable接口、HashMap。第四部分是操作數(shù)據(jù)庫,實現(xiàn)激活在線好友列表圖標、驗證用戶登錄、獲取好友數(shù)據(jù)更新好友列表、注冊新用戶及添加新好友、刪除好友和更新好友列表、添加好友后自動更新好友列表以及保存好友聊天信息到數(shù)據(jù)庫。
項目的每個部分將采用4個學時完成,共有11個實驗教學設計。
(1)基于對象流在網(wǎng)絡上傳輸user對象的實驗教學設計。實現(xiàn)思路:先在客戶端創(chuàng)建Object OutputStream對象,然后發(fā)送User對象到服務器端,使用ObjectInputStream接收。該實驗教學讓學生討論如何基于字節(jié)的輸入輸出流轉換為對象輸入輸出流。
(2)基于服務器端的登錄密碼驗證的實驗教學設計。實現(xiàn)思路:在客戶端發(fā)送User對象到服務器端后,判斷密碼是否與之匹配,密碼正確則發(fā)送回客戶端登錄成功的Message,否則登錄失敗。該實驗教學將讓學生討論當?shù)卿洺晒蛘呤r,客戶端應如何響應。
(3)在一對一聊天中,基于多個用戶同時向服務器發(fā)送聊天信息的教學設計。實現(xiàn)思路:通過兩個用戶登錄連接服務器時建立的Socket對象,向服務器發(fā)送聊天信息,服務器再將聊天信息傳達給雙方。該實驗設計需要學生思考服務器端如何區(qū)分不同用戶的Socket對象。
(4)在一對一聊天中,基于服務器轉發(fā)聊天信息的教學設計。實現(xiàn)思路:使用服務器通過在HASHMAP對象中找到不同用戶的Socket,然后轉發(fā)聊天信息,客戶端在好友聊天界面中顯示聊天信息。該課程實驗設計需要學生討論項目中如何解決由于Socket是static的,會被一個聊天窗口獨占,因而一人不能同時與2人以上聊天的問題。
(5)在多對多聊天中,基于在聊天窗口中顯示聊天信息的教學設計。實現(xiàn)思路與前面的管理線程的方法類似,可把聊天窗口放入到HashMap中統(tǒng)一管理,根據(jù)聊天信息中的發(fā)送者和接收者,來尋找信息的顯示窗口。該課程設計需要學生討論解決同一個聊天窗口不能多次打開以及聊天窗口必須先打開,才能接收信息,否則會報錯,應該設計一個查看聊天信息的提示。
(6)基于激活在線好友列表圖標的教學設計。實現(xiàn)思路:在客戶端上線后,先向服務器發(fā)送一個請求獲取在線好友的message,然后服務器就回送一個包含在線好友信息的message。該課程設計實驗需要學生討論解決目前新用戶登錄后能獲取在線好友,但是用戶不能獲取之后登錄的在線好友信息的問題。
(7)基于更新剛登錄的上線好友列表圖標的教學設計。實現(xiàn)思路:用戶登錄成功后,由服務器向其好友發(fā)送登錄上線信息,好友接收到信息后,激活其圖標。該課程設計需要學生討論解決如何保存聊天信息。
(8)利用數(shù)據(jù)庫注冊新用戶的教學設計。實現(xiàn)思路:若無同名用戶,則在User表中添加新用戶;若有同名則顯示該用戶已經(jīng)注冊。該實驗設計需要學生討論解決新用戶注冊成功后如何添加好友。
(9)添加好友的教學設計。實現(xiàn)思路:需要在好友列表界面中添加“+”新按鈕(對方同意功能先不實現(xiàn)),在relationship表中寫入新好友的數(shù)據(jù),如果已經(jīng)是好友則加不成功,提示已經(jīng)是好友,如果添加的好友名稱在User表中不存在則顯示該用戶不存在。該課程設計需要學生討論解決如何刪除好友。
(10)刪除好友的教學設計。實現(xiàn)思路:用鼠標右擊好友,彈出確認框詢問是否需要刪除好友,若需要刪除好友選擇確定,否則選擇取消。服務器在relationship表中刪除該好友,更新客戶端的好友列表。該課程設計需要學生討論解決如何保存好友的聊天信息。
(11)好友聊天信息保存到數(shù)據(jù)庫的教學設計。實現(xiàn)思路:新建聊天信息表message,增加保存message的方法。該課程設計需要學生討論解決聊天中如何發(fā)送圖片、文件及語音信息。
項目課程教學與傳統(tǒng)課程教學相比發(fā)生了根本的變化,教學目標從掌握知識向培養(yǎng)能力轉變、從以理論傳授為主向實踐導向轉變、從關注外部輸入向關注內(nèi)部生成轉變、從去情境學習向情境化學習轉變[9]。該課程的考核形式將與傳統(tǒng)課程的考核形式存在較大差異。周考核制度其實就是一種過程考核,能督促學生在整個學期內(nèi)不斷地進行項目迭代開發(fā);然后,期末考核是創(chuàng)新能力的考核,要求學生在項目中增加新的功能,需要對項目的整體很熟悉才能實現(xiàn),并且考核過程中教師的工作量會增加很大,可能需要學院的支持和引入助教制度來解決。
過去的考核形式大多離不開紙質練習,不利于保存項目開發(fā)的內(nèi)容。在評價學生綜合能力的過程中,不僅要考查學生對基本知識的掌握,更要注重學生創(chuàng)新能力的培養(yǎng)和實踐過程的考核[10]。和以往的考核形式不同,筆者采用Github開源軟件和CSDN博客平臺可以更靈活的保存進度,也利于學生共享自己的思路,有助于提高學生的學習能力,推動教學工作的進行。
課程要求學生利用Github做項目迭代開發(fā)過程中的版本管理工具,并在CSDN博客平臺上發(fā)表自己的項目開發(fā)心得和創(chuàng)新體會,教師根據(jù)學生完成的情況,一般2周進行一次創(chuàng)新項目進度完成情況的考核。
期末以項目答辯方式的進行項目開發(fā)創(chuàng)新能力考核,要求開發(fā)一個新項目或者在YY聊天室的基礎上增加3個以上新功能,并寫出實現(xiàn)步驟,根據(jù)實現(xiàn)新功能的難易程度酌情給分,具體如下:
(1)可以增加新功能,比如:服務器端使用線程池為客戶端提供服務,添加好友時增加對方驗證的功能,把好友移到陌生人,基于數(shù)據(jù)庫的新好友上線更新好友列表,刪除好友、發(fā)送文件、發(fā)送圖片、發(fā)送表情、語音聊天,屏幕抖動,增加后臺的管理(停止服務器,增刪改查)等。
(2)可以優(yōu)化界面,如:實現(xiàn)手機號登錄,電子郵箱登錄,修改登錄界面的圖片等。
(1)課程采用YY聊天室項目開發(fā)實踐教學的方式,從零開始創(chuàng)建客戶端和服務器端,應用了Swing界面設計、網(wǎng)絡編程、多線程和數(shù)據(jù)庫程序設計等多種技術,能鍛煉學生的項目開發(fā)綜合能力和程序設計的高級思維。
(2)課程負責人編寫了一本創(chuàng)新性的教材《JAVA基礎應用與實戰(zhàn)》,其中聊天室項目被分解成多個子項目貫穿在這本教材中;把面向對象設計的知識點全面融入到各個子項目開發(fā)的教學中,實現(xiàn)了“在做項目時學習,學習后能做項目”,以這種看得到的成果的形式提高學生對編程的學習興趣,鍛煉編程和團隊合作能力;對于每一個子項目的具體實現(xiàn),創(chuàng)新性地進行了研討式設計,首先每個子項目需要完成的任務需要與學生闡述清楚并列出其中的難點,引導學生思考,然后將項目的實現(xiàn)思路及解決難題的思考方向與學生們進行討論和分析,需要注意的問題和實驗步驟,最后指導學生完成實驗。
(3)周考核和期末創(chuàng)新考核:創(chuàng)新性的使用GitHub開源軟件平臺和CSDN博客平臺對學生項目開發(fā)進行過程考核,平均2周一次的進度考核在整個學期推動著學生不斷的學習和努力;期末考核學生的創(chuàng)新能力,要求在教學項目的基礎上開發(fā)一定數(shù)量新的功能,并采取答辯方式完成期末最終考核。
在當前創(chuàng)新創(chuàng)業(yè)的時代背景下,“新工科”的技術優(yōu)勢和創(chuàng)業(yè)技能的融合無疑是當前時代的大勢所趨[11]?!靶鹿た啤北尘跋?,產(chǎn)業(yè)逐漸向人工智能、云計算、機器人等高新技術方向轉型升級,此時產(chǎn)業(yè)對“新工科”技術人才需求量大,但是畢業(yè)生水平參差不齊,總體質量不高,無法滿足產(chǎn)業(yè)對人才的需求。在統(tǒng)籌規(guī)劃計算機程序設計教學的前提下,在全校范圍內(nèi),開出不同檔次、不同類型的計算機課程,以滿足不同專業(yè)、不同層次學生的需求[12]。經(jīng)過對傳統(tǒng)課程存在問題的分析,決定就現(xiàn)階段課程所存在的問題建設項目化課程。該課程有利于提高程序設計課程的教學質量,提高學生的自主學習能力,豐富解決現(xiàn)實問題的思維能力,有利于完善人才市場的供需問題。