摘要:在程序設(shè)計教學(xué)中,實例設(shè)計的優(yōu)劣影響整個程序設(shè)計的教學(xué)效果。本文以VB程序設(shè)計教學(xué)為例,提出一種基于建構(gòu)主義學(xué)習(xí)理論、融合情境創(chuàng)設(shè)教學(xué)理念的實例設(shè)計方法。使用生活中真實熟悉的軟件實例,從整體上由淺入深漸進式把握程序設(shè)計的教學(xué)。教研組多次教學(xué)實踐證明,使用該方法設(shè)計實例進行教學(xué),易于激發(fā)學(xué)生的學(xué)習(xí)興趣和探究欲望,利于學(xué)生的主動意義建構(gòu)。
關(guān)鍵詞:建構(gòu)主義;程序設(shè)計教學(xué);實例設(shè)計;意義建構(gòu)
1 研究背景
在程序設(shè)計教學(xué)中,為了幫助學(xué)生理解某個知識點的內(nèi)容,教師通常會針對知識點設(shè)計一些實例,中間不乏一些經(jīng)典實用的好例。但是,很多時候教師設(shè)計用例只是為了讓學(xué)生理解知識點而已,與上下文知識點沒有聯(lián)系,割裂了程序設(shè)計課程內(nèi)在的邏輯性和整體性,不利于學(xué)生的主動意義建構(gòu)。甚至有些用例只是為了舉例而舉例,完全脫離實際生活,讓學(xué)生感覺程序設(shè)計這門課程沒有實際意義,逐漸喪失學(xué)習(xí)興趣。實例設(shè)計的優(yōu)劣影響整個程序設(shè)計的教學(xué)效果。如何科學(xué)地進行教學(xué)實例的設(shè)計,是本文研究的內(nèi)容。筆者根據(jù)多年的程序設(shè)計教學(xué)經(jīng)驗和教學(xué)研究,在建構(gòu)主義教學(xué)觀的指導(dǎo)下,提出一種基于建構(gòu)主義學(xué)習(xí)理論、融合情境創(chuàng)設(shè)教學(xué)理念的實例設(shè)計方法。下面以Visual Basic程序設(shè)計為例,講述程序設(shè)計教學(xué)中的實例設(shè)計方法。
2 基于建構(gòu)主義教學(xué)觀的實例設(shè)計方法
建構(gòu)主義(constructivism)認(rèn)為,知識不是通過教師傳授得到,而是學(xué)習(xí)者在一定的情境即社會文化背景下,借助其他人(包括教師和學(xué)習(xí)伙伴)的幫助,利用必要的學(xué)習(xí)資料,通過意義建構(gòu)的方式而獲得。在建構(gòu)主義學(xué)習(xí)環(huán)境下,教學(xué)設(shè)計不僅要考慮教學(xué)目標(biāo)分析,還要考慮有利于學(xué)習(xí)者建構(gòu)意義的情境的創(chuàng)設(shè)問題,并把情境創(chuàng)設(shè)看做是教學(xué)設(shè)計的最重要內(nèi)容之一。由于建構(gòu)主義強調(diào)學(xué)習(xí)的主動性、社會性和情境性,因此建構(gòu)主義對學(xué)習(xí)和教學(xué)提出了許多新的見解,內(nèi)容如下:
第一,建構(gòu)主義教學(xué)要求學(xué)生在復(fù)雜的真實情境中完成任務(wù);教學(xué)應(yīng)使學(xué)習(xí)在與現(xiàn)實情境相類似的情境中發(fā)生,以解決學(xué)生在現(xiàn)實生活中遇到的問題為目標(biāo)。
第二,在教學(xué)過程中,學(xué)習(xí)內(nèi)容要選擇真實性的任務(wù),在課堂上展示出與現(xiàn)實中專家解決問題相類似的探索過程,提供解決問題的原型,并指導(dǎo)學(xué)生的探索。
第三,在教學(xué)進程的設(shè)計上,建構(gòu)主義者提出要呈現(xiàn)整體性的任務(wù),讓學(xué)生嘗試進行問題的解決。在此過程中,學(xué)生要自己發(fā)現(xiàn)完成整體任務(wù)所需完成的子任務(wù),以及完成各級任務(wù)所需的各級知識技能。
程序設(shè)計是一門整體性和邏輯性很強的課程,實例的設(shè)計要注重這一特征,設(shè)計的實例要體現(xiàn)這一特征。光靠知識點設(shè)計實例幫助學(xué)生理解遠(yuǎn)遠(yuǎn)不夠,應(yīng)該從整體上引導(dǎo)學(xué)生主動系統(tǒng)地建構(gòu)知識。建構(gòu)主義學(xué)習(xí)理論認(rèn)為,意義建構(gòu)是學(xué)習(xí)的目的,它要靠學(xué)生
自覺、主動去完成,教師和外界環(huán)境的作用都是為了幫助和促進學(xué)生的意義建構(gòu)。因此,為了使教學(xué)實例設(shè)計得更科學(xué),更符合學(xué)生的認(rèn)知規(guī)律,教學(xué)設(shè)計需要在建構(gòu)主義教學(xué)觀的指導(dǎo)下進行。筆者提出的這種基于建構(gòu)主義的實例設(shè)計方法,注重課程內(nèi)在的邏輯性和整體性,使用生活中真實熟悉的軟件實例,從整體上由淺入深漸進式把握程序設(shè)計的教學(xué)。通過少數(shù)幾個軟件實例,將多個上下文知識點串成一個整體,并系統(tǒng)地講述。每一章節(jié)對應(yīng)軟件實例的某個(些)功能部分,每個部分又是獨立的小實例。程序設(shè)計課程教學(xué)之初,教師就把該課程教學(xué)的綜合實例展示給學(xué)生,從而激發(fā)學(xué)生的學(xué)習(xí)興趣和探究欲望。
使用這種綜合實例教學(xué),脈絡(luò)清晰,系統(tǒng)完整,不但可以幫助教師實施整體教學(xué),也利于學(xué)生主動意義建構(gòu),加強邏輯思維訓(xùn)練,并提高解決實際問題的能力。當(dāng)然,這種實例設(shè)計并不排除列舉一些好的小例,針對具體某個知識點講解。在實際的教學(xué)中,教師可以靈活地運用兩種方式,以綜合軟件實例設(shè)計為主,以知識點設(shè)計小例為輔。基于建構(gòu)主義的實例的設(shè)計方法包括兩步:實例的選取和實例的分解。
2.1 實例的選取
程序設(shè)計的教學(xué)希望能夠達(dá)到兩個基本的目的:第一,幫助學(xué)習(xí)者理解計算機軟件背后的奧妙;第二,培養(yǎng)學(xué)習(xí)者基本的程序設(shè)計能力。計算機文化素質(zhì)教育要求學(xué)生不光要學(xué)會使用常用的基本軟件,還要理解這些軟件背后的基本實現(xiàn)原理。如今,計算機的應(yīng)用已經(jīng)深入到社會的各個領(lǐng)域,使用者通過計算機軟件操作計算機,讓計算機為自己服務(wù),而計算機軟件是通過計算機語言編寫的。因此,在計算機語言程序設(shè)計的教學(xué)中,選取常見軟件實例進行教學(xué),可以達(dá)到上述兩個目的?;诮?gòu)主義學(xué)習(xí)環(huán)境的教學(xué)實例的選取,要考慮到以下幾個因素:現(xiàn)實性、學(xué)生感興趣的程度、覆蓋知識面的范圍和難易程度。
1)現(xiàn)實性原則是軟件實例選取的一個重要原則。建構(gòu)主義環(huán)境下的教學(xué)實例設(shè)計要注意結(jié)合學(xué)生實際,貼近學(xué)生生活,教師要將現(xiàn)實生活中發(fā)生的與課堂教學(xué)有關(guān)的素材引入課堂,以此拉近程序設(shè)計和生活的距離,培養(yǎng)學(xué)生“處處皆學(xué)問”的意識。同時讓學(xué)生感覺到學(xué)習(xí)程序設(shè)計可以解決實實在在的問題,學(xué)習(xí)的東西很有用,教師不再是為了舉例而舉例,學(xué)生不再是為了學(xué)習(xí)而學(xué)習(xí)。
2)選取的實例要是學(xué)生感興趣的,樂于學(xué)習(xí)的。愛因斯坦說:“興趣是最好的老師。”學(xué)生對所學(xué)內(nèi)容感興趣,積極性就會明顯提高,才能樂于接受,此所謂“好之者不如樂之者”?!叭艘晕锼迹o以情發(fā)”。情從何來?樂從何生?這就要求在教學(xué)過程中,教師為學(xué)生學(xué)習(xí)創(chuàng)設(shè)的實例能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,激起學(xué)生探究的欲望。
3)選取的實例覆蓋知識面的范圍要廣。一門課程只需精選少數(shù)幾個軟件實例,就可以覆蓋整個課程絕大部分的知識面和重難點,這樣能幫助學(xué)生從整體上系統(tǒng)全面、邏輯清晰地把握程序設(shè)計,自然而然地將上下文知識點主動聯(lián)系起來,進行意義構(gòu)建。
4)在選取軟件實例時,需要根據(jù)學(xué)生已有的認(rèn)知結(jié)構(gòu)選取難易適中的實例。任何學(xué)習(xí)都要涉及到學(xué)習(xí)者原有的認(rèn)知結(jié)構(gòu),即學(xué)習(xí)是以學(xué)習(xí)者自己的經(jīng)驗為背景,對外部信息進行主動的選擇、加工和處理,從而獲得自己的意義。教師進行教學(xué)實例設(shè)計時,應(yīng)關(guān)注學(xué)生原有的認(rèn)知結(jié)構(gòu)。選擇的實例既要有一定的難度,又要學(xué)生經(jīng)過努力可以解決,這樣的問題是引起學(xué)生探究,激發(fā)學(xué)生思維的主要條件。太易不能激發(fā)學(xué)生探究的興趣,太難又會使學(xué)生感到力不從心,不知從何下手,因而可能會失去探究的學(xué)習(xí)興趣。
考慮到上述因素,本文例舉了兩個軟件實例:字處理軟件和網(wǎng)絡(luò)聊天工具。
Microsoft Office Word是常用的字處理軟件,在人們的工作和生活中扮演著重要的角色,也是計算機初學(xué)者需要學(xué)習(xí)的軟件之一。QQ聊天程序也是人們上網(wǎng)聊天時常用的工具。這兩個軟件是學(xué)生經(jīng)常接觸和使用的軟件,熟悉、真實,來源于生活,軟件實現(xiàn)覆蓋的知識面廣。更重要的是,通過這幾年的實踐教學(xué),我們發(fā)現(xiàn)學(xué)生對兩個軟件背后實現(xiàn)的奧秘饒有興致,樂于探究。當(dāng)然,以軟件Word和網(wǎng)絡(luò)聊天工具QQ作為教學(xué)實例,涉及的內(nèi)容太多,在程序設(shè)計教學(xué)時,教師可以根據(jù)具體教學(xué)任務(wù)靈活選取幾個基本的功能模塊,一步一步幫助學(xué)生揭開軟件背后的奧秘。這樣不僅可以幫助學(xué)生深刻地理解軟件,從而更好地使用軟件,同時潛移默化地培養(yǎng)了學(xué)生的程序設(shè)計能力,提高其計算機文化素養(yǎng)。
2.2 實例的分解
傳統(tǒng)的教學(xué),學(xué)生通常選擇缺乏“認(rèn)知沖突”的學(xué)習(xí)道路,也就是說學(xué)生傾向于選擇對他們沒有難度的任務(wù)。而在建構(gòu)主義教學(xué)中,學(xué)生需要面對體現(xiàn)認(rèn)知復(fù)雜性的真實世界的情境,學(xué)生要在復(fù)雜的真實情境中完成任務(wù),這對他們無疑是個挑戰(zhàn)。對沒有任何編程經(jīng)驗的學(xué)生而言,要去實現(xiàn)這兩個軟件的某些功能模塊,是非常困難的。面對這樣一個硬骨頭,怎么啃下來呢?由于程序設(shè)計的學(xué)習(xí)是一個循序漸進的過程,軟件實例的實現(xiàn)過程也可以循序漸進,因此按照教學(xué)進度對實例進行合理的分解、簡化,可以解決這個問題。實例的分解采取兩種方式:一是橫向分解;二是縱向分解。
1)橫向分解是不斷地增加新的功能實現(xiàn)。
針對Word軟件,我們可以選取如文本的編輯排版和查找/替換等常用功能進行橫向分解。譬如在學(xué)習(xí)了命令按鈕控件、文本框控件的基本知識后,就可以設(shè)計并實現(xiàn)如圖1所示的“我的文本編輯器”。Word主要是通過菜單和工具欄提供操作命令的,然而目前我們還沒有學(xué)習(xí)菜單和工具欄的知識,就可以先使用命令按鈕組建工具欄;現(xiàn)階段還不能實現(xiàn)的功能就以灰色顯示,禁止使用。隨著學(xué)習(xí)的推移,在學(xué)習(xí)了相關(guān)的知識技術(shù)點后,一步一步實現(xiàn)查找、替換、新建、保存、字體等新功能。在學(xué)習(xí)了菜單、工具欄、RichTextBox控件和MDI應(yīng)用程序設(shè)計等相關(guān)知識和技術(shù)后,我們可以設(shè)計與Word環(huán)境類似的“我的文本編輯器”,如圖2所示。當(dāng)學(xué)習(xí)和掌握的知識技術(shù)越來越豐富后,我們就可以把“我的文本編輯器”的功能逐漸完善,慢慢地使其接近任務(wù)目標(biāo)。
我們選擇軟件實例進行教授的初衷,并不是一開始就要求學(xué)生完全獨立地實現(xiàn)這個任務(wù)。而是通過教師對教學(xué)進度的安排,借助這個實例的實現(xiàn),幫助學(xué)生理解這個軟件,從整體上系統(tǒng)地把握程序設(shè)計,幫助學(xué)生主動意義建構(gòu),加強學(xué)生的邏輯思維訓(xùn)練,從而潛移默化地培養(yǎng)學(xué)生的程序設(shè)計能力。隨著學(xué)習(xí)能力和程序設(shè)計能力的提高,學(xué)生通常會主動探究該軟件其他一些功能模塊的實現(xiàn)方法,從而逐漸達(dá)到教學(xué)的真正目的。
2)縱向分解是不斷地用所學(xué)的新技術(shù)實現(xiàn)同一功能,一步一步完善該功能。
下面針對QQ程序注冊與登錄這一個功能進行縱向分解,將復(fù)雜的QQ程序注冊與登錄功能由易而難地分解成以下幾個小例來實現(xiàn)。
例1:模仿QQ網(wǎng)絡(luò)聊天程序設(shè)計“MyQQ”聊天程序的用戶登錄與注冊界面。
例2:模仿QQ網(wǎng)絡(luò)聊天程序,利用簡單變量實現(xiàn)本地一個用戶注冊與登錄。
例3:模仿QQ網(wǎng)絡(luò)聊天程序,利用數(shù)組實現(xiàn)本地多個用戶注冊與登錄。
例4:模仿QQ網(wǎng)絡(luò)聊天程序,利用文件在本地實現(xiàn)用戶注冊與登錄。
例5:模仿QQ網(wǎng)絡(luò)聊天程序,利用數(shù)據(jù)庫技術(shù)在本地實現(xiàn)用戶注冊與登錄。
例6:模仿QQ網(wǎng)絡(luò)聊天程序,利用網(wǎng)絡(luò)和數(shù)據(jù)庫相關(guān)技術(shù)實現(xiàn)網(wǎng)絡(luò)注冊與登錄。
隨著教學(xué)的循序漸進,在學(xué)習(xí)了標(biāo)簽、文本框和命令按鈕幾個常用的控件后,學(xué)生就可以設(shè)計出例1這樣的界面。在學(xué)習(xí)了簡單變量和if語句的基本知識后,學(xué)生就可以輕松實現(xiàn)例2。在例2中,用戶注冊的用戶名和密碼只是使用兩個簡單變量保存起來,因此一次只能注冊一個用戶。在學(xué)習(xí)了數(shù)組后,學(xué)生就可以使用數(shù)組輕松實現(xiàn)例3,實現(xiàn)多個用戶注冊。在例2和例3中,注冊的用戶信息沒有永久保存,因此當(dāng)程序運行結(jié)束后,變量或數(shù)組的內(nèi)容不復(fù)存在,以致下一次運行該程序時,還得重新注冊用戶名和密碼才能登錄。在學(xué)習(xí)了VB文件的訪問后,我們可以將用戶注冊的信息保存到文件中,這樣就在例4完善了例2和例3的不足。但是利用文件存取用戶信息的安全性能不高,而且存在數(shù)據(jù)的獨立性差、冗余度大、一致性差等問題。由于數(shù)據(jù)庫系統(tǒng)提供數(shù)據(jù)安全性、完整性、并發(fā)控制和恢復(fù)功能,在學(xué)習(xí)了數(shù)據(jù)庫相關(guān)知識后,我們就可以利用數(shù)據(jù)庫文件保存用戶注冊信息,完善了例4的不足,這就是例5。例1至例5都是在本地實現(xiàn)用戶的注冊和登錄,本地兩個用戶進行聊天并沒有實際的意義,真正意義上的聊天是通過網(wǎng)絡(luò)進行的。隨著教學(xué)的進行,在學(xué)習(xí)網(wǎng)絡(luò)編程和Winsock控件后,我們就可以實現(xiàn)例6了,并且可以利用Winsock控件來編寫網(wǎng)絡(luò)聊天的程序,具體實現(xiàn)可參考文獻[6]。同時可以布置實驗作業(yè)“利用Winsock控件實現(xiàn)迷你聊天室”,具體實現(xiàn)可以參考文獻[7]。實驗課是理論課程教學(xué)的延續(xù),我們讓學(xué)生在實驗課堂完成軟件實例相關(guān)的功能部分,從而推動實驗課程設(shè)置改革。
上述兩個實例是基于文獻[7]的教學(xué)進度進行分解的。教師可根據(jù)使用教材的具體情況,靈活地結(jié)合這兩種實例分解方式,合理地將實例簡化、拆分,由簡單到復(fù)雜,逐步豐富和完善實例的功能,最終達(dá)到我們的教學(xué)目的。
3 結(jié)語
建構(gòu)主義教學(xué)的目的是培養(yǎng)新世紀(jì)善于學(xué)習(xí)的終生學(xué)習(xí)者。筆者基于建構(gòu)主義教學(xué)觀,提出一種融合了建構(gòu)主義、情境創(chuàng)設(shè)教學(xué)理念的實例設(shè)計方法,在程序設(shè)計教學(xué)中使用貼近學(xué)生生活的真實熟悉的軟件實例,從整體上由淺入深漸進式地把握程序設(shè)計的教學(xué),不斷地引出認(rèn)知沖突,從而激發(fā)學(xué)生的探究欲望,提高學(xué)生的學(xué)習(xí)興趣。在后續(xù)的學(xué)習(xí)過程中不斷地解決沖突,幫助學(xué)生主動意義建構(gòu)。在不斷豐富和完善實例,使其一步一步接近真實的過程中,學(xué)生不僅鍛煉了邏輯思維,程序設(shè)計能力也在潛移默化中提高,同時獲得了強大的成就感,更加堅定學(xué)習(xí)意愿。更重要的是,這種建構(gòu)主義的探索學(xué)習(xí)方式有利于培養(yǎng)學(xué)生成為一個善于學(xué)習(xí)、善于思考和善于解決問題的。
參考文獻:
[1]Jonassen D,Davidsoo M,Collins M,et al,Constructivism and Computer-mediated Communication in Distance Education[J].The American Journal 0f Di stance Education,1995,9(2):7-26.
[2]黃玲玲,陽小華.程序設(shè)計教學(xué)中的情境創(chuàng)設(shè)[J].計算機教育,2007(1 5):34-36.
[3]何克抗,建構(gòu)主義:革新傳統(tǒng)教學(xué)的理論基礎(chǔ)(上)[J].電化教育研究,1997(3):3-9.
[4]何克抗.建構(gòu)主義:革新傳統(tǒng)教學(xué)的理論基礎(chǔ)(中)[J].電化教育研究,1997(4):25-27.
[5]陽小華,李海燕.大學(xué)Visual Basic程序設(shè)計基礎(chǔ)[M],北京:北京郵電大學(xué)出版社,2010.
[6]黃玲玲,楊剴,王穎.在VB中使用Winsock控件實現(xiàn)局域網(wǎng)通信[J].信息技術(shù),2005(6):24-26.
[7]陽小華,王穎.大學(xué)Visual Basic程序設(shè)計實驗教程[M].北京:北京郵電大學(xué)出版社,201