陶勇 沈濟南
摘要:調研分析了高校計算機專業(yè)大學生應具備的實踐能力的知識結構和基本素質以及IT業(yè)對人才實踐能力的基本需求。指出現行計算機專業(yè)培養(yǎng)模式中存在的問題,提出以崗位要求為參照,知識結構、專業(yè)能力、專業(yè)素質為基礎,以創(chuàng)新實踐能力為目的,以理論聯(lián)系應用為手段的崗位直通式新型高校計算機專業(yè)人才培養(yǎng)模式。
關鍵詞:計算機專業(yè);崗位直通式培養(yǎng)模式;實踐能力
中圖分類號:G642.0 文獻標志碼:A 文章編號:1674-9324(2018)10-0204-03
一、引言
近年來我國高等院校的計算機專業(yè)得到了超高速的發(fā)展,現已發(fā)展成為規(guī)模最大、學生人數最多的專業(yè)[1]。這樣龐大的發(fā)展規(guī)模與驚人的速度是由社會發(fā)展的大環(huán)境所決定的。20世紀90年代以來,信息化成為一個國家經濟和社會發(fā)展的關鍵環(huán)節(jié)。它是衡量國家現代化和綜合國力的重要標志。加快信息化建設,以信息化帶動工業(yè)化,以工業(yè)化促進信息化是黨中央的戰(zhàn)略部署。這一戰(zhàn)略部署的提出,使計算機專業(yè)人才的需求和培養(yǎng)呈現出旺盛的發(fā)展勢頭。
計算機科學與技術是一個實踐性很強的工科專業(yè),學生的能力培養(yǎng)也是我們的終極目的。社會要求我們培養(yǎng)出有理論有技術的專業(yè)人才。目前,國家的信息化和經濟發(fā)展對計算機專業(yè)人才的需求不斷增加。但是,在計算機人才供需方面,卻出現這樣兩種相互矛盾的情況,一方面,公司、企業(yè)招不到需要的計算機人才;另一方面,卻出現計算機專業(yè)的畢業(yè)生就業(yè)困難的局面。產生的原因在于學校計算機專業(yè)的教學模式還停留在本本主義。在教學環(huán)節(jié)中往往是教師讀PPT上課,學生看PPT上課,理論與實踐嚴重脫離,沒有讓學生在學習理論的同時進行實際的操作,用理論指導實踐,在實踐中理解理論。
社會上有很多培訓公司,很多學生抱怨在學校學習四年,還不如到培訓公司學習半年。而培訓公司的教學方法是將理論融于實踐,比如,講一門語言課時往往是將語法融入程序中,而且老師和學生是同步編程的。以至于“傳智播客”、“尚學堂”的教學視頻就造就了一大批程序員。高校計算機專業(yè)應該摒棄古老呆板的教學方法,革新課堂教學方法,同時將實踐教學環(huán)節(jié)與公司項目緊密結合,以達到高校本科計算機專業(yè)學生崗位直通的教學目的。我本人及同事因為有大量社會項目經驗,并將這些經驗植入到教學改革和教學過程中,培養(yǎng)了一大批畢業(yè)即滿足公司用人要求的學生。我們將這種模式稱之為“計算機專業(yè)崗位直通式培養(yǎng)模式”。下面我就該模式的課程體系以及教學方法談談我的一些想法。
二、計算機專業(yè)崗位直通式培養(yǎng)模式的基本物質條件
根據我本人多年的本科計算機專業(yè)的教學經驗,計算機專業(yè)的學生,首先必須有一臺筆記本電腦。這些年,很多學生讓我印象深刻。他們畢業(yè)后都是公司的骨干,有的同學甚至在“國信瑞安”這樣專做安全的公司都能得到公司領導的賞識。比如我院的金凱、邵楚育等同學。這些同學無一不是在大一就配置了電腦,并在我們的指導下長期參與各種項目開發(fā)工作。
我本人在當班主任的過程中,要求每位同學都有電腦。新生到校后我花了3周的時間,手把手地教會學生安裝操作系統(tǒng)和程序開發(fā)的軟件,同時要求凡是語言課,學生都必須帶電腦與老師同步操作。到這些學生畢業(yè)時,大部分的同學都達到了公司的要求。
學校應該針對計算機專業(yè),建立專門的計算機專業(yè)課上課教室。上課教室即是實驗室,教室按計算機專業(yè)的特點,安裝計算機專業(yè)所必需的軟件。所有程序設計課,都必須在專業(yè)教室上課。
計算機專業(yè)崗位直通式培養(yǎng)模式還需要大量的知識全面、實踐經驗豐富的教師[2]。
三、計算機專業(yè)崗位直通式培養(yǎng)模式的課程體系及教學方法
計算機專業(yè)崗位直通式培養(yǎng)模式的基本原則是:以能力培養(yǎng)為目標,以過程控制為基礎,以學生個性發(fā)展為重點。計算機科學與技術是一個實踐性很強的工科專業(yè),崗位直通式培養(yǎng)模式課程體系一切以學生能力培養(yǎng)為中心。程序開發(fā)能力是計算機學生的基本能力,如果編程不過關,就達不到本專業(yè)的培養(yǎng)目標。但僅僅將計算機專業(yè)理解為編程能力是非常片面的,只有具有扎實的基礎理論知識才能在今后的工作中得心應手,才能在理論的指導下實踐和創(chuàng)新。
(一)直通式培養(yǎng)模式下的計算機專業(yè)編程基礎課培養(yǎng)方法
計算機專業(yè)編程課程的基礎課是《C語言程序設計》和《C++面向對象程序設計》。
C語言是基礎中的基礎。教學方法應摒棄傳統(tǒng)的PPT模式,在講解知識點的同時,必須將知識點融合在具體的程序中。在講解程序時,應該讓學生同步編程。同時在C語言教學的過程中,應該利用VC++6.0的調試工具,如單步調試、斷點調試、watch窗口、內存查看器、反匯編等工具等,來分析C語言的知識點。如:利用反匯編工具分析函數傳參數從右到左傳遞的過程;數組名的真正含義;C語言的教學重點是讓學生掌握面向過程的編程方法,理解程序中變量、數組、指針等的內存結構。為下面《C++面向對象程序設計》打好基礎。
《C++面向對象程序設計》主要掌握面向對象程序設計的思想,包括封裝、繼承和多態(tài)。在講解的過程中,也要利用VC++6.0的工具分析C++的語法,比如利用反匯編工具分析this指針、函數重載、虛擬是如何實現的。在講解的過程中一定要強調面向對象編程思想,培養(yǎng)學生面向對象程序設計的能力。在學習《C++面向對象程序設計》的過程中,同時學習《Windows程序設計》的SDK部分。在學習的過程中,最好給學生講解一下“俄羅斯方塊”等游戲。特別是“俄羅斯方塊”,該游戲中包含了C++:“封裝”、“繼承”、“多態(tài)”所有的知識點。利用《Windows程序設計》的對話框應用程序和C++的知識,來實現一些簡單的管理系統(tǒng)的設計。
(二)直通式培養(yǎng)模式下的計算機專業(yè)基礎課課程體系及培養(yǎng)方法
現在計算機專業(yè)教學過程中,專業(yè)基礎課的課時被大大地壓縮。其實本人非常不理解。學生學習往往都是走馬觀花,沒有真正掌握好應該掌握的知識。在崗位直通式培養(yǎng)模式下應該增加專業(yè)基礎課的學時,在教學過程中必須將理論與實踐相結合。
計算機專業(yè)基礎課包括:《32位微型計算機原理》、《數據結構》、《操作系統(tǒng)》、《編譯原理》、《計算機網絡》、《數據庫原理》?!段⑿陀嬎銠C原理》在傳統(tǒng)的計算機教學中使用的大都是“8086”16位計算機原理。這已經嚴重過時了,8086只能工作于“實模式下”,講解的重點是8086CPU以及各種IO接口,如8255等。現在的操作系統(tǒng)都是工作于“保護模式”。只有32位計算機才能工作于“保護模式”。因此,計算機專業(yè)必須講解《32位微型計算機原理》,其中重點是32位CPU的寄存器結構、保護模式下的存儲器模型、保護模式下的中斷系統(tǒng)。掌握這些知識,有利于《操作系統(tǒng)》的學習?!稊祿Y構》的學習,必須將理論與實際聯(lián)系起來,將具體的算法用前面學習的編程知識實現之?!恫僮飨到y(tǒng)》的學習的重點是:進程管理、線程管理、內存管理、文件系統(tǒng)。在學習的過程中,也必須將理論與實踐結合起來。比如在講解進程管理后,可以給學生講解“游戲修改器”的設計與實現。在講解線程的理論的同時,講解一下線程創(chuàng)建、線程同步等。在講解內存管理和文件系統(tǒng)時可以講解一下讀取超大文件的方法?!队嬎銠C網絡》在講解網絡體系結構、網絡協(xié)議的同時,還應講解網絡操作系統(tǒng)、網絡配置等相關知識?!稊祿煸怼分v解的重點是數據庫設計的原理,并將理論與實踐相結合。以實際的項目為依托來講解數據庫的設計方法。
(三)直通式培養(yǎng)模式下的方向課程體系及培養(yǎng)方法
直通式培養(yǎng)模式下,方向課包括兩條主線:一條是Windows系統(tǒng)開發(fā)課程;一條是JAVA開發(fā)課程。
1.直通式培養(yǎng)模式下的Windows開發(fā)課程。Windows開發(fā)課程,以C和C++為基礎,以Windows系統(tǒng)應用程序開發(fā)為依托,分為SDK程序設計、MFC程序設計、Windows核心編程、Windows網絡編程四個部分。
在大一上學期C語言學習的基礎上,在大一下學期將開始學習C++以及Windows程序設計的SDK開發(fā)部分。SDK開發(fā)部分主要講解Windows應用程序的運行原理、鍵盤消息、鼠標消息、定時計數器消息、菜單消息、控件消息以及SDK文檔類程序和對話框程序的設計。在講解過程中輔以“俄羅斯方塊”、“五子棋”、“小型管理類程序”的講解。要求學生完成“俄羅斯方塊”、“貪吃蛇”、“賽車”以及一些“管理類”應用程序的設計。
在大二上學期將學習MFC應用程序設計。學習的重點是分析MFC對SDKAPI的封裝,理解Windows對象與MFC對象之間的關系。MFC消息機制:重點是Windows系統(tǒng)消息、菜單消息、控件消息、自定義消息。MFC文檔類應用程序設計:重點是文檔類、視圖類、框架類、應用程序類之間的關系,文檔的串行化。對話框應用程序設計:重點是對話框中的系統(tǒng)消息處理、對話框控件、MFC的通用對話框。ODBC數據庫應用程式設計:重點是講解CDatabase類和CRecoderSet類,教學實踐中我講解了我們在工程項目中長期使用的一個數據庫基類,并利用該類講解了一個實際的數據庫應用系統(tǒng)。
以后在學習完“操作系統(tǒng)”的基礎上學習“Windows核心編程”,包括進程、線程、內存管理、IO驅動程序開發(fā)、動態(tài)鏈接庫。講解的過程中輔以“游戲修改器”、“哲學家就餐問題”、“大文件處理”、“基于指紋識別儀的考勤系統(tǒng)”等實際的例子來講解。其中指紋識別儀的例子主要幫助同學們掌握動態(tài)鏈接庫的使用方法。
最后在學習完《計算機網絡》的基礎上,學習《Windows網絡通信程序設計》。主要內容包括:socket通信、Windows套接字I/O模型、IOCP與可伸縮網絡程序、原始套接字、SPI、P2P通信、網絡掃描與檢測技術、核心層網絡封包截獲技術、Windows網絡防火墻開發(fā)技術。
2.直通式培養(yǎng)模式下的Java開發(fā)課程。Java開發(fā)課程包括:Java SE、java web、java web框架、Android開發(fā)。
Java SE是Java開發(fā)的基礎。在學習C++的基礎上開始學習Java。內容包括:Java虛擬機運行原理、JDK安裝與JDK文檔、Java基本語法元素、Java面向對象編程、Java IO、多線程、Java的集合類、網絡編程、JDBC。Java高級技術如Java的反射機制、Java的注解等要作為重點并結合現在流行的框架進行講解。在學習過程中要結合實例教學,如結合“坦克大戰(zhàn)”等游戲講解AWT及SWING方面的知識,并最終完成一個網絡版的“坦克大戰(zhàn)”,結合一些常用的通信框架,如mina框架來講解網絡通信。
Java web的內容包括:html、js、jquery、jsp 、servlet,ajax、json、tomcat。在教學過程中重點講解web容器的工作原理以及在web程序設計過程中使用到的ServletConfig、ServletContext、HpptServlet、HttpServletResponse、HttpServletRequest、Httpsession、文件上傳組件、過濾器等核心知識。
Java web框架內容包括:strust2、spring、mybatis、hibernate。首先講解如何利用maven來構建開發(fā)環(huán)境,如何利用maven進行版本控制實現團隊協(xié)作開發(fā)。在講解具體的框架時應采用“大平臺,小模塊”的方式[3]。即:使用已經做過的完整的項目架構,以實現某個功能模塊為切入點,講解在框架下完成項目的過程。不要拘泥于某個具體的知識點,而是讓學生了解在框架下實現整個項目的流程,需要什么技術就講解什么技術。
Android開發(fā)內容:Android應用程序開發(fā)基本組件,包括activity、Service、Content Provider、BroadcastReceiver等基本知識。但其重點在Android應用程序框架,Android應用程序與后臺的通信方面。在教學的過程中建議,以項目為支點,帶領學生完成一個具體的項目,在項目中遇到什么知識點就介紹什么知識點。
四、計算機專業(yè)崗位直通式培養(yǎng)模式下的實驗實踐教學體系和方法
(一)課程代實驗及課程綜合課程設計
課程代實驗分為驗證性實驗內容、設計性實驗內容和綜合實驗內容。實驗按知識點而不是按章節(jié)來安排。一個知識點作為一個實驗,每個實驗有多個實驗內容,每個實驗內容都包含上述三類實驗的前兩種實驗。
一門程序設計可有一次綜合性實驗。綜合性實驗的方式采用“仿—讀—寫”[4,5]方式。即教師講解一個實際的例子,學生先跟隨教師完成例子,教師給出多個例子的源代碼供學生閱讀。學生獨立完成系統(tǒng)需求分析、系統(tǒng)總體框架設計、系統(tǒng)模塊設計、系統(tǒng)詳細設計與編碼、系統(tǒng)調試、系統(tǒng)發(fā)布的綜合課程設計的工作。對于諸如Windows程序設計、Java web、Java web框架、Android的綜合課程設計題目必須來自于實際的項目。一個課程設計題目可以由多個同學協(xié)作完成。
(二)計算機專業(yè)崗位直通式培養(yǎng)模式的畢業(yè)設計
崗位直通式培養(yǎng)模式下的畢業(yè)論文指導教師一般要求是公司的技術經理或具有項目經驗的教師,題目必須來自公司正在開發(fā)的項目或者是指導教師正在開發(fā)的項目。我校與很多沿海公司都有業(yè)務往來,有大量的公司技術部門主管作為我校計算機專業(yè)的畢業(yè)論文指導教師。大四上學期為學生實習時間,除了部分考研學生,大多數學生都在公司實習,畢業(yè)論文就是學生在公司所做的項目。同時也有少部分的同學在校跟隨老師做項目。經過畢業(yè)設計的過程,學生畢業(yè)時已經成長為一名合格的程序員了。
五、結束語
目前的計算機專業(yè)教學過于老套,在培養(yǎng)的學生實踐能力方面比較弱。實踐能力匱乏導致學生不自信,當他們想到自己的能力和畢業(yè)后所面臨激烈的就業(yè)競爭時,其心甚是惶恐。
我校計算機專業(yè)采用崗位直通式培養(yǎng)模式后,極大地提高了學生學習的積極性、提高了學生的動手能力、提高了學生的自信心,為社會培養(yǎng)了大量合格的計算機程序員。隨著這種培養(yǎng)模式以及教學資源的不斷完善,相信今后將進一步提高畢業(yè)生的質量。
參考文獻:
[1]李曉明,陳平,等.關于計算機人才需求的調研報告[J].計算機教育,2004,(8):11-18.
[2]張麗萍,等.民族地區(qū)計算機專業(yè)實踐教學改革[J].計算機教育,2011,(13):8-10.
[3]施宏開.以實踐教學促進高教質量提高[N].中國教育報,2008-04-17(4).
[4]王倫津,王曉峰.JAVA語言互動式教學模式的探索[J].寧夏工程技術,2005,(02):194-196.
[5]查建中.論“做中學”戰(zhàn)略下的CDIO模式[J].北京:高等教育研究,2008,(3):1-6.