亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        如何解決程序語言教學(xué)中的“知易行難”問題

        2018-12-30 11:56:27波,張
        計算機(jī)教育 2018年7期
        關(guān)鍵詞:數(shù)據(jù)結(jié)構(gòu)編程語法

        楊 波,張 軍

        (貴陽學(xué)院 數(shù)學(xué)與信息科學(xué)學(xué)院,貴州 貴陽 550005)

        0 引 言

        掌握一門程序設(shè)計語言的基本知識和編程技能并熟練運用于解決實際問題,是高等院校對理工類學(xué)生的一項基本要求。各類程序設(shè)計語言課程的教學(xué),一方面需要一定課時的理論教學(xué)講授語言基礎(chǔ)知識、語法規(guī)則和基本技能,另一方面更需要相當(dāng)數(shù)量的實踐課時使學(xué)生訓(xùn)練和掌握這些規(guī)則與技能,進(jìn)而培養(yǎng)和提升他們運用理論知識分析和解決問題的能力。

        在實際的教學(xué)反饋中,常常發(fā)現(xiàn)很多學(xué)生都存在“課堂上能聽懂語法知識,做實驗時無從著手”的情況,也就是說,不少學(xué)生雖然掌握了一門程序語言的基本規(guī)則,卻不具備分析一個一般問題并運用所學(xué)語言編程知識解決該問題的能力。在課程考核時,很多學(xué)生雖然能正確回答試卷中的理論知識,但是對于一個實際問題的算法或程序設(shè)計往往無能為力。近年來,“知易行難”問題已成為從事程序語言教學(xué)的教師面臨的一大困擾,越來越多的討論集中于對學(xué)生實踐和創(chuàng)新能力的培養(yǎng)和提高[1-5]。針對這一問題,應(yīng)從教與學(xué)雙方進(jìn)行深入剖析,找出可能的原因并進(jìn)行相應(yīng)的處理或改進(jìn),以期有效提高程序語言類課程學(xué)習(xí)的效率,進(jìn)而培養(yǎng)學(xué)生主動進(jìn)行探索性、創(chuàng)造性學(xué)習(xí)的能力。

        1 “知易行難”問題的表現(xiàn)及原因分析

        當(dāng)前,對于本科階段理工科學(xué)生而言,要求掌握的主流程序設(shè)計語言通常包括C、C++、Java、Python等。這些語言雖然有各自不同的應(yīng)用背景、語法特征、編程技巧和思想,采用不同數(shù)據(jù)結(jié)構(gòu)表示實際問題中的數(shù)據(jù)對象,但是核心任務(wù)仍然是利用順序、選擇、循環(huán)3種基本結(jié)構(gòu)的組合對實際問題的操作步驟進(jìn)行抽象表達(dá)。因此,不論是哪一種語言,其學(xué)習(xí)過程都是類似的:在初步認(rèn)識和掌握語法規(guī)則的基礎(chǔ)上,逐步運用語言中的各類工具求解實際問題并得出正確答案。

        1.1 課堂教學(xué)中的“知易”

        一門語言的基本構(gòu)件及相應(yīng)規(guī)則總是有限的。即使像C這樣包含復(fù)雜、易錯的指針運算的語言,能運用指針操作的對象也不外乎普通變量、數(shù)組、字符串、函數(shù)及結(jié)構(gòu)體幾類。如果教材組織合理、教學(xué)方法得當(dāng),學(xué)生通常能在給定的理論學(xué)時內(nèi)識記和理解各類語言構(gòu)件的運用規(guī)則。在實際教學(xué)過程中,學(xué)生通常的反饋是在課堂上聽懂基本語法和簡單例程分析沒問題。事實上,不論哪一種程序語言,其在基本知識和技能的教學(xué)中并不涉及晦澀難懂的理論知識和抽象概念,教學(xué)內(nèi)容具體而實踐性強(qiáng)。對于大多數(shù)學(xué)生而言,只要認(rèn)真聽講,就很容易掌握語法知識和簡單例程分析。

        1.2 實踐教學(xué)中的“行難”

        相對于基本語法知識的“知易”,學(xué)生在完成課下的編程作業(yè)或?qū)嶒炄蝿?wù)時,常常感到“無從下手,不知怎么開始”。面對這樣不夠具體的問題反饋,任課教師也很難找到原因所在,特別是一些有多年程序語言教學(xué)經(jīng)驗的教師,會疑惑為什么同樣的教學(xué)過程,以前的學(xué)生基本沒有這樣的問題,近年來卻越來越多學(xué)生反饋“聽得懂、不會做”。

        大致上,“行難”問題通常表現(xiàn)為:①面對一個編程任務(wù),不能確定程序所要處理的計算對象是什么;②即使能正確分析出計算對象,也不知道采用哪些程序結(jié)構(gòu)及其組合正確表達(dá)數(shù)據(jù)的操作步驟;③能正確給出一個問題的求解算法,但在實現(xiàn)時往往由于語法錯誤較多或經(jīng)驗不足導(dǎo)致調(diào)試通過耗時較多,甚至越改越錯;④對較為復(fù)雜的實際問題,不能采用正確、合適的數(shù)據(jù)結(jié)構(gòu)表示其中涉及的對象,也較難對問題進(jìn)行合理的分解和組合。

        以上表現(xiàn)中,①—③出現(xiàn)在初學(xué)者的入門階段,④則常出現(xiàn)在學(xué)生基本能完成一些簡單編程任務(wù)后的提高階段。

        1.3 “知易行難”的原因

        學(xué)生在掌握基本語法規(guī)則后,面對實際問題仍然無從著手、不能寫出正確可行的算法或代碼,從教與學(xué)兩方面來看,原因有以下幾種。

        1)教學(xué)內(nèi)容相對固化,教學(xué)方式較為傳統(tǒng)。

        通常,程序設(shè)計語言類教材的內(nèi)容組織架構(gòu)都是以從易到難、從簡單到復(fù)雜的順序逐一介紹語言中各種構(gòu)件的使用規(guī)則和基本運用。為適應(yīng)不同的學(xué)習(xí)者,教材中的例程和習(xí)題也大多為常見簡單數(shù)學(xué)或日常問題的求解。教師在安排課堂講授和實驗時,一般以教材內(nèi)容為主,依教材順序按部就班推進(jìn)教學(xué)過程,很少針對學(xué)生的程度、專業(yè)方向等進(jìn)行適當(dāng)?shù)脑鰟h或取舍;在完成一個語言構(gòu)件的語法知識講授后,安排一定數(shù)量的編程習(xí)題作為實驗內(nèi)容,由學(xué)生上機(jī)完成程序的調(diào)試運行。這樣相對固化的教學(xué)內(nèi)容與方式不太可能在最大范圍內(nèi)提升學(xué)生對于程序語言學(xué)習(xí)的興趣度。

        2)相關(guān)課程間銜接存在一定誤差。

        程序語言類課程的開設(shè)不會早于第二學(xué)期,在此之前,學(xué)生通常都已學(xué)習(xí)過計算機(jī)文化基礎(chǔ)或計算科學(xué)導(dǎo)論課程。這類課程一般著眼于計算機(jī)基本操作和常用工具軟件的使用,對于引領(lǐng)學(xué)生認(rèn)識編程邏輯幾乎沒有作用。IT類專業(yè)的課程體系中,算法與數(shù)據(jù)結(jié)構(gòu)類的課程必不可少,開課時間通常晚于第一門程序語言課程。在學(xué)生作為初學(xué)者第一次接觸程序設(shè)計語言時,并不具備算法設(shè)計與數(shù)據(jù)結(jié)構(gòu)方面的知識,這樣在學(xué)習(xí)語言的過程中,就難免出現(xiàn)1.2節(jié)中的第4種表現(xiàn)。

        3)學(xué)生獨立思考能力和自主學(xué)習(xí)能力較弱。

        很多在高校(特別是地方普通院校)任教多年的教師都有一個共同的感受:當(dāng)下的學(xué)生似乎普遍沒有10多年前的學(xué)生“聰明”,以前的學(xué)生在認(rèn)知能力、推理能力、自主鉆研等方面的表現(xiàn)普遍好于后來的學(xué)生。這種現(xiàn)象的出現(xiàn),大概源于兩個原因:一是近20年來高等院校不斷擴(kuò)招,大大提高了學(xué)生進(jìn)入大學(xué)的幾率,然而事實上不少學(xué)生在學(xué)習(xí)能力和自身素質(zhì)上是達(dá)不到10多年前的高校錄取標(biāo)準(zhǔn)的;二是中學(xué)階段以升學(xué)率為第一指標(biāo)的應(yīng)試教育體制,很多升學(xué)率高的中學(xué)多年來已形成一套完善且相當(dāng)有效的應(yīng)試訓(xùn)練體系,即使是資質(zhì)一般的學(xué)生,通過“刷題”之類的機(jī)械式訓(xùn)練,也能取得不錯的高考分?jǐn)?shù),但這種機(jī)械訓(xùn)練方式在較大程度上扼殺了學(xué)生進(jìn)行獨立思考和自主學(xué)習(xí)的能力。

        4)環(huán)境影響學(xué)習(xí)習(xí)慣和學(xué)習(xí)風(fēng)氣。

        外界環(huán)境中的一些因素對學(xué)生的學(xué)習(xí)習(xí)慣和學(xué)風(fēng)有較壞的影響。一些中學(xué)教師常以“現(xiàn)在辛苦學(xué),進(jìn)入大學(xué)就輕松”之類的說法激勵學(xué)生,這就使得不少學(xué)生在完成中學(xué)階段繁重的學(xué)習(xí)任務(wù)后,一進(jìn)入大學(xué)就由于目標(biāo)達(dá)成而喪失學(xué)習(xí)動力;再者,大學(xué)的教學(xué)方式不再是由老師“看”著學(xué),學(xué)生無所適從,找不到正確的學(xué)習(xí)方法,特別在一些地方普通院校中,由于沒有了教師的督促,學(xué)生在課下很少主動自習(xí)或深入鉆研;此外,社會上偶有的“知識無用論”以及電子游戲的泛濫,也對一些思想不夠成熟、自制力弱的學(xué)生產(chǎn)生了很大影響,導(dǎo)致學(xué)生怠惰,無心學(xué)習(xí)。

        程序語言的學(xué)習(xí)需要學(xué)生有較強(qiáng)的邏輯分析和動手實踐能力,對學(xué)生的學(xué)習(xí)主動性和積極性有較高要求。學(xué)生僅僅在課堂上聽懂一門語言的語法規(guī)則和例程分析是遠(yuǎn)遠(yuǎn)不夠的,需要在課下主動思考、積極動手、勇于探索才能真正熟練掌握這門語言,然而,由于前述3和4兩個原因,能滿足以上要求的學(xué)生并不多,這就使得學(xué)生在初學(xué)一門語言時常常是“聽得懂,不會編”。

        2 對策分析

        2.1 改革課程教學(xué)內(nèi)容與教學(xué)方式

        首先,要根據(jù)上課對象、學(xué)時分配等條件,對教材中的章節(jié)進(jìn)行合理取舍。如果是入門語言,可將一些對初學(xué)者而言難于理解和掌握,且屬于進(jìn)階提升的內(nèi)容(如C中的外部函數(shù)、動態(tài)內(nèi)存分配、指針數(shù)組、鏈表、位操作等)暫時擱置,待學(xué)生能熟練運用語言主要構(gòu)件后,必要時再根據(jù)專業(yè)需要將其作為補充內(nèi)容加入。如果學(xué)生之前已學(xué)習(xí)過其他語言課程,則可將與之前課程重復(fù)或相似的內(nèi)容作略化處理(如一些面向?qū)ο笳Z言的教材中仍然會介紹變量、常量、數(shù)據(jù)類型、程序3種基本結(jié)構(gòu)等基礎(chǔ)知識),而將重心放在當(dāng)前語言的核心特征上。

        其次,拓寬例程分析或?qū)嶒炄蝿?wù)的范圍,引入與學(xué)生專業(yè)背景相關(guān)的實例或問題進(jìn)行分析與求解。例如,對于電子類專業(yè)學(xué)生,可在講授C語言的選擇或循環(huán)結(jié)構(gòu)時演示C代碼中條件判斷對一些受控實體(如智能小車、無人機(jī)等)的控制作用,讓學(xué)生能真正體會編程在本專業(yè)領(lǐng)域內(nèi)的應(yīng)用。

        第三,前述兩點對于教師提出了較高的要求,僅靠任課教師一人并不容易做到。教學(xué)院部可考慮將相關(guān)課程組成課程群,具體到程序語言類課程,可以將各類語言課程和算法與數(shù)據(jù)結(jié)構(gòu)課劃入同一課程群中。針對課程群成立課程教學(xué)組,組內(nèi)成員既有分工,又有合作,各成員分別擔(dān)任課程群中一門課程的主講教師,同時也為群內(nèi)其他課程提供支持。成員間的合作可以是相關(guān)課程間知識點的銜接教學(xué),也可以是共性知識的平臺化教學(xué),如常量、變量、數(shù)據(jù)類型、程序3種基本結(jié)構(gòu)等基本知識可由講授入門語言的教師負(fù)責(zé)講好講透,各類語言涉及算法和數(shù)據(jù)結(jié)構(gòu)的部分則由數(shù)據(jù)結(jié)構(gòu)課程主講教師負(fù)責(zé)講解。

        最后,一直以來慣常的“課堂講理論,課下編程序”教學(xué)模式使得學(xué)生在課下缺乏指導(dǎo),面對實驗任務(wù)無從著手。教師可以在課堂上給出與實驗任務(wù)相近但較為簡單的題目,現(xiàn)場引導(dǎo)學(xué)生完成任務(wù)分析、算法描述、代碼編寫及調(diào)試運行的全過程。學(xué)生若能在課堂上完成簡化版任務(wù),則課下再進(jìn)一步鉆研完成實驗的主動性和興趣度都會得到提高。此外,教師可提供一定數(shù)量與當(dāng)次實驗內(nèi)容相關(guān)的例程,要求學(xué)生在課下進(jìn)行閱讀分析,然后撰寫閱讀分析報告,與實驗報告一起進(jìn)行評定。

        2.2 適當(dāng)調(diào)整相關(guān)課程教學(xué)內(nèi)容

        學(xué)習(xí)程序語言的核心不在于掌握各構(gòu)件的語法規(guī)則和使用技巧,而在于能將實際問題的操作步驟利用程序結(jié)構(gòu)進(jìn)行正確、高效的表達(dá),這需要學(xué)生具有嚴(yán)密、清晰的邏輯思維。Scratch雖然是面向青少年的簡易編程工具[6],但是建模、控制、邏輯、運算等編程要素都在其圖形化界面操作中得到體現(xiàn)。在地方院校中,很多學(xué)生進(jìn)入大學(xué)前沒有條件和時間較為系統(tǒng)地接觸程序設(shè)計,如果能在他們進(jìn)校后普遍開設(shè)的計算機(jī)文化基礎(chǔ)或計算科學(xué)導(dǎo)論課程中增加一個章節(jié)講授Scratch,可讓學(xué)生對程序設(shè)計的各要素有一個初步的感性認(rèn)識,也為后續(xù)的程序語言學(xué)習(xí)建立起興趣基礎(chǔ)。

        對IT類專業(yè)學(xué)生而言,算法和數(shù)據(jù)結(jié)構(gòu)課程是學(xué)生深入程序設(shè)計領(lǐng)域的必修基礎(chǔ)課程,需在學(xué)生掌握一門基本語言(通常為C、C++或Java)后才能開設(shè)。對于第一次接觸程序語言的初學(xué)者而言,并沒有算法和數(shù)據(jù)結(jié)構(gòu)方面的知識基礎(chǔ),在遇到較為復(fù)雜的問題時,自然就無法對其中的計算對象和操作步驟進(jìn)行有效、正確的抽象表達(dá)。為彌補這一不足,需在入門的語言課程中適當(dāng)加入算法和數(shù)據(jù)結(jié)構(gòu)方面的知識;在學(xué)習(xí)程序3種基本結(jié)構(gòu)的控制語句時,首先強(qiáng)調(diào)其算法描述,然后再講授相關(guān)語句的具體使用;在分析典型例程和布置作業(yè)、實驗任務(wù)時也要將算法分析作為重點,以期逐漸培養(yǎng)學(xué)生分析和解決實際問題的能力。例如,對于2.1節(jié)中的第3點建議,可考慮由算法和數(shù)據(jù)結(jié)構(gòu)類課程負(fù)責(zé)人將控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu)的內(nèi)容做成較為簡化、占用學(xué)時數(shù)較少的通識型教學(xué)資源,語言類課程在學(xué)習(xí)到相關(guān)知識點時,由算法和數(shù)據(jù)結(jié)構(gòu)類算法的主講教師提供支持。

        2.3 將明辨性思維方式引入課堂教學(xué)

        很多學(xué)生在多年應(yīng)試教育體制訓(xùn)練下形成了“老師怎么教就怎么學(xué)”的學(xué)習(xí)習(xí)慣,較難在課下主動學(xué)習(xí)并進(jìn)行獨立思考。在教學(xué)過程中引入明辨性思維方式,有助于引導(dǎo)學(xué)生擺脫盲從,養(yǎng)成帶著問題學(xué)知識的習(xí)慣。

        明辨性思維也稱為批判性思維(critical thinking),原意是指邏輯清晰嚴(yán)密的思考,是一種非盲從的、分析的、推理的、反思性的思維方式。明辨性思維“是對思維展開的思維”,進(jìn)行明辨性思維的目的是考量自己或他人的思維是否符合邏輯,是否符合好的標(biāo)準(zhǔn),從而做出明智決定或得出正確結(jié)論。明辨性思維具有避免接受或做出不好的論證、排除無關(guān)因素干擾、不受情感/偏見/謬誤的支配、不盲從權(quán)威或臆斷等基本特征,具體包括判斷信息的恰當(dāng)性、區(qū)分理性斷言和情感斷言、區(qū)別事實和觀點、識別不足證據(jù)等21項技能[7]。在程序語言教學(xué)中引入明辨性思維,可嘗試以下方法。

        (1)避免灌輸型教學(xué),給學(xué)生留主動學(xué)習(xí)的機(jī)會。在程序語言的教學(xué)中,給出所講授語言構(gòu)件的主要框架和重點、難點,該構(gòu)件使用中的各種細(xì)節(jié)則交由學(xué)生補充完善,讓學(xué)生在掌握主要使用方法的前提下通過實踐逐漸深入體會。

        (2)通過提出問題增加課堂討論。每堂課可針對所講授知識點設(shè)置一些(開放性的)問題,以提問或?qū)W生分組的形式進(jìn)行充分討論,引導(dǎo)學(xué)生從不同角度認(rèn)識和分析問題,并給出合理的最佳解決辦法。

        (3)課程任務(wù)注重培養(yǎng)和提升學(xué)生進(jìn)行獨立思考和探索的能力。教師在布置習(xí)題或?qū)嶒炄蝿?wù)時應(yīng)摒棄所謂標(biāo)準(zhǔn)答案,強(qiáng)調(diào)方法的多樣性或結(jié)論的非唯一性,鼓勵學(xué)生提出不同的思路,及時高度肯定學(xué)生給出的有效而與眾不同的解決方案,營造敢于探索和創(chuàng)新的學(xué)習(xí)氛圍。

        2.4 充分利用第二課堂推動學(xué)生主動學(xué)習(xí)

        強(qiáng)大的程序設(shè)計能力一定是來源于大量的實踐,課堂教學(xué)范圍內(nèi)的習(xí)題或?qū)嶒炄蝿?wù)并不能提供足夠?qū)拸V且深入的編程實踐。第二課堂活動的開展,可在很大程度上彌補這一不足。程序語言類課程組的教師應(yīng)組織學(xué)生建立編程或其他與專業(yè)相關(guān)的興趣社團(tuán),通過社團(tuán)活動(如講座、競賽、項目開發(fā)等)為學(xué)生提供交流、實踐、提升編程技能的機(jī)會和平臺,充分發(fā)揮第二課堂對課堂教學(xué)的補充和深化作用。

        3 結(jié) 語

        程序語言類課程具有非常強(qiáng)的實踐性,僅僅掌握基本語法知識而缺乏足夠的實踐,學(xué)生就不可避免地面臨“知易行難”問題。設(shè)計得當(dāng)?shù)慕虒W(xué)內(nèi)容和教學(xué)方法,著力于推動學(xué)生獨立思考、主動探索、積極實踐,可以讓他們掌握并熟練運用一門程序語言。這不僅可為學(xué)生利用計算機(jī)技術(shù)解決專業(yè)問題進(jìn)行技術(shù)儲備,更為重要的是,還可訓(xùn)練和培養(yǎng)學(xué)生進(jìn)行嚴(yán)密邏輯思維、正確分析和求解實際問題的能力,而后者才是一名合格大學(xué)畢業(yè)生的核心競爭力。

        猜你喜歡
        數(shù)據(jù)結(jié)構(gòu)編程語法
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        我家有只編程貓
        跟蹤導(dǎo)練(二)4
        KEYS
        Keys
        Book 5 Unit 1~Unit 3語法鞏固練習(xí)
        “翻轉(zhuǎn)課堂”教學(xué)模式的探討——以《數(shù)據(jù)結(jié)構(gòu)》課程教學(xué)為例
        高職高專數(shù)據(jù)結(jié)構(gòu)教學(xué)改革探討
        中國市場(2016年45期)2016-05-17 05:15:48
        国产无套粉嫩白浆在线观看| 国内自拍视频在线观看h| 国产人妖av在线观看| 胳膊肘上有白色的小疙瘩| 丝袜美腿亚洲综合在线播放| 无码人妻精品中文字幕| 内谢少妇xxxxx8老少交| 国产v综合v亚洲欧美大天堂| 少妇又色又爽又刺激的视频| 久久久精品久久久久久96| 97久久精品亚洲中文字幕无码| 国产精品久久无码不卡黑寡妇| 手机av在线观看视频| 成人国产一区二区三区| 初女破初的视频| 亚洲自拍另类欧美综合| 超短裙老师在线观看一区二区| 91精品国产92久久久| 人妻中文字幕乱人伦在线| 伊人色综合视频一区二区三区| 毛片av在线播放亚洲av网站| av东京热一区二区三区| 成年人干逼视频水好多| 性久久久久久| 狠狠色狠狠色综合日日不卡| 欧美成人a在线网站| 精品自拍偷拍一区二区三区| 亚洲最大成人综合网720p| 欧美人与禽zozzo性伦交| 日韩无码视频淫乱| 少妇一区二区三区乱码| 一区二区三区字幕中文| 乌克兰粉嫩xxx极品hd| 亚洲一区二区在线视频播放| 99久久婷婷国产精品综合网站| 国产精品久久久久9999| 精品国产黑色丝袜高跟鞋| 亚洲综合一区二区三区蜜臀av| 在线a亚洲视频播放在线播放| 欧美bbw极品另类| 国产最新网站|