顧雯雯
[摘要] 建構主義理論指導下的《C語言程序設計》課程改革:通過改革課程內容、課堂教學、實踐教學體系、考核機制,使學生從知識的被動接受者變為信息加工的主體和知識的主動建構者。
[關鍵詞] 建構主義 C語言程序設計 教學改革
在眾多高級程序設計語言競顯風流的當今社會,C語言以其目標代碼質量高、使用靈活、數據類型豐富、可移植性好等特點,成為一種在系統軟件開發、科學計算、自動控制等諸多領域廣泛應用并占據著重要地位的程序設計語言。
《C語言程序設計》課程作為很多高職高專院校計算機類專業的一門核心基礎課程,是學生學習程序設計的開端,學生分析問題、解決問題的能力和程序設計過程理念的形成都與C語言有著密切的聯系。采用傳統的教學方法,學生在學習中普遍反映“難學”、“不懂”。究其原因,是傳統的教學方法注重教師的“教”,而忽略了學生主動構建知識的能力。作為國際科學教育改革的主流理論,“建構主義”為我們的課堂教學指明了方向。
一、建構主義的基本理論
建構主義(Constructivism)又稱作結構主義,該理論最早源于瑞士著名心理學家讓?皮亞杰的“發生認識論”。建構主義指出:知識不是通過教師傳授得到的,而是學習者在一定情景即社會文化背景下,借助其它幫助(包括教師、學習伙伴及教學媒體),利用學習資料,通過意義建構的方式從而獲得。建構主義理論核心是:以學生為中心,強調學生對知識的主動探索、主動發現和對所學知識意義的主動建構。建構主義倡導在教師指導下以學習者為中心的學習,即強調學習者的認知主體作用,又不忽視教師的指導作用,教師是意義構建的幫助者、促進者,學生是信息加工的主體、意義的主動構建者。
建構主義思想表明,在發揮教師指導和促進作用,形成以學生為中心、學生主動探索、構建知識意義的過程中,以多媒體技術和網絡環境為主體的信息技術運用,最能充分提供建構主義強調的情景和學習幫助,實現以學生為中心、主動探索構建知識意義的過程。建構主義學習理論認為要提高學習者理解能力和知識遷移能力,應給學習者構建一個非線性的媒體學習情境,以適應信息社會知識日趨復雜的特點,學習者雙向的學習過程在提高學習能力同時,教師綜合素質也得以發展。
二、高職高專院校中《C語言程序設計》課程教學現狀
《C語言程序設計》課程一般是高職高專院校學生所接觸的第一門編程類基礎課程,在學習該課程時,同學們開始懷著神秘而興奮地心情來學習,但隨著幾節關于大量難以理解和記憶的新術語、新規則的課程介紹,枯燥乏味的例題分析后,學生慢慢失去興趣,覺得學習C語言很枯燥。傳統的《C語言程序設計》課程的教學中,大多采用粉筆加黑板的手段,整個教學活動是圍繞著如何教而展開的,偶爾加上的少許上機實踐課程學生也是在云里霧里完成的,往往在一學期快結束時,才對編程有一點點地理解,甚至有的學生還是只停留最初的幾節課的教學內容上。在這種教學內容多而廣,且時常是以教師為主的教學下,學生如何能學會,學懂,學以致用呢?
三、建構主義理論指導下的《C語言程序設計》教學改革
1.改革課程內容
建構主義認為,知識不是客觀的東西,而是人們對客觀世界的一種解釋、假設或假說,它不是問題的最終答案,它必將隨著人們認識程度的深入而不斷地變革、升華和改寫,出現新的解釋和假設。《C語言程序設計》課堂教學的最基本目的是讓學生學會靈活編寫正確程序,在將來無論運用C語言來實現單片機控制還是繼續學習別的程序語言時,一是能熟練應用,二是能創新升華。
然而,目前各個高職高專院校所使用的C語言程序設計教材中的教學內容太多,而且有的對于高職生來說實在太難了,比如,指針、結構體、文件……我們的學生能在短短的一學期高強度中學全學會這么多的知識嗎?
為了更好地體現高職高專人才培養的要求,明確高等技術應用型人才的培養目標,對于該課程的教學內容本著教學內容突出基礎理論知識的應用和實踐能力培養的原則,以應用為目的,以“必需、夠用”為度,加強針對性和實用性,以程序設計的重中之重——程序設計的3大結構(順序結構、條件結構、循環結構)為核心進行組織教學內容安排。讓我們的學生把編程的基本功打結實,將來學習其他更深層次的編程類軟件會舉一反三,真正做到會將知識進行遷移。
2.改革課堂教學
課堂教學是學生學習的第一學習環境,基于建構主義的學習環境所追求是讓學生能主動地建構知識的意義。這需要學生在適當的學習環境下通過主動探索和主動發現才能完成,而教師必須給學生設計理想的學習環境,這樣才能促進學生自身的意義建構。
在建構主義學習環境中,目前已經開發的,比較成熟的教學方法主要有“拋錨式教學法”、“支架式教學法”和“隨機進入教學法”等。
(1)拋錨式教學法
拋錨式教學要求建立在有感染力的真實事件或真實問題的基礎上。確定這類真實事件或問題被形象地比喻為“拋錨”,因為一旦這類事件或問題被確定了,整個教學內容和教學進程也就被確定了(就像輪船被錨固定一樣)。
首先,為學生設定學習目標。作為初次接觸計算機程序設計的學生,對編寫C程序有何用這個問題有很大的好奇感,教師可以先將以往教學中學生設計的作品進行展示,使學生的學習目標有了一個比較精確地定位。其次,提出問題:C程序的結構,即拋錨。教師由復雜到簡單的給出學生感興趣的作品的程序代碼,讓學生自己去尋找相同規律,然后教師講實例進行詳細的講解分析,并得出結論——main函數是每個C程序的入口函數;每條語句后必須用分號結束。甚至,洞察力強的學生能分析出程序中某些語句的格式來。這比教師直接給出結論更容易讓學生理解和掌握,因此這些結論是學生自己“建構”出來的。
(2)支架式教學法
借用建筑行業中使用的“腳手架”作為對概念框架的形象化比喻,教師為學生構建知識理解的框架概念,把復雜的學習任務加以分解,把學生的理解引向深入。
C程序中if條件語句有三種結構形式的教學可以采用此種教學法。首先,以按成績的高低設置不同等級這個學生比較熟悉的問題來引入課題,加上學生對英文單詞if、then和else的基本含義已有一定的了解,先從簡單的顯示及格與不及格兩個等級為例進行切入,讓學生在討論中得出程序,并探索歸納出第一、二種if語句的結構。其次,向學生提問,如果要顯示優、良、中、及格和不及格等級應該如何處理呢?此時讓有條件的學生獨立探索,其他的學生進行協作學習,得到提升的知識點第三種if語句的結構。最后,自主學習部分,教師設計2~3個習題讓學生鞏固所學知識點,并得出相應的自我評價和教師評價。
(3)隨機進入教學法
學生可以隨意通過不同途徑不同方式進入同樣教學內容的學習,從而獲得對同一事物或同一問題的多方面的認識和理解。隨機進入教學主要由呈現基本情境、隨機進入學習、思維發展訓練、小組協作學習和學習效果評價等5個環節。
C程序的3大結構學習完成后的綜合編程復習課是最適合采用此種方法的。教師可以使用以前上課用過的有難度的例題,讓學生再次用更全面、更綜合的思維角度來分析問題、解決問題,因此多次進入的結果,絕不僅僅是對同一知識內容的簡單重復和鞏固,而是使學習者獲得對事物全貌的理解與認識上的飛躍。
3.改革實踐教學體系
建構主義認為,學習者與周圍環境的交互作用,對知識意義的建構(即學習內容的理解)起著關鍵性作用。實踐教學體系是學生掌握基礎知識和算法理解、提高程序設計能力的重要一環,將學生以3人進行分組實踐課程教學,提出每次上機實踐課程的學習任務,組織并指導小組成員之間、小組之間相互討論交流,相互協作學習,相互幫助。教師從旁給予提示與鼓勵,引導學生進行思考,使得每位學生通過練習產生成就感,增加自信力,使學生變被動學習為主動學習,主動接受信息。
4.改革考核機制
積極的考核機制有利于激發學生學習熱情,保持濃厚的學習興趣,對學生將來的學習產生強大的動力。學生最后的考核成績就由以下兩項組成:(1)建立試題庫系統,把平時測驗和期末考試有機結合起來;(2)建立評價體系,評價學生的學習效果,包括學生自評,小組對個人的評價以及教師對學生的評價。評價可以圍繞自主學習能力、協作學習能力和是否完成意義建構進行。
四、結束語
C語言程序設計教學要求學生既要掌握理論基礎知識又要具備實際動手編程能力。運用建構主義學習理論,對教師提出了新的挑戰,要時刻以學生為中心,發展多元教學技巧,注重意義的建構、適當的創設問題情景等;同時,也使學生從知識的被動接受者變為信息加工的主體和知識意義的主動建構者。唯有教師在教學中不斷探索改革,才能培養出具有高素質高技能的人才。
參考文獻:
[1]張建偉,陳騎.從識知主義到建構主義.北京師范大學學報,1996,(4).
[2]李克東.新編現代教育技術基礎.華東師范大學出版社,2002.
[3]譚浩強.C語言程序設計(第三版).清華大學出版社,2005.