趙怡

摘要:針對“面向對象程序設計”課程在教學中存在的問題,分析基于建構主義的項目驅動教學認知理論,結合課程的培養目標,將歸納式的基于項目的教學方法應用于課程的教學改革與實踐,提出在教學內容、教學方法等方面的具體改革措施。關鍵詞:項目驅動;建構主義;程序設計;教學改革
0、引言
“面向對象程序設計”是軟件工程專業和計算機科學與技術專業的一門專業核心課程。該課程是軟件工程等課程的先修課程,同時又是進行軟件開發的直接工具,是把所學的專業知識轉化為應用的橋梁,是學生就業專業知識的關鍵技術,所以該課程在整個教學體系中占據非常重要的地位。目前該課程在教學中仍普遍采用傳統的以語法講授為主線的課堂教學模式,從而導致學生學習該課程的主動性和積極性不高,缺乏知識運用和解決實際問題的能力,教學效果也不理想。針對目前“面向對象程序設計”課程教學中存在的問題,課程組將基于項目的教學方法應用于該課程的教學實踐,并取得了初步成效。筆者從教學目標、教學內容、教學方法和手段、教學組織和教學評價等幾個方面介紹項目驅動在“面向對象程序設計”課程教學改革中的應用,并希望可以與工作在教學改革第一線的教學同行進行交流和探討。
1、項目驅動教學的理論基礎與認知研究
1.1 目前課程教學中存在的問題
面向對象程序設計(OOP)是一種全新的程序設計思想。但目前該課程大都以演繹的方式來教授,教學中存在重語言介紹、輕對象思想和方法傳授的情況,即在教學內容的組織上是以特定的面向對象程序設計語言結構組織的,從基本語言要素、語法和語句結構組織,然后再舉一些例子說明這些語句的應用,而這些例子都是一些語言語法層面上的簡單應用,很少涉及實際問題的解決。這種教學方式不僅不利于學生領會和理解面向對象的思想和方法,更不利于培養學生使用面向對象方法解決實際問題能力。
1.2 建構主義
工程與科學教學中主要采用的演繹式教學法將課程或知識點作為學科內一個自成系統的知識體系來處理。教師按照從一般原理到數學模型再到模型應用這樣的方式進行教學,很少會提到為什么要這樣做,以及這樣的模型可以用來解決什么實際問題,學生為什么要學習這些東西等,而學生的任務就是被動地吸收這些知識。
在教育心理學中有一個公認的準則,就是只有當人們清楚地意識到有必要去了解某個事物時,他才會最為強烈地去主動學習。如果只是告訴學生某項知識或技能在日后會用得到,并不能起到有效的激勵作用。
與傳統教育模式不同的建構主義認為學生的學習是將新的信息納入到自己已有的認知框架中。因此,教育應該從學生可能熟悉的內容與經歷出發,與學生已有的知識結構聯系起來。教學內容應該與實際應用有關,并與其他知識領域相關聯,而不應是抽象的或獨立的。教育者要創造條件引導學生自行建構知識,并從實踐經歷中獲得證據來修正自己的知識建構。
建構主義支持歸納式的教學,即教學不是從一般原理到應用,而是首先從具體事物出發,提出一個有待解決的實際問題;然后教師在學生解決問題的過程中向學生提供所需的信息,幫助學生把握事實、了解規則、知道程序、明白原理。項目驅動的教學也是歸納式教學的一種。
1.3 認知研究
心理學與神經學方面的研究對歸納式的項目驅動教學提供了強有力的支持。
布蘭斯福德(Bmnsf-ord)等人在文獻中指出:“凡是新的學習都涉及先前學習所得信息的轉移”,即學生對新知識的接受程度受已有知識的影響是很強的。如果新知識與學生已有知識或認知有聯系或一致的話,學生學習起來較容易。項目驅動教學是在學生能聯系起來的情景、問題或應用的背景下提出新的知識。因此,這樣的教學內容能夠與學生已有的認知結構結合起來,是有易于學生接受的。
學生的學習動機會影響到學生愿意投入學習的時間的多少。如果學生發現學習的東西有用,而且能夠用來做一些對別人有影響的事情的話,學習就會更有積極性。項目驅動的教學通過與實際應用相關的項目來提供一門課程的教學內容與技能。學生在學習的過程中能夠親身體會到所學知識的實用性。因此,這樣的教學方法能夠大大增進學生學習的積極性。
此外,如果教學環境與實際工作環境相似,學生在日后就能夠很容易地將課程所學得的知識與技能移用到實際工作場景中。項目驅動的教學圍繞真實的項目來組織教學,因此有助于彌補學生的學習環境與實際工作環境兩者之間的不一致,從而有利于學生將所學的東西應用到實際工作中去。
綜上所述,把項目驅動教學應用于“面向對象程序設計”課程的教學中,能夠激發學生的學習興趣,有效地提高學生學習的積極性和主動性,改善教學效果,并有利于學生的職業素質和能力的培養。
2、項目驅動教學的應用
課程組將項目驅動的教學模式應用于“面向對象程序設計”課程的教學過程中,教學以項目為核心,學生為主體。教師在教學中起主導作用,將軟件工程化思想融入到教學內容中,以軟件產品的生產周期作為課程內容的主框架,教學內容包括若干個不同層次的軟件項目,通過項目引出知識點。項目驅動教學模式在課程教學中的應用激發學生動手實踐和分析思考,提高了學生的綜合應用能力。
下面從教學內容、教學方法和手段、教學組織和教學評價等方面介紹將項目驅動教學應用于“面向對象程序設計”課程改革的具體做法。
2.1 基于項目驅動的教學內容改革
課程組通過選用國外原版經典教材,引進國外的先進教學理念,依據課程教學大綱,以職業活動為導向,以學生為教學主體,以項目為中心,對課程教學內容進行整合、序化,構建了模塊化課程結構,如圖1所示。該結構將課程內容劃分為4個模塊:語言基礎、面向對象程序設計基礎、面向對象程序設計的方法理論和開發應用,并細化每個模塊的知識點和職業素質、技能和能力培養的要求,突出面向對象程序設計的方法理論和開發應用,著重培養學生的職業素養、主動學習和創新的能力。
在上述4個教學模塊中,教學內容是按項目驅動的。在講授課程內容時直接從面向對象程序設計入手,將語言基礎的知識分散到其他模塊中進行講解。在2、3、4級模塊中,通過項目來詳細展示每個單元的重要理論和概念,所涉及的語法知識會隨著解決問題的需要而引入。基于項目驅動教學的2、3、4級模塊所包含的項目如圖2所示。
項目驅動教學實施的關鍵在于項目的設計與選取。教學項目的設計與選取遵循有的放矢、與實際應用相關聯的原則。同時項目的難易程度要以不將學生逼到其“最近發展區(Zone ofProximal development)”之外為原則,即選擇的項目要比學生可以獨立完成的項目難一些,但是在教師指導下或與其他學生合作能夠完成。
2.2 基于項目驅動的教學方法改革
根據軟件設計開發的工程性特點,“面向對象程序設計”課程的教學靈活地運用了“基于項目的教學方法”,突出了“理論教學構筑學生的知識結構,實踐教學構筑學生的職業技能結構”的教學原則,并將面向對象程序設計的基本原理、軟件編程的基本規范和軟件設計建模的教學完全地融合在一起。
項目驅動教學法與傳統的教學法相比,有很大的區別,主要表現在改變了傳統的3個中心,將以“教師”為中心轉變為以“學生”為中心,以“知識體系”為中心轉變為以“項目”為中心,以“理論講解”為中心轉變為以“項目實踐”為中心。在教學過程中,學生可以參與軟件產品的構思、設計、實施和運行,這給學生創造了感知軟件、動手實踐、分析思考的機會。通過解決問題,學生的學習興趣被激發,基本的工程素質和能力得到了培養。“基于項目的教學方法”目的在于創造條件引導學生通過親自參與,自行構建知識,而不是簡單地接受教師的詮釋。
2.3 教學評價和考核方法改革
項目驅動教學重在知識的應用與集成,因此教學的考核與評價要強調對概念的理解,重視對知識、技能學習過程的評價,關注實踐環節及工程應用能力,應對學生進行多視角、多方位的綜合測評,力求知識與能力的協調統一和考核評價的客觀與公正。課程組將考試形式由筆試改為機試,并增加課程設計考核環節。學生最終成績的評定方法是:機試占20%,日常表現(出勤率、作業與實驗成績)占20%,自我評價與同學生評價占10%,項目設計和參與程度占20%,答辯情況占20%,撰寫論文或報告占10%。考核形式的改革會引導學生在課程學習中注重編程能力和解決問題能力的培養。
3、項目驅動在教學中的應用效果與評價
從2009~2010學年的第一學期開始,課程組將項目驅動應用于“面向對象程序設計”的課程教學中。通過與傳統教學進行對比,我們得出以下兩方面的結論。
3.1 項目驅動對教學產生的正面效果
項目驅動教學增進了學生在概念理解方面的思維能力,增強了學生分析問題、解決問題的能力,能夠有效地調動學生學習的積極性,提高學習的責任心,改善了學生與學生、教師與學生之間的互動關系,在學生的團隊合作與溝通能力培養方面起到積極的作用,特別是對于那些學習風格不適于傳統課堂授課的學生的教學效果特別好。
3.2 項目驅動教學在應用中存在的問題
項目驅動教學并不是一種很容易開展的教學。從教師方面而言,該方法要求教師對課程知識的把握程度要深,要有豐富的教學經驗,能夠根據教學情況隨機應變。就學生方面而言,基于項目的教學方法要求學生對自身的學習負有更多的責任。在項目實施過程中,各種項目管理與人際沖突等問題還會出現,這些都是學生所不習慣的,同時也對教師的教學組織能力提出了更高的要求。因此,有些教師和學生在一開始會對它感到不適應,在學習過程中也會出現兩極分化現象。此外,如文獻中所描述的,基于項目的教學容易產生內容知識方面的空白,忽視和遺漏一些關鍵知識點,從而影響學生今后對一些重要內容的進一步學習。
4、結語
通過對項目驅動教學在“面向對象程序設計”課程教學中的研究與應用,我們發現該方法與課程的培養目標相適應,能夠改善該課程的教學效果,有利于學生的職業素質與技能的培養;因此該方法是值得采用和推廣的。對于該方法在。教學中遇到的問題和負面效果,教師應該清楚其潛在的誤區,并有意識地在教學中采用適當的方法解決存在的問題或彌補教學中的空白,這樣才能使項目驅動教學發揮更大的作用。