孫敏
(長春光華學院,吉林長春 130033)
教育部高等學校大學計算機課程教學指導委員會發布了 《大學計算機基礎課程教學基本要求》(以下簡稱《基本要求》)指導性文件,但在實際教學過程中,缺乏認真解讀和系統的教學設計。因此,依據《基本要求》教學內容知識體系總體架構和教學體系,設計既符合應用型高校培養目標體現其專業價值,又能吸引學生參與互動的學習內容研究,勢在必行。
經過MOOC平臺的研究,以“C語言”為關鍵詞在常用的MOOC平臺中搜索相關課程,中國大學MOOC平臺返回107條相關結果;學堂在線平臺返回272條相關結果;愛課程平臺中返回43條相關結果。基于MOOC的混合式教學改革還需要繼續探索。已經有新型教材,且有配套的多媒體教學資源。將現有的優質資源進行整合,基于新型教材優化課堂教學有待進一步研究。
C語言程序設計的教學內容呈“線性”組織,過于強調語法,忽略計算思維的培養。C語言語法知識多而雜,把知識按照這種簡單的鏈狀順序連接在一起,給學生造成認知困難,也很難靈活提取知識解決實際問題。課堂教學教條化、模式化、單一化、靜態化的特點很難滿足新時代人才培養的需求。
2016年發布的《大學計算機基礎課程教學基本要求》將大學計算機基礎教學的知識領域由以前的4個調整為3個知識領域,C語言程序設計屬于 《基本要求》中提出的“寬專融”課程體系“專業型”課程類型中“程序設計基礎”的典型課程。
3.1.1 C語言程序設計課程知識體系的構建
《基本要求》提出程序設計基礎的知識點分為兩種類型:“核心 1(統一必修)”“核心 2(分類必修)”,一般要求每個學生必須掌握“核心2”知識內容的20%以上。參考《基本要求》中提供的“程序設計基礎(C語言)”課程典型教學方案,C語言程序設計課程知識框架設計6個知識模塊:程序與程序設計語言、數據與數據類型、程序控制語句、函數與模塊化程序設計、復雜數據類型、文件。每個知識模塊又劃分為若干個知識單元,共劃分為44個知識單元。各知識單元在教學內容組織上循序漸進向學生呈現知識點之間豐富的內在聯系,打破知識點線程呈現的局限。
3.1.2 C語言程序設計涉及的計算思維及計算思維能力的培養
在教學內容組織和教學過程中,需關注的計算思維培養重點包括核心概念:(1)算法、程序;(2)迭代、遞歸;(3)數據類型、數據結構、數據組織;(4)重用性;掌握重點:(1)理解算法、程序的概念;(2)掌握迭代、遞歸等基本方法;(3)了解典型問題算法求解策略;(4)理解常用數據類型和數據結構的概念和作用;(5)了解程序模塊化設計思想。
在教學過程中有意識地培養和強化與本課程最相關的自動化、設計、評估、計算等計算思維方面的內容。通過介紹算法概念和簡單算法介紹、遞歸函數設計等相應的程序設計訓練,使學生理解算法、迭代、遞歸,以及貪心法、分治法等簡單的算法設計思想,進而理解計算機自動化的基本思想方法;通過介紹結構化程序設計方法、函數設計等相應的程序設計訓練,使學生理解程序設計的模塊分解與復合、重用、信息封裝等軟件設計的基本思想;通過訓練程序的調試、比較分析不同算法程序運行效率,使學生理解評價指標、基準測試、容錯等程序評估思想和方法以及理解計算的復雜性。
學生組織知識的方式會影響其學習和運用知識的方式。研究已表明,與讓學生自己推斷概念結構相比,教師為他們提供適合于新知識的組織結構,可以使他們的學習效果更好、效率更高。只要能為學習者提供熟悉的知識組織結構,就可以提升學生的理解和記憶水平。課程教學內容側重圍繞某個主題進行組織,使學生能把每堂課上所學的知識聯系起來,通過內容的螺旋式迭代,使學生在知識點間建立必要的聯系,達到學習新知識時能基于其原有的知識基礎,以相互關聯的信息組塊,隨著學習的推進,將知識組織呈一個復雜的、相互關聯的結構。
3.2.1 C語言程序設計教學資源的整合
C語言程序設計教學內容以程序設計為中心進行組織,根據知識點的內在聯系設計教學模塊,在教材選用上,選用高等教育出版社何欽銘等主編的教材《C語言程序設計(第3版)》,其內容組織強調以程序設計為主線,以案例和問題引入內容,加強編程實踐的教學設計理念,與課程改革思路相符,而且有與其關聯的MOOC課程,中國大學MOOC平臺翁愷老師主講的《C語言程序設計》,教材還提供在線練習PTA網站http://pta.patest.cn,可以實現在線評分的功能。將MOOC課程視頻資源作為教學視頻資源,根據教學內容重新組織教學視頻,通過學習任務單給學生設計每個教學單元的有效學習路徑,引導學生學習。
3.2.2 C語言程序設計教學內容設計
教學內容設計原則:首先介紹一些背景知識和利用搞計算機求解問題的過程,然后從實例出發,介紹順序、分支和循環3種控制結構以及函數的使用,使學生對C語言有個總體的了解,并學習編寫簡單的程序,激發學生學習興趣,然后逐步深入講解程序設計的思想和方法,說明如何應用C語言解決問題[2]。
根據教材內容框架,將44個知識單元重新組合,共72學時。將教學內容分C語言程序設計基礎(30學時)、C語言程序設計進階(20學時)、高級編程(20學時)三個階段。C語言程序設計基礎階段包含知識模塊:程序設計基礎、基本語法(整型、算術運算符、控制結構和函數基礎)、程序設計思路和方法(分支、循環、函數)、數據表達與數據處理(基本數據類型、表達式),首先使學生從程序基本框架入手,了解完整程序的一般組成,再深入展開,體現程序設計理念,知識點螺旋式迭代式展開,有利于學生理解程序設計的過程。C語言程序設計進階階段包含知識模塊:構造數據類型、指針、結構。高級編程階段深入講解函數和程序結構、指針和其他構造類型在編程中的應用、文件的使用等,通過典型案例和問題引入,循序漸進地提高學生程序設計能力。
C語言程序設計是一門實踐性很強的課程,傳統教學中,圍繞C語言語法本身的體系展開內容,學生學習困難,學習積極性不高,實踐動手能力差,在有限的學習內得不到有效的計算思維訓練。課程教學改革嘗試重組教學內容強化以程序設計為主線,教學內容呈螺旋迭代式展開,以編程應用為驅動,加強編程實踐和計算思維培養,嘗試線上線下混合式教學模式,通過“MOOC+SPOCs+翻轉課堂”推動本校的教學改革實踐,為同行提供教學參考。