周幸妮+任智源+馬彥卓+沈中+孫德春
摘 要: 根據(jù)程序設(shè)計類課程本身特點,以計算機解題的角度做切入點,分析相應(yīng)傳統(tǒng)教材的問題,研究探討適合的教學設(shè)計與方法。借助電子及互聯(lián)網(wǎng)等各種媒介,選擇合適的方式將教材做立體表達。教學設(shè)計主線以紙質(zhì)教材為主,重點在建立計算思維方法及明晰程序的調(diào)試方法;課堂教學使用電子類教材,輔以在線隨堂練習題目;上機訓練配以測試題庫,實現(xiàn)網(wǎng)絡(luò)在線自動測試。通過建設(shè)合理有效的立體教材,多種方式配合,解決程序設(shè)計教與學過程中的難點與重點問題。
關(guān)鍵詞: 程序設(shè)計課程; 教學設(shè)計; 立體化教材; 教材建設(shè)
中圖分類號:TP311 文獻標志碼:A 文章編號:1006-8228(2018)02-90-05
Abstract: According to the inherent characteristics of the program design courses and the perspective of computer-based problem-solving, the problems in corresponding traditional textbooks are analyzed, the appropriate pedagogical designs and methods are studied and discussed. With the help of various media such as the internet, appropriate methods to comprehensively present the textbook are selected. The pedagogical methodology is mainly based on the paper-based textbook, and focuses on establishing computational ways of thinking and clarifying the methods of program testing. The classroom instruction will be based on an electronic textbook, aided by online in-class exercises. The programming exercises are supplemented by a library of tests in order to achieve automatic online testing. By producing a sensible and effective three-dimensional teaching material, the multiple methods are cooperated to solve the difficult and important problems in the teaching of program design courses.
Key words: program design course; pedagogical designs; three-dimensional teaching material; textbook construction
0 引言
在數(shù)據(jù)結(jié)構(gòu)的教學中發(fā)現(xiàn),學生對教材有一些看法,比如他們把教材分為兩類,即“工具書”和“講解書”。工具書類教材注重框架,概念、知識、數(shù)據(jù)、內(nèi)涵等比較全面,也包含必要的過程描述,一般傳統(tǒng)教材都是這種寫法,其好處在于無余贅、易查找,但其致命缺陷是不能脫離課堂講解,這對授課老師和學生的課堂學習質(zhì)量及查閱效率便提出了很高的要求?,F(xiàn)在網(wǎng)絡(luò)發(fā)達,工具書的優(yōu)勢——已可以被網(wǎng)絡(luò)所取代。在大學,需要自主學習,所以需要好的講解書,幫助我們理解知識,掌握知識并靈活運用,我們認為,《數(shù)據(jù)結(jié)構(gòu)與算法分析新視角》[1]是一本好的講解書。
1 網(wǎng)絡(luò)時代傳統(tǒng)教材存在的問題
計算機類課程的學習需要從計算機的角度思考問題,遵循計算機的規(guī)則解決問題。其教學對計算思維的培養(yǎng)有所忽視。
現(xiàn)在一般的C語言與數(shù)據(jù)結(jié)構(gòu)編程類課程,采取的授課方式是大課堂講解和機房上機練習,上課進度和上機安排一般不能完全同步,學生課下自主練習困難。另外,上機調(diào)試復雜且繁瑣,學生課上往往不能完全記住老師機上演示的要點。以上各種原因造成不少學生對編程課的反映是概念難理解、調(diào)試難掌握,學習效果不盡如人意。
數(shù)據(jù)結(jié)構(gòu)課程概念較多、思維方式較為抽象,如樹、圖等結(jié)構(gòu)的建立、相應(yīng)算法處理都有一定的理解難度,若先修課C語言編程基礎(chǔ)不好,學生到了數(shù)據(jù)結(jié)構(gòu)的學習階段,就更不易理解難度較大的算法程序,造成不少學生放棄編程學習。
2 立體教材體系的建立
針對傳統(tǒng)教材存在的不足,我們課程組編撰了《C語言程序設(shè)計新視角》[2]和《數(shù)據(jù)結(jié)構(gòu)與算法分析新視角》(以下簡稱c新視角、數(shù)據(jù)結(jié)構(gòu)新視角)等新教材,通過實際生活和工程案例引入重要概念;從橫向和縱向給出各概念間的歸結(jié),便于知識點的理解與把握;給出各相關(guān)重點難點題目的調(diào)試實例步驟圖,讓學生有模仿的范本。
立體化教材體系的建立,可以更好地解決學生學習中的問題。立體化教材建設(shè)的想法是于上世紀末提出的,為擺脫局限于課堂的授課方式,改革以往書本一統(tǒng)的局面,從單調(diào)的文字、圖片,轉(zhuǎn)向聲、影、光立體展現(xiàn),從紙介質(zhì)一種表現(xiàn)形式轉(zhuǎn)向不同媒體的多元表現(xiàn)形式。這樣不僅有利于知識的獲取,而且有利于知識的保持。
3 程序類課程教學計劃設(shè)計
關(guān)于人類的認知學習,有許多教育學家心理學者創(chuàng)建了許多的理論和方法,比如美國教育心理學家布盧姆(BloomB.S.),把認知領(lǐng)域的教育目標順序分成六個類別:識記、理解、應(yīng)用、分析、評價和創(chuàng)造六個由淺到深認知過程[3]。我們對客觀世界事或物的認知是通過回答三個問題“是什么、怎么、為什么”來完成的?!笆鞘裁础笔顷P(guān)于事物本質(zhì)的問題,“怎么”則為人們“應(yīng)該怎么做”而提供的指導。“為什么”是對事物問題發(fā)生原因的探討。任何事物的存在或現(xiàn)象的出現(xiàn)都不可能沒有原因,只有正確認識事物發(fā)生的原因,認清其因果聯(lián)系,才能真正認識此項事物。ADDIE是一套有系統(tǒng)地發(fā)展教學的方法,主要包含三個方面:要學什么(學習目標的制定);如何去學(學習策略的運用);以及如何判斷學習者已到達學習成效(學習評量的實施)[4]。由卡爾霍恩·威克(Calhoun Wick)等人構(gòu)建出的6D學習設(shè)計模型,核心思想在于為學習者創(chuàng)造一個完整的學習體驗和學習環(huán)境[5]。endprint
無論采用什么樣的教學設(shè)計,原則是設(shè)計應(yīng)與人的認知規(guī)律相適應(yīng),從而確定相關(guān)學習層次,進而為媒體選擇與設(shè)計提供指導。由于計算機課程本身的特點而帶來的特性問題,程序設(shè)計類課程的教學設(shè)計要特別注重從計算機解決問題的角度即用計算機思維來考慮。
3.1 基于多種媒體的綜合教學設(shè)計
根據(jù)程序設(shè)計課程的特點和各種媒體的特性,具體教學設(shè)計見圖1。
知識領(lǐng)會層次的教學目標,設(shè)置在基本概念容易理解并掌握上,教學設(shè)計上,通過實際問題引入、各概念橫向縱向聯(lián)系分析、討論各種機制設(shè)置原因三個主要方面來進行,實施手段主要是課堂講解。
分析運用和綜合運用的教學目標都是了解計算機解題的步驟和方法。對分析運用層次的教學設(shè)計,按照計算機解決實際問題的順序(數(shù)據(jù)輸入、功能實現(xiàn)、結(jié)果輸出),將數(shù)據(jù)分析后形成測試樣例設(shè)計;通過功能分析,構(gòu)造系統(tǒng)模塊,做接口設(shè)計;采用自頂向下逐步細化進行算法描述。
綜合應(yīng)用層次,在算法描述完成的基礎(chǔ)上,完成代碼編制,并在相應(yīng)集成環(huán)境中進行測試和調(diào)試。
實踐與評價層次,設(shè)置要達到的目標是逐步熟悉掌握編程技能,通過筆頭作業(yè)和上機練習,習題難度從簡單到綜合,復雜程度逐級增加,最后通過各種測試方法,給出學生學習效果的評價。
3.2 學習計算機思維方式在教學設(shè)計中的體現(xiàn)
著名數(shù)學家歐拉說:如果不能把解決數(shù)學問題背后的思維過程傳授給學生,那么數(shù)學教學就沒有意義[6]。人的認知活動通常都從問題開始,發(fā)現(xiàn)問題并探索新知,這樣的學習容易讓人印象深刻,以及理解并掌握問題的內(nèi)在規(guī)律和聯(lián)系。發(fā)現(xiàn)問題之后,更進一步的工作是解決問題,這就需要進行深入的思考,首先尋找和已有問題類似的原問題,分析新問題和原問題的相同點和不同點,然后對新問題進行重新定義,構(gòu)造新的認知,在此過程中,思考者往往能即刻頓悟出問題的創(chuàng)新解法。由原有的知識給出新情境中的新問題,引導學生發(fā)現(xiàn)新問題與已有知識間的不同,通過這樣的方式進行創(chuàng)新的思維訓練[7]。
例如,C語言新視角在結(jié)構(gòu)體一章的開始提出思考問題:要實現(xiàn)一個不同類型的學生成績表格的成績統(tǒng)計與整體表格打印,在已知經(jīng)驗中沒有現(xiàn)成可以套用的方法,此時根據(jù)已有的數(shù)組處理規(guī)則,可以和一個同類型的學生成績表格做對比,查看相同不同點在哪里,由此引出要解決的問題——如何建立“組合的數(shù)據(jù)類型”,以實現(xiàn)一個復雜的數(shù)據(jù)結(jié)構(gòu)的功能。通過邏輯推理與討論,得出結(jié)論——需要增加“組合數(shù)據(jù)”的新機制,根據(jù)數(shù)據(jù)存儲三要素,應(yīng)該從存儲尺寸、空間分配和數(shù)據(jù)引用這三個方面來分析這種新數(shù)據(jù)結(jié)構(gòu)的特性,接下來再詳細討論確定“組合數(shù)據(jù)”的類型、變量定義、變量引用方式,給出“結(jié)構(gòu)體”的定義就順理成章了。
再例,數(shù)據(jù)結(jié)構(gòu)新視角,在圖的頂點查找問題(圖的遍歷)中,給出網(wǎng)絡(luò)爬蟲的搜索問題的實例?!熬W(wǎng)絡(luò)爬蟲”是搜索引擎抓取系統(tǒng)軟件的重要組成部分,它遍歷Web空間,能夠掃描一定IP地址范圍內(nèi)的網(wǎng)站,并沿著網(wǎng)絡(luò)上的鏈接從一個網(wǎng)頁到另一個網(wǎng)頁采集網(wǎng)頁資料。如何無遺漏且不重復地高效訪問所有的網(wǎng)頁,需要有好的策略來實現(xiàn)圖的遍歷。通過對“圖的遍歷和樹的遍歷有什么不同”以及“如何避免圖的同一頂點在遍歷時被訪問多次”等問題的討論,再具體通過走迷宮策略的探討,最后給出圖的遍歷的多層細化算法描述和代碼實現(xiàn)。
通過實際問題的分析及解決過程的探討,引導學習者從本質(zhì)分析編程語言各種機制設(shè)置的原理,再從計算機的角度解決問題,可以讓讀者清晰地理解各個概念并建立起完整知識系統(tǒng)。
問題引入、計算機解題思維方式的詳細描述等內(nèi)容,適合在紙質(zhì)教材中呈現(xiàn)。
3.3 測試調(diào)試方法在教學設(shè)計中的體現(xiàn)
針對調(diào)試過程復雜并且不易記住的情況,將調(diào)試過程分別以靜態(tài)(紙質(zhì)教材)、動態(tài)(課堂演示+微課視頻)的方式展示,配合在線測試(Online Judge)系統(tǒng),通過測試樣例設(shè)計方法、程序設(shè)計方法和調(diào)試跟蹤技巧的訓練,讓學生在實踐中掌握編程。
C語言新視角和數(shù)據(jù)結(jié)構(gòu)新視角中有大量調(diào)試實例,通過例程跟蹤解析,使得學生能觀察到計算機運行程序的內(nèi)部過程。有了直觀感知后,學生們反映對程序的處理方式容易理解了。
例如,鏈表一直是數(shù)據(jù)結(jié)構(gòu)中的教學難點和重點內(nèi)容,學生可以理解邏輯上的概念,但對計算機中通過編程使得各結(jié)點在邏輯關(guān)系上鏈接起來,總覺得難以操作和把握。在數(shù)據(jù)結(jié)構(gòu)新視角里就增加了鏈表跟蹤解析結(jié)點結(jié)構(gòu),先通過兩個結(jié)點靜態(tài)鏈接的簡單實例,跟蹤查看在內(nèi)存級別上結(jié)點數(shù)據(jù)是如何關(guān)聯(lián)上的,再到兩個結(jié)點動態(tài)鏈接的程序跟蹤調(diào)試,就容易理解掌握了。具體在數(shù)據(jù)結(jié)構(gòu)新視角中,有編程實現(xiàn)圖2的兩個靜態(tài)結(jié)點的連接和動態(tài)連接的例子。此處靜態(tài)連接是指,結(jié)點結(jié)構(gòu)空間是通過結(jié)構(gòu)體變量定義靜態(tài)分配的,把這樣的結(jié)點連接起來;動態(tài)連接是指,在程序運行過程中,先動態(tài)申請得到結(jié)點空間,然后再按要求進行連接。
圖3中顯示了跟蹤調(diào)試過程中的一個步驟樣例,結(jié)構(gòu)的空間地址及賦值情形,結(jié)構(gòu)指針p記錄了y的地址。最后根據(jù)跟蹤結(jié)果,畫出結(jié)點x和y地址關(guān)系圖,見圖4??梢杂猛瑯拥姆椒ㄔ俳o出兩個動態(tài)結(jié)點的連接調(diào)試過程的解析。
4 多媒體資源制作
立體教材的建設(shè),既要處理各種教材形態(tài)的關(guān)系,也要研究教材與其他學習資源的關(guān)系,這需要有想法,有能力,熟悉電子、網(wǎng)絡(luò)等各類教材的建設(shè)理論及方法,更需要投入大量的時間和精力[8]。
4.1 課件制作
PowerPoint在多媒體課堂教學中使用率非常高,我們在教學中發(fā)現(xiàn)存在的問題較多,ppt制作需要注意以下幾點。一是提煉關(guān)鍵詞,文字過多時,只列出其中要點。二是色彩不要過多,一般不超過3色為宜。三是圖表大小比例適當。四是結(jié)構(gòu)組織排列對齊,項目的級別正確。
4.2 操作演示
C語言課程有概念難理解、調(diào)試難掌握的特點;數(shù)據(jù)結(jié)構(gòu)課程中存在概念抽象、數(shù)據(jù)關(guān)系復雜的問題??梢詫㈦y理解的概念、復雜的處理步驟、典型調(diào)試實例等制作做成微課,放到課程網(wǎng)上,學生隨時可以對照教材內(nèi)容在手機或電腦中觀摩學習。endprint
微課本身就定位在“微”,用短時間把知識點講清楚,需要對講解內(nèi)容的做精心的安排。目前我們已和一家信息公司及相關(guān)出版社合作,以C語言新視角教材為基礎(chǔ),分知識點制作了整門課程的微課。
4.3 實驗測試
Online Judge系統(tǒng)(簡稱OJ)是在線判題系統(tǒng),用來在線檢測程序源代碼的正確性。OJ系統(tǒng)考驗學生測試樣例設(shè)計的完備性、算法設(shè)計的正確性、代碼實現(xiàn)、調(diào)試的熟練性等技能,對學生而言是一個很好的訓練環(huán)境,對教師而言可以大大減輕閱讀學生程序作業(yè)的工作量。目前我們已經(jīng)在C語言和數(shù)據(jù)結(jié)構(gòu)教學中使用了OJ系統(tǒng)。
在線問卷調(diào)查系統(tǒng)是通過互聯(lián)網(wǎng)把傳統(tǒng)的調(diào)查、分析方法在線化、智能化,依托傳統(tǒng)調(diào)研公司開發(fā)的一整套有效的市場調(diào)研問卷平臺。利用這類平臺,我們把數(shù)據(jù)結(jié)構(gòu)教材各章節(jié)的客觀題做成測試問卷,在每章節(jié)內(nèi)容講授后,發(fā)布問卷的二維碼,學生用手機在課堂上花幾分鐘即可完成答題,提交后本人能實時看到評分和正確答案。教師可以根據(jù)后臺統(tǒng)計報告,及時掌握學生的學習情況。在數(shù)據(jù)結(jié)構(gòu)課程上實施后,學生反映對此類形式比較喜歡。
4.4 網(wǎng)絡(luò)資源
我國高校教材一般內(nèi)容比較固定,修訂增刪間隔時間相當長,即使修訂也是在原來基礎(chǔ)上稍作改動。學生年復一年使用相同的教材而知識卻在不斷更新。
立體教材的形態(tài),是紙質(zhì)圖書以網(wǎng)絡(luò)為依托,采用“紙質(zhì)文本+數(shù)字化資源”的方式呈現(xiàn)。核心資源在紙質(zhì)教材中體現(xiàn),拓展資源放到課程網(wǎng)站。教材中關(guān)鍵點、難點、相應(yīng)節(jié)點,比如動畫、視頻、實驗、自我測試等,則可以通過二維碼掃描,實現(xiàn)平面教材與網(wǎng)絡(luò)資源的鏈接,或登錄課程網(wǎng)站即可瀏覽課程資源,實現(xiàn)教學課堂與課程網(wǎng)站的對接。
前面提到的C語言的全套微課是配合將要重版的C語言新視角做的配套網(wǎng)絡(luò)資源,另在紙質(zhì)教材相應(yīng)知識點、關(guān)鍵字部分都將增加二維碼,鏈接更多的拓展資源。
筆者英文版的數(shù)據(jù)結(jié)構(gòu)新視角,預計2018年前后在科學出版社出版,科學社也要求作者必須提供配套的課件、題庫等數(shù)字化資源。
另外可建立課程相關(guān)論壇,提供給學生自由討論課程問題的平臺。西安電子科技大學教務(wù)網(wǎng)站給每位老師都提供了可以自行填充擴展的網(wǎng)頁,方便大家把自己的課程資源放到網(wǎng)站上,同時也具備有討論、作業(yè)提交等功能。
5 結(jié)束語
在互聯(lián)網(wǎng)+飛速發(fā)展的時代,大學計算機類課程應(yīng)該嘗試各種媒體技術(shù)的綜合應(yīng)用。我們根據(jù)程序設(shè)計類課程本身特點,立足分析問題解決問題的根本,在程序類課程的教學實踐中,根據(jù)學生的概念理解難、調(diào)試掌握難等問題,以教學設(shè)計為綱,輔以各種教學資源,基本達到了方便教師教學,學生更容易在學習中理解其因,掌握其法的目的。對培養(yǎng)學生分析問題、解決問題的能力,發(fā)揮學生的自主性和創(chuàng)造性有一定的促進作用。各種媒體資源在線使用的方便性,提高了學生的學習興趣,有利于因材施教。教材的立體設(shè)計方式可以應(yīng)用到很多課程當中。立體教材所建立的各種課程資源,可以靈活應(yīng)用于啟發(fā)式、探究式、討論式、參與式等等以學習者為中心的教學新模式中。由于非計算機專業(yè)的程序設(shè)計類課程的課時過少,我們雖然已經(jīng)做了很多教材立體化資源的建設(shè)工作,但依然需要學生自覺地完成大量的自主學習。后續(xù)我們將通過學生的反饋,在教學和教材建設(shè)中不斷改進提高。
參考文獻(References):
[1] 周幸妮等.數(shù)據(jù)結(jié)構(gòu)與算法分析新視角[M].電子工業(yè)出版社,2016.
[2] 周幸妮.C語言程序設(shè)計新視角[M].西安電子科技大學出版社,2012.
[3] L.W.安德森等.面向?qū)W習、教學和評價的分類學——布盧姆教育目標分類學的修訂[M].上海:華東師范大學出版社,2007.
[4] 史密斯PL,雷根TJ.教學設(shè)計[M].上海:華東師范大學出版社,2008.
[5] (美)卡爾霍恩·威克著.周濤,宋亞南譯.將培訓轉(zhuǎn)化為商業(yè)結(jié)果:學習發(fā)展項目的6D法則(第二版)[M].電子工業(yè)出版社,2013.
[6] 劉未鵬.知其所以然(以算法學習為例)[EB/OL].(2008-07-07)[2013-06-12].http://mindhacks.cn/2008/07/07/the-importance-of-knowing-why/.
[7] 周幸妮.基于認知規(guī)律新視角的程序設(shè)計教學研究[J].計算機教育,2014.10:38-42
[8] 陳琳,蔣艷紅,李凡等.高校教材建設(shè)的時代性要求研究[J].現(xiàn)代教育技術(shù),2011.21(10):20-23endprint