于方
摘 要: 為了應對新的信息技術環(huán)境下計算機程序設計教學體系的變化,研究了多核程序設計課程的教學模式。提出將多元學與教思想融入多核程序設計教學過程中的觀點,從理論和實踐兩個教學環(huán)節(jié)分別研究了具體的教學模式和教學評價體系,實踐證明,該模式具有較強的可操作性,取得了較好的教學效果。
關鍵詞: 多核程序設計; 多元學與教思想; 教學模式; 教學評價體系
中圖分類號:G433 文獻標志碼:A 文章編號:1006-8228(2013)06-69-03
Multi-core programming design course teaching mode integrated with multiple studying and teaching
Yu Fang
(Baotou Teachers College, Information Science and Technology College, Inner Mongolia, Baotou, Neimenggu 014030, China)
Abstract: In order to deal with the change of computer programming design teaching system in new information technology environment, multi-core programming design course teaching mode is discussed. An idea of integrating with multiple studying and teaching thought in teaching process is introduced. The concrete teaching mode and teaching evaluation system are studied from theory and practice. The scheme is more practical and operable, and it gets better teaching effects.
Key words: multi-core programming design; multiple studying and teaching thought; teaching mode; teaching evaluation system
0 引言
多核平臺的普及推進了多核程序設計課程在高校計算機專業(yè)的開設,但由于多核計算技術自身的特點,使得此課程的教學方式應區(qū)別于傳統(tǒng)的程序設計類課程,因此有必要研究新型的教學模式以適應新的程序設計教學需要。多元學與教思想是指在教學過程中,為實現(xiàn)教學目標、完成教學任務而采取的教與學相互作用的活動方式的總稱,其內(nèi)涵可從教學內(nèi)容的呈現(xiàn)方式(組織策略)、教學模式(傳遞策略)和教學活動的方式(管理策略)三個維度上加以描述[1]。本文借鑒多元學與教思想,研究了多核程序設計理論課程的教學呈現(xiàn)方式、實驗課程的教學活動方式和基于該教學模式的課程評價體系,完整地提出了一套適合多核程序設計課程的教學模式。該模式具有較強的可操作性,為計算機程序設計類課程的教學模式改革和教學大綱修訂提供了新的參考和思路。
1 基于交互與啟發(fā)的理論課教學呈現(xiàn)方式
多核程序設計是一門綜合性要求較高的程序設計課程,能夠?qū)崿F(xiàn)對其他計算機專業(yè)課程和知識體系的綜合與提升,幫助學生建立系統(tǒng)的、完整的專業(yè)理論體系,培養(yǎng)學生的系統(tǒng)設計能力、綜合應用能力和動手實踐能力等,開拓學生的專業(yè)學術視野[2,3]。教學目標是結合多核編程工具,以多線程并行程序設計為主,通過編程作業(yè)和課程設計培養(yǎng)學生的多核編程能力??紤]到多核課程的教學要求和培養(yǎng)目標,本文設計了交互式與啟發(fā)式相結合的教學模式來呈現(xiàn)理論課教學內(nèi)容。
1.1 基于多媒體的交互式教學
以往傳統(tǒng)的程序設計課程多數(shù)是在普通教室中完成,即便是在多媒體教室中授課,也只是教師使用多媒體手段講授課程,學生被動聽講,不能實時參與到教學過程中來。多核程序設計課程的一個明顯特點是程序運行環(huán)境必須是多核平臺,所以單核微機上無法演示多核編程的過程和效果。因此,本文建議將多核程序設計課程的理論教學基于多媒體環(huán)境的多核平臺下實施。課程安排在多核微機實驗室(不同于實驗上機),教師在理論知識講解過程中,應用多媒體授課系統(tǒng)進行講授,教師可以控制學生的學習過程,保證學生的學習注意力集中;在需要進行程序設計方面的演示和調(diào)試時,教師下放學習權限,讓學生自己操作多核微機,實時驗證剛學習過的知識。此外,在教學過程中不僅教師講授,還要穿插課堂討論與交流,提高學生的學習興趣,以此來培養(yǎng)學生的自學能力和交流能力,使學生在互動中思考,集思廣益,獲得更多的知識。這樣將理論和實踐實時結合,教師和學生頻繁互動,能夠加深學生的學習體會、增強學習記憶,同時營造了積極主動的學習氣氛,有助于學生掌握所學內(nèi)容。需要注意的是,教師須合理安排理論學習和實際操作的時間,以保證課堂教學內(nèi)容的正常完成。
1.2 基于案例的啟發(fā)式教學
多核程序設計課程有一個重要特點是很多案例需要在多核平臺下進行驗證,這對于大部分學生來說是既陌生又好奇的。陌生的是:多核平臺是如何架構的?好奇的是:如何在這樣的平臺上使用多個核心進行并行編程?本文采取案例式教學方法激發(fā)學生的探究式學習興趣、提高學生的學習層次,以下給出具體案例的選取方法。
⑴ 選取典型性、綜合性和示范性好的實例,使學生體會到利用所學多核程序設計知識所能取得的實際效果。如采用多核并行程序設計方法求解大規(guī)模矩陣乘法(500階以上)、最短路徑(1000個結點以上)求解等基本科學計算問題時,通過界面友好的程序性能評測系統(tǒng),可直觀地看到計算時間的大量減少和計算效率的大幅提高,體會到多個核心同時并行工作的過程和效果,這會極大地激發(fā)學生的學習興趣,增強探究式學習動力,為以后的學習樹立信心。
⑵ 閱讀精選的經(jīng)典多核程序設計案例,使學生理解并掌握經(jīng)典、規(guī)范的多核程序設計方法和技巧,將其融入到學生的個體學習過程中。同時,可適當要求學生對精選案例程序進行修改、完善和調(diào)優(yōu)。這有助于增強學生的編程能力,并逐漸形成融合正規(guī)化和個性化編程風格的良好編程習慣,提高學生的程序設計創(chuàng)新能力。
在教學過程中,采用基于案例的啟發(fā)式教學有以下幾個好處:一是縮短程序設計學習周期,提高學習效率,增強學生學習程序設計的創(chuàng)新能力;二是通過對經(jīng)典案例的學習、修改和完善,培養(yǎng)學生的程序集成能力,對今后基于構件進行軟件開發(fā)打下堅實基礎;三是通過分析經(jīng)典案例對應用問題中重點、難點的解決之道,提高學生獨立分析問題、解決問題的能力,有助于積累有益的編程經(jīng)驗,提高并達到自主進行應用程序設計開發(fā)的目的[4]。
2 基于任務驅(qū)動的實驗課教學模式
程序設計類課程的實驗教學是整門課程的核心,也是對理論教學效果的惟一檢驗途徑,因此實驗教學方法是否得當至關重要。傳統(tǒng)程序設計課程的實驗教學方法基本是針對所學語法規(guī)則和算法思想進行程序設計,即大多是驗證性實驗教學,不僅實驗目標單一,學生操作興趣不大,而且實驗中沒有將所學程序設計方法和生活實際應用問題聯(lián)系起來,對于設計性和綜合性要求高的實驗根本達不到目標要求,實驗教學效果不佳。多核程序設計課程有其自身的特殊性和優(yōu)勢性,學生對于如何利用多個CPU以及能夠達到什么樣的程序效果非常期待,可以充分考慮學生學習的興趣點來進行實驗教學設計,即基于任務驅(qū)動教學法進行實踐教學,提高教學質(zhì)量。
基于任務驅(qū)動的實踐教學是指圍繞教學目標把實驗教學任務劃分成多個具體的子任務,以子任務之間的關聯(lián)為線索,通過實驗成果展示和評價學習任務等手段促進實驗教學任務高效完成。以驗證性實驗和綜合性實驗為例,具體做法如下。
⑴ 設計小型綜合性實驗任務來進行驗證性實踐教學。
此部分實驗一般針對所學程序設計語言的語法規(guī)則等進行驗證?;谌蝿镇?qū)動的教學法摒棄單一、固定的模式,即不安排若干個小實驗分別驗證某個語法的使用是否正確,而是精心設計一個可以綜合考量使用熟練程度的實驗任務來驗證其正確性,同時能夠檢驗學生綜合運用程序設計語言的能力,避免斷章取義、片面理解語法語義規(guī)則。例如,在學習Windows下使用MPI進行多核程序設計時,并不只是單純驗證MPI每一個函數(shù)的使用方法,而是設計一個綜合小實驗來考核掌握程度,即使用多個常用MPI函數(shù)實現(xiàn)某種具體的功能。實驗功能的選擇應考慮實用性強、可視性好等特點,使學生在著手做實驗之初就有明確的目標和較強的學習欲望,避免了實驗低效無趣,有助于高效地完成實驗教學目標,取得良好的實驗效果。
⑵ 綜合性實驗任務以子任務劃分、依據(jù)任務之間關聯(lián)推進、成果展示評價來完成并考核。
對于較大規(guī)模的綜合性實驗任務,依據(jù)實驗要求和層次將其劃分為若干個子任務,每個階段任務的完成設定相應的評價指標。例如,可以設定程序需要達到的基本性能指標,或者對不同組的學生所設計的程序進行性能比較,目標明確有助于安排合理的實驗計劃、保證適當?shù)膶嶒炦M度,這樣能夠使學生充分調(diào)動自身的學習能力和團隊協(xié)作能力,為最終達到較好的實驗目標而進行實踐練習,目的性強、自主性高,自然實踐教學效果也好。以實現(xiàn)矩陣乘法并行算法設計求解為例,實驗任務可進行如下劃分:首先了解各類矩陣乘并行算法思想;然后比較各類算法的時間、效率,得到較優(yōu)算法選擇;接著根據(jù)較優(yōu)算法思想設計并實現(xiàn)多核平臺下的矩陣乘并行算法;最后選擇不同的矩陣規(guī)模測試運行時間效率,同時與其他組同學設計的算法進行比較,得到算法優(yōu)劣分析和改進方法。
筆者曾在遼寧師范大學計信學院擔任三年級計算機專業(yè)本科學生計算機體系結構(并行計算)課程的實驗指導,在教學過程中采用任務驅(qū)動方法進行實驗教學,分別設定了不同的實驗任務并分階段完成。從實際教學效果來看,該方法使實踐教學內(nèi)容條理清晰、層次分明,便于學生更集中地掌握局部教學內(nèi)容;有效激發(fā)了學生的學習熱情和互相之間協(xié)作的團隊精神,較好的完成了實驗教學目標。
3 多元學與教模式下的教學評價體系
多核程序設計這門課程的理論考核具有較高的難度、廣度和深度等綜合性要求,實驗課程的教學目標要求學生熟悉理解多核架構,并且具備多核平臺上進行多核多線程并行程序設計的能力。在融入多元學與教的教學模式下,其評價體系也應進行相應改變,下面就教學目標和教學評價進行深入討論。
⑴ 教學目標考核
多核程序設計主要的教學內(nèi)容包括:并行計算與多核構架基本知識、基于Linux和Windows平臺的多線程并行程序設計方法;基于多核處理器的并行算法分析、設計與實現(xiàn);多核軟件性能分析工具及使用方法等。學生學完多核程序設計這門課后要掌握多核的硬件體系結構、并行編程模型、并行程序設計等重要知識點,教學目標的考核重點體現(xiàn)在學生的算法設計和并行編程方面。算法設計是學生編程能力高低的主要標志,學生應學會逐步分析問題、數(shù)學建模和數(shù)據(jù)結構設計,養(yǎng)成良好的算法設計習慣,掌握并行算法設計的常用方法和基本策略,并按照這些步驟和思路進行設計;編程能力體現(xiàn)在學生對所學語言的語法和規(guī)則的掌握程度、對解決應用問題算法思想的分析能力、對算法表示方式的理解和程序設計語言語句的實際應用能力。此外,還要具備一定的程序調(diào)試能力,能讀懂錯誤提示,掌握常用的調(diào)試方法,快速、及時地糾正錯誤。
⑵ 教學評價方法
對程序設計類課程的評價一般是定量考核,通常采用筆試題考核理論知識掌握程度,上機題測試實踐動手能力程度,通過給予一定的分數(shù)來獲得對教學效果的評價。多核程序設計課程的綜合性特點決定學生平時的學習和積累作用對學習效果的影響很大,教學效果的考核不是幾個理論問題或者幾個編程問題就可以準確考量的。
因此,本文提出除定量考核外,還對教學過程進行定性標準衡量,即考核學生的閱讀程序能力、算法設計能力、編寫代碼能力和程序調(diào)試能力。主要從以下幾方面進行重點考察:多核程序設計語言編譯系統(tǒng)環(huán)境的安裝、設置和使用;多線程程序的編輯、編譯、運行、調(diào)試和改錯;經(jīng)典案例代碼的閱讀、分析、畫出系統(tǒng)流程圖等;完成基本的驗證性實驗,通過現(xiàn)場設計、編程、運行和調(diào)試,得出正確結果;完成綜合性、實用性實驗項目的分析、設計、編程與運行,驗證結果的可用性程度。這些能力的考核體現(xiàn)在日常的理論教學和實驗教學過程中,教師可以根據(jù)考核能力的不同方面來設定不同的標準和層級,通過層次比較法確認每個學生的學習水平和能力,從而對后續(xù)的學習和實踐給出正確指導,這也是多元學與教的一種具體體現(xiàn),用于更好地促進教學進程。
4 結束語
隨著多核技術的發(fā)展與普及,目前以及未來大多數(shù)的軟件開發(fā)都將以多核為基礎硬件平臺。多核程序設計課程的開設對于培養(yǎng)適應時代變化的計算機類人才至關重要,研究多核程序設計的教學體系對于計算機專業(yè)教學大綱修改、執(zhí)行,以及為社會培養(yǎng)適應性強的高質(zhì)量人才有重要意義。本文結合“學與教”方式基本類型與日常教學的對應關系[5],將多元學與教方式融入了日常的多核程序設計教學過程中,通過對課堂教學和實驗教學模式的研究,探討了具體的教學設計過程、教學評價策略等內(nèi)容,既考慮了教學活動的教育性與嚴肅性,又兼顧了學習活動的生動性與主動性,充分挖掘了教師的教學潛能,同時積極調(diào)動了學生的學習興趣。多元學與教方式改進了計算機程序設計類課程教學模式,更好地促進了教學過程的有益推進,實踐證明,也更適合于多核程序設計課程的理論教學與實驗教學。
參考文獻:
[1] 王東玲,謝百治.信息技術條件下多元學與教方式融入醫(yī)學教學的研
究[J].中國電化教育,2012.2:113-117
[2] 陳天洲.《多核程序設計》概述[J].計算機教育,2007.7:39-41
[3] 陳天洲.多核課程建設探索與實踐[J].計算機教育,2007.3.
[4] 阿里甫·庫爾班,米爾古麗·買買提依明.案例式任務驅(qū)動的C程序設
計教學方法[J].計算機教育,2011.l1:53-55
[5] 劉雍潛,李龍,謝百治.多元“學與教”方式與日常教學[J].電化教育研
究,2010.10:91-98