由從哲 陳湘軍
《程序設計基礎》是計算機專業(yè)學生的第一門專業(yè)必修課,通過本課程的學習,使學生對計算機和軟件系統(tǒng)有一個初步的正確的認識,培養(yǎng)學生的用邏輯和數(shù)值方法解決計算問題的思維,具備編寫計算機程序解決問題的能力,為后續(xù)專業(yè)課程的學習打下良好的基礎[1]。
初學者在學習編程時遇到困難的原因有很多,這些困難可以分為以下幾類:
(1)與學生有關的問題
盡管隨著計算機教育的普及,很多同學在中學階段就具有了很多的編程知識,能夠著手去編寫一些程序代碼,但是缺乏開發(fā)計算機算法的能力,尚不具備通過編寫計算機程序來解決具體問題的思維和能力。此外,對于編程中遇到的異常和錯誤,學生們沒有足夠的耐心對編寫的程序進行不斷的調試和修改錯誤。
學生的主要問題在于他們對通過編程解決問題的性質不了解。學習編程不僅包括理解編程語言,例如語法和數(shù)據(jù)類型,還包括開發(fā)多種其他技能,例如分析問題、開發(fā)算法、編寫代碼、調試和修復錯誤等。培養(yǎng)這些技能需要在課外進行大量的解決問題和編寫程序的練習。然而,問題是,經過高中階段的學習,許多學生認為閱讀課本和理解語言語法就足夠了,并沒有意識到自己的不足。因此,幫助學生認識到自己的不足,會使他們更加努力地克服自己的弱點,提高學習水平。
(2)與學科性質有關的問題
剛剛接觸程序設計開發(fā)的學生發(fā)現(xiàn)有些編程概念很難掌握,他們很難將變量、內存地址和數(shù)據(jù)類型等編程術語概念化。編程的另一個挑戰(zhàn)是利用抽象設計,抽象定義為關注問題的主要細節(jié)而不是考慮許多次要細節(jié)的過程。在編程中,學習者需要在不同的抽象層次上思考問題,否則,他們將被許多技術細節(jié)所淹沒,從而喪失學習編程的興趣。
(3)與教學方法有關的問題
傳統(tǒng)的教學方法對學生在程序設計課程中遇到的困難負有一定的責任。許多教師忽視了這門學科的本質,更多地關注編程語言的句法細節(jié),而不是培養(yǎng)學生解決問題的能力。傳統(tǒng)的講授方法在編程課程中效果往往不盡如人意。因為程序設計的教學主要集中在解決問題上,學生需要即時的反饋來幫助他們克服困難并從中取得進步。因此,學生需要更多的個性化教學來解決不同個體的問題。編程學習者需要發(fā)展多種技能,但是,由于時間和課程規(guī)模的限制,很難在課堂上實現(xiàn)個性化教學這一目標。一般來說,學生需要在課外自己練習編程,這就需要更多的課外支持,才能保持進步,在遇到問題時不會灰心。
學習編程的困難通常會讓學生感到沮喪,導致他們中的許多人對編程產生畏難心理,失去學習編程的主動性。因此,激勵學生學習程序設計對于提高他們對專業(yè)的學習是非常重要的。一般來說,學習動機影響學生的學習努力程度,進而影響學生的學習成績。學習動機可以分為兩種類型:內在的和外在的。內在動機是指一項活動因其內在的滿足感而表現(xiàn)出來,而不是因獎勵等外在原因表現(xiàn)出來,而外在動機則可以定義為為了達到某種結果而進行的活動。
在程序設計課程中,學習動機對學生的成績有積極的影響。學習動機在計算機程序設計課程中的重要性是由于課程的學科性質決定的,程序設計開發(fā)要求學生進行大量的編碼練習,如果沒有很高的學習積極性,那么這種高強度的練習是不可能持續(xù)的。為了提高學生的學習動機,應采用不同的策略使學生積極參與學習過程。研究發(fā)現(xiàn),提高互動水平是提高學生積極性和創(chuàng)造積極態(tài)度的主要因素,從而提高他們的學習表現(xiàn)。此外,更多的支持和豐富的學習材料有助于學生理解課程主題并促進他們的學習動機。由于時間限制,在課堂上實施這些活動和支持可能很困難,因此,混合式學習環(huán)境是將多種活動結合起來并提供此類額外支持的適當方法。
混合式學習是一種新的教育方法,它使用技術將面對面課堂教學和在線教學策略結合起來,以增強學習過程[2]。該模式通過教師及學生的互動,為學生提供更多的支持,另外也滿足了學習時間和地點的靈活性。此外,設計良好的混合式學習課程可以促進個性化學習,以滿足不同學生的學習風格。根據(jù)學習過程中面對面角色和在線角色的比例,混合學習可以分為不同的模式。它可以通過三種不同的方法來實現(xiàn):線上課程提供和線下課程類似的內容;線上課程作為線下教育的補充;線上課程替代線下課程。目前常見的模式是,大多數(shù)課程都是通過傳統(tǒng)的線下教學來完成的,而在線學習則被用作一種輔助工具,以提高學生在課堂之外的學習。這種模式越來越多地被高等教育機構采用。許多研究都探討了運用混合學習來解決學習困難和提高學生學習動機的有效性。研究發(fā)現(xiàn),混合學習方法比傳統(tǒng)的線下學習方法更方便、更先進,是最適合學習程序設計的教學模式,提高了學生的學業(yè)成績和成功率,提高了學生的滿意度。
目前,大多數(shù)大學使用不同的工具,如泛雅課堂、MOOC 或SPOC 等來實現(xiàn)混合學習。然而,這類系統(tǒng)的利用率仍保持在較低水平,僅限于張貼PPT 講稿和提交家庭作業(yè)。我們的最終目標旨在開發(fā)一個混合式的學習環(huán)境來教授計算機程序設計,以提高學生的學習動機,并最終提高他們的學習能力。為了實現(xiàn)這一目標,學生應該積極參與混合學習的兩個方面:線下教學的課堂時間和通過在線互動的課外活動。混合學習模式適合于程序設計課程,因為學生需要付出很大的努力來提高他們的程序設計能力,他們的大部分實踐將在課后進行。因此,他們需要一個在線支持環(huán)境來幫助他們克服可能面臨的困難。
在江蘇理工學院,所有課程都由泛雅平臺[3]進行管理,并鼓勵教師有效地使用這一工具,將積極學習作為大學的戰(zhàn)略目標之一。許多教師僅僅使用該平臺來放置課堂教學的PPT,以及提交課后作業(yè)。在《程序設計基礎》課程中,我們希望充分利用線上教學平臺,將學習活動融入網上,并使之與課堂教學良性互補,創(chuàng)造一個積極的混合學習環(huán)境。
我們的目標是設計一個積極的混合式學習環(huán)境,以提高學生的學習興趣,提高他們的學習動機,并加強他們計算機程序設計能力。這種環(huán)境下的活動應該解決這門學科學習困難的原因。主動學習旨在通過不同的活動,如討論、閱讀和解決實際問題,使學習者參與學習過程,而不是被動地聽老師講授。一般來說,主動學習會激發(fā)學生對學習的興趣,因此,在程序設計課程中使用不同的主動學習策略可以激發(fā)學生的學習興趣,幫助他們克服主題的困難。
以下是用于在我們的混合環(huán)境中進行主動學習的具體做法:
(1)小組學習
學生們被分成小組一起做一個小項目。通過分組學習,有助于學生在線互動,并支持小組成員之間交換材料。老師也加入了每個小組,讓學生覺得自己是項目的一部分,教師需要隨時準備在需要時幫助學生。分組學習注入合作學習和激勵學生的教學方法,我們的目標是促進學生的學習,并激勵他們互相幫助,克服這門學科的困難。
(2)案例教學
學生需要知道如何分析問題和設計完整的解決方案,這種能力在傳統(tǒng)學習編程語言的課堂上并沒有教給他們。為了幫助學生具備這一能力,我們給學生布置了一個類似于項目作業(yè)的具體案例研究。學生得到了問題描述和要求,需要他們針對具體問題編寫計算機程序進行解決。這項研究的主要目的是幫助學生利用他們各自所學的知識,為一個具體的實際問題建立一個解決方案。作為本課程的主要評估之一,學生在開發(fā)他們的程序設計項目時需要模擬項目開發(fā)的全過程。
(3)互動討論
討論式教學是激發(fā)學生學習動機的一種積極的教學方法。它使課堂更加愉快,提高了學生的批判性思維,提高了他們的溝通能力。教師的角色是觸發(fā)和引導討論以獲得特定的結果。在我們的教學過程中,討論通常是在課堂上由與先前主題相關的問題開始的,以確保學生理解這些主題,鼓勵所有學生參與討論,并允許他們之間進行辯論。另一方面,利用線上平臺的在線論壇鼓勵學生參與異步討論。與課堂討論一樣,在線討論要求教師對討論進行管理,并將其導向支持學生學習。
(4)學生日記
要求學生利用在線平臺的日志文檔完成學習情況的日記。學生們在每周的日記中詳細說明他們所學的課程、開始學習前的目標、面臨的困難、如何克服困難、如何評價自己以及他們的反思。教師利用日記來指導學生學習程序設計的正確方法,幫助他們調整學習方法,使之更好地適應學科性質,這主要取決于教學實踐,而不僅僅是單純的編程知識。學生日記反映了他們的態(tài)度和動機。我們注意到,學生們開學時充滿了熱情,對自己的成績寄予了很高的期望。教師有責任運用不同的策略,通過推動學生取得更大成就,盡可能長時間地保持這種態(tài)度。
采用不同的策略使學生積極參與混合式學習,對他們的態(tài)度和滿意度有積極的影響,從而激發(fā)了學生對編程課程的興趣,提高了他們的學習成績。為了充分利用混合學習環(huán)境的兩個組成部分:線下學習和在線學習的優(yōu)勢,必須仔細設計混合學習環(huán)境。這兩個組成部分應相互補充,以創(chuàng)造一個協(xié)作的支持性學習環(huán)境,提供與教師的高水平互動,為學生提供良好反饋,并指導學生學習的正確方式。這種支持性的環(huán)境適合計算機程序設計學科的性質,有助于學習者克服其困難。從我們的教學實踐來看,混合學習提高了學生的滿意度,提高了他們的學習動機,最終對他們的學習成績產生了積極的影響。