周幸妮+任智源+馬彥卓+沈中+孫德春



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