楊日璟(大連民族大學 計算機科學與工程學院,遼寧 大連 116605)
2006年美國卡內基梅隆大學周以真教授首次提出了計算思維的概念:計算思維是運用計算機科學的基礎概念求解問題、設計系統和理解人類行為的科學方法[1]。2010 年11 月,陳國良院士第一次正式提出了將“計算思維能力培養”作為計算機基礎課程教學改革切入點的倡議[2]。2010 年7月,全國9所高等學校聯盟發表了聯合聲明,聲明的核心要點是必須正確認識大學計算機基礎教學的重要地位,把培養學生的“計算思維”能力作為計算機基礎教學的核心任務[3]。計算和計算思維是計算機基礎課程的基本理論和基本思維,科學家已經將計算思維和理論思維、實驗思維并列為人類三大科學思維[4]。計算機程序設計基礎課程中許多知識點都為培養學生的計算思維能力提供了很好的案例。在教學過程中完善和應用“計算思維”方法,將有助于計算機程序設計課程教學的發展與完善,也將有利于高校培養應用性、復合型人才。本文針對非計算機專業程序設計基礎課程的教學現狀,探究了在教學過程中培養學生計算思維能力的可行性和方法。
非計算機專業學生的程序設計基礎課程一般都是多班一起授課,教師在理論課上講授理論知識,按照教材講授程序設計的語法基礎、程序基本結構、數組、過程、文件讀寫等知識點,在上機實驗課讓學生通過上機練習來鞏固理論課講授內容。這種模式注重的是知識傳授,不僅缺乏趣味性,更缺乏應用計算思維的培養和創新。在實際的教學過程中教學效果很不理想。
(1)灌輸式教學忽視計算思維能力培養。以教師為中心的灌輸式教學,忽略了學生主體的作用。雖然能保證教學內容的系統性和連貫性,但很容易陷入程序語言為中心的誤區。在教學中出現“重結果、輕過程”“重編碼、輕算法”的現象,忽視了對學生計算思維能力的培養。
(2)被動學習阻礙計算思維能力培養。學生被動地聽和記憶,難以激發學生學習興趣,更難以體會到程序設計中問題分析、邏輯推導、程序思維及構造的方法。學生普遍反映課程內容枯燥、難懂,不感興趣,學生學習主動性差。不少學生對計算機理論知識儲備不夠,入門較慢。學習上不得要領,在學習過程中叫苦不迭,對計算機的“思維方式”難以理解。
(3)脫離應用限制計算思維能力培養。知識點聯系不夠緊密,缺乏對知識的綜合應用。將學習重心放到對基礎語法的學習上,不注重總結問題的求解過程。教材中的例題往往是為了說明某個知識點,而例題之間缺少聯系,缺少對知識點的整合。學生很難將所學到的知識點串聯起來并解決實際問題。由于缺乏與后續專業課程學習的銜接,影響了許多學生學習計算機公共基礎課程的積極性,限制了計算思維能力培養。
高校非計算機專業計算機公共基礎課程近年來普遍采用三個層次的課程體系和教學模式,其中第二個層次就是計算機程序設計基礎相關課程,是三個層次中比較重要的環節。在此環節針對不同專業類別設置知識模塊。大連民族大學非計算機專業學生計算機公共基礎課第二層次的課程設置見表1。

