999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于計算思維的計算機表達式教學方法實踐

2017-06-19 19:31:59張化川楊林黎在萬
現代計算機 2017年13期
關鍵詞:語義計算機思維

張化川,楊林,黎在萬

(重慶郵電大學軟件工程學院,重慶 400065)

基于計算思維的計算機表達式教學方法實踐

張化川,楊林,黎在萬

(重慶郵電大學軟件工程學院,重慶 400065)

針對計算機表達式教學中普遍存在重知識輕運用,甚至有些教材中有違反計算機編譯原理等問題,提出按照運算符的優先級、結合律以及運算符中操作數的順序確定運算符的執行順序和按照運算符的語義在馮·諾依曼機上逐個計算表達式中運算符的兩步教學方法。學生在運用該方法的過程中,學習數據類型、變量和運算符等相關的知識和技術,培養其程序流程的編程思維方式,真正落實CDIO工程教育思想中“做中學”和“基于項目教育和學習”的方針,培養學生的“計算思維”能力。

重慶市研究生教育教學改革研究項目(No.yjg143008)、全日制專業碩士研究生實踐創新能力提升研究(No.yjg153037)、重慶市大學生創新創業訓練計劃項目、重慶郵電大學教學改革研究項目(No.XJG1215)

0 引言

表達式是計算機語言的核心內容,在程序設計課程的教學中具有重要地位,但實際的教學過程中,注重語法等方面的知識傳授,對語義等方面的知識重視不夠,也沒有將所涉及到的基礎知識系統組織起來講授,缺少運用這些知識解決實現問題的教學內容,導致學生只能從一般的數學角度理解計算機表達式,不能理解計算機表達式在計算機中的運算過程,沒有真正理解計算機表達式,出現閱讀、編寫和調試程序等困難情況,最終嚴重影響了學生編程能力的培養。

本文在CDIO工程教育思想指導下,分析了目前教學中存在的主要問題,根據計算機編譯表達式的基本原理,提出了按照運算符的優先級、結合律以及運算符中操作數的順序確定運算符的執行順序和按照運算符的語義在馮·諾依曼機上逐個計算表達式中運算符的兩步教學方法。

在這種教學方法下,學生在確定表達式中運算符的執行順序和計算運算符的過程中,學習數據類型、變量和運算符等相關的知識和技術,培養其程序流程的編程思維方式,真正落實CDIO工程教育思想中“做中學”和“基于項目教育和學習”的方針[1-2],培養學生的“計算思維”,探尋一種計算思維能力培養“落地”[3]的新方法。

1 以計算思維培養為目標重新確定教學重點和方法

2006年3月,美國卡內基·梅隆大學計算機科學系主任周以真(Jeannette M.Wing)教授在美國計算機權威期刊Communications of the ACM雜志上給出,并定義了計算思維(Computational Thinking)。周教授認為:計算思維是運用計算機科學的基礎概念進行問題求解、系統設計,以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動[4-5]。

計算思維即運用計算機科學的基礎概念去求解問題 、設計系統和理解人類的行為[6-7]。計算思維包含兩個A[4,8]:Abstraction抽象,計算思維同時在多個抽象層次上同時進行,計算思維定義層次間的關系;Automa鄄tion自動化,即計算思維的思考方式是:使抽象層次及其關系機械化。

計算機表達式來源于數學表達式,表示了計算機中的一個操作序列,從計算思維角度來講,就是將計算機中的一個操作序列抽象為表達式,將操作抽象為運算符,序列抽象為運算符的優先級和結合律,以及運算符操作數的計算順序,將操作的對象抽象為變量和數據類型,并Automation自動化地計算這個操作序列。因此,計算機表達式的教學重點為,根據表達式的數學特性確定表達式中運算符的計算順序,并在馮·諾依曼體系結構(又稱馮·諾依曼機)上Automation自動化地計算這個操作序列。在確定運算符的計算順序中,學習運算符的優先級和結合律,從數學的抽象層次理解掌握表達式,在計算表達式過程中,學習運算符所規定的操作步驟,學習理解運算符的語義,學習理解變量及數據類型,從計算機技術層次理解掌握表達式。

2 表達式的教學方法和教學重點

本文根據計算機編譯表達式的原理,提出了按照運算符的優先級、結合律以及運算符中操作數的順序確定運算符的執行順序和按照運算符的語義在馮·諾依曼機上逐個計算表達式中運算符的兩步教學方法。

學生在確定表達式中運算符的執行順序和計算運算符的過程中,學習數據類型、變量和運算符等相關的知識和技術,培養程序流程的編程思維方式。

