周倩
[摘? ? ? ? ? ?要]? 現(xiàn)今社會(huì)科學(xué)技術(shù)不斷進(jìn)步,尤其是計(jì)算機(jī)的進(jìn)步給我們的生活和工作帶來了極大的便利。計(jì)算機(jī)語言教學(xué)也要與時(shí)俱進(jìn),這樣才能夠讓學(xué)生適應(yīng)新時(shí)期的要求,為國家的科學(xué)進(jìn)步作貢獻(xiàn)。探討計(jì)算機(jī)語言教學(xué)的轉(zhuǎn)變,以微信小程序開發(fā)為例進(jìn)行闡述,希望給老師提供一些參考。
[關(guān)? ? 鍵? ?詞]? 計(jì)算機(jī)語言;程序設(shè)計(jì);思維培養(yǎng);面向過程;面向?qū)ο?/p>
[中圖分類號(hào)]? G712? ? ? ? ? ? ? ? ? ?[文獻(xiàn)標(biāo)志碼]? A? ? ? ? ? ? ? ? ? ? ? [文章編號(hào)]? 2096-0603(2019)09-0078-02
新時(shí)期科學(xué)技術(shù)的進(jìn)步改變著我們的生活,現(xiàn)在各行各業(yè)都在應(yīng)用計(jì)算機(jī)技術(shù)并取得了飛速的發(fā)展,大家也在不斷加強(qiáng)計(jì)算機(jī)技術(shù)學(xué)習(xí)。高校和職業(yè)院校也開設(shè)了程序設(shè)計(jì)課程,讓學(xué)生能夠更好地學(xué)習(xí)程序設(shè)計(jì),增強(qiáng)學(xué)生的計(jì)算機(jī)思維,以便更好地讓計(jì)算機(jī)來幫助大家解決實(shí)際中的問題。我們知道計(jì)算機(jī)相關(guān)知識(shí)更新?lián)Q代的速度非???,計(jì)算機(jī)語言從機(jī)器語言、匯編語言以及高級語言等幾個(gè)階段共同發(fā)展開來。高級語言包括面向?qū)ο笠约懊嫦蜻^程兩種具體的語言,種類多達(dá)好幾十種。現(xiàn)在很多學(xué)校開設(shè)了程序設(shè)計(jì)的課程,而不同的課程依托的基礎(chǔ)語言不同,所以在教學(xué)的過程中,也存在一些問題。文章根據(jù)教學(xué)實(shí)踐過程中出現(xiàn)的問題進(jìn)行了探討,提出了怎樣培養(yǎng)學(xué)生的程序思維模式的措施,希望能夠促進(jìn)老師教學(xué)質(zhì)量的提升,能夠讓學(xué)生與時(shí)俱進(jìn),不斷學(xué)習(xí),提高學(xué)習(xí)的質(zhì)量。
一、計(jì)算機(jī)語言教學(xué)存在問題
現(xiàn)在計(jì)算機(jī)相關(guān)專業(yè)的課程中,通常會(huì)有C語言、可視化程序語言設(shè)計(jì)等。根據(jù)現(xiàn)實(shí)社會(huì)的需要,老師給學(xué)生講解一系列的軟件開發(fā)?,F(xiàn)在比較流行微信,微信里面有各種各樣的小程序,教學(xué)過程中老師會(huì)面向?qū)ο笳Z言給學(xué)生講Java程序設(shè)計(jì)。學(xué)校計(jì)算機(jī)專業(yè)還包括數(shù)值計(jì)算,學(xué)生在學(xué)習(xí)程序設(shè)計(jì)的過程中,相關(guān)的語言種類非常多,但是在調(diào)查中我們發(fā)現(xiàn)很多學(xué)生的編程能力僅僅是停留在語法規(guī)則上,學(xué)生雖然學(xué)了很多知識(shí),但卻不能合理使用。同時(shí)教師也沒有根據(jù)課程知識(shí)點(diǎn)去有效地組織教學(xué),這樣就導(dǎo)致學(xué)生雖然學(xué)習(xí)了很多計(jì)算機(jī)語言,但是對編程仍然停留在感性的認(rèn)識(shí)上面,沒有形成基本的編程思維,學(xué)生計(jì)算機(jī)語言學(xué)習(xí)的深度和廣度不夠。不同的學(xué)生對計(jì)算機(jī)編程的領(lǐng)悟能力不同,而教學(xué)側(cè)重點(diǎn)也很難把握。由于課時(shí)的原因,很多老師把重點(diǎn)放在基礎(chǔ)語法的講授上,關(guān)于一些程序設(shè)計(jì)的高級應(yīng)用并沒有給學(xué)生展開教學(xué)。這在根本上導(dǎo)致學(xué)生雖然學(xué)習(xí)了很多語言,但是出現(xiàn)學(xué)而不精的情況。另外,學(xué)生在學(xué)習(xí)過程中也沒有建立一個(gè)計(jì)算機(jī)語言思維方式,很多學(xué)生沒有形成計(jì)算機(jī)語言的學(xué)習(xí)框架,沒有在一定高度上把握好一門語言,學(xué)生并沒有把學(xué)到的知識(shí)融會(huì)貫通,在程序設(shè)計(jì)過程中仍然欠缺相應(yīng)的思維模式,老師在教學(xué)過程中沒有合理引導(dǎo)學(xué)生幫助學(xué)生提升設(shè)計(jì)的思維能力。學(xué)生在學(xué)習(xí)過程中,沒有對程序設(shè)計(jì)語言有一個(gè)發(fā)展的認(rèn)識(shí)。當(dāng)今社會(huì)不斷進(jìn)步,計(jì)算機(jī)語言也在不斷演變,現(xiàn)在嵌入式開發(fā)過程中C語言仍然是比較流行的一種語言,面向?qū)ο蟮牡湫驼Z言有C++和Java。通常情況下,學(xué)生學(xué)習(xí)了C語言以后再學(xué)習(xí)高級的語言。有些學(xué)生覺得C語言容易掌握,但是面向?qū)ο蟮恼Z言就掌握得不是很好了,這就導(dǎo)致學(xué)生在程序設(shè)計(jì)開發(fā)的過程中,會(huì)出現(xiàn)不知所措的情況。
二、在計(jì)算機(jī)語言教學(xué)中培養(yǎng)學(xué)生的思維
當(dāng)今社會(huì)計(jì)算機(jī)知識(shí)更新變化很快,計(jì)算機(jī)硬件也在時(shí)刻更新,所以計(jì)算機(jī)硬件的更新又會(huì)觸動(dòng)軟件的更新。很多優(yōu)秀的計(jì)算機(jī)語言便會(huì)應(yīng)運(yùn)而生,它們的出現(xiàn)為軟件程序的開發(fā)與更新提供了新的渠道。在這樣的情況下,老師在教學(xué)過程中要站在一定的高度,讓學(xué)生學(xué)會(huì)計(jì)算機(jī)語言的邏輯思維,掌握計(jì)算機(jī)的語言思維方式,能夠建立一個(gè)語言學(xué)習(xí)的框架體系,學(xué)會(huì)程序設(shè)計(jì)的思維模式。知識(shí)的更新?lián)Q代速度非??欤抑R(shí)也是無窮無盡的,教師應(yīng)該告訴學(xué)生怎樣去學(xué)習(xí),不斷提升學(xué)生的程序設(shè)計(jì)素養(yǎng)。
(一)學(xué)習(xí)框架式的程序設(shè)計(jì)語言的基礎(chǔ)知識(shí)
計(jì)算機(jī)語言學(xué)習(xí)的過程和自然語言學(xué)習(xí)的過程有些類似,這里面也會(huì)有語法詞匯以及語句組織規(guī)律等相關(guān)方面的知識(shí),我們在編寫程序的時(shí)候就和寫文章一樣,做項(xiàng)目就像是編寫一本書。寫文章首先要有一個(gè)良好的構(gòu)思,搭好框架以后再寫。同樣學(xué)生在學(xué)習(xí)編寫程序的時(shí)候,也要先寫一個(gè)程序的框架,站在一定的高度把握程序設(shè)計(jì)語言的特征,然后再學(xué)習(xí)語言的組織方式。把一個(gè)大問題進(jìn)行分解,分解成若干個(gè)小的問題,然后再逐一解決,這也是實(shí)施逐層分解的思想。老師在教學(xué)過程中要認(rèn)真研究課本,每一個(gè)章節(jié)里面都有一個(gè)小的思想,由此圍繞著一個(gè)思想展開描述。在學(xué)習(xí)C語言程序的過程中,一個(gè)項(xiàng)目的程序是由若干個(gè)源程序構(gòu)成的,每一個(gè)源程序都是圍繞程序完成的功能來編寫的,在每一個(gè)源程序里面,都會(huì)有程序的組織模式,源程序是由很多相關(guān)函數(shù)以及說明的語句構(gòu)成的。比如Java語言簡單,面向?qū)ο螅m合手機(jī)游戲、手機(jī)APP的開發(fā),尤其是現(xiàn)在的微信小程序,其demo(樣本)就是以Java語言編寫的,便于普通人快速上手。我們使用Java語言去編寫,那么每一個(gè)源程序包括說明語句和若干類的組成。這里面的類是由函數(shù)和數(shù)據(jù)組成的,在學(xué)習(xí)計(jì)算機(jī)編程的過程中,函數(shù)是基本功,同時(shí)函數(shù)也是獨(dú)立的,到了函數(shù)這一層面上,進(jìn)行程序設(shè)計(jì)的時(shí)候,包括數(shù)據(jù)的錄入以及處理和輸出這幾方面的內(nèi)容。在此階段的教學(xué)過程中,要求學(xué)生掌握程序語言和詞匯,也就是說具體保留字和標(biāo)識(shí)符,學(xué)會(huì)語法的規(guī)則,學(xué)會(huì)數(shù)據(jù)的表示,等等。我們學(xué)習(xí)的計(jì)算機(jī)思想大多數(shù)都是存儲(chǔ)程序,程序在運(yùn)行的時(shí)候要調(diào)入內(nèi)存,在執(zhí)行的時(shí)候要一條一條取出來,程序編寫的順序決定著程序的讀寫順序。在學(xué)校的時(shí)候,通常情況下是從上到下、從左到右,同樣寫程序的時(shí)候也是這樣的順序。寫程序也是要按照一定的順序去編寫,如果沒有順序,就會(huì)出現(xiàn)前言不搭后語的狀況,導(dǎo)致運(yùn)算結(jié)果不正確。
(二)面向過程的程序設(shè)計(jì)思維
過程描述在一定情況下代表的是對問題的描述和處理,構(gòu)成語言使用的是數(shù)學(xué)表達(dá)式描述,整個(gè)計(jì)算過程,人們在計(jì)算機(jī)上描述整個(gè)問題的求解過程,不用去關(guān)心計(jì)算機(jī)的內(nèi)部結(jié)構(gòu)。向計(jì)算機(jī)輸入一個(gè)信息,計(jì)算機(jī)會(huì)自己處理,然后輸出結(jié)果。如果輸入的信息能夠直接用編程語言提供的數(shù)據(jù)表達(dá)出來,那么計(jì)算機(jī)就會(huì)直接應(yīng)用算法來處理,如果輸入的信息是分?jǐn)?shù)值的信息,就要先用數(shù)據(jù)結(jié)構(gòu)理論使用計(jì)算機(jī)的語言把信息表達(dá)出來,這也是說“程序=數(shù)據(jù)結(jié)構(gòu)+算法”,也因此得出了程序設(shè)計(jì)的主要核心思想,是以計(jì)算為核心的。按照相應(yīng)的數(shù)據(jù)處理過程去組織程序,比如說,我們在開發(fā)微信小程序的過程中,向鍵盤輸入一個(gè)三位數(shù),得到這個(gè)三位數(shù)的逆序數(shù)。在編寫這個(gè)程序的時(shí)候,根據(jù)問題轉(zhuǎn)換成程序設(shè)計(jì)的流程,然后按從左到右的順序使用計(jì)算機(jī)語言表達(dá)出來,這也就是說我們要使用計(jì)算機(jī)能夠識(shí)別的程序表達(dá)出來。在編寫程序的過程中,我們可以看出面向過程的程序設(shè)計(jì)是線性的思維,其中數(shù)據(jù)處理是核心,大部分可以分成輸入處理和輸出這幾個(gè)過程。這也是一個(gè)順序性的信息處理模式。適合于小程序的開發(fā),不適合規(guī)模特別大的項(xiàng)目。
(三)面向?qū)ο蟮某绦蛟O(shè)計(jì)思維
面向?qū)ο蟮乃枷?,根?jù)現(xiàn)實(shí)的客觀世界構(gòu)造相應(yīng)的軟件系統(tǒng),整個(gè)系統(tǒng)的構(gòu)造過程中要使用和人類思維模式一樣的方式,把一個(gè)實(shí)際的問題看成是幾個(gè)對象的組合。在面向?qū)ο蟮某绦蛟O(shè)計(jì)里把問題看成是對象,也就是說,客觀世界是通過對象組成的對象里面相同的數(shù)據(jù)和操作規(guī)程一類,這樣把具體的對象轉(zhuǎn)化成抽象的計(jì)算機(jī)語言,在計(jì)算機(jī)程序設(shè)計(jì)的時(shí)候,應(yīng)用這類數(shù)據(jù)來進(jìn)行程序處理。充分利用面向?qū)ο蟮亩鄳B(tài)性技術(shù)以及集成技術(shù)派生出有相似結(jié)構(gòu)的對象子類,在計(jì)算機(jī)體系中表現(xiàn)出來的結(jié)構(gòu)就是不同的類別,各個(gè)對象利用消息去進(jìn)行信息的通信,所以在一定程度上,面向?qū)ο笠脖环Q為對象和類以及繼承和消息構(gòu)成的。過程中強(qiáng)調(diào)把操作和數(shù)據(jù)看成一個(gè)整體,這也就是面向?qū)ο蠓庋b的思想。在較大型程序設(shè)計(jì)中要根據(jù)軟件的工程面向?qū)ο蟮姆椒ò芽陀^世界要解決的問題轉(zhuǎn)化成問題,分成各種各樣的類。然后再進(jìn)行細(xì)分形成問題的子系統(tǒng),數(shù)據(jù)庫的管理子系統(tǒng),人機(jī)交互子系統(tǒng)以及任務(wù)管理的子系統(tǒng)。這一語言反映了計(jì)算機(jī)在解決問題的過程中使用的思維方式,面向?qū)ο蟮某绦蛟O(shè)計(jì)也是符合人類的思維模式的,利用面向?qū)ο蟮募夹g(shù)縮小了人類大腦和電腦思維方式之間的差異,讓人們在利用計(jì)算機(jī)解決問題的過程中,不必花費(fèi)主要的精力浪費(fèi)在描述解決問題的過程上,重點(diǎn)要放在分析問題上。
(四)從面對過程到面向?qū)ο蟮乃季S轉(zhuǎn)變
從面向過程到面向?qū)ο筮M(jìn)行程序設(shè)計(jì)需要轉(zhuǎn)變思想,這實(shí)際上也是計(jì)算機(jī)程序在數(shù)據(jù)處理過程中的一個(gè)變化。面向過程進(jìn)行程序設(shè)計(jì)的時(shí)候,是以計(jì)算機(jī)為核心,程序等于數(shù)據(jù)結(jié)構(gòu)加算法。在這其中程序的組織方式,按照數(shù)據(jù)處理的過程去組織代碼?,F(xiàn)在科學(xué)技術(shù)不斷發(fā)展,計(jì)算機(jī)的應(yīng)用越來越廣泛,計(jì)算機(jī)在處理數(shù)據(jù)的過程中,會(huì)處理多種多樣的數(shù)據(jù),不僅僅局限于數(shù)值型的數(shù)據(jù),還有各種聲音、表格、圖像等。這時(shí)候就要提供struct技術(shù)去構(gòu)造和描述復(fù)雜的事物。數(shù)據(jù)類型包括數(shù)值的取值范圍和述職的操作。struct構(gòu)造器不能有效體現(xiàn)出數(shù)據(jù)和操作的相關(guān)性。而面向?qū)ο蟮募夹g(shù)把操作和處理的數(shù)據(jù)封裝完成以后,在計(jì)算機(jī)里面表現(xiàn)出一個(gè)類,體現(xiàn)事物的靜態(tài)和動(dòng)態(tài)性質(zhì)。
三、程序設(shè)計(jì)課程教學(xué)的具體方案
老師在程序設(shè)計(jì)教學(xué)過程中給學(xué)生打好基礎(chǔ),讓學(xué)生掌握了算法知識(shí)以后,學(xué)會(huì)使用高級的語言,應(yīng)用編程去解決實(shí)際問題。比如說,老師為學(xué)生講授微信小程序的編制,讓學(xué)生掌握了基本知識(shí)以后再學(xué)習(xí)程序設(shè)計(jì),語言理論以及程序設(shè)計(jì)方法學(xué)等相關(guān)的課程。程序設(shè)計(jì)課程可以按照語言基礎(chǔ)的部分、實(shí)驗(yàn)的部分、自主學(xué)習(xí)的區(qū)域、課程的設(shè)計(jì)這樣一個(gè)流程來教學(xué)。第一部分讓學(xué)生掌握基本的語言固有特征知識(shí)。第二部分給學(xué)生展開實(shí)驗(yàn)教學(xué),老師在此過程中要精心設(shè)計(jì)實(shí)驗(yàn),鞏固學(xué)生學(xué)到的語法知識(shí)。第三部分是引導(dǎo)學(xué)生學(xué)會(huì)自主學(xué)習(xí),在程序設(shè)計(jì)課程中,對學(xué)生的實(shí)踐性能力要求很高,要求學(xué)生在課堂上聽了老師的講課,下課后要去練習(xí),老師可以帶領(lǐng)學(xué)生學(xué)習(xí)微信小程序的開發(fā),然后利用平臺(tái)去給學(xué)生布置一些有挑戰(zhàn)性的作業(yè),讓學(xué)生獨(dú)立完成,通過實(shí)踐提高學(xué)生的綜合能力。老師再給學(xué)生講程序設(shè)計(jì)課程的綜合應(yīng)用。
四、結(jié)束語
文章探討了計(jì)算機(jī)語言教學(xué)的轉(zhuǎn)變,希望能夠幫助老師站在一定的高度做好程序設(shè)計(jì)課程的教學(xué),幫助學(xué)生樹立相關(guān)的概念,提高學(xué)生解決問題的能力。
參考文獻(xiàn):
[1]周億陶.計(jì)算機(jī)語言教學(xué)方法探析[J].黑龍江省政法管理干部學(xué)院學(xué)報(bào),2009(2):145-147.
[2]沈澤剛,鐘德春.關(guān)于計(jì)算機(jī)專業(yè)入門語言的探討[J].福建電腦,2012(1):182-187.
[3]付喜梅.《數(shù)據(jù)結(jié)構(gòu)》的類比教學(xué)[J].電腦開發(fā)與應(yīng)用,2013,26(10):33-35.
[4]何渝.計(jì)算機(jī)語言課程的困惑與思考[C].International Conferenceon Educationand Education Management EEM,2011.