石志國 劉冀偉 王志良
摘要:“智能科學與技術”專業(yè)從2004年國內開始招生至今,全國已有不少高校設立此專業(yè)。我校2007年開始招生,該專業(yè)的本科生將在2009年下半年進入專業(yè)課階段學習。本文從社會需求的角度出發(fā),以提高學生就業(yè)實踐能力為切入點,探討軟件實踐類課程的課程設計、教學方法、教材建設以及考試方式。關鍵詞:智能科學與技術;軟件;實踐性課程
中圖分類號:G642文獻標識碼:B
1引言
周濟同志在實施“質量工程”的二號文件中指出:“提高高等教育質量,本科教學質量是關鍵”。智能科學與技術是信息類學科中最年輕的本科專業(yè),也是最具有發(fā)展?jié)摿Φ膶I(yè)。2008年中國科協(xié)舉行的“五個10”系列評選活動中,作為智能科學技術核心的“人工智能技術”和作為智能科學技術重要應用領域的“未來家庭機器人”均入選“10項引領未來的科學技術”,這在當今所有學科中獨一無二。
文獻[2]對中國計算機相關專業(yè)作了一次比較全面的調查,調查中發(fā)現,目前學生仍處于應試教育模式中,要考很多基礎理論課程,而實踐課程少,動手能力不強,致使畢業(yè)后競爭力較差。調查結果顯示,認為畢業(yè)生在實際工作中動手能力培養(yǎng)不足的比例高達70%。有的用人單位還反映,學生在校學習過程中沒有形成一個好的習慣,沒有把基礎的東西學好,而是認為學一個語言就可以去用了,結果編程基礎很不扎實,稍微復雜點的編程就會出問題,而且編程不太規(guī)范,項目工程能力較差,突出的例子就是不喜歡寫項目文檔。
學生在校期間缺乏有效的、足量的實踐環(huán)節(jié),是企業(yè)和畢業(yè)生的共同反映。例如,關于“工作中最有用的技能或知識的來源”的多選題,70.7%的畢業(yè)生認為是參加工作之后逐漸學習到的;其次為課程實習,例如硬件試驗和上機項目實習題,占40%;第三為到公司實習,占39.2%,都高出大學教師的課堂教學。
對于智能科學與技術專業(yè),將所有專業(yè)課程分成兩大類:理論性課程和應用實踐性課程。有的課程既兼顧理論性,又兼顧實踐性,但是有所側重。理論性課程是方法論的內容,是知識傳承的載體,是本科階段必須強化的內容,目前對于理論性或者偏理論性的課程比較重視,但是比較忽略實踐性課程。
雖然每年各類公司招聘應屆畢業(yè)生的標準幾乎一致,但是貌似并未對教學大綱產生過影響。每年各類公司到學校招聘,要求掌握的開發(fā)工具和開發(fā)平臺等,大多沒有在課程體系中出現,如圖1所示。
為什么在課程體系中沒有出現的這些技術呢?不少老師會認為我們是本科教學,這些是??粕踔潦锹毟邞搶W的內容。然而事實并非如此,2002年開始,我校和比利時魯汶工學院合辦了一個碩士班,這個專業(yè)是魯汶工學院的碩士類專業(yè)中的最好專業(yè),畢業(yè)生在比利時非常受歡迎。他們的課程覆蓋了大部分企業(yè)的招聘需求:c++程序設計(QT平臺)、用戶界面(UI)設計、JavaWeb開發(fā)和Flash動畫設計,等等。除了一門“電子媒體導論”屬于偏理論性的課程,其他全部是實踐性的課程。這些課程是目前國內不屑于開的一些科目,而恰恰又是企業(yè)所需要的。
目前對于課程的設置,國內很多專業(yè)課程體系和10年前的課程體系設置大體相同。當然,對于基礎類課程,沒有多大變化是可以理解的。信息類學科每隔5年都會發(fā)生重大變化,課程體系卻變化很小。這有兩方面原因:(1)課程內容變化,第一遍講解需要大量的備課時間,而且講課效果還不一定好。(2)要繼續(xù)學習新技術,不如講老課程來得熟練、輕松。這樣導致新課程開不出來,即使開出來也沒有人愿意講。
2軟件應用實踐類課程設計探討
首先要明確這個體系中有些什么,才能決定需要設置什么。用人單位和畢業(yè)生都認為,現在的本科教學有一種教師“閉門造車”之嫌,教師是根據院系的課程安排和課本上的內容、按照自己的思維方式去講解,其實,就課程安排本身而言就可能已經與社會需求脫節(jié)了。
在對所使用的操作平臺的調查中,選擇使用UNIX/Linux開發(fā)平臺的比例明顯居高。學生在校期間和實際工作中所使用的平臺有一些差異,如果能在本科課程中增大UNIX/Linux平臺的比例,效果會更好些。在對開發(fā)語言與環(huán)境方面的調查中,也發(fā)現目前在校期間和工作中使用的開發(fā)語言和環(huán)境不太一致,相差最大的是Java和JSP/J2EE??梢?,高校關于開發(fā)語言的課程設置中也存在一定問題。
目前在應用開發(fā)領域中,從軟件開發(fā)體系上分類,主要分成三大體系,一種是基于瀏覽器的B/S(Brower/Server)架構,另一種是C/S(ClientJServer)架構、面向嵌入式系統(tǒng)的開發(fā)架構。開發(fā)體系如圖2所示。
基于B/S架構的開發(fā),目前主要采用三種服務器端語言:JSP(Java Server Pages)、PHP和ASP.NET,這三種語言構成三種常用應用開發(fā)組合:JSP+Oracle體系、PHP+MySQL體系以及ASP,NET+SQL Server體系。
基于C/S架構的開發(fā),傳統(tǒng)的開發(fā)環(huán)境有VB、VC以及Delphi等,隨著Java體系以及,NET體系的普及,目前更流行NET編程體系和Java編程體系。
對于嵌入式開發(fā),很多老師可能覺得應該并入硬件類課程。我們認為應當并入軟件類課程,主要有如下兩個原因:(1)目前面向嵌入式的開發(fā),并需要涉及多少硬件設計,開發(fā)板都是定制好的,和開發(fā)軟件的套路沒有區(qū)別。(2)嵌入式開發(fā)環(huán)境與普通計算機開發(fā)環(huán)境已經基本統(tǒng)一,比如QT,Eclipse和Visual Stidio.NET開發(fā)套件等。目前,面向嵌入式系統(tǒng)的主流平臺分成兩種:Linux和WinCE,從開發(fā)角度上劃分,可以粗略分成應用開發(fā)與驅動開發(fā)。
將每一個體系都分成基礎部分和提高部分,為了能將擴大知識面,將基礎部分設置成為必修課程或者選修課,提高部分設置成為選修課。同學可以根據自己的興趣和發(fā)展方向,選擇某一個分支學習下去,并在這個方向進行綜合案例設計和畢業(yè)設計,并以此為作為就業(yè)的方向,從而提高最終的就業(yè)成功率?;菊n程規(guī)劃如圖3所示。
將“算法分析與設計”作為軟件類課程的基礎,參考MIT大學的智能方向的課程規(guī)劃,主要講解智能搜索、排序以及動態(tài)規(guī)劃方面的內容;然后設置3個主線結構:(1)Java基礎→J2EE開發(fā);(2)NET應用開發(fā)基礎→NET Web開發(fā);(3)基于ARM/DSP系統(tǒng)的Linux應用開發(fā)一基于ARM/DSP系統(tǒng)的驅動開發(fā),其中大部分基礎類的課程以必修課的形式開出,后面的課程以選修課的形式開出。
通過基礎類課程的學習,可以對這個體系的內容有一個初步的認識,學生可以根據自己的就業(yè)方向以及興趣合理選擇后續(xù)的課程。
3軟件應用實踐類課程的教學方法探討
大部分實踐類課程由課堂講解和上機組成,課堂講解
將大部分知識點講解清楚,然后通過上機將課堂的內容進一步鞏固,并通過練習,提高課程的動手能力。
如果上午課堂講解,下午上機練習,效果還可以。很多情況下,要間隔好幾天,這樣再上機效果將大大降低,根據遺忘規(guī)則,很多同學已經忘記課上的大部分內容,上機的效果將大大降低。
我們計劃采取一種折中的方法,分成小班在實驗機房上課。將講解部分與上機練習結合起來,對每一個知識點進行講解后,讓同學立刻進行練習,這樣可以提高同學的動手實踐能力。通過教師的課堂講解和同學的課堂練習,將知識達到融會貫通的程度,如圖4所示。
這種設置提高了對教師的要求,教師除了熟練的知識講解,還要有快速發(fā)現問題的能力,及時查找同學練習中出現了問題。還需要對知識有良好的把握和課堂的整體控制能力。
4軟件應用實踐類課程的講義教材建設探討
對于講課的積累,除教學大綱和完整的PPT以外,還應該根據專業(yè)特色建立一套完整講義。每年要對講義的內容進行完善和修改。講義是教學過程的總結,一套完善的講義不僅方便老師教學和同學學習,還能為其他老師授課提供有益的參考。
但是,講義的編寫需要耗費大量時間,是知識再加工整理的過程。內容是講義和教材的生命,保證內容質量,是提高教學質量的關鍵。300頁的講義至少需要1200小時以上的時間投入,即使是講了很多遍的課程,建立講義的周期也需要半年到1年的時間。
講義一般情況下使用Word錄入,如果對Word不熟悉,對300頁左右的書稿進行整理將會非常辛苦。靈活使用Word樣式表,可以使排版更加輕松,使整個稿件條理性很強。除此之外,圖表的清晰程度也很重要,圖題和表題要按照章節(jié)進行標注。由于書稿是單欄排列,為了使自己的書稿能夠美觀大方,盡量不要使用高度大于寬度的圖,圖的高度與寬度的比例在1:1.5到1:2.5之間比較適宜,比例盡量接近黃金分割點“0.618:1”,這樣的圖從視覺上是最舒服的。從開始設計大綱到正式完成,科學的方法大概需要5步左右,如圖5所示。
前期的預研階段,需要與同行討論規(guī)劃講義的大綱與章節(jié),并針對每一章定出一級節(jié)標題,并反復與同行討論并修改大綱。如果作為規(guī)劃講義的一部分,還需要考慮與其他講義的銜接、知識點的統(tǒng)籌規(guī)劃等。根據實際情況,這一階段一般需要1個月左右。
即使作了充足的預研,到實際寫作的時候,也會舉“手”維艱,往往投入大量的時間,也看不到多少產出。但是如果不投入時間,則一定不會有產出。很多第一次接手講義或者教材編寫的老師,經常會選擇在這個階段放棄。其實對于第一遍編寫,并不需要過于細致,這一階段需要調動發(fā)散性思維,將自己授課的材料,“填鴨式”放到規(guī)劃的每個章節(jié)上,并不斷地對資料進行整理,用非口語化的語句,整理素材。講課的思維很容易影響講義的語句,因此會出現大量的類似“我們看這樣是不是更好啊”、“這樣不行了啊”等語句,這些口語化的文字,盡量避免。
第二遍編寫和修改,是決定講義質量好壞的關鍵過程。按照規(guī)劃將理論知識、實際案例和綜合應用等補充完整??刂坪酶鞑糠值谋壤?,例如理論知識與實際例子的比例為7:3或者6:4等。對每一章節(jié)進行反復細致的修改,并根據內容編寫每章習題以及答案。
經過第二遍的編寫和修訂,寫出的內容已經可讀了。找個同行進行內容上、技術上和概念上的審查,并根據意見進行修改。因為最終面向的是學生,找?guī)讉€同學從初學者的角度閱讀,只有他們才能感覺到什么地方不連貫、什么地方跳躍有些大了或者什么地方看不懂等。
第三遍修改是一個逐步“求精”的過程。根據同行以及同學的意見,再進行修改,修改的同時,再請他們對相應的地方進行閱讀,看調整是否恰當。經過反復修改后,就可以定稿了,在稿件的基礎上再編寫內容提要和前言等。
經過兩遍以上的使用,學生反映良好,就可以在此基礎上將講義建設成為一本教材。如果教材不來源于講義,不經過課堂的檢測,很難是一本好教材。
5應用實踐類課程的考試方法探討
閉卷考試有很多缺陷,不能客觀反映出學生理解、掌握、應用知識的實際情況,但是如果沒有閉卷考試的督促,學生會放松學習,從而不能產生良好的學習效果??梢圆粦心嘤陂]卷這一種形式,對考核內容和形式作適當調整,形成多樣化的考評方法。例如:
(1)減少閉卷考試的科目,安排具體實踐項目,結合平時組織的小討論、小論文,做項目、寫方案報告,以論文考核為主。
(2)更多地通過課程的實驗和成果來考核,鼓勵在實驗中的創(chuàng)新,理論成績所占比例可以縮小到總成績的50%以下。
(3)布置給每位學生的作業(yè)都不一樣,不以統(tǒng)一的答案標準作為考核依據。
(4)減少必修課比例,鼓勵學生選擇選修課程。
大部分專業(yè)核心課程都有實驗環(huán)節(jié)和課程設計環(huán)節(jié)。課程設計環(huán)節(jié)對學生是一個綜合性鍛煉的機會,要求學生從工程的角度進行考慮和設計,考核時不僅要看程序的運行,更重要的是要看設計思想和程序代碼及邏輯,這樣就有效地防止了一個學生做出來其他同學就都拷貝的現象。為了保證課程設計的質量,題目事先要進行篩選和評議,根據課程設計的時間長短,題目的難度要進行相應調整,偏難和偏易都不合適。
參考歐洲一些科目考試的經驗,并結合國內的課程的特點,我們將課程考核分成3個部分,平時的成績占10%,課程最終的答辯占30%,閉卷考試占60%,如果有任何一個類別不通過,課程都算不及格,如圖6所示。
其中,試卷答題和項目答辯同時進行,某一組在答辯時,其他小組在考試,這樣交替進行。每組的項目需要設計出完整的程序演示、系統(tǒng)的需求分析、詳細設計以及答辯PPT等。
6結束語
智能科學與技術專業(yè)是一個新興的專業(yè),每個學校都有自己的特色。在學科建設上,各個大學也應該百花齊放,不應該過于拘泥于一些細節(jié)。但是,對于本科教學,兩個永恒的主題是打專業(yè)基礎和提高就業(yè)能力,如何讓兩者有機結合,讓兩者互相促進,將是我們每一位教學第一線老師共同需要完成的任務。
這里提出我們對學科應用實踐類軟件課程建設的一點見解,肯定有一些不妥的地方,希望能和兄弟院校共同交流,共同進步。