戴群
[摘要]隨著計算機技術的普及,特別是電信及互聯網技術的充分發(fā)展,需要高校輸出更多的高級信息技術專業(yè)人才,特別是有潛力的領軍人才。課程設計是完成專業(yè)培養(yǎng)目標的一項具有針對性的實踐教學環(huán)節(jié),是依據具體課程的知識,完成一個較簡單的設計問題,以加深對該課程所學理論的理解和應用。對本科生還不要求他們在理論上有突破,重點是運用成熟的理論和技術完成一個軟件項目。教師也可以結合自己的科研方向,結合社會主流技術,開發(fā)新穎的本科畢業(yè)設計課題。
[關鍵詞]計算機科學畢業(yè)設計實踐環(huán)節(jié)課題庫
[中圖分類號]G642.477[文獻標識碼]A[文章編號]2095-3437(2014)11-0125-03一、引言
隨著計算機技術的普及,特別是電信及互聯網技術的充分發(fā)展,我國信息技術人才的短缺越來越嚴重。這種短缺是相對的,并不是我們高校培養(yǎng)的信息技術專業(yè)學生絕對數量少,而是與產業(yè)匹配的高素質信息專業(yè)人才偏少。
經過前面十多年高校持續(xù)的擴招,我國的在校生規(guī)模已很龐大,幾乎每個高校均設立了信息科學類專業(yè)。然而,近幾年互聯網崛起的同時,IT人才的短缺現象越來越嚴重。企業(yè)更青睞于國內重點大學生源,但國內一些知名院系培養(yǎng)的大學畢業(yè)生,還不能滿足市場的需要。以一個信息類重點大學計算機學院為例,很多同學就能手握不同單位的多份錄用通知。由于就業(yè)情況較好,計算機學科也是學校內應屆生讀碩士、博士、研究生比例較低的院系。即便這些重點學校的應屆畢業(yè)生,他們進入公司之后往往還要經歷很長時間的培訓、學習,過程中會面臨許多問題,諸如復雜軟件的開發(fā)、編程規(guī)范、各種語言編寫需要的操作系統(tǒng)和數據庫環(huán)境及性能等。培養(yǎng)一個綜合能力強的軟件系統(tǒng)開發(fā)人才需要較長的周期。軟件行業(yè)普遍存在的問題體現在,高端構架設計人員少,行業(yè)領軍人物更是奇缺,與美國軟件行業(yè)整體差距很大。美國的校園里就已涌現出了不少創(chuàng)新能力強的創(chuàng)業(yè)型人才,如Face Book創(chuàng)始人扎希伯格就是在哈佛的校園實踐活動中孕育了日后創(chuàng)業(yè)的大型交友網站項目。在軟件生產領域,我們與印度的差距也較大。印度軟件職業(yè)教育開展得較好,他們很多信息類本科畢業(yè)生就具備一定的軟件開發(fā)能力,設計、開發(fā)過程規(guī)范;很多信息專業(yè)本科畢業(yè)生比我們部分碩士生軟件開發(fā)能力還強。可見,我們計算機專業(yè)教育的理論與實踐脫節(jié)問題很明顯。
按國家學位委員會最新規(guī)劃,我國信息科學一級學科包括控制科學與工程、電子科學與技術、信息與通信工程、計算機科學與技術、軟件工程 。[1]其中控制科學與工程是研究控制的理論、方法、技術及其工程應用的學科;電子科學與技術是研究微電子技術和光電子技術的基礎學科;信息與通信工程涉及無線通信、多媒體和圖像處理、電磁場與微波、成像以及衛(wèi)星移動通信等眾多高技術領域。而計算機科學與技術、軟件工程是教育部2011年剛從計算機科學與技術一級學科進一步細分出來的兩個一級學科。電子科學與技術是最為基礎的學科,重點是微電子電路與微波技術,控制科學重在理論及方法,信息與通信工程是寬口徑理論與實際結合的科學;另外,儀器科學一級學科也成為跨計算機、微電子、通信、自動化的綜合學科。計算機科學幾乎成為眾多學科所共同運用的通用學科,國家基金委信息學部信息二處(計算機應用)的課題中,很大比例的申請者是跨學科研究者,而信息三處(自動化)的課題中,同樣有很大比例的申請者來自計算機科學系。
國家的信息學科的部署是經過三十多年實踐逐步調整和完善形成的,每個學科均制訂了完備的教學大綱。為什么我們培養(yǎng)的工科畢業(yè)生能直接為社會所用的偏少?為什么我們培養(yǎng)的高端人才少之又少? 與此同時,美國一些大學本科生在讀期間就開始嘗試科技創(chuàng)新甚至創(chuàng)業(yè)活動。這些現狀反映了一個問題:學生的動手實踐太少,經驗缺乏。雖然學校已經開設了諸如專業(yè)課程設計、校外實習等一系列的實踐課程,但是,學生的實踐水平還不夠扎實。筆者所在的學院本科專業(yè)包含計算機領域兩個一級學科,下面針對計算機專業(yè)最重要的實踐環(huán)節(jié)《本科畢業(yè)課程設計》談談我們的教學方法。
二、明確畢業(yè)設計的目標
計算機專業(yè)本科生都系統(tǒng)地學習了數據結構、操作系統(tǒng)、計算機組成原理、編譯原理、計算機網絡、圖像處理、人工智能等專業(yè)課程,部分課程安排了課程設計,同學們已經初步地接受了實踐環(huán)節(jié)的訓練。
課程設計是完成專業(yè)培養(yǎng)目標的一項具有針對性的實踐教學環(huán)節(jié),是依據具體課程的知識,完成一個較簡單的設計問題,以加深對該課程所學理論的理解和應用。畢業(yè)設計與課程設計不同,是綜合性訓練,可能需要運用多門課程的知識。畢業(yè)設計要求學生在指導教師的指導下,獨立地完成一項軟件工程項目設計,解決與之相關的各種問題,完成相關需求分析、詳細設計、編碼開發(fā)、測試四個完整的項目流程,并撰寫設計報告。我們強調,作為項目,不僅需要能正確地實現需求,需要從軟件工藝、軟件質量的角度全面控制一個項目的全流程。學生在項目實踐中,如果研究出新的思想、新的開發(fā)技術,我們會指導學生凝練思想,總結成專業(yè)論文,爭取在核心科技期刊發(fā)表。善于實踐、善于思考、善于總結,這是一個軟件專家必備的能力,我們在教學中需要培養(yǎng)學生往這幾方面努力,提升他們的綜合能力。
三、畢業(yè)設計課題的制訂
在實踐中,結合計算機技術發(fā)展和社會需要,根據本系學科發(fā)展情況和社會熱點需求,建立了一批本科畢業(yè)設計項目庫。以下列出部分我們建立的本科畢業(yè)課題庫,以供同行參考。
(一)操作系統(tǒng)平臺類
UNIX、Linux進程通信模塊設計。大部分電信、互聯網平臺使用UNIX、Linux操作系統(tǒng),其上的多種服務以進程(線程)形式創(chuàng)建,需要設計通信進程建立及進程之間通信機制。本課題擴展開來,開發(fā)了ORACLE,MySQL等不同數據庫訪問進程,作為公共組件,提供統(tǒng)一接口供其他服務通過進程通信方式調用,簡化了這些進程訪問數據庫的復雜性。SQL、Non-SQL內存數據庫的設計,特別是Non-SQL是最近業(yè)界的熱點話題。學生可基于友好型開源軟件建立自己的內存數據庫,可以對源碼進行改進,擴展其功能。
(二)計算機通信類
在計算機工程領域,使用最廣泛的協議仍是TCP/IP協議,現在流行的HTTP/REST,SOAP, SIP等協議都是構架在TCP/IP協議之上的。不論面對多么復雜的TCP/IP應用協議,我們要求學生深度掌握TCP/IP基本模型,并演練基于Socket模型編寫C++或者Java程序。該模型可歸納如圖1服務器和客戶端協同工作。[2]
服務器的幾個主要動作如下:
1.創(chuàng)建監(jiān)聽套接字,綁定,監(jiān)聽;
2.創(chuàng)建工作線程;
3.創(chuàng)建一個套接字數組,用來存放當前所有活動的客戶端套接字,每accept一個連接就更新一次數組;
4.接受客戶端的連接;
5.接收數據的進程處理完畢后返回數據給客戶機。
客戶端所做的事情相對簡單,創(chuàng)建套接字,連接服務器,然后不停地發(fā)送和接收數據及數據處理。
任何服務的C/S結構的軟件構架都基于該模型或其優(yōu)化后的異步模型?;谶@個模型,我們創(chuàng)建了類似騰訊QQ軟件的網絡信使工具、網絡數據采集和電信計費服務器與客戶機。各類協議轉換網關基本也是基于TCP/IP實現的。學生對這類課題普遍存在著濃厚的興趣,每年都有不少學生踴躍選申報此類題目。
(三)互聯網數據挖掘類
互聯網中大數據是個非常熱的話題。除了規(guī)模以幾何級數增長的數據的存儲問題外,本質上,大數據需要數據挖掘工具對海量數據進行分析處理,獲取其中有用的信息。我們用網頁聚類算法分析與實現對網絡信息進行分析挖掘。對網絡信息的聚類處理,需要把網頁按照文本、結構及超鏈接等進行聚類。本設計要求學生熟悉并改進已有的網頁聚類方法,并借助于Nutch等開源工具編碼實現:給定關鍵詞和數據集,計算出與關鍵詞相關的類別;給定幾個關鍵詞,把數據集中的數據聚到若干個相關類中。此外,可基于支持向量機等對網頁文本進行分類。
(四)網站搜索類
將在理解搜索引擎工作原理和爬蟲的工作機制的基礎上,研究基于Hadoop的網頁信息提取方法,并進而實現精確搜索功能。
(五) 神經網絡技術的應用類
采用業(yè)界比較成熟的神經網絡算法用于實際系統(tǒng)應用,例如:前饋BP、自組織SOM等神經網絡進行金融數據挖掘的應用系統(tǒng)設計與實現。最典型的是通過對金融證券市場關鍵指標分析,并獲取這些指標的海量數據,利用BP神經網絡建模,預測關鍵指標發(fā)展趨勢,依此形成一個實用預測系統(tǒng)。
(六) 智能算法類應用類
智能和模糊構成了軟計算(Soft Computing)的主要框架?;谶z傳算法的分類規(guī)則知識系統(tǒng)設計,針對要分類對象進行編碼,利用支持度、置信度構造函數,并設計復制、交叉、變異算子,依此形成基于遺傳算法的分類規(guī)則發(fā)現算法,形成基于遺傳算法的分類規(guī)則發(fā)現系統(tǒng)。
(七)模式識別在圖像處理中的應用類
聚類是模式識別等研究方向的重要研究內容之一,在識別數據的內在結構方面具有極其重要的作用。將其用于圖像分割、數據壓縮、信息檢索、序列數據分析等,可開發(fā)出實用的系統(tǒng)。
(八) 服務計算類
WEB服務是面向服務結構的實現,并且服務組合已經成為了服務計算領域的熱點研究問題之一。為了構建實用的應用,開發(fā)方通常會組合一些已有的簡單服務來解決復雜的用戶問題。隨著可獲得的類似或相同功能的服務越來越多,服務組合問題變成了根據非功能屬性的服務質量來選擇合適的組件服務。但在復雜的網絡環(huán)境中,服務組合可能變得十分復雜,所以,WEB服務需要事務機制來保證輸出的一致性及工作流程執(zhí)行的正確性和可靠性。因此,需要設計和實現基于事務的組合服務選擇算法,以滿足組合服務的正確性,并實現構建功能強大的應用。
(九)數據倉庫建模應用類
主要研究和實現數據倉庫多維建模過程中涉及的各個環(huán)境和技術,包括數據抽取、轉換、加載、星型模型和雪花模型設計,主題、粒度、維度、事實表和量級等的確定,以及數據倉庫模型優(yōu)化等內容,在此基礎上構建報表系統(tǒng),為決策人員提供數據。
(十)視頻信號處理類
典型的項目是車流中車輛識別與分類,構建一個視頻采集與信號處理、車流量統(tǒng)計的識別系統(tǒng);通過攝像機進行視頻信號采集,進行信號處理,提取幀圖像,對圖像進行邊緣特征提取,勾勒車輛的輪廓特征和典型特征;建立車輛的輪廓特征和典型特征的樣本庫;利用統(tǒng)計規(guī)律進行數量統(tǒng)計。
(十一)傳統(tǒng)的管理信息系統(tǒng)類
例如選課系統(tǒng)、企業(yè)人事信息系統(tǒng)、互聯網問卷和評分系統(tǒng)、投票系統(tǒng)。這些系統(tǒng)可以基于C/S結構實現后臺管理,通過互聯網開放的可以用B/S模式開發(fā)。
(十二)計算機信息安全類
包括計算機攻擊防護、安全日志分析、計算機傳輸安全層構架、密碼算法及證書等。
以上很多課題重在培養(yǎng)學生實踐能力,對本科生還不要求他們在理論上有突破,重點是運用成熟的理論和技術實現一個軟件項目。教師也可以結合自己的科研方向,結合社會主流技術,開發(fā)新穎的本科畢業(yè)設計課題。
四、結語
經過我們幾年的努力,我們培養(yǎng)的本科生均在三、四個月的畢業(yè)實踐中基本掌握了獨立開發(fā)一種軟件系統(tǒng)的技術,充滿信心地走上了工作或者進一步深造的道路。我們將繼續(xù)拓展研究本科生實踐教學的其他方向,例如:培養(yǎng)二、三年級本科生參加科技開發(fā)及微創(chuàng)業(yè)實踐;解決本科生實踐活動和考研、就業(yè)時間沖突的矛盾;本科實踐活動如何與繼續(xù)深造相結合等問題。我們將不懈地努力,以期提高本科實踐教學水平,為社會培養(yǎng)更多基本功扎實、勇于創(chuàng)新的新型人才。
[參考文獻]
[1]國務院學位委員會.學位授予和人才培養(yǎng)學科目錄[EB/OL].http://yz.chsi.com.cn/kyzx/other/201104/20110411/1851
03201.html..
[2]汪曉平,鐘軍.VisualC++網絡通信協議分析與應用實現[M].北京:人民郵電出版社,2003.
[責任編輯:鐘嵐]