公務員期刊網(wǎng) 論文中心 正文

非計算機專業(yè)C語言教學模式分析

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了非計算機專業(yè)C語言教學模式分析范文,希望能給你帶來靈感和參考,敬請閱讀。

非計算機專業(yè)C語言教學模式分析

摘要:針對目前為非計算機專業(yè)開設的C語言程序設計課程教學現(xiàn)狀,提出一種與專業(yè)相結合的S&C(Specialized&ComputationalThinking)式C語言程序設計教學模式,在培養(yǎng)學生計算思維的同時,為后續(xù)專業(yè)課程的學習打下良好基礎。

關鍵詞:C語言;專業(yè)相結合;計算思維

一、引言

目前很多高校都在推行為非計算機專業(yè)開設的程序設計類課程改革,研究如何全面提高教學效果。將計算思維融入程序設計是當前課程教學的研究熱點[1];很多教育專家和一線教師都提出了以培養(yǎng)計算思維為目標的程序設計類課程教學改革方案[2,3]。C語言程序設計屬于此類課程,在注重培養(yǎng)計算思維的同時,更重要的是將教學內(nèi)容與學生本專業(yè)相結合。因此,提出一種融入計算思維、與專業(yè)相結合(以下簡稱S&C)的C語言程序設計教學模式。

二、計算思維的專業(yè)化培養(yǎng)

計算思維是信息時代中的每個人都應當具備的一種思維方式,培養(yǎng)計算思維能力已成為計算機基礎教學的核心任務[4]。程序設計類課程屬于計算機基礎課程體系,但是學習的內(nèi)容和要求是相對的,對不同的人群應該有不同的要求[5]。對非計算機專業(yè)學生而言,程序設計語言更像是一個工具,是其在從事本專業(yè)工作中可以使用的一個工具。因此,任課教師應考慮到專業(yè)需求,將計算思維與專業(yè)應用進行融合,讓學生感受到利用計算思維求解問題過程中的魅力[4]。計算思維教育的目的是培養(yǎng)一種思維習慣,一種像計算機科學家思考問題那樣的習慣[6],雖然計算本身也是一門學科,但是其具有促進其他學科發(fā)展的作用,不應該將計算思維局限于此,而是應用于各專業(yè)領域。

三、C語言程序設計與專業(yè)相結合

為非計算機專業(yè)開設的C語言程序設計課程,授課深度和廣度有別于計算機專業(yè),很多高校將它作為一門通識課程,使用同一個教學大綱,難以與專業(yè)課程緊密銜接。實際上,隨著計算機的普及,程序設計語言的使用不再是IT人的專利,很多行業(yè)都會涉及到軟件開發(fā)、編寫應用程序。如單片機等智能芯片的開發(fā)語言就是以C語言為主[7],學生程序設計水平高低可能直接影響他們的就業(yè)和職業(yè)發(fā)展[8]。因此,有高校教師提出自動化專業(yè)的C語言程序設計課程改由自動化教研室承擔[9]。但這種做法是否有違開設C語言程序設計課程的初衷?C語言是程序設計的入門語言,最重要的是建立C語言與專業(yè)的關聯(lián),培養(yǎng)一種獨特的處理問題的思維方式,更適合由計算機專業(yè)教師授課,在后續(xù)專業(yè)課程中再由專業(yè)課教師進一步引導學生的應用實踐。但教學內(nèi)容要向?qū)I(yè)靠攏,能夠認識到專業(yè)課程和C語言之間的聯(lián)系點在哪里,并由此制定出相對獨立的教學大綱和專業(yè)化教學方案。

四、S&C式C語言教學模式

(一)課程設置

雖然學習C語言不需要什么必須的先修課程,但經(jīng)過授課教師分析[8],與計算機專業(yè)學生不同,非計算機專業(yè)學生只是孤立地學習C語言,建議將C語言與相關課程配套開設,以自動化專業(yè)為例,在同一學期內(nèi),先開設C語言程序設計,在課程中后期再開設單片機課程,這樣既可以加強學生理論聯(lián)系實際的能力,又使學生對C語言的學習目的和從業(yè)方向更加明確。

