摘 要: “算法設計與分析”是計算機科學(xué)與技術(shù)專(zhuān)業(yè)的一門(mén)核心課程,是一門(mén)理論與實(shí)踐相結合的課程。傳統教學(xué)中,該課程主要以教師課堂授課,學(xué)生聽(tīng)講為主,對于基礎參差不齊的學(xué)生,其授課效果大打折扣。為此提出在算法設計與分析課程的教學(xué)過(guò)程中,采用翻轉課堂代替傳統課堂,強調以學(xué)生為主體,調動(dòng)學(xué)生的學(xué)習積極性,不搞一刀切模式,以問(wèn)題為導向,引導學(xué)生自主學(xué)習,課堂互動(dòng)解疑。文章就教學(xué)目標、教學(xué)內容、翻轉課堂、考核形式四個(gè)方面提出了策略。教學(xué)實(shí)踐證明,該教學(xué)方法可以明顯提高教學(xué)效果。
關(guān)鍵詞: 翻轉教學(xué); 翻轉課堂; 算法設計與分析; 課程改革
中圖分類(lèi)號:G40 文獻標志碼:A 文章編號:1006-8228(2014)11-59-03
Research on application of flipped teaching in algorithm design and analysis
Gao Liping, Liu Ya, Peng Dunlu, Chen Qingkui, Cao Chunping
(School of Optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)
Abstract: Algorithm design and analysis is one of the core courses of computer science specialty, which combines theory and practice. During the traditional teaching process, teachers are teaching while students are listening on the class. For students in different levels, this teaching mode cannot achieve excellent results. Flipped classroom is introduced in this paper to replace the traditional classroom in the teaching process. The students are emphasized as the center of the teaching process. The students" enthusiasm is mobilized. "One size fits all model" is given up. Take the problems as orientation, the students are guided to learn by themselves and interact. Strategies in four aspects including the teaching objectives, teaching contents, flipped classroom and assessment form are proposed. The teaching results show that the teaching methods can improve the teaching effect greatly.
0 引言
“算法設計與分析”[1-3]是計算機相關(guān)專(zhuān)業(yè)研究生的核心課程之一,這門(mén)課程的學(xué)習一方面可以鞏固之前數據結構、高級程序設計、離散數學(xué)等課程的學(xué)習內容,另外一方面也培養了學(xué)生自主抽象問(wèn)題、解決問(wèn)題的能力,是學(xué)生從事相關(guān)行業(yè)工作的知識儲備中不可缺少的部分[4-5]。然而,傳統的教學(xué)過(guò)程中,主要以教師課堂授課,學(xué)生聽(tīng)講為主,對于基礎參差不齊的學(xué)生來(lái)說(shuō),授課效果大打折扣。
翻轉課堂教學(xué)法是近年流行的一種新型教學(xué)方法[6-7],在國內外很受追捧,從基礎教育到高等教育,都涌現出不少成功案例[8-9]。所謂翻轉課堂,就是教師創(chuàng )建視頻,學(xué)生在家中或課外觀(guān)看視頻中教師的講解,回到課堂上師生面對面交流和完成作業(yè)這樣一種教學(xué)形態(tài)[8]。這種教學(xué)方法克服了傳統教學(xué)中教師為主學(xué)生為輔的模式中的弊端,教學(xué)方式更為靈活,學(xué)生可根據自己已有的基礎條件,選擇適合自己的章節進(jìn)行學(xué)習,并可以自主控制學(xué)習的進(jìn)度。課堂變成了交流和解答問(wèn)題的平臺,比傳統教學(xué)模式增加了互動(dòng)環(huán)節,因此可以達到更好的教學(xué)效果。
在算法設計與分析課程中采用翻轉法教學(xué),強調以學(xué)生為主體,調動(dòng)學(xué)生的學(xué)習積極性,不搞一刀切模式,以問(wèn)題為導向,采取課堂互動(dòng),解疑原則,可以大大改善傳統教學(xué)模式下的教學(xué)效果。使學(xué)生學(xué)有所學(xué),同時(shí)也能消除教師在選擇教學(xué)素材上因為學(xué)生基礎水平不同而無(wú)從安排的困惑。
1 翻轉法教學(xué)
1.1 學(xué)生特點(diǎn)分析
首先,現代學(xué)生在學(xué)習、消費、社交等方面,與以往學(xué)生有著(zhù)巨大差異,他們是數碼達人、天生的“互聯(lián)網(wǎng)”和游戲愛(ài)好者,他們更有個(gè)性,更愿意主動(dòng)“動(dòng)手嘗試”,而不是“被動(dòng)聽(tīng)講”。他們保持注意力的時(shí)間較短,傾向于碎片化內容。他們更喜歡簡(jiǎn)潔、清晰、準確、精煉的信息。傳統課堂教師授課為主,學(xué)生聽(tīng)講為輔,以教師為引導的教學(xué)方式已經(jīng)不適應新時(shí)代學(xué)生。
此外,由于本校研究生中很大一部分比例是其他相關(guān)專(zhuān)業(yè)轉過(guò)來(lái)的學(xué)生,這部分學(xué)生中有些甚至未接觸過(guò)數據結構這一算法的前導課程。學(xué)生基礎參差不齊,教師為了能夠照顧到所有學(xué)生的情況,往往在教材選擇及課程安排上表現遲疑。選的內容簡(jiǎn)單了,有基礎的學(xué)生學(xué)不到新知識;選的內容難了,沒(méi)有基礎的學(xué)生又像是在聽(tīng)“天書(shū)”。
另外,由于算法設計與分析課程是全校選修課,選課的學(xué)生除了計算機相關(guān)專(zhuān)業(yè)的學(xué)生外,還有來(lái)自光電工程,機械工程,出版印刷等專(zhuān)業(yè)的學(xué)生,如何協(xié)調這些不同專(zhuān)業(yè)學(xué)生之間的基礎差異及目標差異,也是這門(mén)課程能否取得較好的教學(xué)效果的關(guān)鍵。
1.2 翻轉課堂的優(yōu)點(diǎn)
傳統教學(xué)強調:學(xué)習知識在課堂,內化知識在課外。課堂內進(jìn)行新課導入,知識講解,布置作業(yè)。而翻轉課堂則強調學(xué)習知識在課外,內化知識在課堂。課堂外進(jìn)行自主學(xué)習,自定進(jìn)度,整理收獲,提出問(wèn)題;課堂內則進(jìn)行展示交流,協(xié)作探究,科學(xué)實(shí)驗,完成作業(yè),教師巡視,并進(jìn)行一對一個(gè)性化指導。傳統課堂與翻轉課堂的對比分析如表1。
表1 傳統課堂與翻轉課堂的對比分析
[\&傳統課堂\&翻轉課堂\&教師\&知識傳授者、課堂管理者\&學(xué)習指導者、促進(jìn)者\&學(xué)生\&被動(dòng)接受者\&主動(dòng)研究者\&教學(xué)形式\&課堂講解+課后作業(yè)\&課前學(xué)習+課堂研究\&課堂內容\&知識講解傳授\&問(wèn)題研究\&技術(shù)應用\&內容展示\&自主學(xué)習、交流反思、協(xié)作討論工具\&評價(jià)方式\&傳統紙質(zhì)測試\&多角度、多方式\&]
翻轉課堂具有以下優(yōu)點(diǎn)。
⑴ 翻轉讓學(xué)生自己掌握學(xué)習
翻轉課堂后,利用教學(xué)視頻,學(xué)生能夠根據自身情況來(lái)安排和控制自己的學(xué)習。學(xué)生在課外或者回家看教師的視頻講解,完全可以在輕松的氛圍中進(jìn)行,而不必像在課堂上教師集體教學(xué)那樣緊繃神經(jīng),擔心遺漏什么,或因為分心而跟不上教學(xué)節奏。學(xué)生觀(guān)看視頻的節奏快慢全在自己掌握。懂了則快進(jìn)跳過(guò),沒(méi)懂則倒退反復觀(guān)看,也可停下來(lái)仔細思考或筆記,甚至還可以通過(guò)聊天軟件向老師和同伴尋求幫助。
⑵ 翻轉增加了學(xué)習中的互動(dòng)
翻轉課堂的最大好處在于全面提升了課堂的互動(dòng),具體表現在教師和學(xué)生之間以及學(xué)生與學(xué)生之間。由于教師的角色已經(jīng)從內容的呈現者轉變?yōu)閷W(xué)習的教練,這讓教師有時(shí)間與學(xué)生交談,回答學(xué)生的問(wèn)題,參與到學(xué)習小組,對每個(gè)學(xué)生的學(xué)習進(jìn)行個(gè)別指導。當學(xué)生在完成作業(yè)時(shí),教師會(huì )注意到部分學(xué)生為相同的問(wèn)題所困擾,于是組織這部分學(xué)生成立輔導小組,往往會(huì )為這類(lèi)有相同疑問(wèn)的學(xué)生舉行小型講座。小型講座的好處在于當學(xué)生遇到難題準備請教時(shí),教師能及時(shí)地給予指導。
2 翻轉教學(xué)在算法設計與分析課程中的應用初探
2.1 課程教學(xué)目標
研究生算法設計與分析這門(mén)課程的教學(xué)目標是:使學(xué)生掌握計算機應用中經(jīng)常出現的一些實(shí)際問(wèn)題的求解算法;使學(xué)生掌握常用的算法分析與設計的基本原理與技術(shù);使學(xué)生具備能針對所給實(shí)際問(wèn)題來(lái)設計和實(shí)現算法,以及評價(jià)算法的能力;培養學(xué)生對于所要解決的問(wèn)題,總是努力去設計出盡可能好的算法的良好習慣。課程教學(xué)具體目標如下。
⑴ 鞏固之前基礎知識
針對學(xué)生基礎薄弱的情況,設計相應的學(xué)習環(huán)節,包括:數據結構中的線(xiàn)性結構/非線(xiàn)性結構、棧和隊列、二叉樹(shù)、圖等基本概念及算法,對程序設計與算法設計之間的知識進(jìn)行銜接。讓基礎差的學(xué)生能夠補充應有的基礎知識。
⑵ 培養學(xué)生基本算法設計原理及方法
要求學(xué)生掌握各種基本和經(jīng)典的算法,如排序算法、圖的搜索算法、組合算法、數值計算算法、遞推法、枚舉法、分治法、貪婪法、動(dòng)態(tài)規劃、回溯法等。通過(guò)基礎算法的學(xué)習,培養學(xué)生基本的算法設計與分析的能力。
⑶ 培養學(xué)生自主解決問(wèn)題的能力
通過(guò)對常用的、有代表性的算法的研究,讓學(xué)生理解并掌握算法設計的基本技術(shù)。培養學(xué)生分析算法復雜度的初步能力,鍛煉其邏輯思維能力和想象力,并使之了解算法理論的發(fā)展。鼓勵學(xué)生運用算法知識解決各自學(xué)科的實(shí)際問(wèn)題,培養學(xué)生的獨立科研的能力和理論聯(lián)系實(shí)踐的能力。
⑷ 重視學(xué)生發(fā)散式思維的培養
培養和拓展學(xué)生的發(fā)散式思維,做到“一個(gè)問(wèn)題,多種求解”,可以啟迪學(xué)生智力,提高學(xué)生舉一反三,對比分析,靈活應變,多方位思考及想象創(chuàng )新能力。
⑸ 重視新興技術(shù)及算法的傳授
針對目前流行的新興算法(例如:并行算法、變現檢索算法、遺傳算法、蟻群算法、布谷鳥(niǎo)搜索算等),結合算法應用,對算法原理及其實(shí)現方法進(jìn)行介紹,并引導學(xué)生通過(guò)這些算法來(lái)解決實(shí)際的問(wèn)題。使研究生具備解決新問(wèn)題的能力。
2.2 課程教學(xué)內容
算法設計與分析課程主要介紹計算機程序設計中常見(jiàn)的非數值算法設計策略,具有一定的深度和廣度。內容包括:算法分析的基本概念、基本設計技巧、分治法、動(dòng)態(tài)規劃法、貪心法、圖的遍歷方法、回溯法,以及隨機算法、近似算法、遺傳算法、搜索引擎算法、壓縮算法等。我們根據算法設計與分析的教學(xué)目標,本著(zhù)“設計與分析并重,理論與實(shí)踐結合,經(jīng)典與現代互補”的原則,進(jìn)行教學(xué)內容的選取。具體有以下幾個(gè)方面。
⑴ 算法概述。主要介紹算法基本概念,算法復雜度的基本概念及時(shí)間復雜度的計算方法。
⑵ 算法基本設計技巧。主要介紹算法設計與分析的基本步驟,其中包括:數學(xué)模型構建、“自頂向下、逐步求精”的算法設計過(guò)程、循環(huán)和遞歸的設計要點(diǎn)、數據結構的選擇及應用,以及函數漸進(jìn)分析及算法復雜性度量等內容。
⑶ 分治法。主要介紹分治法基本思想,二分搜索技術(shù),大整數乘法,矩陣乘法,棋盤(pán)覆蓋,合并排序,快速排序,線(xiàn)性時(shí)間選擇,最接近點(diǎn)對問(wèn)題,循環(huán)賽日程表等。
⑷ 動(dòng)態(tài)規劃。主要介紹動(dòng)態(tài)規劃的基本要素,矩陣連乘,最長(cháng)公共子序列,最大子段和,凸多邊形最優(yōu)三角剖分,多邊形游戲,圖像壓縮,電路布線(xiàn),流水作業(yè)調度,0-1背包問(wèn)題,最優(yōu)二叉搜索樹(shù)等。
⑸ 貪心算法。主要介紹貪心算法的基本要素,活動(dòng)安排問(wèn)題,最優(yōu)裝載,哈夫曼編碼,單源最短路徑,最小生成樹(shù),多機調度等。
⑹ 回溯法。主要介紹回溯法的算法框架、符號,三角形問(wèn)題,n個(gè)皇后問(wèn)題,最大團問(wèn)題,圖的m著(zhù)色問(wèn)題,旅行售貨員問(wèn)題,圓排列問(wèn)題,連續郵資問(wèn)題,電路板排列問(wèn)題等。
⑺ 分支限界法。主要介紹分支限界的基本思想,單源最短路徑,布線(xiàn)問(wèn)題,0-1背包問(wèn)題,批處理作業(yè)調度問(wèn)題等。
⑻ 新技術(shù)介紹。介紹本學(xué)科領(lǐng)域的最新進(jìn)展,講述并行算法設計技術(shù)、概率算法、近似算法、遺傳算法、搜索引擎算法等。
2.3 翻轉教學(xué)方法
打破傳播課堂授課為主的傳授模式,強調學(xué)生自主學(xué)習和討論學(xué)習,以翻轉課堂取代傳統課堂,充分發(fā)揮學(xué)生學(xué)習的主動(dòng)性和能動(dòng)性,以下介紹具體步驟。
⑴ 準備教學(xué)視頻
翻轉課堂中的視頻不需要客串課程中所有的內容,只需要針對難點(diǎn)和重點(diǎn)部分進(jìn)行專(zhuān)題講解即可。每一個(gè)視頻都是針對一個(gè)特定的算法,有較強的針對性,方便學(xué)生進(jìn)行查找。視頻的長(cháng)度也應該控制在學(xué)生注意力能比較集中的時(shí)間范圍內。例如:采用冒泡排序進(jìn)行排序時(shí),利用視頻可以讓學(xué)生更清楚地理解排序過(guò)程中兩個(gè)相鄰元素進(jìn)行比較并相互交換的過(guò)程,從而更好地掌握“冒泡”的設計思想。
⑵ 構建視頻服務(wù)器
在校園網(wǎng)申請獨立的視頻服務(wù)器,要求有較大的存儲空間,能夠同時(shí)滿(mǎn)足100人在線(xiàn)的響應需求,保證視頻播放的速度。上傳文件和在線(xiàn)播放需要高帶寬和高容量硬盤(pán)的支持,硬盤(pán)需要10000萬(wàn)轉的高速硬盤(pán)。通過(guò)磁盤(pán)陣列設置多個(gè)硬盤(pán) ,同時(shí)需要100M獨享。
⑶ 搭建微教學(xué)網(wǎng)站
課堂授課的內容制作成視頻在課程網(wǎng)站上發(fā)布,方便學(xué)生進(jìn)行課下學(xué)習。支持學(xué)生進(jìn)行知識點(diǎn)和章節選擇,安排自己的學(xué)習計劃。除此之外,我們也注重加強互動(dòng)教學(xué)環(huán)節。在課程網(wǎng)站上,開(kāi)設論壇、答疑、作業(yè)、網(wǎng)絡(luò )考試、問(wèn)卷調查等模塊,通過(guò)布置作業(yè)、讓學(xué)生提問(wèn)、論壇討論等方式加強教師與學(xué)生之間,以及學(xué)生與學(xué)生之間的協(xié)作與交流。
⑷ 重構學(xué)習流程
通過(guò)“翻轉課堂”對學(xué)生的學(xué)習過(guò)程進(jìn)行重構?!靶畔鬟f”是學(xué)生在課前進(jìn)行的,教師不僅提供視頻,還可以提供在線(xiàn)的輔導;“吸收內化”是在課堂上通過(guò)互動(dòng)來(lái)完成的,教師能夠提前了解學(xué)生的學(xué)習困難,在課堂上給予有效的輔導,同學(xué)之間的相互交流更有助于促進(jìn)學(xué)生知識的吸收內化。
⑸ 新的復習檢測模式
視頻后面安排幾個(gè)小問(wèn)題,以幫助學(xué)生及時(shí)進(jìn)行檢測,并對自己的學(xué)習情況做出判斷。如果發(fā)現幾個(gè)問(wèn)題回答的不好,學(xué)生可以回頭再學(xué)習一遍。例如,冒泡排序視頻結束之后,安排幾個(gè)具體的例子要求學(xué)生進(jìn)行練習,按照冒泡排序的思想進(jìn)行排序練習。
2.4 考核方法
考試的主要作用是對學(xué)生所學(xué)的知識進(jìn)行評價(jià)反饋、檢測教學(xué)效果并督促學(xué)生認真學(xué)習、鞏固所學(xué)知識,同時(shí)也有利于教師發(fā)現教學(xué)中的問(wèn)題,不斷地改進(jìn)教學(xué)工作。傳統教學(xué)中的考核方式比較單一,僅根據期末考試的成績(jì)來(lái)對學(xué)生的學(xué)習進(jìn)行衡量,不利于反映學(xué)生真實(shí)的學(xué)習效果。因此,本課程考核方式主要從兩方面做出改革和新嘗試。
⑴ 學(xué)生成績(jì)由平時(shí)成績(jì)、期末成績(jì)兩部分組成。其中平時(shí)成績(jì)占50%,期末成績(jì)占50%。學(xué)生的平時(shí)成績(jì)由三個(gè)因素決定:課堂表現(10%),作業(yè)(20%),實(shí)驗成績(jì)(30%)。
⑵ 鑒于目前網(wǎng)絡(luò )的發(fā)達,實(shí)驗成績(jì)以課堂“限時(shí)限域”為基礎,即要求學(xué)生在給定的時(shí)間地點(diǎn)完成相應的題目。這樣可以杜絕學(xué)生借助網(wǎng)絡(luò )資源直接拷貝一些現成的資源。
這種考核模式體現出考核過(guò)程的人性化,避免了傳統考核模式中“一刀切”的弊端,有利于提高學(xué)生學(xué)習的積極性,并強調學(xué)生的動(dòng)手實(shí)踐能力。
3 總結
算法設計與分析課程是一門(mén)非常重要的計算機科學(xué)與技術(shù)專(zhuān)業(yè)的核心課程,具有理論與實(shí)踐并重、設計與分析并重的特點(diǎn),是提高學(xué)生編程能力的關(guān)鍵課程。針對研究生教學(xué)中學(xué)生基礎參差不齊的情況,本文提出采用翻轉教學(xué)法代替傳統教學(xué),以克服教師為主,學(xué)生為輔,所有學(xué)生接受統一教學(xué)內容的弊端,強調以學(xué)生為主體,由學(xué)生按照自身的情況來(lái)自主安排學(xué)習,并通過(guò)課堂交互方式與老師進(jìn)行溝通。本文從教學(xué)目標、教學(xué)內容、翻轉課堂、考核形式四個(gè)方面提出了自己的見(jiàn)解和策略,并在教學(xué)過(guò)程中予以實(shí)踐。實(shí)踐證明,學(xué)生的學(xué)習積極性和教學(xué)效果都得到了極大提高。
進(jìn)一步的研究工作將包括進(jìn)行更多微視頻的制作,從而將原來(lái)PPT中的內容全部以微課堂的形式展現出來(lái),并進(jìn)一步擴大翻轉課堂在研究生教學(xué)中的適用范圍。
參考文獻:
[1] 呂國英,任瑞征,錢(qián)宇華.算法設計與分析(第2版)[M].清華大學(xué)出版
社,2009.
[2] 王曉東.計算機算法設計與分析[M].電子工業(yè)出版社,2003.
[3] Cormen,T.H.,潘金貴.算法導論[M].機械工業(yè)出版社,2001.
[4] 陳蕾,張怡婷,許建.基于創(chuàng )新能力培養的算法設計與分析課程教學(xué)
改革[J].計算機教育,2010.20:27-29
[5] 高尚.“算法設計與分析”課程改革初探[J].教改縱橫,2008.14:
37-38
[6] 張金磊,王穎,張寶輝.翻轉課堂教學(xué)模式研究[J].遠程教育雜志,
2012.4:46-51
[7] 曾明星,周清平,蔡國民,王曉波,顏一鳴,黃云,楊燕萍.軟件開(kāi)發(fā)類(lèi)課
程翻轉課堂教學(xué)模式研究[J].實(shí)驗室研究與探索,2014.33(2):203-209
[8] 曾明星,周清平,王曉波,蔡國民,董堅峰.軟件工程專(zhuān)業(yè)“翻轉課堂”云
計算教學(xué)平臺探討[J].現代教育技術(shù),2013.23(8): 26-31
[9] 呂光.翻轉課堂教學(xué)模式在《居住空間設計》課程教學(xué)中的應用研究[J].
藝術(shù)科技,2014.4:10-13
Key words: flipped teaching; flipped classroom; algorithm design and analysis; curriculum reform