表1 大連民族大學計算機公共基礎課程設置
案例教學法的特點是“以案例任務為主線、學生為主體、教師為主導”,與傳統的“教師講、學生聽”的教學模式相比,用案例作為任務,形成以學生自主學習為主,研究性學習、探索性學習及合作學習互補的學習氛圍,可以讓學生準確理解計算機處理問題的思路和方法,培養計算思維能力。
從培養計算思維的角度出發,按照問題求解的步驟來重構課程中的典型案例。例如循環是一種很重要的程序控制結構,能使學生很好地理解計算機解決問題的特點,也是學習的難點。講解循環結構的案例,是對自然數1到10的求和,從求和引出“循環”的概念,學生在用 FOR循環求累加后,又提出求10的階乘的問題,這樣可以根據階乘的定義,從累加運算過渡到累乘運算,問題就迎刃而解了。這個案例的兩個問題,既有用循環求解的共性,又有求累加與求階乘在設置循環變量初值時的區別,使學生體會到計算機編程必須嚴謹又可以靈活應用。又如降序輸出全班50學生某課程的成績,要求每一行輸出10個同學的成績,并統計成績的最高分、最低分及平均分。這個案例包含了循環和數組的基本概念和應用操作,同時強化了冒泡排序和選擇排序兩大排序操作。由問題引入學習的知識點,以興趣帶動學生主動學習,將問題求解提升到計算思維的高度使學生在求解實際問題的過程中,能逐步地領會、理解計算思維的本質,并把這樣的思維方式和方法慢慢滲透到自己日常學習中。
案例的設計結合知識點,但又不局限教學內容的順序,從不同章節抽取知識點進行重新整合。學生們對案例中的程序設計更有興趣,在程序結構、數組等以前難以掌握的知識方面所花費的時間要少得多,而且掌握得更加扎實。案例設計不僅要讓學生掌握編程的基本語法知識,更為重要的是掌握算法,算法的推導和設計正是計算思維的具體體現。解決案例問題,要有一些的知識擴充,也要給學生推薦一些輔助學習的網絡資源,方便學生進行自主學習。
案例驅動任務的方法改變了以往“教師講,學生聽”的教學模式。有利于激發學生的學習興趣,對同一案例可以引導學生主動地思考,嘗試多種解決方案,多角度地訓練學生思維,逐步培養學生分析問題、解決問題的能力。可使學生既掌握基本知識,又學會用知識來解決問題,從而有效地培養了學生的計算思維,提高了計算機的應用能力。
程序設計課程最后的落腳點是應用,而上機實驗是加深對程序設計理解并逐步培養“計算思維”的最基本途徑。通過實驗課將計算思維訓練應用到問題的分析與求解過程中。
非計算機專業學生的計算機基礎差別較大,在實驗教學中采用分層次教學法和小組討論法。
(1)基礎層次主要是對基本理論的驗證實驗,單知識點實驗,培養學生的操作能力。主要是針對計算機基礎較差的同學,通過實驗,初步掌握計算思維方法。
(2)第二層次增加了應用,將不同的知識點綜合應用到實驗題目中,培養學生的應用能力。針對同一個實驗任務,鼓勵學生使用不同的方法實現,可以培養學生計算思維的多樣性和靈活性。隨著學習的深入,要求學生總結比較不同方法,在總結過程中提高學生舉一反三的能力。
(3)第三層次是綜合設計性實驗。鼓勵學生設計與專業結合的內容,進一步激發學生的創造力,培養學生的創新技能。在綜合性實驗教學中強調算法的多樣性和解決問題的復雜性,培養、激勵學生的創新意識、探索精神和問題求解能力。
學生根據自己的情況自主選擇進行實驗,充分體現學生的自主性,使不同基礎的學生都有所收獲。
在實驗中采用分組討論學習,學生在課下組成小組,以組為單位在討論中互相交流,比較處理問題的不同方法,在討論過程中提高計算思維能力。分組學習,可以使許多計算機基礎較差的同學,快速地提高應用能力。實驗最后,教師會通過一些綜合應用類的典型案例,引導同學們觀察、思考,用提問、比較、總結歸納等多種手段,將零星、分散的知識點以及各知識點之間的聯系進行總結歸納,最終達到靈活運用的目的[5]。
在程序設計過程中,教師在尊重每位學生的個體差異的前提下,對于不同的學生要鼓勵其從不同角度認識問題,使用不同的方式描述算法,用不同方法求解問題,同時給予適當的、科學的評價[6]。
充分利用網絡教學平臺資源,計算機公共基礎網絡教學平臺具有教學視頻、網上答疑、網絡考試系統等功能,為學生自主學習提供了方便,是課堂學習的有效補充。
將案例的制作過程錄制成視頻文件,供學生課下自主學習使用;教師網上答疑,有效解決了公共基礎課程多班授課教師與學生溝通難的問題;考試系統,分階段的多次單元測試,可以使學生及時了解知識點的掌握情況,有效地督促學生及時復習,減輕學生期末一次性考試負擔,提高了學習效率。
在計算機程序設計課程的教學中逐步滲透計算思維思想,通過案例驅動、分層次實驗教學等多角度的方法在潛移默化中培養學生的計算思維能力,取得了良好的效果。學生的分析問題和解決問題的能力明顯提高,使他們養成新的思維方式,更好地應用計算思維來解決問題,在一定程度上可以提高學生的應用能力和創新能力,為培養創新型復合型人才打下良好的基礎。
參考文獻:
[1] 周以真.計算思維[J].中國計算機學會通訊,2007,3(11):77-79.
[2] 陳國良,董榮勝.計算思維與大學計算機基礎 [J].中國大學教學,2011(1):7-11.
[3] 何欽銘,陸漢權,馮博琴.計算機基礎教學的核心任務是計算思維能力的培養[J].中國大學教學,2010(9):5-9.
[4] 朱亞宗.論計算思維:計算思維的科學定位、基本原理及創新路徑[J].計算機科學,2009,36(4):53-55.
[5] 羅瑞紅,劉柄松.案例教學法在VB程序設計課程教學中的應用[J].科教文匯, 2014(8):78-79.
[6]臧勁松.培養學生計算思維的程序設計課程教學[J].計算機教育,2012(2):78-80.