(大連大學 信息工程學院,遼寧 大連 116622)
信息化時代,程序開發(fā)是理工科研究生從事科學研究和實際工作應具備的基本技能。近年來,信息工程學院招收的非計算機專業(yè)的研究生在本科階段大多選修了結(jié)構(gòu)化程序設計語言課程,如C語言。因此,他們具備基本的編程技能,但對于主流的面向?qū)ο缶幊趟枷耄鄶?shù)學生在本科階段并沒有學習。
《面向?qū)ο蠹夹g(shù)》是我校針對信息工程學院非計算機專業(yè)的研究生開設的一門專業(yè)選修課程,旨在讓非計算機專業(yè)的研究生掌握面向?qū)ο蟮木幊汤砟詈兔嫦驅(qū)ο蟪绦蜷_發(fā)技能,這對學生今后的科研和工作大有益處。
《面向?qū)ο蠹夹g(shù)》是一門實踐性很強的課。在以往的教學中,我們側(cè)重理論講解,教學內(nèi)容和教學模式上存在許多問題,主要表現(xiàn)為:一是,大量的課時用于理論講解,忽視了對學生實踐技能的培養(yǎng)。二是,學生對填鴨式的理論學習缺乏興趣,學習效果大打折扣。針對上述問題,我們進行了反思和改革,重新設計了教學內(nèi)容和教學模式。
以往,我們在教學中主要是講解面向?qū)ο蠡舅枷牒蚒ML(United Model Language,統(tǒng)一建模語言)的使用。36學時的課程下來,學生雖然掌握了面向?qū)ο蠹夹g(shù)的原理,但不會在實踐中運用。為了實現(xiàn)“學為所用”,我們重新設計了教學內(nèi)容,編寫了新的教學大綱。
改革后的教學內(nèi)容包含理論學習和項目實踐兩個方面。這兩部分在實際教學中并不是相互孤立的,而是相互融合。面向?qū)ο蠹夹g(shù)涉及的原理和知識點很多,不可能在課堂上面面俱到的講解。同時,研究生已具備一定的自學能力,很多內(nèi)容完全可以在課下自行學習。因此,我們選取最重要的知識點作為理論教學內(nèi)容。重點抓住類、對象、封裝、繼承、多態(tài)性等知識點,同時,簡要介紹C++的基本語法和UML的基本使用。這些內(nèi)容作為課程的理論先導部分,屬于純理論教學,只分配6個學時,每個知識點都有相應的課堂測試題目作為學習效果的檢驗。理論先導部分之后是課程實踐部分,在這一部分,每次課堂教學都圍繞具體的實踐項目,同時,點明所涉及的知識點,目的是培養(yǎng)學生實踐能力,將所學和所用結(jié)合起來。
在項目實踐部分,我們在教學內(nèi)容設計上側(cè)重如下三個方面。
一是,學生在開始學習面向?qū)ο缶幊虝r,總是習慣性的回到面向過程的編程方法。為此,我們設計實踐項目,讓給出面向過程的編程實現(xiàn),然后讓學生使用面向?qū)ο笏枷雽Τ绦蜻M行改寫,幫助學生進行編程思想上的轉(zhuǎn)變。
二是,設計小型課堂演練項目,輔助主要知識點的理解和掌握,以及綜合實踐能力的培養(yǎng)。例如,為了幫助學生掌握派生類,以及構(gòu)造函數(shù)和析構(gòu)函數(shù)的使用,要求學生編寫一個點類Point,然后由它派生線段類Line,并演示構(gòu)造函數(shù)、析構(gòu)函數(shù)的作用和調(diào)用順序,畫出line類的UML圖。
三是,設計綜合性實踐項目——學生成績管理,通過實現(xiàn)學生成績的統(tǒng)計、查詢、刪除以及文件存取等操作,培養(yǎng)學生綜合所學知識點解決實際問題的能力。
我們共設計了5個設計題目[1],前4個設計主要檢驗學生某幾項知識點的綜合使用,同時,引導學生建立面向?qū)ο蟮乃季S方法。最后一個設計是一個綜合設計項目,幾乎涵蓋所學的全部知識點。此外,我們還將綜合設計項目進行了分解,并將這個綜合設計項目中涉及到的知識點融合到基本理論的講解中。
該課程共36學時。我們?yōu)樾碌慕虒W內(nèi)容編制了教學大綱。表1是教學大綱的概要。
表1 教學大綱概要
以往的教學模式是以老師講解為主,課堂氣氛沉悶,學生主動性不強。本次教改中,我們要讓學生成為課堂的主體。由于研究生已具備較好的學習能力,因此,教師完全可以只授之以漁而非授之以魚。即,采取學生課下自學,課上互動,教師引導的教學模式。重點如下:
(1)課下自學與課上測試
在以往授課中,課堂學習以教師講解為主,這種授課方式不利于學生主動性的發(fā)揮。我們發(fā)現(xiàn),聽老師講解知識點時,學生的興趣并不高,可一旦拋出某個問題讓大家搶答時,往往課堂氛圍一下子活躍起來,這說明學生更愿意運用所學的知識點解決問題而不是單純的知識點記憶。為此,我們一改傳統(tǒng)的老師講解為主的教學模式,將每節(jié)課的知識點以課下閱讀材料的形式發(fā)給大家,學生通過自學掌握知識點。課堂上,老師只花少量的時間對本次課的知識點進行串講和總結(jié),然后用事先準備好的測試題目考核學生對知識點的掌握程度,再對普遍存在問題的地方,進行糾正和詳細講解。這種方式不僅能調(diào)動學生學習的積極性,同時,也有助于學生了解自身學習中存在的問題。
(2)項目跟進式教學模式
面向?qū)ο蠹夹g(shù)是要學生掌握面向?qū)ο蟮某绦蛟O計原理,將這種程序設計理念運用到實際編程中。以往的教學只側(cè)重面向?qū)ο罄碚搶W習,教師投入大量的時間在課堂上講解理論,學生雖然掌握了這一理論,但如何在實際項目開發(fā)中運用這一理論卻不得到很好的認證,這不利用學生實踐能力的培養(yǎng)。本次教改,我們一改以往理論教學為主的教學模式,將理論學習與編程實踐相結(jié)合,將理論知識點的學習放到課下自學,將大部分的課堂學習時間留給動手實踐。教師在課堂上拋出針對知識點的單項測試性項目或綜合運用性項目,讓學生真正動手編程實踐,培養(yǎng)學生運用所學知識解決實際問題的能力。
(3)要求學生自帶筆記本電腦進課堂
在筆記本電腦普及的今天,幾乎所有學生都有筆記本電腦,因此,我們要求學生上課自帶筆記本電腦。這一要求是為滿足課堂測試和課堂演練項目的教學需求。有了筆記本電腦,教師可以在課堂上隨時布置知識點考核題目或編程演練項目,及時了解學生對知識點的運用能力和綜合解決問題的能力。帶筆記本進課堂是實施課堂測試和項目跟進式教學模式的硬件保障,保障學生對所學知識點隨學隨用,激發(fā)學生的學習興趣,提高動手實踐能力。
(4)采取小組協(xié)作的形式
由于課堂時間有限,一些綜合性項目不可能在課堂上單人完成。為此,我們將學生分成3~5人的小組。老師在課堂上公布題目后,每組組長組織大家進行分析、設計、模塊分解和對接,每個組員實現(xiàn)各自的編程任務。對于課堂演練項目,如表1中的序號5——辨別真?zhèn)螁栴}的課堂演練,可在一次課程中協(xié)作完成。對于綜合性小型項目,如表1中的序號9——學生成績管理,課時通??刂圃?學時,由于設計內(nèi)容較多,需要組員利用課下時間繼續(xù)協(xié)作,共同完成,最后再以小組匯報的形式展示給大家。教師在課堂上對各組項目進展進行及時把關(guān)和指導。通過小組協(xié)商,分模塊進行,不僅可以讓學生對項目實踐有整體認識,同時,也鍛煉學生團隊協(xié)作能力。
針對研究生具有較高的學習能力這一特點,此次教改,我們壓縮了教學中的理論講解部分,加大了項目實踐部分。從整體教學內(nèi)容來看,教學起點較高、覆蓋面廣、知識含量大,在有限的課時內(nèi)盡可能的提升了學生實踐技能的培養(yǎng),使本課程與常見的本科教學區(qū)別開來,更符合研究生這一學生群體的授課對象。教學模式上更加開放靈活,充分發(fā)揮學生潛能,鍛煉學生的實踐能力和協(xié)作能力。