前言:想要寫出一篇引人入勝的文章?我們特意為您整理了非計(jì)算機(jī)專業(yè)C語言教學(xué)模式分析范文,希望能給你帶來靈感和參考,敬請閱讀。
摘要:針對目前為非計(jì)算機(jī)專業(yè)開設(shè)的C語言程序設(shè)計(jì)課程教學(xué)現(xiàn)狀,提出一種與專業(yè)相結(jié)合的S&C(Specialized&ComputationalThinking)式C語言程序設(shè)計(jì)教學(xué)模式,在培養(yǎng)學(xué)生計(jì)算思維的同時(shí),為后續(xù)專業(yè)課程的學(xué)習(xí)打下良好基礎(chǔ)。
關(guān)鍵詞:C語言;專業(yè)相結(jié)合;計(jì)算思維
一、引言
目前很多高校都在推行為非計(jì)算機(jī)專業(yè)開設(shè)的程序設(shè)計(jì)類課程改革,研究如何全面提高教學(xué)效果。將計(jì)算思維融入程序設(shè)計(jì)是當(dāng)前課程教學(xué)的研究熱點(diǎn)[1];很多教育專家和一線教師都提出了以培養(yǎng)計(jì)算思維為目標(biāo)的程序設(shè)計(jì)類課程教學(xué)改革方案[2,3]。C語言程序設(shè)計(jì)屬于此類課程,在注重培養(yǎng)計(jì)算思維的同時(shí),更重要的是將教學(xué)內(nèi)容與學(xué)生本專業(yè)相結(jié)合。因此,提出一種融入計(jì)算思維、與專業(yè)相結(jié)合(以下簡稱S&C)的C語言程序設(shè)計(jì)教學(xué)模式。
二、計(jì)算思維的專業(yè)化培養(yǎng)
計(jì)算思維是信息時(shí)代中的每個(gè)人都應(yīng)當(dāng)具備的一種思維方式,培養(yǎng)計(jì)算思維能力已成為計(jì)算機(jī)基礎(chǔ)教學(xué)的核心任務(wù)[4]。程序設(shè)計(jì)類課程屬于計(jì)算機(jī)基礎(chǔ)課程體系,但是學(xué)習(xí)的內(nèi)容和要求是相對的,對不同的人群應(yīng)該有不同的要求[5]。對非計(jì)算機(jī)專業(yè)學(xué)生而言,程序設(shè)計(jì)語言更像是一個(gè)工具,是其在從事本專業(yè)工作中可以使用的一個(gè)工具。因此,任課教師應(yīng)考慮到專業(yè)需求,將計(jì)算思維與專業(yè)應(yīng)用進(jìn)行融合,讓學(xué)生感受到利用計(jì)算思維求解問題過程中的魅力[4]。計(jì)算思維教育的目的是培養(yǎng)一種思維習(xí)慣,一種像計(jì)算機(jī)科學(xué)家思考問題那樣的習(xí)慣[6],雖然計(jì)算本身也是一門學(xué)科,但是其具有促進(jìn)其他學(xué)科發(fā)展的作用,不應(yīng)該將計(jì)算思維局限于此,而是應(yīng)用于各專業(yè)領(lǐng)域。
三、C語言程序設(shè)計(jì)與專業(yè)相結(jié)合
為非計(jì)算機(jī)專業(yè)開設(shè)的C語言程序設(shè)計(jì)課程,授課深度和廣度有別于計(jì)算機(jī)專業(yè),很多高校將它作為一門通識(shí)課程,使用同一個(gè)教學(xué)大綱,難以與專業(yè)課程緊密銜接。實(shí)際上,隨著計(jì)算機(jī)的普及,程序設(shè)計(jì)語言的使用不再是IT人的專利,很多行業(yè)都會(huì)涉及到軟件開發(fā)、編寫應(yīng)用程序。如單片機(jī)等智能芯片的開發(fā)語言就是以C語言為主[7],學(xué)生程序設(shè)計(jì)水平高低可能直接影響他們的就業(yè)和職業(yè)發(fā)展[8]。因此,有高校教師提出自動(dòng)化專業(yè)的C語言程序設(shè)計(jì)課程改由自動(dòng)化教研室承擔(dān)[9]。但這種做法是否有違開設(shè)C語言程序設(shè)計(jì)課程的初衷?C語言是程序設(shè)計(jì)的入門語言,最重要的是建立C語言與專業(yè)的關(guān)聯(lián),培養(yǎng)一種獨(dú)特的處理問題的思維方式,更適合由計(jì)算機(jī)專業(yè)教師授課,在后續(xù)專業(yè)課程中再由專業(yè)課教師進(jìn)一步引導(dǎo)學(xué)生的應(yīng)用實(shí)踐。但教學(xué)內(nèi)容要向?qū)I(yè)靠攏,能夠認(rèn)識(shí)到專業(yè)課程和C語言之間的聯(lián)系點(diǎn)在哪里,并由此制定出相對獨(dú)立的教學(xué)大綱和專業(yè)化教學(xué)方案。
四、S&C式C語言教學(xué)模式
(一)課程設(shè)置
雖然學(xué)習(xí)C語言不需要什么必須的先修課程,但經(jīng)過授課教師分析[8],與計(jì)算機(jī)專業(yè)學(xué)生不同,非計(jì)算機(jī)專業(yè)學(xué)生只是孤立地學(xué)習(xí)C語言,建議將C語言與相關(guān)課程配套開設(shè),以自動(dòng)化專業(yè)為例,在同一學(xué)期內(nèi),先開設(shè)C語言程序設(shè)計(jì),在課程中后期再開設(shè)單片機(jī)課程,這樣既可以加強(qiáng)學(xué)生理論聯(lián)系實(shí)際的能力,又使學(xué)生對C語言的學(xué)習(xí)目的和從業(yè)方向更加明確。
(二)教學(xué)目標(biāo)和教學(xué)內(nèi)容
C語言程序設(shè)計(jì)的教學(xué)目標(biāo)應(yīng)體現(xiàn)基礎(chǔ)性與專業(yè)性?;A(chǔ)性是針對后續(xù)課程來講的,學(xué)生通過該門課程的學(xué)習(xí)掌握一定的算法和常用子程序,學(xué)會(huì)用C語言編寫程序,為后續(xù)課程打下堅(jiān)實(shí)的基礎(chǔ);專業(yè)性是指學(xué)生在掌握C語言的各種語法與程序結(jié)構(gòu)的基礎(chǔ)上,不僅能夠根據(jù)實(shí)際問題設(shè)計(jì)算法、編寫出解決問題的程序,還可以運(yùn)用計(jì)算思維解決生活中或?qū)I(yè)領(lǐng)域的問題。計(jì)算思維主要不是靠講課得來的,而是在學(xué)習(xí)和應(yīng)用計(jì)算機(jī)過程中培養(yǎng)的[5],但理論依然是實(shí)踐的基礎(chǔ)。因此,應(yīng)將思維訓(xùn)練融入到教學(xué)內(nèi)容中,并將計(jì)算思維具體化為對以下幾項(xiàng)能力的培養(yǎng)。1.抽象。從本質(zhì)上講,程序設(shè)計(jì)語言是對人類問題求解過程的抽象,例如,數(shù)據(jù)與數(shù)據(jù)類型、表達(dá)式、流程控制、函數(shù)等都是數(shù)據(jù)抽象、計(jì)算、邏輯推理以及問題約簡等人類問題求解思維方法的物化[10]。使用C語言進(jìn)行程序設(shè)計(jì)的過程就是利用計(jì)算的手段求解問題的過程,這一過程中對問題定義和形式化,以及建立問題的邏輯模型就是對問題的抽象過程,而抽象是計(jì)算思維的基本方法。2.多樣性思維。C語言中變量的使用是編程的基礎(chǔ),也是最基本的概念。C語言提供了多種數(shù)據(jù)類型,如整型、浮點(diǎn)型、字符型、數(shù)組、指針、結(jié)構(gòu)體及枚舉型等。在求解實(shí)際問題時(shí),會(huì)涉及到各種各樣的數(shù)據(jù),如整數(shù)、小數(shù)、字符,還有一些復(fù)雜的對象,如學(xué)生個(gè)人信息、考試成績等,為處理這些不同類型的數(shù)據(jù),除了要分析數(shù)據(jù)的對象特征,還要了解各種數(shù)據(jù)類型之間的差異及其使用方法,通過大量練習(xí)掌握并靈活應(yīng)用這些數(shù)據(jù)類型,這對于訓(xùn)練學(xué)生多樣性思維有極大幫助。3.問題分解。C語言是一門模塊化程序設(shè)計(jì)語言,在求解一個(gè)復(fù)雜問題時(shí),一般采用逐步分解、分而治之的方法,即將一個(gè)大問題分解成若干相對較易求解的小問題,再分別進(jìn)行求解。C語言的函數(shù)就是程序的基本組成單位,在編寫一個(gè)復(fù)雜程序時(shí),將整個(gè)程序的功能劃分為若干功能較為單一的程序模塊,即用函數(shù)實(shí)現(xiàn)每個(gè)單一功能,然后再將所有函數(shù)像搭積木一般,組合起來。函數(shù)有其獨(dú)立性,即要保證高內(nèi)聚,低耦合;但卻不是孤立的,使學(xué)生理解調(diào)用函數(shù)和被調(diào)用函數(shù)的相關(guān)知識(shí)和二者之間的相關(guān)性。4.算法。算法是解決問題的方法和求解問題的步驟。解決同一問題會(huì)有不同算法,算法設(shè)計(jì)是C語言程序設(shè)計(jì)的核心。引導(dǎo)學(xué)生學(xué)會(huì)利用已有知識(shí),學(xué)會(huì)從多個(gè)角度分析問題,采用不同的類型、結(jié)構(gòu)都能解決問題;同時(shí),引導(dǎo)學(xué)生進(jìn)一步分析各算法的差異,不僅可以鞏固知識(shí)點(diǎn),還能加深學(xué)生對不同數(shù)據(jù)類型、程序結(jié)構(gòu)化的認(rèn)識(shí)。在教學(xué)內(nèi)容中設(shè)置一些與專業(yè)應(yīng)用相關(guān)的案例,增加趣味性的同時(shí),激發(fā)學(xué)生的學(xué)習(xí)興趣,增強(qiáng)與本專業(yè)的聯(lián)系。5.遞歸。遞歸就是用自身定義自身的方法。C語言允許使用遞歸,以應(yīng)用遞歸求解的問題為例,使學(xué)生理解遞歸的工作原理。例如,利用公式n!=n×(n-1)!求一個(gè)自然數(shù)的階乘,可以用以下函數(shù)進(jìn)行計(jì)算。intfact(intn){if(n<=1)return1;elsereturnn*fact(n-1);}跟蹤i=fact(3)這條語句的執(zhí)行過程,從中了解遞歸函數(shù)逐層調(diào)用和展開的過程。6.程序。程序是為實(shí)現(xiàn)特定目標(biāo)或解決特定問題而用計(jì)算機(jī)語言編寫的命令序列的集合,在系統(tǒng)的IPO模型中,程序是算法的實(shí)現(xiàn)。C語言以順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)作為基本的程序結(jié)構(gòu)。學(xué)生在求解問題時(shí)選取合適的程序結(jié)構(gòu),練習(xí)使用相應(yīng)結(jié)構(gòu)的語句,訓(xùn)練其結(jié)構(gòu)化思維;編程過程中,為了實(shí)現(xiàn)程序的整體性功能,要考慮如何協(xié)調(diào)各類函數(shù),從而強(qiáng)化一體性思維;任何程序,無論是簡單的還是復(fù)雜的,都按照一定秩序有序執(zhí)行,為解決不同問題要采用不同要素、結(jié)構(gòu)組成程序,這可以強(qiáng)化學(xué)生的有序性思維。7.動(dòng)態(tài)性思維。C語言中很多知識(shí)點(diǎn)的運(yùn)用都體現(xiàn)了動(dòng)態(tài)思維。例如,根據(jù)計(jì)算對象的類型使用不同類型的變量,在多種類型數(shù)值進(jìn)行混合運(yùn)算時(shí),其結(jié)果又能根據(jù)精度要求動(dòng)態(tài)地向高精度類型轉(zhuǎn)換;循環(huán)結(jié)構(gòu)中,循環(huán)變量值的變化是程序動(dòng)態(tài)性的最佳體現(xiàn),在單步調(diào)試時(shí),能夠清楚地觀察到循環(huán)變量及相關(guān)變量值的每一步變化;在函數(shù)定義中形參的設(shè)定也是訓(xùn)練動(dòng)態(tài)性思維的重要知識(shí)點(diǎn),每次調(diào)用函數(shù)時(shí),函數(shù)所接收到的實(shí)參都是不同的,只有具有動(dòng)態(tài)性思維,才能真正理解函數(shù)實(shí)參和形參的概念。
(三)教學(xué)方法
在課程教學(xué)中,教師應(yīng)具有不同的角色,課程前期,教師是講授者、主導(dǎo)者,以講授法為主,通過對比記憶等方法幫助學(xué)生接受C語言各種定義的方式和語法結(jié)構(gòu);課程中后期,教師是協(xié)助者、引導(dǎo)者,采用翻轉(zhuǎn)課堂教學(xué)法,讓學(xué)生成為課堂主體。教師應(yīng)設(shè)計(jì)好課前任務(wù),及時(shí)獲得反饋以調(diào)整課上活動(dòng);課上進(jìn)行分組討論和以專業(yè)性案例為主的任務(wù)拓展,引導(dǎo)學(xué)生舉一反三,研究規(guī)律,掌握方法,讓學(xué)生認(rèn)識(shí)到C語言程序設(shè)計(jì)與專業(yè)學(xué)科的密切關(guān)系。翻轉(zhuǎn)課堂的有效實(shí)施需要一個(gè)過程,既是學(xué)生接受、適應(yīng)和主動(dòng)參與的過程,也是教師根據(jù)不同課程班逐步調(diào)整實(shí)施方案的過程。教學(xué)方法的有效性以學(xué)生的學(xué)習(xí)自主性為前提,而激發(fā)學(xué)生的學(xué)習(xí)動(dòng)機(jī)似乎一直是教師與學(xué)生之間的較力。C語言與專業(yè)相結(jié)合可以在一定程度上提高學(xué)生學(xué)習(xí)興趣,因?yàn)榇蠖鄶?shù)學(xué)生是依據(jù)自身興趣選擇專業(yè)的,但這還不夠。依據(jù)ARCS模型,增強(qiáng)學(xué)習(xí)者動(dòng)機(jī)的四個(gè)要素:Attention、Relevance、Confidence和Sat-isfaction。在教學(xué)開始階段,引入一個(gè)C語言開發(fā)的專業(yè)案例吸引學(xué)生注意,激發(fā)學(xué)生想進(jìn)一步探究的好奇心;進(jìn)而建立C語言與專業(yè)學(xué)科的關(guān)聯(lián),使學(xué)生清楚教學(xué)目標(biāo)和學(xué)習(xí)內(nèi)容的價(jià)值;在課前任務(wù)中布置一些較簡單的任務(wù),以此增強(qiáng)學(xué)生的學(xué)習(xí)信心,課堂上進(jìn)行任務(wù)拓展時(shí)提供一些有些難度而學(xué)生又能解決的問題,讓他們感覺到自己的能力“非凡”,最后讓學(xué)生明確自己取得的成果是自己具有能力并付出努力的成果;在實(shí)踐環(huán)節(jié)布置的項(xiàng)目任務(wù)為學(xué)生提供了在一種真實(shí)或模擬的情境中運(yùn)用知識(shí)的機(jī)會(huì),感受到學(xué)習(xí)的價(jià)值、學(xué)習(xí)的快樂,從中獲得滿足;對學(xué)生的學(xué)習(xí)結(jié)果提供反饋,如對課堂表現(xiàn)好的學(xué)生給予口頭表揚(yáng),維持后續(xù)的學(xué)習(xí)動(dòng)機(jī),面對全班公布考核方式的評分標(biāo)準(zhǔn),讓學(xué)生感受到教師評價(jià)的公平性。
(四)實(shí)踐環(huán)節(jié)
為了鼓勵(lì)學(xué)生積極進(jìn)行實(shí)踐,應(yīng)該不斷加強(qiáng)C語言實(shí)驗(yàn)平臺(tái)建設(shè),在校內(nèi)使用OJ(OnlineJudge)系統(tǒng)[11]。但要使OJ系統(tǒng)更好地發(fā)揮效用,教師必須對題目進(jìn)行正確描述和引導(dǎo),以及對測試用例考慮充分,增加與專業(yè)聯(lián)系密切的實(shí)驗(yàn)內(nèi)容,減少驗(yàn)證性實(shí)驗(yàn)內(nèi)容;布置合作式項(xiàng)目任務(wù),并以此作為大學(xué)生研究性學(xué)習(xí)和創(chuàng)新性項(xiàng)目,訓(xùn)練學(xué)生在實(shí)際工作中協(xié)調(diào)、合作和創(chuàng)造能力。學(xué)生還可以利用OJ系統(tǒng)進(jìn)行階段性測試,促進(jìn)自主性學(xué)習(xí)。
(五)考核方式
課程的考核方式?jīng)Q定著教師如何教這門課,也決定著學(xué)生如何學(xué)習(xí)。目前C語言程序設(shè)計(jì)課程的考核方式為“平時(shí)表現(xiàn)+期末考試”的形式,期末考試采用無紙化上機(jī)考試,是評定學(xué)生成績的主要方面,排除了考試各環(huán)節(jié)中人為因素的影響。試題庫涵蓋教學(xué)大綱規(guī)定的所有知識(shí)點(diǎn),難度適宜、重點(diǎn)突出。但全面考核學(xué)生的程序設(shè)計(jì)能力不能僅依賴于期末考試,應(yīng)重視平時(shí)課堂和實(shí)踐環(huán)節(jié)的考核,采用作業(yè)自評和同伴互評的評分機(jī)制。自評是學(xué)生比對評分標(biāo)準(zhǔn)自查;同伴互評是學(xué)生通過相互批改作業(yè)相互學(xué)習(xí),是形成性評價(jià)的有效手段,能夠幫助學(xué)生更積極主動(dòng)地參與課程學(xué)習(xí),增加了再次回顧知識(shí)、溫習(xí)知識(shí)和總結(jié)自身所得的機(jī)會(huì),促進(jìn)更深層次的思考。為了使這一評分機(jī)制能有效開展,教師要制定一個(gè)好的評分標(biāo)準(zhǔn),不同的“評委”依據(jù)這個(gè)評分標(biāo)準(zhǔn)對同一個(gè)作業(yè)進(jìn)行評判應(yīng)得出同樣的判斷;考慮到同伴互評中可能出現(xiàn)的問題,如學(xué)生不遵照評分標(biāo)準(zhǔn)打分等,做出相應(yīng)的對策,使學(xué)生能夠自覺以評分標(biāo)準(zhǔn)為指導(dǎo),高質(zhì)量地完成作業(yè),然后根據(jù)評語對照評分標(biāo)準(zhǔn)修改完善自己的作業(yè)。
五、結(jié)語
應(yīng)用型大學(xué)非計(jì)算機(jī)專業(yè)的計(jì)算機(jī)應(yīng)用教育,應(yīng)以能力為導(dǎo)向,使學(xué)生具備在各個(gè)領(lǐng)域應(yīng)用計(jì)算機(jī)的能力。作為應(yīng)用性較強(qiáng)的專業(yè)基礎(chǔ)課,C語言程序設(shè)計(jì)能否學(xué)好關(guān)乎到后期專業(yè)課程學(xué)習(xí)的效果。根據(jù)專業(yè)特點(diǎn),采取與專業(yè)相結(jié)合的C語言教學(xué)模式,培養(yǎng)學(xué)生將計(jì)算機(jī)處理問題的思維方式運(yùn)用于本專業(yè)領(lǐng)域的能力,為各學(xué)科問題求解帶來一種思想、策略、方法和手段上的變化,促進(jìn)各學(xué)科的突破性發(fā)展。
參考文獻(xiàn):
[1]劉軍.面向計(jì)算思維的程序設(shè)計(jì)教學(xué)實(shí)踐[J].計(jì)算機(jī)教育,2015,(14):116-118.
[2]喬淑云,黃剛.程序設(shè)計(jì)類教學(xué)改革與計(jì)算思維之培養(yǎng)[J].計(jì)算機(jī)教育,2012,(19):17-19,23.
[3]聶蘭順,戰(zhàn)德臣,宋巧紅.計(jì)算思維的教學(xué)內(nèi)容與方法研究———以“算法”和“系統(tǒng)”兩種問題求解的計(jì)算思維為例[J].工業(yè)和信息化教育,2013,(6):21-27.
[4]馮博琴.對于計(jì)算思維能力培養(yǎng)“落地”問題的探討[J].中國大學(xué)教學(xué),2012,(9):6-9.
[5]譚浩強(qiáng).研究計(jì)算思維,堅(jiān)持面向應(yīng)用[J].計(jì)算機(jī)教育,2012,(21):45-49,56.
[6]陳國良.計(jì)算思維的表述體系[J].中國大學(xué)教學(xué),2013,(12):22-26.
[7]盧振利.應(yīng)用型本科院校自動(dòng)化相關(guān)專業(yè)中51單片機(jī)項(xiàng)目C語言六步編程法教學(xué)研究[J].電工技術(shù)•理論與實(shí)踐,2015,(5):228-229.
[8]俞敏.對自動(dòng)化專業(yè)C語言教學(xué)的思考[J].高校教育研究,2009,(3):135,137.
[9]陳麗敏,邵長友.基于自動(dòng)化專業(yè)C語言課程教學(xué)改革的研究[J].中國電力教育,2013,(31):76,90.
[10]郝興偉.大學(xué)計(jì)算機(jī)———計(jì)算思維的視角[M].第3版.北京:高等教育出版社,2014.
[11]廖雪花,厲蘭潔,唐思娩.基于OnlineJudge的C語言程序設(shè)計(jì)實(shí)驗(yàn)課教學(xué)改革研究[J].計(jì)算機(jī)教育,2016,(6):130-133.
作者:欒若星 單位:遼寧工業(yè)大學(xué)計(jì)算中心