(二)教學目標和教學內(nèi)容

C語言程序設計的教學目標應體現(xiàn)基礎性與專業(yè)性?;A性是針對后續(xù)課程來講的,學生通過該門課程的學習掌握一定的算法和常用子程序,學會用C語言編寫程序,為后續(xù)課程打下堅實的基礎;專業(yè)性是指學生在掌握C語言的各種語法與程序結構的基礎上,不僅能夠根據(jù)實際問題設計算法、編寫出解決問題的程序,還可以運用計算思維解決生活中或?qū)I(yè)領域的問題。計算思維主要不是靠講課得來的,而是在學習和應用計算機過程中培養(yǎng)的[5],但理論依然是實踐的基礎。因此,應將思維訓練融入到教學內(nèi)容中,并將計算思維具體化為對以下幾項能力的培養(yǎng)。1.抽象。從本質(zhì)上講,程序設計語言是對人類問題求解過程的抽象,例如,數(shù)據(jù)與數(shù)據(jù)類型、表達式、流程控制、函數(shù)等都是數(shù)據(jù)抽象、計算、邏輯推理以及問題約簡等人類問題求解思維方法的物化[10]。使用C語言進行程序設計的過程就是利用計算的手段求解問題的過程,這一過程中對問題定義和形式化,以及建立問題的邏輯模型就是對問題的抽象過程,而抽象是計算思維的基本方法。2.多樣性思維。C語言中變量的使用是編程的基礎,也是最基本的概念。C語言提供了多種數(shù)據(jù)類型,如整型、浮點型、字符型、數(shù)組、指針、結構體及枚舉型等。在求解實際問題時,會涉及到各種各樣的數(shù)據(jù),如整數(shù)、小數(shù)、字符,還有一些復雜的對象,如學生個人信息、考試成績等,為處理這些不同類型的數(shù)據(jù),除了要分析數(shù)據(jù)的對象特征,還要了解各種數(shù)據(jù)類型之間的差異及其使用方法,通過大量練習掌握并靈活應用這些數(shù)據(jù)類型,這對于訓練學生多樣性思維有極大幫助。3.問題分解。C語言是一門模塊化程序設計語言,在求解一個復雜問題時,一般采用逐步分解、分而治之的方法,即將一個大問題分解成若干相對較易求解的小問題,再分別進行求解。C語言的函數(shù)就是程序的基本組成單位,在編寫一個復雜程序時,將整個程序的功能劃分為若干功能較為單一的程序模塊,即用函數(shù)實現(xiàn)每個單一功能,然后再將所有函數(shù)像搭積木一般,組合起來。函數(shù)有其獨立性,即要保證高內(nèi)聚,低耦合;但卻不是孤立的,使學生理解調(diào)用函數(shù)和被調(diào)用函數(shù)的相關知識和二者之間的相關性。4.算法。算法是解決問題的方法和求解問題的步驟。解決同一問題會有不同算法,算法設計是C語言程序設計的核心。引導學生學會利用已有知識,學會從多個角度分析問題,采用不同的類型、結構都能解決問題;同時,引導學生進一步分析各算法的差異,不僅可以鞏固知識點,還能加深學生對不同數(shù)據(jù)類型、程序結構化的認識。在教學內(nèi)容中設置一些與專業(yè)應用相關的案例,增加趣味性的同時,激發(fā)學生的學習興趣,增強與本專業(yè)的聯(lián)系。5.遞歸。遞歸就是用自身定義自身的方法。C語言允許使用遞歸,以應用遞歸求解的問題為例,使學生理解遞歸的工作原理。例如,利用公式n!=n×(n-1)!求一個自然數(shù)的階乘,可以用以下函數(shù)進行計算。intfact(intn){if(n<=1)return1;elsereturnn*fact(n-1);}跟蹤i=fact(3)這條語句的執(zhí)行過程,從中了解遞歸函數(shù)逐層調(diào)用和展開的過程。6.程序。程序是為實現(xiàn)特定目標或解決特定問題而用計算機語言編寫的命令序列的集合,在系統(tǒng)的IPO模型中,程序是算法的實現(xiàn)。C語言以順序結構、選擇結構和循環(huán)結構作為基本的程序結構。學生在求解問題時選取合適的程序結構,練習使用相應結構的語句,訓練其結構化思維;編程過程中,為了實現(xiàn)程序的整體性功能,要考慮如何協(xié)調(diào)各類函數(shù),從而強化一體性思維;任何程序,無論是簡單的還是復雜的,都按照一定秩序有序執(zhí)行,為解決不同問題要采用不同要素、結構組成程序,這可以強化學生的有序性思維。7.動態(tài)性思維。C語言中很多知識點的運用都體現(xiàn)了動態(tài)思維。例如,根據(jù)計算對象的類型使用不同類型的變量,在多種類型數(shù)值進行混合運算時,其結果又能根據(jù)精度要求動態(tài)地向高精度類型轉換;循環(huán)結構中,循環(huán)變量值的變化是程序動態(tài)性的最佳體現(xiàn),在單步調(diào)試時,能夠清楚地觀察到循環(huán)變量及相關變量值的每一步變化;在函數(shù)定義中形參的設定也是訓練動態(tài)性思維的重要知識點,每次調(diào)用函數(shù)時,函數(shù)所接收到的實參都是不同的,只有具有動態(tài)性思維,才能真正理解函數(shù)實參和形參的概念。