從本質上講,計算機表達式描述的是一個計算機中的操作序列,并沒有要求滿足交換律和結合律等數學定律,在實際編程中,程序員也不會關注這些數學定律,而是關注按照表達式規定操作順序,逐個進行運算,最后能否得預期的結果。因此,確定表達式中運算符的順序,是一個程序員必須掌握的方法。

計算機語言很多,對表達式的編譯方法有一定的區別,但都基于相同的原理和方法,這些原理和方法都要落腳到表達式的遞歸定義,表達式的遞歸定義實際上規定了表達式的語法。為了便于理解,我們給出了如下的遞歸定義。

(1)常量和變量等是表達式;

(2)表達式經過運算符運算后仍然是一個表達式。

“遞歸”這種方法,在中學數學的數學歸納法中已深入學習,很容易從遞歸或遞推兩個方向理解遞歸定義,遞推方向的順序剛好是表達式的運算順序,遞歸過程就是確定一個表達式中運算順序的過程,這也是編譯表達式的數學基礎。我們將這個過程總結如下:

(1)根據優先級和結合性找到表達式中最后計算的運算符;

(2)根據這個運算符規定的操作數順序依次計算所包含的表達式,然后再計算這個運算符;

(3)若表達式已是變量或常量,不用計算。

C++標準文檔[9-10]中,計算機語言中的大多數運算符都沒有規定操作數的計算順序,只有少部分運算符,如邏輯運算符,規定了操作數的計算順序,導致了不同的編譯器可能計算順序不同,但在一個編譯器上計算順序一定是確定的,這可能導致編寫的表達式出現兼容性問題,在教學中需要重復強調。為了便于講解和學習,本文假設沒有規定操作數計算順序的運算符,它的操作數計算順序都是從左到右依次計算。

確定了表達式中運算符的計算順序后,再根據運算符的語義,在馮·諾依曼機上依次計算所有運算符。從硬件上講,計算機的種類很多,但直到現在,仍然沒有突破馮·諾依曼體系結構,仍然是程序設計的理論基礎,所以選擇從邏輯上在馮·諾依曼機上運行表達式。

學生在確定表達式中運算符的執行順序和計算運算符的過程中,學習數據類型、變量和運算符等相關的知識和技術。

(1)變量和數據類型

變量的概念來源于數學中的“變量”,具有數學層次的抽象特性,也具有計算機技術層面的抽象特性,即代表計算機中的內存,這也導出了數據類型的概念。從數學層次理解變量比較容易,教學的重點是從計算機技術層面掌握變量及數據類型的概念。

從計算機技術層面來講,變量代表的就是計算機中的一塊內存,涉及到變量名、數據類型、存貯的值等概念,內存的首地址、內存的長度等術語,還涉及到為變量分配內存、從變量中取數據,將數據存到變量等3個基礎操作,這些是教學的重點也是教學的難點。

如圖1所示,描述了變量相關教學內容之間的關系,便于從計算機技術層面掌握相關的概念。

圖1 變量相關教學內容間的關系

(2)運算符

從計算機技術層面講,運算符表示了一個操作序列,包含語法和語義兩方面的內容,運算符語法相對比較好理解,語義是教學的重點,它規定了運算符表示的操作序列以及操作對象的要求,每個運算符還應有一個運算結果,因此,運算符的主要教學內容包括操作對象、操作序列、運算結果及類型轉換等內容。這些在計算機語言標準文本中都有詳細的規定,但對學生是新的內容,是教學的難點。下面舉例說明教學的過程。

3 教學舉例

國內外大部分高校都將C++列為計算機大類專業入門語言,并被程序員廣泛使用。因此本文選用C++語言中具有代表性的數學表達式和計算機中特殊的表達式,舉例闡述運用本文提出的教學方法進行教學的過程。

表達式x=c*f+(f/u-i%3)中c、f、u、i分別為char、float、unsigned、int類型的變量,該表達式不僅囊括了幾乎所有算術運算,同時也涉及到不同數據類型間的轉換,因此極具代表性。轉換規則表大部分教材[11-13]中都有描述,本文不再累述,下文將舉例說明。

圖 2采用本文兩步教學法確定的表達式執行順序

(1)表達式中運算符的計算順序

1)根據運算符的優先級和結合律確定表達式x= c*f+(f/u-i%3)中最后執行的運算符為“=”。

2)根據運算符“=”的操作數的順序依次計算表達式x和c*f+(f/u-i%3)。由于表達式x中沒有運算符,因此不需要計算,只需計算表達式c*f+(f/u-i%3)。

3)根據運算符的優先級和結合律確定表達式c*f+(f/u-i%3)中最后執行的運算符為“+”。

