王 磊,葉 軍,陳素芬
(南昌工程學(xué)院 信息工程學(xué)院,江西 南昌 330099)
大學(xué)計(jì)算機(jī)基礎(chǔ)是普通高校本科人才培養(yǎng)計(jì)劃中的一門公共通識必修課程。隨著個人計(jì)算機(jī)的日益普及以及計(jì)算機(jī)在各行業(yè)中的廣泛應(yīng)用,一些曾經(jīng)為計(jì)算機(jī)專業(yè)學(xué)生所掌握的計(jì)算機(jī)專業(yè)知識已逐漸成為當(dāng)代大學(xué)生的通識。為了適應(yīng)這一變化形勢,九校聯(lián)盟率先提出關(guān)于加強(qiáng)非計(jì)算機(jī)類專業(yè)大學(xué)生計(jì)算思維能力的培養(yǎng)的倡議[1-3]。教育部高等學(xué)校大學(xué)計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會2015年下發(fā)的《大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)基本要求》,以及2017年7月第六屆“計(jì)算思維與大學(xué)計(jì)算機(jī)課程教學(xué)改革研討會”提出的高校設(shè)置計(jì)算機(jī)基礎(chǔ)課程教學(xué)實(shí)施方案中都體現(xiàn)并細(xì)化了以計(jì)算思維為導(dǎo)向改革教學(xué)內(nèi)容。同時全國各高校大學(xué)計(jì)算機(jī)基礎(chǔ)課程的教學(xué)改革也都在逐步、穩(wěn)妥地推進(jìn),當(dāng)前國內(nèi)大多數(shù)高校該課程教學(xué)的內(nèi)容均發(fā)生了較大的變化,由過去的以計(jì)算機(jī)基礎(chǔ)知識傳授,以Windows操作系統(tǒng)、Office辦公軟件等軟件操作技能培養(yǎng)為主的教學(xué)轉(zhuǎn)向以培養(yǎng)計(jì)算思維和理解計(jì)算機(jī)中信息處理的基本原理和方式為主,因而課程的培養(yǎng)目標(biāo)也隨之發(fā)生了根本性的變化,培養(yǎng)目標(biāo)轉(zhuǎn)向以培養(yǎng)計(jì)算思維以及對計(jì)算機(jī)基本工作原理的理解為導(dǎo)向,旨在提高非計(jì)算機(jī)專業(yè)本科生運(yùn)用計(jì)算機(jī)解決專業(yè)領(lǐng)域?qū)嶋H問題的能力,為專業(yè)領(lǐng)域的創(chuàng)新型設(shè)計(jì)和研究打好基礎(chǔ)。
目前,尚未有一個統(tǒng)一和權(quán)威的計(jì)算思維定義,一個普遍認(rèn)同的、較為系統(tǒng)的計(jì)算思維定義是由卡內(nèi)基·梅隆大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系周以真教授給出的[4],她認(rèn)為計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念去求解問題、設(shè)計(jì)系統(tǒng)和理解人類行為,其本質(zhì)是抽象和自動化;計(jì)算思維能力是地球上每個人都必須具備的基本技能,而不只是計(jì)算機(jī)科學(xué)家才具備,這正如人們都具備“閱讀、寫作、算術(shù)”能力一樣。作為人類認(rèn)識世界和改造世界的3種思維(邏輯思維、實(shí)證思維和計(jì)算思維)方式之一的計(jì)算思維,是以設(shè)計(jì)和構(gòu)造為特征的,是以計(jì)算機(jī)科學(xué)為代表的。周以真教授認(rèn)為計(jì)算思維無處不在,人人皆有之[5]。
對于剛?cè)雽W(xué)的大學(xué)新生而言,其邏輯思維能力和實(shí)驗(yàn)思維能力在中學(xué)階段已得到了較為系統(tǒng)和全面的培養(yǎng)和訓(xùn)練,但由于中學(xué)對信息技術(shù)課的重視程度不夠致使計(jì)算思維能力沒能得到應(yīng)有的培養(yǎng)和訓(xùn)練。為了提高應(yīng)用型本科院校大學(xué)生運(yùn)用計(jì)算機(jī)解決其專業(yè)領(lǐng)域生產(chǎn)實(shí)際問題的能力,進(jìn)行系統(tǒng)的設(shè)計(jì)和創(chuàng)新,大學(xué)生計(jì)算思維能力的培養(yǎng)刻不容緩,亟待加強(qiáng)。首當(dāng)其沖,需要明確計(jì)算思維培養(yǎng)的內(nèi)容。在文獻(xiàn)[6]的基礎(chǔ)上,筆者結(jié)合個人理解,認(rèn)為計(jì)算思維的培養(yǎng)由3部分構(gòu)成。
計(jì)算思維是伴隨人類計(jì)算工具的出現(xiàn)自然而然形成的,是自古有之的一種思維方法,也是每一個人都具有的一種技能[5]。然而,人們的計(jì)算思維活動通常是朦朧的、無意識的和自發(fā)的,在培養(yǎng)大學(xué)生計(jì)算思維意識的過程中應(yīng)消除學(xué)生對計(jì)算思維的神秘感,注重因勢利導(dǎo),將大學(xué)生的計(jì)算思維由無意識的形態(tài)激活為有意識的形態(tài),由自發(fā)的意識轉(zhuǎn)變?yōu)樽杂X的意識。對于應(yīng)用型本科院校,主要是培養(yǎng)學(xué)生運(yùn)用計(jì)算技術(shù)和計(jì)算機(jī)去解決各專業(yè)領(lǐng)域生產(chǎn)實(shí)際中問題的能力的思維意識。
計(jì)算思維方法是計(jì)算思維培養(yǎng)的核心內(nèi)容。人類使用的計(jì)算工具不同,相應(yīng)的計(jì)算思維方法就會有所不同和側(cè)重。這正如著名的計(jì)算機(jī)科學(xué)家、圖靈獎得主Edsger Wybe Dijkstra所說,“我們所使用的工具影響著我們的思維方式和思維習(xí)慣,從而也將深刻地影響著我們的思維能力。”為了學(xué)生能較好地理解和運(yùn)用這些方法,在實(shí)際的教學(xué)中可采用程序流程圖并結(jié)合案例來講解,如可以借助計(jì)算機(jī)強(qiáng)大的運(yùn)算能力,用窮舉法破解位數(shù)較少且組成單一的密碼。
計(jì)算思維的根本目的是解決問題,即問題求解、系統(tǒng)設(shè)計(jì)以及人類行為理解[4]。對于應(yīng)用型本科學(xué)生而言,能運(yùn)用計(jì)算機(jī)技術(shù)解決將來所面臨的專業(yè)實(shí)際問題就是計(jì)算思維能力培養(yǎng)的目標(biāo)所在。計(jì)算思維涉及特定的思想、方法、理論和技術(shù)[7],計(jì)算思維能力的培養(yǎng)絕非大學(xué)計(jì)算機(jī)基礎(chǔ)一門課程所能承擔(dān)的,所以計(jì)算思維的培養(yǎng)應(yīng)當(dāng)貫穿在大學(xué)所有的計(jì)算機(jī)基礎(chǔ)類課程之中,需要計(jì)算機(jī)基礎(chǔ)類課程群的支撐。
在大學(xué)計(jì)算機(jī)基礎(chǔ)課程中,幾乎每一個概念都對應(yīng)一種計(jì)算思維方法[8],如Cache 是預(yù)置和緩存方法、多核處理器是并行處理方法。計(jì)算思維方法分布在大學(xué)計(jì)算機(jī)基礎(chǔ)課程各章之中,厘清計(jì)算思維在大學(xué)計(jì)算機(jī)基礎(chǔ)課程各章的分布以及各章的教學(xué)重點(diǎn)內(nèi)容,有助于大學(xué)計(jì)算機(jī)基礎(chǔ)課程任課教師有的放矢地組織以計(jì)算思維為導(dǎo)向的教學(xué)。在此以馮祥勝、朱華生老師編寫的應(yīng)用型本科院校《大學(xué)計(jì)算機(jī)基礎(chǔ)》[6]為例進(jìn)行說明。
(1)緒論。本章的內(nèi)容是計(jì)算機(jī)的初識,主要介紹計(jì)算工具的發(fā)展簡史,計(jì)算機(jī)的特點(diǎn)、應(yīng)用領(lǐng)域以及計(jì)算機(jī)應(yīng)用新技術(shù)和計(jì)算思維的基本概念。人類計(jì)算工具的發(fā)展歷史就是一部人類運(yùn)用計(jì)算工具解決問題的歷史,也是一部計(jì)算思維的發(fā)展史。重點(diǎn)內(nèi)容是人類計(jì)算工具的發(fā)展簡史,計(jì)算機(jī)的特點(diǎn)、應(yīng)用領(lǐng)域以及計(jì)算思維的基本概念。
(2)計(jì)算機(jī)中信息的表示。介紹計(jì)算機(jī)中信息表示的方式。數(shù)值、圖形、圖像和聲音等信息采用二進(jìn)制表示是便于信息在計(jì)算機(jī)中的存儲、傳輸和處理。該部分內(nèi)容是計(jì)算思維能力培養(yǎng)的基礎(chǔ)。教學(xué)重點(diǎn)內(nèi)容是各類信息在計(jì)算機(jī)中的表示和存儲。
(3)計(jì)算機(jī)基本工作原理。熟悉馮·諾依曼體系結(jié)構(gòu)計(jì)算機(jī)的存儲程序工作原理有助于理解用計(jì)算機(jī)進(jìn)行信息處理的基本原理和過程,從而能更好地運(yùn)用計(jì)算機(jī)解決問題。計(jì)算機(jī)硬件結(jié)構(gòu)是實(shí)現(xiàn)計(jì)算思維本質(zhì)之一自動化(程序自動執(zhí)行)的硬件基礎(chǔ)。本章是計(jì)算思維能力培養(yǎng)的一個基本方面。教學(xué)重點(diǎn)內(nèi)容是計(jì)算機(jī)系統(tǒng)組成和信息處理的基本原理。
(4)程序設(shè)計(jì)基礎(chǔ)。本章介紹程序設(shè)計(jì)語言的基礎(chǔ)知識以及程序的3種基本控制結(jié)構(gòu),程序設(shè)計(jì)的基本方法、結(jié)構(gòu)和原則。程序是對系統(tǒng)的抽象,控制結(jié)構(gòu)是對問題求解步驟的抽象。編程是運(yùn)用計(jì)算機(jī)解決問題的根本,因而編程能力是計(jì)算思維培養(yǎng)的重要環(huán)節(jié)。教學(xué)重點(diǎn)內(nèi)容是結(jié)構(gòu)化程序設(shè)計(jì)和面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念和算法的流程圖表示。
(5)算法與數(shù)據(jù)結(jié)構(gòu)。算法是計(jì)算機(jī)的靈魂,是描述問題求解的有限的、確定的步驟,它可以看作是對特定計(jì)算思維方法的描述。數(shù)據(jù)結(jié)構(gòu)是解決數(shù)據(jù)在計(jì)算機(jī)中的表示和存儲問題,是運(yùn)用計(jì)算機(jī)實(shí)施信息處理的基礎(chǔ)。數(shù)據(jù)結(jié)構(gòu)可以視為在系統(tǒng)建模過程中對系統(tǒng)特征的抽象,它體現(xiàn)了計(jì)算思維本質(zhì)之一的抽象。本章是計(jì)算思維教學(xué)的核心內(nèi)容,教學(xué)重點(diǎn)是算法的基本概念、表示和設(shè)計(jì)方法,數(shù)據(jù)的邏輯結(jié)構(gòu)和物理結(jié)構(gòu)以及排序和查找等計(jì)算思維方法。
(6)操作系統(tǒng)。操作系統(tǒng)是合理組織計(jì)算機(jī)工作流程,管理其軟硬件資源,提高其效率,提供人機(jī)交互的界面的系統(tǒng)軟件。操作系統(tǒng)是實(shí)現(xiàn)計(jì)算思維本質(zhì)之一的自動化(程序自動執(zhí)行)的軟件基礎(chǔ),是計(jì)算機(jī)賴以實(shí)施信息處理的最基本的系統(tǒng)軟件,本章教學(xué)重點(diǎn)是操作系統(tǒng)的概念、功能以及進(jìn)程的概念和狀態(tài)轉(zhuǎn)換。
(7)數(shù)據(jù)庫系統(tǒng)。本章中的數(shù)據(jù)模型以及數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)中的三級模式和二級映像就體現(xiàn)出計(jì)算思維本質(zhì)之一的抽象。教學(xué)重點(diǎn)是數(shù)據(jù)庫的基本概念、數(shù)據(jù)模型基本概念、SQL語句。
(8)軟件工程。軟件工程是采用工程化的思想和方法去指導(dǎo)大型、復(fù)雜軟件的設(shè)計(jì)、開發(fā)和維護(hù),是開發(fā)大型軟件系統(tǒng)的一整套工程化的方法。本章介紹了工程化的計(jì)算思維方法,其教學(xué)重點(diǎn)是軟件工程的概念、結(jié)構(gòu)化分析和設(shè)計(jì)方法、程序的測試和調(diào)試。
(9)計(jì)算機(jī)網(wǎng)絡(luò)。計(jì)算機(jī)網(wǎng)絡(luò)的三大特點(diǎn)是資源共享、數(shù)據(jù)傳輸和分布式處理。聯(lián)網(wǎng)的計(jì)算機(jī)會增強(qiáng)數(shù)據(jù)的存儲的能力和復(fù)雜問題的求解能力。一些新技術(shù)如網(wǎng)格計(jì)算、物聯(lián)網(wǎng)、云計(jì)算就是基于網(wǎng)絡(luò)的。本章教學(xué)重點(diǎn)是計(jì)算機(jī)網(wǎng)絡(luò)的基本概念、局域網(wǎng)的基本概念和基本技術(shù)。
運(yùn)用程序設(shè)計(jì)解決問題是培養(yǎng)計(jì)算思維的一種有效和直接的方法。鑒于目前大部分大一新生都未曾學(xué)習(xí)過程序設(shè)計(jì)語言,需要開設(shè)針對大一學(xué)生計(jì)算思維技能培養(yǎng)的先修程序設(shè)計(jì)課程,如可選擇Scratch完全在線開發(fā)的Android編程環(huán)境,Google App Inventor等可視化、模塊化、易于入門學(xué)習(xí)的程序設(shè)計(jì)語言。此外,還可通過建模與仿真、游戲軟件等方式培養(yǎng)學(xué)生的計(jì)算思維技能,不過此法不宜在課堂使用。程序流程圖是一種能有效地表達(dá)問題解決方法的圖形化工具,具有直觀、簡明、易用的特點(diǎn),適宜在大學(xué)計(jì)算機(jī)基礎(chǔ)課程中的計(jì)算思維教學(xué)中使用。
通過程序流程圖的設(shè)計(jì)促進(jìn)學(xué)生學(xué)習(xí)計(jì)算思維的兩個教學(xué)案例如下。
3.2.1 “百錢百雞”問題
“百錢百雞”是我國古代數(shù)學(xué)家張丘建在《算經(jīng)》一書中提出的一個著名問題,該問題敘述如下:雞翁一,值錢五;雞母一,值錢三;雞雛三,值錢一;百錢買百雞,則翁、母、雛各幾何?
這個問題屬于典型的不定方程求解問題,由于不定方程存在多個解,一般是采用窮舉法來窮盡每一種可能性,從而得出所有的可行解?!鞍馘X百雞”問題采用窮舉法來求解,需要714(21×34)次的試湊,如果不借助于特定的技巧,單靠用窮舉法進(jìn)行試湊,如此龐大數(shù)量的重復(fù)試湊對人而言必定是枯燥乏味的,且在使用窮舉法求解的過程中還很容易出錯,由此還會遺漏一部分解。人們可憑借計(jì)算機(jī)的強(qiáng)大計(jì)算能力來窮盡每一種可能性,因而運(yùn)用計(jì)算機(jī)解決此類問題是可行的和高效的,既不會出錯也不會有遺漏。表達(dá)“百錢百雞”問題求解算法的程序流程圖如圖1所示,變量cock、hen、chicken分別表示公雞、母雞和小雞的只數(shù),“=”表示賦值運(yùn)算符。
圖1 “百錢百雞”問題的程序流程圖
“百錢百雞”問題的程序流程圖中蘊(yùn)含了迭代、窮舉算法等常見的計(jì)算思維技能。通過該問題的講解可傳授給學(xué)生這樣的認(rèn)知:運(yùn)用計(jì)算思維和計(jì)算機(jī)可以把人類從枯燥乏味的重復(fù)勞動中解脫出來,前提是要學(xué)會特定的計(jì)算思維技能,并且會通過編程實(shí)現(xiàn)自己的想法,由此也在一定程度上激發(fā)學(xué)生學(xué)習(xí)計(jì)算思維的興趣。
3.2.2 定積分的計(jì)算問題
定積分的數(shù)學(xué)計(jì)算方法是借助于不定積分公式求出初等函數(shù)形式的原函數(shù),并通過積分的上、下限來解決定積分的計(jì)算問題,但求解特定形式的不定積分是需要一定技巧的,對上述原函數(shù)不是初等函數(shù)的定積分計(jì)算問題則具有較大的難度。
計(jì)算機(jī)科學(xué)中的方法是先通過對積分區(qū)間進(jìn)行若干等份的劃分,然后使用迭代法累加各個小區(qū)間的梯形面積來實(shí)現(xiàn)定積分計(jì)算的,這與定積分的數(shù)學(xué)定義一致,是一種直觀、簡明且有效的方法,在使用該方法時避免了求原函數(shù),因而適用面廣,也易于編程實(shí)現(xiàn)。
這個例子說明運(yùn)用計(jì)算思維中的迭代法并結(jié)合數(shù)學(xué)定義能直觀、簡明和有效地解決原函數(shù)不是初等函數(shù)的定積分計(jì)算問題,是工程化計(jì)算思維的體現(xiàn),其中蘊(yùn)含了迭代、分解、抽象等計(jì)算思維技能。
圖2 定積分計(jì)算方法的程序流程圖
程序流程圖是人們描述解決問題的方法、思路的一種圖形表示,其特點(diǎn)是直觀形象、邏輯性強(qiáng)和易于理解。將程序流程圖運(yùn)用于大學(xué)計(jì)算機(jī)基礎(chǔ)課程中計(jì)算思維的教學(xué),即用程序流程圖中統(tǒng)一規(guī)定的標(biāo)準(zhǔn)符號描述解決問題的具體步驟。一方面,可將計(jì)算思維涉及的問題解決思路和步驟清晰地標(biāo)識出來,使抽象的計(jì)算思維變得直觀形象,易于為學(xué)生所接受,由此激發(fā)學(xué)生學(xué)習(xí)計(jì)算思維的興趣,喚起學(xué)生學(xué)習(xí)計(jì)算思維的熱情。因此,借助于程序流程圖可促進(jìn)學(xué)生理解和掌握迭代、分解(功能模塊化)、組合等計(jì)算思維技能以及解決問題的算法思想,從而有利于學(xué)生計(jì)算思維意識、方法和能力的培養(yǎng)。另一方面,程序流程圖還能增進(jìn)學(xué)生對計(jì)算機(jī)解決實(shí)際問題過程的認(rèn)知和了解。這些均可以提高應(yīng)用型本科學(xué)校非計(jì)算機(jī)專業(yè)學(xué)生運(yùn)用計(jì)算機(jī)解決專業(yè)領(lǐng)域?qū)嶋H問題的能力,達(dá)到大學(xué)計(jì)算機(jī)基礎(chǔ)課程的教學(xué)目標(biāo)。
綜上,結(jié)合具體案例設(shè)計(jì)程序流程圖進(jìn)行大學(xué)計(jì)算機(jī)課程中計(jì)算思維教學(xué)的方法,是一種能促進(jìn)學(xué)生計(jì)算思維技能提高的教學(xué)方法。
為了響應(yīng)九校聯(lián)盟提出的關(guān)于加強(qiáng)非計(jì)算機(jī)類專業(yè)大學(xué)生計(jì)算思維能力的培養(yǎng)的倡議以及符合教育部高等學(xué)校大學(xué)計(jì)算機(jī)課程教學(xué)指導(dǎo)委員會提出的有關(guān)大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)的基本要求,在2010年,南昌工程學(xué)院計(jì)算機(jī)基礎(chǔ)教研室就結(jié)合應(yīng)用型本科院校的實(shí)際著手改革計(jì)算機(jī)基礎(chǔ)類課程的教學(xué)內(nèi)容和方法并取得了初步的成果[9],其中大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)改革的指導(dǎo)思想是由以前對常用軟件的操作技能為主的教學(xué)轉(zhuǎn)變?yōu)橐杂?jì)算思維的培養(yǎng)和計(jì)算機(jī)信息處理模式的理解為中心的教學(xué)內(nèi)容。這一改革既給計(jì)算機(jī)基礎(chǔ)課程的教學(xué)帶來了挑戰(zhàn),也帶來了機(jī)遇。
以計(jì)算思維為導(dǎo)向的大學(xué)計(jì)算機(jī)基礎(chǔ)課程教學(xué)改革是一項(xiàng)在新形勢下適合非計(jì)算機(jī)專業(yè)大學(xué)計(jì)算機(jī)基礎(chǔ)教學(xué)需要的教學(xué)改革活動。在搞清楚計(jì)算思維培養(yǎng)的內(nèi)涵的基礎(chǔ)上,尚需厘清大學(xué)計(jì)算機(jī)基礎(chǔ)課程各章中所蘊(yùn)含的計(jì)算思維思想、方法、理論和技術(shù)以有利于組織教學(xué),通過在教學(xué)中采用設(shè)計(jì)程序流程圖的方式來幫助學(xué)生理解計(jì)算思維進(jìn)而培養(yǎng)學(xué)生的計(jì)算思維能力。筆者下一步教學(xué)研究工作的重點(diǎn)是探討如何有效地測試和評價大學(xué)生在大學(xué)計(jì)算機(jī)基礎(chǔ)課程中習(xí)得的計(jì)算思維技能。