(三)教學方法

在課程教學中,教師應具有不同的角色,課程前期,教師是講授者、主導者,以講授法為主,通過對比記憶等方法幫助學生接受C語言各種定義的方式和語法結構;課程中后期,教師是協(xié)助者、引導者,采用翻轉課堂教學法,讓學生成為課堂主體。教師應設計好課前任務,及時獲得反饋以調(diào)整課上活動;課上進行分組討論和以專業(yè)性案例為主的任務拓展,引導學生舉一反三,研究規(guī)律,掌握方法,讓學生認識到C語言程序設計與專業(yè)學科的密切關系。翻轉課堂的有效實施需要一個過程,既是學生接受、適應和主動參與的過程,也是教師根據(jù)不同課程班逐步調(diào)整實施方案的過程。教學方法的有效性以學生的學習自主性為前提,而激發(fā)學生的學習動機似乎一直是教師與學生之間的較力。C語言與專業(yè)相結合可以在一定程度上提高學生學習興趣,因為大多數(shù)學生是依據(jù)自身興趣選擇專業(yè)的,但這還不夠。依據(jù)ARCS模型,增強學習者動機的四個要素:Attention、Relevance、Confidence和Sat-isfaction。在教學開始階段,引入一個C語言開發(fā)的專業(yè)案例吸引學生注意,激發(fā)學生想進一步探究的好奇心;進而建立C語言與專業(yè)學科的關聯(lián),使學生清楚教學目標和學習內(nèi)容的價值;在課前任務中布置一些較簡單的任務,以此增強學生的學習信心,課堂上進行任務拓展時提供一些有些難度而學生又能解決的問題,讓他們感覺到自己的能力“非凡”,最后讓學生明確自己取得的成果是自己具有能力并付出努力的成果;在實踐環(huán)節(jié)布置的項目任務為學生提供了在一種真實或模擬的情境中運用知識的機會,感受到學習的價值、學習的快樂,從中獲得滿足;對學生的學習結果提供反饋,如對課堂表現(xiàn)好的學生給予口頭表揚,維持后續(xù)的學習動機,面對全班公布考核方式的評分標準,讓學生感受到教師評價的公平性。

(四)實踐環(huán)節(jié)