4)根據運算符“+”的操作數的順序依次計算表達式c*f和(f/u-i%3)。

5)表達式c*f運算符只有 “*”,直接計算表達式c*f,在圖2中標記為①。

6)根據運算符的優先級和結合律確定表達式 (f/ u-i%3)中最后執行的運算符為“-”。表達式(f/u-i%3)中的“()”的作用為改變運算符的優先級,并無其他語義。

7)根據運算符“-”的操作數的順序依次計算表達式f/u和i%3。在圖2中分別標記為②、③。

8)直接計算表達式(f/u-i%3)中的運算符“-”,在圖2中標記為④。

9)直接計算表達式c*f+(f/u-i%3)中的運算符“+”,在圖2中標記為⑤。

10)直接計算表達式x=c*f+(f/u-i%3)中的運算符“=”,在圖2中標記為⑥。

(2)按順序計算表達式中的運算符

1)根據運算符“*”的語義直接計算表達式c*f。從變量c中值取出一個char類型的值轉換為double,再從變量f中取出一個float類型的值轉換為double,相乘后得到一個double類型的值。

2)根據運算符“/”的語義直接計算表達式f/u。從變量f中取出一個float類型的值轉換為double,再從變量u中取出一個unsigned char型的值轉換為double,相除后得到一個double類型的值。

3)根據運算符“%”的語義直接計算表達式i%3。從變量i中取出一個int類型的值對3取余,得到一個int類型的值。

