陳廣群+胡曉蓉+來敏健
摘要:計算思維在計算機教育中的應用,越來越受到學界和教育界的關注。從現有研究工作中存在的問題和C語言程序設計課程教學過程中的痛點入手,提出了基于“模型構建”思想的C語言教學方案,闡述了計算思維在C語言教學中運用的必要性和可行性,分析了現有問題的邏輯層次關系,并以此為線索,從方案設計思想、方案實施框架、方案技術支撐等方面,討論了基于計算思維教學方案的實施過程策略,提出了實施過程中需注意的問題及解決方法。
關鍵詞:計算思維;C語言;教學方案
中圖分類號:TP312.1-42 文獻標識碼:A 文章編號:1009-3044(2018)04-0128-02
Preliminary Exploration of C Language Programming Teaching Based on Computational Thinking
CHEN Guang-qun, HU Xiao-rong, LAI Min-jian
(Computer and Information Science Department,Yuzhang Normal University, Nanchang 330103, China)
Abstract: The application of computational thinking in computer education has attracted more and more attention from both academic and educational circles. This paper must begin from the process of teaching the existing problems and the research work of "C programming language" ,then and propose the C language teaching scheme Based on model construction. It expounds the necessity and feasibility of applying computational thinking in C language teaching and analyzes the existing problems of the logical hierarchy. These will be clues and discuss the implementation process of teaching plan Based on computational thinking from the design and implementation scheme of framework, technical support and other aspects, lastly put forward some problems needing attention in the implementation process and solutions.
Key words: computational thinking; C language; teaching plan
1 概述
國內外學者對于如何將計算思維應用于計算機教育改革這一問題[1],進行了深入的研究,產生了大量的研究成果。這些工作主要分為政策型研究和教學型研究兩種。其中,政策型研究,主要是從宏觀層面對面向計算思維計算機教育改革做前瞻性的研究,以其推進后續相關改革,其內容主要涉及具體實施方案、實施的客觀條件、保障細節等多個方面。而教學性研究則主要是從具體的計算機教學過程入手,討論如何在具體課程中,將計算思維融合到具體的教學活動中,其內容多是教學方案的創新。
目前的研究工作主要存在的問題:從研究對象方面,大部分研究工作都是針對計算機學科中某些基礎性課程的研究,例如,C語言程序設計課程,和計算思維相關的研究很少。從動機方面,大部分的研究工作,都是基于計算思維的基本概念,通過直接外化的方式,提出具體的教學方案與流程。這種研究思路固然直觀,但是,這種思路存在明顯不足:沒有根據教學內容的特殊性,對計算思維進行新的解構,使之適用于目標教學。從切入點方面,大部分研究都是選擇通過解決具體的問題,來推進課程的教學過程。雖然,從教育學的角度,這種方式在存在一定程度上合理性;但是,從計算思維的角度來看,其背后的邏輯本質上還是一種工具思維。這些研究并沒有足夠重視計算思維是與計算機課程的教授內容之間存在的某種內在有機聯系。從實施過程方面,將計算思維應用于計算機教學是有益的,學界和教育界也已經意識到這一點。但是相關研究要么是進行理論層面研究,要么是以過去教學經驗為支撐,進行技術方案的探討。看似百花齊放,實則各自為政,缺乏有效的量化方法,來實現對教學過程的動態評估,從而達到逐步改進教學質量的目的。
2 計算思維教學方案的問題分析
本文所提出的六個問題,并不是相互獨立的,而是具有層次結構的。第一個問題(即“研究對象方面”)是關鍵。研究對象的選擇實際上體現了對計算思維認識程度的深淺。事實上,計算思維教學的目標分為兩個層次。一個是形成對計算思維的感性認識,其核心是了解計算思維的組成要件和核心概念。另一個是形成對計算思維的理性認識,其核心是如何利用計算思維指導我們解決實際問題,這也是現有的大多數研究所忽視的。余下的五個問題是教學過程中存在的問題,它們之間不是相互獨立的,而是具有層次結構的。如圖1所示,它們可以分為以下三個層次。首先是方案設計思想層次,它對應于第二個問題(即“研究動機方面”);其次是方案實施框架層次,它對應第三個問題(即“研究切入點方面”);方案技術支撐層次,它包含第四、五、六個問題。
3 計算思維教學方案
3.1 方案設計思想
計算思維是一種科學思維,與理論思維、實驗思維一起構成了人類的三大思維[2]。但是,目前大多數研究工作都忽略了一個事實:計算思維過程本質上是對客觀世界中的某種規律或者事物,進行模型構建。作為一門程序設計課程,C語言程序設計課程教學的終極目標可概括為:利用一系列多模態手段。從模型構建的這一新視角來看,那么C語言程序設計課程內容和計算思維的內涵具有很高的契合度。
3.2 方案實施框架
模型構建本質上是一種思維過程,其目的是實現對研究對象的仿真、模擬和預測。簡單來講,該思維過程包含以下幾個要素。首先是系統變量抽象;然后是客觀規律表達;最后是問題求解。相比之下,傳統的C語言課程內容,是根據難易程度,遞進式展開的。以譚浩強版《C語言程序設計》教材為例[3],其內容包括14章,它們分別是:(1)C語言概述;(2)程序的靈魂——算法;(3)數據類型、運算符與表達式;(4)最簡單的C程序設計——順序程序設計;(5)選擇結構程序設計;(6)循環控制;(7)數組;(8)函數;(9)預處理命令;(10)指針;(11)結構體和共用體;(12)位運算;(13)文件;(14)常見錯誤和程序調試。共14個章節內容中涉及主要知識點,按照模型構建的三個要點,并結合C語言的特點,可重構為四個層次,如圖2所示。第一個層次是抽象表達層,包括第3、7、10、11章,它的主要功能是實現對研究對象中的核心因素進行提取和抽象表達,其本質是數據結構。這種表達分為2個方面。其一,簡單的直譯型表達(對應于第3章)。其二,復雜事物的表達(對應于第7、10、11章)。當一個事物是通過多個屬性表征的時候,利用結構體和共用體高耦合型的數據結構。而且,當遇到復雜的對象時,采用數組、指針等表達技巧。第二個層次邏輯表達層,包括第4、5、6章,這三個章節分別介紹三種原子型邏輯結構。第三個層次是問題求解層,包括第4章,該章節主要給出常見問題求解方法。第四個層次C語言特性層,包括第12、13、14章,這三章主要介紹C語言相比其它語言所獨有的特點與功能。
對于邏輯表達層,同樣包含兩個教學重點。一個是各邏輯結構的等價性。例如,“while do”、“do while”以及“for”循環的異同和等價替換形式。另一個是特殊語法表達方式。如果“if”只有一句執行代碼,可以省略“{}”。這兩個重點中的第二個從工程實踐的角度提出。教學經驗發現,受教者對特殊語法的不熟悉會造成代碼閱讀困難。
對于問題求解層,在適度增加深度的同時,需對廣度進行擴展。其中,深度的增加體現在引入數值計算的基礎內容;廣度的擴展體現在保留原有諸如遞歸、排序等經典算法的同時,引入基于迭代過程的學習算法思想。這個層次的兩個重點是所有教學重點的核心。
3.3 方案技術支撐
本文提到的方案技術支撐,主要是針對兩個問題提出解決方法。一個問題是,方案實施過程中,缺乏量化方法這一不足。在現有研究工作中,這一點較少被關注。
傳統的教學過程,主要通過課堂講解和課后作業結合的方法,來推動教學進度,加強教學效果。但這種方式很難及時地反饋受教者真實的學習狀態和當前水平,從而造成不能根據作業情況,反向指導教學活動的改進。另一方面,字面作業或電子版作業,需要教學人員花費大量的精力來評判,教學周期緩慢,對于C語言程序設計大班授課的基礎性課程效率很不劃算。
針對以上問題,本文提出了以大數據分析為核心的WEB解決方案。該方案具有四方面的特點。其一,以一個教學周為周期,通過WEB發布題目和接收作業,減少作業的形式感,其主要功能是自動化完成數據的采樣收集。其二,題目用英文表述,讓受教者在英文環境中,通過增加接觸頻率,加深對專業術語和概念的理解。其三,面向解題過程,重新設計題目。其四,采用統計學工具,實現數據分析。
4 結論
計算思維能夠和C語言程序設計教學進行有機的融合,通過對C語言教學目標中各個知識點的重新梳理和歸納,完全能夠將計算思維的基本要點,很形象的表述出來。事實上,計算思維處于整個計算機學科的核心位置,它幾乎囊括了該學科的
各個層面,通過C語言程序設計這門課程,希望達到對計算思維內涵較為全面的理解,略顯單薄。因此,C語言程序設計課程必須和計算機學科的其它主干課程,進行有機整合,橫向互聯,才能實現對計算思維較好的詮釋。
作為一種基于思維方式的訓練,研究性學習方式,它符合計算機學科發展的趨勢,也符合新時期教育培養目標,適合C語言程序設計課程,具有很強的生命力和前瞻性。
參考文獻:
[1] 楊男才.基于計算思維的高中信息科技《算法與程序設計》教學探究[D].陜西,陜西師范大學,2013.
[2] 葛明珠.基于計算思維的協作學習模式在中學信息技術課程中的實踐與研究[D].陜西,陜西師范大學,2014.
[3] 譚浩強.C語言程序設計[M].清華大學出版社,2005.
[4] 陳廣群,孔發弟.案例教學法在C語言程序設計教學中的應用[J].南京廣播電視大學學報,2013(3):85-87.
[5] 陳廣群,孔發弟.C語言課堂教學改進初探[J].南京廣播電視大學學報,2009(2):47-49.