為了鼓勵學生積極進行實踐,應該不斷加強C語言實驗平臺建設,在校內(nèi)使用OJ(OnlineJudge)系統(tǒng)[11]。但要使OJ系統(tǒng)更好地發(fā)揮效用,教師必須對題目進行正確描述和引導,以及對測試用例考慮充分,增加與專業(yè)聯(lián)系密切的實驗內(nèi)容,減少驗證性實驗內(nèi)容;布置合作式項目任務,并以此作為大學生研究性學習和創(chuàng)新性項目,訓練學生在實際工作中協(xié)調(diào)、合作和創(chuàng)造能力。學生還可以利用OJ系統(tǒng)進行階段性測試,促進自主性學習。

(五)考核方式

課程的考核方式?jīng)Q定著教師如何教這門課,也決定著學生如何學習。目前C語言程序設計課程的考核方式為“平時表現(xiàn)+期末考試”的形式,期末考試采用無紙化上機考試,是評定學生成績的主要方面,排除了考試各環(huán)節(jié)中人為因素的影響。試題庫涵蓋教學大綱規(guī)定的所有知識點,難度適宜、重點突出。但全面考核學生的程序設計能力不能僅依賴于期末考試,應重視平時課堂和實踐環(huán)節(jié)的考核,采用作業(yè)自評和同伴互評的評分機制。自評是學生比對評分標準自查;同伴互評是學生通過相互批改作業(yè)相互學習,是形成性評價的有效手段,能夠幫助學生更積極主動地參與課程學習,增加了再次回顧知識、溫習知識和總結自身所得的機會,促進更深層次的思考。為了使這一評分機制能有效開展,教師要制定一個好的評分標準,不同的“評委”依據(jù)這個評分標準對同一個作業(yè)進行評判應得出同樣的判斷;考慮到同伴互評中可能出現(xiàn)的問題,如學生不遵照評分標準打分等,做出相應的對策,使學生能夠自覺以評分標準為指導,高質(zhì)量地完成作業(yè),然后根據(jù)評語對照評分標準修改完善自己的作業(yè)。

五、結語

應用型大學非計算機專業(yè)的計算機應用教育,應以能力為導向,使學生具備在各個領域應用計算機的能力。作為應用性較強的專業(yè)基礎課,C語言程序設計能否學好關乎到后期專業(yè)課程學習的效果。根據(jù)專業(yè)特點,采取與專業(yè)相結合的C語言教學模式,培養(yǎng)學生將計算機處理問題的思維方式運用于本專業(yè)領域的能力,為各學科問題求解帶來一種思想、策略、方法和手段上的變化,促進各學科的突破性發(fā)展。

參考文獻:

[1]劉軍.面向計算思維的程序設計教學實踐[J].計算機教育,2015,(14):116-118.

[2]喬淑云,黃剛.程序設計類教學改革與計算思維之培養(yǎng)[J].計算機教育,2012,(19):17-19,23.

[3]聶蘭順,戰(zhàn)德臣,宋巧紅.計算思維的教學內(nèi)容與方法研究———以“算法”和“系統(tǒng)”兩種問題求解的計算思維為例[J].工業(yè)和信息化教育,2013,(6):21-27.

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

[5]譚浩強.研究計算思維,堅持面向應用[J].計算機教育,2012,(21):45-49,56.

[6]陳國良.計算思維的表述體系[J].中國大學教學,2013,(12):22-26.

[7]盧振利.應用型本科院校自動化相關專業(yè)中51單片機項目C語言六步編程法教學研究[J].電工技術•理論與實踐,2015,(5):228-229.

[8]俞敏.對自動化專業(yè)C語言教學的思考[J].高校教育研究,2009,(3):135,137.

[9]陳麗敏,邵長友.基于自動化專業(yè)C語言課程教學改革的研究[J].中國電力教育,2013,(31):76,90.

[10]郝興偉.大學計算機———計算思維的視角[M].第3版.北京:高等教育出版社,2014.

[11]廖雪花,厲蘭潔,唐思娩.基于OnlineJudge的C語言程序設計實驗課教學改革研究[J].計算機教育,2016,(6):130-133.

作者:欒若星 單位:遼寧工業(yè)大學計算中心

精選范文推薦