4)根據運算符“-”的語義直接計算表達式(f/u-i% 3)。將(的計算結果與轉換成double類型的(的計算結果相減,得到一個double類型的值。

5)根據運算符“+”的語義直接計算表達式c*f+(f/u-i%3)。將(的計算結果與(的計算結果相加,得到一個double類型的值。

⑥根據運算符“=”的語義直接計算表達式x=c*f+(f/u-i%3)。將(的計算得到的double類型的值存到表達式x的指定內存中,得到變量x。

圖3 確定u=i++-,a=++i執行順序的過程

根據前面講述的方法,在圖3中,標出了該表達式的計算順序,計算次序如下。

①根據“++”的語義計算表達式i++。i++中的“++”為后增量,將1加到變量i中,并得到原來的值(未加1的整數)。

②根據運算符“=”的語義計算表達式u=i++。將①得到的值存在到表達式u指定的內存中,得到變量u。

③根據“++”的語義計算表達式++i。++i中的“++”為前增量,將1加到變量i中,并得到變量i(左值lval鄄ue)。

④根據運算符“=”的語義計算表達式a=++i。將③變量i的值存取出,存到表達式a指定的內存中。

⑤根據運算符“,”的語義計算表達u=i++,a=++i。運算符“,”的語義是從左到右依次計算各個表達式,結果是最后一個表達式的計算,即④得到的變量a。

4 結語

本文選取表達式作為教學研究實踐內容,提出了按照運算符的優先級、結合律以及運算符中操作數的順序確定運算符的執行順序和按照運算符的語義在馮·諾依曼機上逐個計算表達式中運算符的兩步教學方法,該方法在傳授語法知識的同時,更加注重語義等方面知識的傳授。學生運用該方法在確定表達式中運算符的執行順序和計算運算符的過程中,系統學習數據類型、變量和運算符等相關的知識和技術,真正理解計算機表達式在計算機中的運算過程,真正理解計算機表達式,為閱讀、編寫和調試程序打下堅實基礎,真正落實了CDIO工程教育思想中“做中學”和“基于項目教育和學習”的方針,培養了學生的“計算思維”能力。

[1]李竹林.基于CDIO教育理念的高校計算機專業課程教學改革探討[J].教育與職業,2012(20):127-128.

[2]查建中.論“做中學”戰略下的CDIO模式[J].高等工程教育研究,2008(03):1-6.

[3]馮博琴.對于計算思維能力培養“落地”問題的探討[J].中國大學教學,2012(09):6-9.

[4]Jeannette M.Wing.Computational Thinking[J].Communication of the ACM,2006,49(3):33-35.

[5]姚天昉.在程序設計課程中引入“計算思維”的實踐[J].中國大學教學,2012(02):61-62.

[6]韓秋楓,孔波,李祁.大學計算機課程引入基于計算思維的問題探究式教學的思考[J].計算機工程與科學,2014(04):186:190.

[7]陳杰華,戴麗娟.以培養計算思維為核心的程序設計實驗教學[J].實驗技術與管理,2011(01):125~127.

[8]董榮勝.計算思維與計算機導論[J].計算機科學,2009(04):50~52.

[9]Kenneth Slonneger,Barry L.Kurtz.Formal Syntax and Semantics of Programming Languages:a Laboratory Based Approach[M].USA:Addison-Wesley Pub.Co.,1995.

[10]Internationg Standard-C++Standard ISO/IEC14882[M].American National Standards Institute,1998.

[11]錢能.C++程序設計教程——設計思想與實現[M].北京:清華大學出版社,2009.

[12]譚浩強.C程序設計[M].北京:清華大學出版社,2009.

[13]葉乃文,王丹.Java語言程序設計教程[M].北京:機械工業出版社,2010.

Practice of Com puter Expression Teaching Method Based on Com putational Thinking

ZHANG Hua-chuan,YANG Lin,LIZai-wan
(School of Software Engineering,Chongqing University of Posts and Telecommunications,Chongqing 400065)

According to ignoring knowledge application,even violating compilation principle of computer about teaching programming expression, puts forward two steps teachingmethod.According to operator priority,associative property,and the sequential of operation number in the two sides of the operator,we can determine the order of executing operator and calculating expressions one by one in the John von Neu鄄mann machine.Applies thismethod,students are going to lean the knowledge and technologies about data types,variables and operators, and it is going to train way of programming thinking.It really implements the policy of CDIO engineering education thinking of learning by doing and educating and learning in project,and trains the ability of Computational Thinking.

張化川(1979-),男,四川大竹人,碩士,實驗師,從事領域為計算機基礎課程的教學以及神經網絡研究工作

2017-03-09

2017-04-20

1007-1423(2017)13-0007-05

10.3969/j.issn.1007-1423.2017.13.002

計算機語言;計算思維;表達式;CDIO

楊林(1995-),男,山東青島人,本科,從事領域為軟件建模研究工作

黎在萬(1995-),女,四川瀘縣人,本科,從事領域為軟件建模研究工作

Programming Languages;Computational Thinking;Programming Expression;CDIO

猜你喜歡
語義計算機思維
思維跳跳糖
思維跳跳糖
思維跳跳糖
思維跳跳糖
計算機操作系統
語言與語義
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
“上”與“下”語義的不對稱性及其認知闡釋
現代語文(2016年21期)2016-05-25 13:13:44
認知范疇模糊與語義模糊
主站蜘蛛池模板: 免费看久久精品99| 97综合久久| 亚洲视频无码| 国产成人狂喷潮在线观看2345| 天天综合网色| 看国产毛片| 狠狠躁天天躁夜夜躁婷婷| 日韩欧美色综合| 波多野结衣视频一区二区 | 午夜国产精品视频黄| 国产人免费人成免费视频| 日韩亚洲综合在线| 无码综合天天久久综合网| 亚洲精品国产日韩无码AV永久免费网 | 看国产一级毛片| 色精品视频| 国产一级毛片网站| 丝袜久久剧情精品国产| 精品福利视频网| 亚洲国产理论片在线播放| 91视频青青草| 欧美亚洲国产一区| 国产视频入口| 性欧美在线| 一本大道视频精品人妻| 国产又色又刺激高潮免费看| 台湾AV国片精品女同性| 国产一级α片| 成人精品在线观看| 中国毛片网| 91麻豆精品国产91久久久久| 国产精品成人第一区| 伊人久久大香线蕉综合影视| 天堂va亚洲va欧美va国产| 午夜老司机永久免费看片| 激情综合网址| 久操中文在线| 久久亚洲国产最新网站| 激情综合五月网| 91福利片| 亚洲精品va| 国产精品不卡永久免费| a亚洲天堂| 欧美第二区| 亚洲毛片一级带毛片基地| 强乱中文字幕在线播放不卡| 青青青伊人色综合久久| 精品视频第一页| 国产内射一区亚洲| 538国产视频| 国产丝袜91| 免费国产黄线在线观看| 国产成人亚洲综合A∨在线播放| 国产成人精品在线| 伊人久久大线影院首页| 国产激情无码一区二区APP | 欧美日韩第三页| 暴力调教一区二区三区| 亚洲一级色| 色成人综合| 88av在线看| 亚洲人妖在线| 亚洲人成网线在线播放va| 在线欧美日韩国产| 亚洲日韩久久综合中文字幕| 精品一區二區久久久久久久網站| 无码区日韩专区免费系列 | 欧美不卡视频在线| 亚洲色欲色欲www网| 亚洲IV视频免费在线光看| 97一区二区在线播放| yjizz视频最新网站在线| 日韩欧美网址| 91精品国产自产91精品资源| 国产91精品调教在线播放| 高h视频在线| 国产真实自在自线免费精品| 日韩大片免费观看视频播放| 成人福利免费在线观看| 国产18在线播放| 国产夜色视频| 国产成人免费手机在线观看视频|