陳廣群+胡曉蓉+來敏健
摘要:計算思維在計算機教育中的應用,越來越受到學界和教育界的關注。從現(xiàn)有研究工作中存在的問題和C語言程序設計課程教學過程中的痛點入手,提出了基于“模型構(gòu)建”思想的C語言教學方案,闡述了計算思維在C語言教學中運用的必要性和可行性,分析了現(xiàn)有問題的邏輯層次關系,并以此為線索,從方案設計思想、方案實施框架、方案技術支撐等方面,討論了基于計算思維教學方案的實施過程策略,提出了實施過程中需注意的問題及解決方法。
關鍵詞:計算思維;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 概述
國內(nèi)外學者對于如何將計算思維應用于計算機教育改革這一問題[1],進行了深入的研究,產(chǎn)生了大量的研究成果。這些工作主要分為政策型研究和教學型研究兩種。其中,政策型研究,主要是從宏觀層面對面向計算思維計算機教育改革做前瞻性的研究,以其推進后續(xù)相關改革,其內(nèi)容主要涉及具體實施方案、實施的客觀條件、保障細節(jié)等多個方面。而教學性研究則主要是從具體的計算機教學過程入手,討論如何在具體課程中,將計算思維融合到具體的教學活動中,其內(nèi)容多是教學方案的創(chuàng)新。
目前的研究工作主要存在的問題:從研究對象方面,大部分研究工作都是針對計算機學科中某些基礎性課程的研究,例如,C語言程序設計課程,和計算思維相關的研究很少。從動機方面,大部分的研究工作,都是基于計算思維的基本概念,通過直接外化的方式,提出具體的教學方案與流程。這種研究思路固然直觀,但是,這種思路存在明顯不足:沒有根據(jù)教學內(nèi)容的特殊性,對計算思維進行新的解構(gòu),使之適用于目標教學。從切入點方面,大部分研究都是選擇通過解決具體的問題,來推進課程的教學過程。雖然,從教育學的角度,這種方式在存在一定程度上合理性;但是,從計算思維的角度來看,其背后的邏輯本質(zhì)上還是一種工具思維。這些研究并沒有足夠重視計算思維是與計算機課程的教授內(nèi)容之間存在的某種內(nèi)在有機聯(lián)系。從實施過程方面,將計算思維應用于計算機教學是有益的,學界和教育界也已經(jīng)意識到這一點。但是相關研究要么是進行理論層面研究,要么是以過去教學經(jīng)驗為支撐,進行技術方案的探討。看似百花齊放,實則各自為政,缺乏有效的量化方法,來實現(xiàn)對教學過程的動態(tài)評估,從而達到逐步改進教學質(zhì)量的目的。
2 計算思維教學方案的問題分析
本文所提出的六個問題,并不是相互獨立的,而是具有層次結(jié)構(gòu)的。第一個問題(即“研究對象方面”)是關鍵。研究對象的選擇實際上體現(xiàn)了對計算思維認識程度的深淺。事實上,計算思維教學的目標分為兩個層次。一個是形成對計算思維的感性認識,其核心是了解計算思維的組成要件和核心概念。另一個是形成對計算思維的理性認識,其核心是如何利用計算思維指導我們解決實際問題,這也是現(xiàn)有的大多數(shù)研究所忽視的。余下的五個問題是教學過程中存在的問題,它們之間不是相互獨立的,而是具有層次結(jié)構(gòu)的。如圖1所示,它們可以分為以下三個層次。首先是方案設計思想層次,它對應于第二個問題(即“研究動機方面”);其次是方案實施框架層次,它對應第三個問題(即“研究切入點方面”);方案技術支撐層次,它包含第四、五、六個問題。
3 計算思維教學方案
3.1 方案設計思想
計算思維是一種科學思維,與理論思維、實驗思維一起構(gòu)成了人類的三大思維[2]。但是,目前大多數(shù)研究工作都忽略了一個事實:計算思維過程本質(zhì)上是對客觀世界中的某種規(guī)律或者事物,進行模型構(gòu)建。作為一門程序設計課程,C語言程序設計課程教學的終極目標可概括為:利用一系列多模態(tài)手段。從模型構(gòu)建的這一新視角來看,那么C語言程序設計課程內(nèi)容和計算思維的內(nèi)涵具有很高的契合度。
3.2 方案實施框架
模型構(gòu)建本質(zhì)上是一種思維過程,其目的是實現(xiàn)對研究對象的仿真、模擬和預測。簡單來講,該思維過程包含以下幾個要素。首先是系統(tǒng)變量抽象;然后是客觀規(guī)律表達;最后是問題求解。相比之下,傳統(tǒng)的C語言課程內(nèi)容,是根據(jù)難易程度,遞進式展開的。以譚浩強版《C語言程序設計》教材為例[3],其內(nèi)容包括14章,它們分別是:(1)C語言概述;(2)程序的靈魂——算法;(3)數(shù)據(jù)類型、運算符與表達式;(4)最簡單的C程序設計——順序程序設計;(5)選擇結(jié)構(gòu)程序設計;(6)循環(huán)控制;(7)數(shù)組;(8)函數(shù);(9)預處理命令;(10)指針;(11)結(jié)構(gòu)體和共用體;(12)位運算;(13)文件;(14)常見錯誤和程序調(diào)試。共14個章節(jié)內(nèi)容中涉及主要知識點,按照模型構(gòu)建的三個要點,并結(jié)合C語言的特點,可重構(gòu)為四個層次,如圖2所示。第一個層次是抽象表達層,包括第3、7、10、11章,它的主要功能是實現(xiàn)對研究對象中的核心因素進行提取和抽象表達,其本質(zhì)是數(shù)據(jù)結(jié)構(gòu)。這種表達分為2個方面。其一,簡單的直譯型表達(對應于第3章)。其二,復雜事物的表達(對應于第7、10、11章)。當一個事物是通過多個屬性表征的時候,利用結(jié)構(gòu)體和共用體高耦合型的數(shù)據(jù)結(jié)構(gòu)。而且,當遇到復雜的對象時,采用數(shù)組、指針等表達技巧。第二個層次邏輯表達層,包括第4、5、6章,這三個章節(jié)分別介紹三種原子型邏輯結(jié)構(gòu)。第三個層次是問題求解層,包括第4章,該章節(jié)主要給出常見問題求解方法。第四個層次C語言特性層,包括第12、13、14章,這三章主要介紹C語言相比其它語言所獨有的特點與功能。
對于邏輯表達層,同樣包含兩個教學重點。一個是各邏輯結(jié)構(gòu)的等價性。例如,“while do”、“do while”以及“for”循環(huán)的異同和等價替換形式。另一個是特殊語法表達方式。如果“if”只有一句執(zhí)行代碼,可以省略“{}”。這兩個重點中的第二個從工程實踐的角度提出。教學經(jīng)驗發(fā)現(xiàn),受教者對特殊語法的不熟悉會造成代碼閱讀困難。
對于問題求解層,在適度增加深度的同時,需對廣度進行擴展。其中,深度的增加體現(xiàn)在引入數(shù)值計算的基礎內(nèi)容;廣度的擴展體現(xiàn)在保留原有諸如遞歸、排序等經(jīng)典算法的同時,引入基于迭代過程的學習算法思想。這個層次的兩個重點是所有教學重點的核心。
3.3 方案技術支撐
本文提到的方案技術支撐,主要是針對兩個問題提出解決方法。一個問題是,方案實施過程中,缺乏量化方法這一不足。在現(xiàn)有研究工作中,這一點較少被關注。
傳統(tǒng)的教學過程,主要通過課堂講解和課后作業(yè)結(jié)合的方法,來推動教學進度,加強教學效果。但這種方式很難及時地反饋受教者真實的學習狀態(tài)和當前水平,從而造成不能根據(jù)作業(yè)情況,反向指導教學活動的改進。另一方面,字面作業(yè)或電子版作業(yè),需要教學人員花費大量的精力來評判,教學周期緩慢,對于C語言程序設計大班授課的基礎性課程效率很不劃算。
針對以上問題,本文提出了以大數(shù)據(jù)分析為核心的WEB解決方案。該方案具有四方面的特點。其一,以一個教學周為周期,通過WEB發(fā)布題目和接收作業(yè),減少作業(yè)的形式感,其主要功能是自動化完成數(shù)據(jù)的采樣收集。其二,題目用英文表述,讓受教者在英文環(huán)境中,通過增加接觸頻率,加深對專業(yè)術語和概念的理解。其三,面向解題過程,重新設計題目。其四,采用統(tǒng)計學工具,實現(xiàn)數(shù)據(jù)分析。
4 結(jié)論
計算思維能夠和C語言程序設計教學進行有機的融合,通過對C語言教學目標中各個知識點的重新梳理和歸納,完全能夠?qū)⒂嬎闼季S的基本要點,很形象的表述出來。事實上,計算思維處于整個計算機學科的核心位置,它幾乎囊括了該學科的
各個層面,通過C語言程序設計這門課程,希望達到對計算思維內(nèi)涵較為全面的理解,略顯單薄。因此,C語言程序設計課程必須和計算機學科的其它主干課程,進行有機整合,橫向互聯(lián),才能實現(xiàn)對計算思維較好的詮釋。
作為一種基于思維方式的訓練,研究性學習方式,它符合計算機學科發(fā)展的趨勢,也符合新時期教育培養(yǎng)目標,適合C語言程序設計課程,具有很強的生命力和前瞻性。
參考文獻:
[1] 楊男才.基于計算思維的高中信息科技《算法與程序設計》教學探究[D].陜西,陜西師范大學,2013.
[2] 葛明珠.基于計算思維的協(xié)作學習模式在中學信息技術課程中的實踐與研究[D].陜西,陜西師范大學,2014.
[3] 譚浩強.C語言程序設計[M].清華大學出版社,2005.
[4] 陳廣群,孔發(fā)弟.案例教學法在C語言程序設計教學中的應用[J].南京廣播電視大學學報,2013(3):85-87.
[5] 陳廣群,孔發(fā)弟.C語言課堂教學改進初探[J].南京廣播電視大學學報,2009(2):47-49.