前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇計算機程序設計基礎范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。
摘要:“計算機程序設計語言”課程是計算機科學與技術(shù)學科核心的課程之一,極大地影響著學生對計算機領域的理解和興趣。本文針對教學過程中存在的問題,提出了層次化教學目標思想。以面向?qū)ο笳Z言C++為例,介紹基于層次化教學目標體系的具體思想和內(nèi)容,并提出與之相適用的課程及實驗設計,達到優(yōu)化教學方法,提高教學質(zhì)量的目的。
關(guān)鍵詞:計算機程序設計語言;層次化教學;C++
中圖分類號:G642
文獻標識碼:A
1“計算機程序設計語言”教學現(xiàn)狀
“計算機程序設計語言”是普通高校計算機教育的基本專業(yè)課程,在計算機領域的各個專業(yè)的課程體系中都處于核心的地位。這門課程不僅可使學生獲得基本的程序設計能力及鍛煉學生的邏輯思維能力,它還極大地影響著學生對計算機領域的興趣和理解,對引導和培養(yǎng)學生在計算機工程及理論方面的研究興趣起著先導性和基礎性的作用。因此,“計算機程序設計語言”的教學質(zhì)量成為影響大學本科計算機教學質(zhì)量和效果的一個關(guān)鍵的因素。
影響課程教學質(zhì)量的主要三個因素為教學內(nèi)容、教學方法和實驗設計。當前,大部分教師受傳統(tǒng)教學模式的影響,教學的重點都放在程序語言的基本語法的講授,課堂所設計的程序?qū)嵗蟛糠謬@語法規(guī)則的演示和說明,這種模式同樣也影響到實驗環(huán)節(jié)的設計。這種就事論事,形而上學的教學模式具有許多明顯的弊端,主要體現(xiàn)在以下幾方面:
(1) 不利于培養(yǎng)學生的學習興趣
許多從事程序設計語言教學的教師(包括筆者)都有這樣的感受:每講授一門新的程序設計語言課,初期學生都抱著積極,對獲取知識的極大熱情投入課程的學習,但隨著教學過程的深入,這種熱情往往不能持久。導致這種局面的原因固然有教師本身的教學方法和教學手段的缺陷,但根本原因還是教學內(nèi)容的設置不科學。在單純以講授語法規(guī)則這種教學模式下,學生難以保持長久的學習興趣和動力。
(2) 不利于學生建立綜合化,系統(tǒng)化的知識體系
程序設計語言是表達設計者思想和計算機計算邏輯的符號系統(tǒng),具有多層面、多視角的內(nèi)涵。要把學生培養(yǎng)為具有高素質(zhì)的程序設計人員,僅僅熟悉沒有精神的符號及符號規(guī)則遠遠不夠,這需要學生具備設計高質(zhì)量程序的綜合化的知識體系,而當前的程序設計語言的教學現(xiàn)狀并不能滿足這種需求。
(3) 不利于培養(yǎng)學生解決實際問題的綜合能力及創(chuàng)新意識和思想
當前,素質(zhì)教育成為各級教育系統(tǒng),包括高等院校所關(guān)注的熱點,知識高等院校所關(guān)注的“素質(zhì)”內(nèi)涵不同。筆者認為高校大學畢業(yè)生應具備的素質(zhì)包括:綜合化、系統(tǒng)化的專業(yè)知識體系;應有已有的知識體系解決實際問題的能力;具有創(chuàng)新的意識和思想。總體而言,大部分教師對程序設計語言課程所采取的教學不利于這種素質(zhì)的培養(yǎng)。
針對這種現(xiàn)狀,結(jié)合我國高等教育發(fā)展的現(xiàn)狀,本文提出程序設計語言的層次化教學目標的思想,并以面向?qū)ο蟪绦蛘Z言為例,論述在層次化教學目標驅(qū)動下的課程設計。
2層次化的教學目標
各項教學活動有效展開的基本條件是合理的教學目標的確定,但單一的教學目標并不能適用當前中國復雜的高等教育現(xiàn)狀。社會經(jīng)濟的快速發(fā)展產(chǎn)生了明顯的多類型、層次化的人才需求,這種趨勢在各類軟件公司里表現(xiàn)得尤其明顯。為了適用這種人才需求的轉(zhuǎn)變,高等教育領域在這些年相應地發(fā)生了巨大的變化,各種類型、各種不同層次的教育機構(gòu)大量出現(xiàn),改變了過去高等教育機構(gòu)單純負責培養(yǎng)具有從事復雜腦力勞動的高級專業(yè)人才的狀況。這些變化最終體現(xiàn)為教師的工作,體現(xiàn)為教師針對不同的教學對象所制定的教學目標體系。
當前,由于社會信息化的發(fā)展,各類計算機類課程已經(jīng)滲透到各個學科,例如筆者所在的蘇州大學,幾乎所有的院系都設置了信息技術(shù)類的有關(guān)課程,大約超過一半的院系設置了“計算機程序設計語言”的課程,因此“計算機語言設計課程”的教學質(zhì)量是總體教學質(zhì)量評估的重要組成部分。筆者多年來一直在蘇州大學承擔程序設計語言的課程,包括一類本科計算機專業(yè)基礎課程、二類本科專業(yè)基礎課和公共基礎課程。大量的教學實踐表明單一的教學目標不能適用多樣化的教學對象、多樣化的人才需求和程序設計語言知識邏輯在廣度和深度方面所具有的層次化的特點。下面將論述程序設計語言課程的層次化的教學目標體系及各層的具體內(nèi)涵。
2.1低級目標
該目標要求掌握標準化的程序語言語法體系,以學生掌握基本的標準語法體系為基本要求,并能初步應用語言開發(fā)較小型的簡單應用程序,具備初步的程序設計能力。低級目標要使得學生對所學知識“知其然”,課程教學內(nèi)容主要圍繞標準的語法規(guī)則,課堂和實驗環(huán)節(jié)所選定的程序?qū)嵗蠖鄧@著驗證和演示語法規(guī)則及語法規(guī)則之間的聯(lián)系進行設計。在以低級目標驅(qū)動的教學中,因為重在基本知識的傳授,因此核心教學內(nèi)容的選擇是第一位的要素。當然每門程序設計語言課程都有其固有的核心內(nèi)容,例如,在C++語言中,核心的教學內(nèi)容為:面向?qū)ο蟮母拍睢⒗^承、多態(tài)、模板及異常等,即使如此,還需要根據(jù)教學對象,對教學內(nèi)容和授課方式進行選擇和取舍。總的原則是圍繞重點概念和知識采取“精講多練”和“突出重點”的方式進行教學。
2.2中級目標
中級目標則要要求學生圍繞目標程序設計語言,具備系統(tǒng)化的程序設計方法和技巧,逐漸使學生“知其所以然”。該層目標不僅要讓學生掌握“語法”,還要讓學生掌握“語義”;不僅讓學生掌握語言本身,還要讓學生擴展思維,了解、理解更多的外延的知識;不僅要讓學生掌握基本的程序設計方法,要讓學生初步掌握系統(tǒng)化的程序設計方法和建立起程序質(zhì)量的觀點。程序設計語言的外延知識涉及計算機專業(yè)許多重要的核心課程,包括編譯原理、算法分析與設計、計算機組成與結(jié)構(gòu)、離散數(shù)學、數(shù)據(jù)結(jié)構(gòu)和軟件工程等。當然,不可能指望通過一門課程的學習,使學生有效地、完整地掌握所有這些知識,只能使與實現(xiàn)中級目標有緊密聯(lián)系的知識能滲入到重點的知識講授和實驗的安排中。
2.3高級目標
不管是初級目標的“知其然”,還是中級目標的“知其所以然”,都是知識學習,而高級目標階段的重點是運用知識,體驗知識,要求學生具備利用目標程序設計語言解決一定復雜度和規(guī)模的實際問題的能力,建立抽象的程序設計思想、方法和質(zhì)量的觀點。高級目標的教學內(nèi)容的重點在如何在所講授的語言框架里解決一定規(guī)模的應用問題,并從具體的實現(xiàn)里提煉出抽象的設計思想,分析實現(xiàn)的質(zhì)量,總結(jié)好的實現(xiàn)方法和設計思想。
確立了教學目標,下一步的焦點為圍繞實現(xiàn)具體的教學目標,制定各教學環(huán)節(jié)的具體的教學內(nèi)容和教學手段,主要包括課堂教學環(huán)節(jié)和上機實踐環(huán)節(jié)。結(jié)合筆者的教學實踐,下一節(jié)將圍繞這方面的內(nèi)容展開論述。
3層次化的目標引導的課程設計
C++語言因其強大的功能及廣泛的實用性而日益成為當前高校理工類專業(yè)程序設計的主流教學語言,因此本節(jié)將以C++為例,討論層次化教學目標思想如何在教學實踐中得到貫徹。C++程序設計語言的教學涉及課堂教學和實踐教學兩個環(huán)節(jié),下面將就這兩方面展開論述。
3.1課堂教學
確定目標課程的教學內(nèi)容是開展有效的課堂教學,取得既定的教學目標的前提和基本要求。針對本文所提出的層次化的教學目標體系的基本內(nèi)涵,C++程序語言的課堂教學內(nèi)容在深度和廣度上也應該展現(xiàn)出層次化,遞進性的特點。
在低級目標中,掌握本程序語言的基本語法體系是最重要的目標,在教學內(nèi)容的設計上,應確定語言的最核心最重要的語法現(xiàn)象。過程化程序設計向?qū)ο蠡绦蛟O計是C++語言的最重要的特征,因此“對象”和“類”,以及由此產(chǎn)生的“繼承”,“封裝”,“多態(tài)”和“異?!?成為最核心的教學內(nèi)容。在教學時應集中注意力于這些類對象的關(guān)鍵個性技術(shù),圍繞關(guān)鍵技術(shù)“精講多練”,使學生深刻理解面向?qū)ο驝++的這些關(guān)鍵技術(shù);要有重點,不能面面俱到,有所失,才能有所得。
低級目標是為了使學生掌握知識,使其“知其然”,那么中級目標則要逐漸使受教育者“知其所以然”,教學的重點從對語法的訓練轉(zhuǎn)向?qū)φZ義的理解,包括靜態(tài)結(jié)構(gòu)語義和程序執(zhí)行語義。在C++的教學中,以C++對象模型作為教學內(nèi)容的重點,通過從靜態(tài)的程序代碼結(jié)構(gòu)和運行的程序狀態(tài)兩方面展開課堂教學,這樣在知識語言的“所以然”的基礎上,學生不僅知道什么是“多態(tài)”,并且知識“多態(tài)”是怎么實現(xiàn)的;什么是運行時類型檢查(RTTI),運行時類型檢查能提供什么程序設計策略等;許多的外延知識能沿課堂展開,例如編譯原理、算法分析與設計等。由Stanley B. Lippman所著的《Inside The C++ Object Model》為我們設計課程材料提供了方向性的指導。
低級目標和中級目標都是針對知識的學習,而高級目標則針對知識運用,提高運用知識進行設計的能力。此層次涉及知識的學習、理解和綜合運用,要在有限的時間內(nèi),實現(xiàn)教學目標,在課程教學內(nèi)容的選取和設計及課時的安排上,具有一定的難度,對教者和學者都具有一定的挑戰(zhàn)性?!霸O計模式”可以成為本層次的基本或延展性的教學內(nèi)容。設計模式雖然不與具體的設計語言有著必然的、密切的聯(lián)系,但事實上各種技術(shù)性、或純教學性的書籍中,都把面向?qū)ο笳Z言作為實現(xiàn)各種設計思想的不二選擇。通過設計模式內(nèi)容的講授,可以使得學生對面向?qū)ο蟮幕A知識有更深刻的理解,同時增強靈活運用所學知識的能力,體驗面向?qū)ο蟪绦蛟O計方法學所帶來的設計上的“美”,激發(fā)學生的創(chuàng)造力。
當然,上面針對課堂教學內(nèi)容的論述僅僅進行了基本的界定和論述,需要通過下面幾方面來貫徹實施,以達到各個層次的教學目標:
(1) 通過教者的努力,設計出豐富的、具體的課程素材;
(2) 針對不同的教學內(nèi)容,設計多樣化的教學手段和方法;
(3) 針對不同的教學內(nèi)容布置合理的作業(yè)和考核方法。
3.2實踐教學
在程序設計語言的教學中,課堂教學和上機實踐教學是并重的環(huán)節(jié),不可偏廢,一起決定著教學的質(zhì)量和教學目標的取得。如何設計安排上機環(huán)節(jié)通過大量的教學實踐,已經(jīng)總結(jié)出了大量的行之有效的方法。下文就實驗內(nèi)容及實驗的組織形式進行一些必要的、有益的討論。
結(jié)合課堂內(nèi)容,以往的實踐環(huán)節(jié)主要由學生編制一些小的程序,進行語法現(xiàn)象的演示及驗證。但筆者通過大量的教學實踐發(fā)現(xiàn):這種普遍采用的,且行之有效的方法,對于學生鞏固知識,提高調(diào)試程序的能力和技巧具有顯著的效果。但隨著教學的深入,這種方法也顯示出種種的弊端,例如:學生專著于知識點,必然缺乏對知識的整體把握;學生容不易形成良好的編程習慣等。針對這種情況,筆者在實踐的環(huán)節(jié)中,增加“讀程序”的分量。教師提供一些高質(zhì)量的程序范例讓學生進行閱讀、理解,并對范例的程序風格和設計方法進行總結(jié)比較,以提高學者的綜合能力,尤其是到了后期,所提供的范例更具有綜合性、全面性和示范性,能極大地提高學生掌握知識的深度和廣度,激發(fā)他們的學習熱情。
在實踐人員的組織形式上,一般在程序設計語言的教學中,都是學生獨立進行的。在教學實踐中,也可引進一些軟件開發(fā)中的方法,比如采用小組制的形式,根據(jù)實踐內(nèi)容的不同,小組或大或小。即使是在低層目標為導向的教學中,也可采用小組的方法進行實踐環(huán)節(jié)的教學,不過此時小組人數(shù)不宜過多,最佳數(shù)目為二人。采用這樣的方法,有以下的益處:
(1) 便于學生進行交流,以達到取長補短的目的;
(2) 提高教學效率,以較少教學活動取得同樣甚至更好的效果;
(3) 培養(yǎng)團隊合作精神等。
在以中級和高級目標為導向的教學中,實踐環(huán)節(jié)應從語法演示和驗證為重點轉(zhuǎn)變?yōu)橐灾R的理解和知識的運用為重點,因此除了結(jié)合教學內(nèi)容設計相應的實踐內(nèi)容外,最顯著的特點是增加綜合性的項目開發(fā)環(huán)節(jié),以達到知識的綜合掌握和運用。
當前以語法的演示和驗證目的實踐環(huán)節(jié)的設計具有大量的教學實踐可資借鑒和學習,但針對更高兩層教學目標的實踐環(huán)節(jié)則缺乏有效的素材和經(jīng)驗可以利用,需要通過進一步的教學實踐活動加以積累和總結(jié)。當前的一些做法是借用開發(fā)一個具有一定規(guī)模的項目來彌補純語法的演示和驗證實踐方法的不足。
4結(jié)論
本文針對當前在程序設計語言的教學中存在的問題,提出了多層次教學目標的觀念,并介紹了各層次目標的具體內(nèi)容和以此目標為導向的主要的教學環(huán)節(jié)的設計。各個層次的教學內(nèi)容和教學方法手段并不是彼此割裂的,如何針對各種不同的教學對象進行合理的課程設計,以提高教學質(zhì)量有待于進一步的大量的教學實踐活動。下一步最主要的工作總結(jié)探索各種教學資源以及相應的考核方法,尤其是用于中級目標和高級目標為導向的教學活動。
參考文獻:
[1] 吳乃陵. 面向?qū)ο驝++程序設計教學改革[J]. 電氣電子教學學報,2003,25(2):9-11.
[2] 徐宏,聶影,黃征華,等. 計算機程序設計語言的教學探索[J]. 教學研究,2004(2):89-93.
[3] 沈軍. 程序設計語言類課程的教學思路研究[J]. 高等工程教育研究,2001(1):80-82.
[4] Stanley B. Lippman. Inside The C++ Object Model [M]. Addison-Wesley Publisher, 1996.
[5] Erich Gamma, Richard Helm, Ralph Johnson ,et al. Design Pattern: Elements of Reusable Object Oriented Software [M]. Addison-Wesley Publisher,1995.
Research on Teaching of Programming Language
CHEN Dong-huo,YAO Wang-shu
(School of Computer Science and Technology, Soochow University, Suzhou 215006, China )
【關(guān)鍵詞】程序設計基礎;計算思維;教學效果
0 引言
程序設計基礎作為各個高校面向新生普遍開設的一門信息類基礎課程,以高級編程語言為平臺,介紹計算機程序設計的思想和方法,既為后續(xù)相關(guān)課程的學習打下基礎,也有利于幫助學生理解基本計算思想和方法,培養(yǎng)應用計算機求解問題的能力。該課程的教學效果無論是對學生信息素養(yǎng)的提升,還是對學生后續(xù)專業(yè)課程的學習都具有極為重要的影響。
入學新生普遍沒有接受過系統(tǒng)的程序設計訓練,脫離以往主要依靠學校和家長督促的學習環(huán)境,自主學習意識薄弱,自主學習能力較差。由于這些因素的影響,程序設計基礎課程的教學效果往往并不理想,如何提高程序設計基礎課程的教學效果,培養(yǎng)學生應用計算機解決問題的能力成為普遍關(guān)注的問題。
2006年3月,美國卡內(nèi)基梅隆大學周以真教授(Jeannette M.Wing)在權(quán)威刊物《Communications of the ACM》上撰文Computational Thinking,首次清晰系統(tǒng)明確提出了計算思維(Computational Thinking)的概念。計算思維是運用計算機科學的基礎概念去求解問題、系統(tǒng)設計以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動[1]。計算思維的本質(zhì)是抽象(Abstraction)和自動化(Automation),而這兩個內(nèi)容恰好反映了計算的根本問題,即什么能被有效地自動進行。它雖然具有計算機科學的許多特征,但是計算思維本身并不是計算機科學的專屬。計算思維代表著一種普遍的態(tài)度和一類普適的技能,每一個人都應熱心于它的學習和運用。
計算思維概念一經(jīng)問世,得到了國內(nèi)外科學界和教育界的廣泛關(guān)注和認同[2-3]?!坝嬎闼季S”不是狹義的計算機編程,而是運用計算的基本思想概念去求解問題、設計系統(tǒng)和理解人類的行為; 如同“讀、寫、算”能力一樣, 它是所有人都應具備的思維能力。
1 程序設計基礎課程教學中存在的問題
1.1 重視語言語法學習,忽視程序設計能力的培養(yǎng)
由于程序設計由高級程序設計語言來描述,實際教學中容易注重語言語法的學習,忽視算法設計和程序結(jié)構(gòu)的構(gòu)建。傳統(tǒng)課程評價和課程考試也偏重于語言語法規(guī)則的考察,背離了該課程最初的教學目標。學生往往熟悉語言的語法規(guī)則卻不能針對某個具體問題順利編寫出基本的程序,沒有使用計算機解決問題的思維習慣。
1.2 上機實踐環(huán)節(jié)薄弱
程序設計課程中一個重要的環(huán)節(jié)是上機實踐。由于課程學時等因素的限制,學生上機調(diào)試程序的機會較少,加之重理論輕實踐的固有觀念,學生在學習過程中常常以看懂書上的程序為目標,能夠?qū)懗龀绦虼a,卻不能順利的調(diào)試運行程序,導致對課程缺乏興趣,產(chǎn)生畏難情緒。
1.3 教材和教法不能適應當前教學的要求
程序設計基礎課程相關(guān)的傳統(tǒng)教材往往僅專注于對編程語言的語法細節(jié)進行詳細講解,而忽視了對學生本身程序設計能力的培養(yǎng)。教學方法也以滿堂灌輸式教學為主,課堂氣氛較沉悶,沒有在互動中滲透對學生思維能力的培養(yǎng),調(diào)動他們的學習熱情。
2 融合計算思維培養(yǎng)的程序設計基礎教學
2.1 明確學習目的
在授課之初明確課程的目標和意義,學習程序設計不僅獲得專業(yè)知識,而且能夠提高邏輯思維能力、計算思維能力等,潛移默化中提高學生的綜合素質(zhì),促進其他課程的學習。其中,計算思維的培養(yǎng)將帶給學生受益終身的問題求解能力。明確了課程目標和學習目的,有助于學生端正學習態(tài)度,增強學習積極性。
2.2 分級教學,不同程度融合計算思維
由于不同學生的計算機基礎差異較大,所以在進行程序設計基礎課程教學時,通過對學生的計算機基礎和編程知識進行摸底測試,了解學生實際情況,進行分級教學。對于基礎好的學生,在完成教學大綱全部授課內(nèi)容的同時,布置其他基于計算思維案例的實驗內(nèi)容,以強化計算思維能力的培養(yǎng);其他學生重點完成教學大綱內(nèi)的知識學習,強化問題求解能力的培養(yǎng)。
2.3 分組互助,達到雙贏
在問題討論和上機實驗時,將不同程度的學生組成學習小組,遇到問題,小組內(nèi)的學生首先進行溝通交流,尋找解決方法,這個交流過程不H幫助程度較弱的學生掌握了學習的方法,提高了學習效率,也有助于程度較好的學生鞏固已有知識,開闊思路,提高學習興趣。分組互助的形式比傳統(tǒng)的學習形式能更好的促進計算思維的滲透,使學生充分發(fā)揮主觀能動性,計算思維能力隨著實際問題的解決也得到了提高。
2.4 任務驅(qū)動,課內(nèi)外聯(lián)動
在課堂上布置學習任務,學生課下進行文獻檢索和學習,組織學生將自學內(nèi)容總結(jié)歸納后在課堂上討論、講解。這一過程形成課內(nèi)外教學活動的聯(lián)動,學生不僅掌握了學習內(nèi)容,而且學會了如何根據(jù)要求來進行資料的檢索分析和有價值信息的提取總結(jié)。這樣的方式也從一定程度上解決了程序設計課程教學內(nèi)容多、課時少的矛盾。
2.5 案例式教學滲透計算思維
計算思維與程序設計基礎課程教學的結(jié)合主要體現(xiàn)在兩個方面:首先將抽象和自動化兩個計算思維核心思想貫穿于整個教學活動過程中,其次根據(jù)所需要講授的具體知識點適時地引入計算思維中其他基本概念和思維方法。針對主要教學模塊和核心內(nèi)容,設計以問題引導反映計算思維思想的相關(guān)教學案例,使學生了解相應教學模塊所關(guān)心的問題和解決思路。
3 結(jié)束語
作為普通高等院校面向大一新生普遍開設的一門信息類基礎課程,程序設計基礎中的許多知識點都為計算思維提供了很好的詮釋和生動的案例。將程序設計基礎教學與計算思維培養(yǎng)結(jié)合起來,不僅可以從計算思維的角度重新審視和組織程序設計基礎的課堂教學,取得更好的教學效果;另一方面可以加強對計算思維能力的培養(yǎng),使學生更好地應用計算思維來解決問題,促進學生綜合素質(zhì)的提升。
【參考文獻】
[1]林旺,孫洪濤.基于軟件應用的計算思維能力培養(yǎng)教學設計[J].中國電化教育, 2014(11):122-127.
關(guān)鍵字:算法與程序設計;激發(fā)興趣;分組學習;學習習慣;編程素養(yǎng)
新課程改革后,信息技術(shù)課程除必修課《信息技術(shù)基礎》外另有五門選修課,《算法與程序設計》就是其中之一,這門課程除了與學生們小學、初中、高中乃至大學階段的數(shù)學課程有密切關(guān)聯(lián)之外,對于即將踏入大學的無論文理科的同學們,他們的邏輯思維能力以及今后的學業(yè)、人生都有著至關(guān)重要的作用,因此我校在經(jīng)過慎重篩選后決定在高中二年級選修這門課程,并利用VB程序語言來實現(xiàn)算法與程序設計,VB這種面向?qū)ο蟮某绦蛟O計語言不僅容易設計和實現(xiàn)良好的用戶界面程序,使學生們通過“所見即所得”的窗體界面,更容易學習和掌握,也更易于理解。但是,通過近幾年《算法與程序設計》的教學,讓我對該門學科有了不少體會,并有了一定的反思,從而改良我的課堂教學效果。
體會一:畏懼、恐慌、心理障礙?!端惴ㄅc程序設計》比起其它諸如《多媒體技術(shù)應用》、《網(wǎng)絡技術(shù)應用》等這樣的課程,有了更強的邏輯性和更高一層的難度和深度,相對于后兩種課程也顯得比較單調(diào)枯燥,加之學生們的程度良莠不齊,對待問題、分析問題、解決問題的能力也不盡相同,因此,在初接觸這門課程時,學生們?nèi)菀桩a(chǎn)生一種心理障礙,而這種心理障礙會直接影響他們今后的學習。
解決策略:克服畏懼心理,用成就戰(zhàn)勝枯燥。提到程序設計,好多同學們都覺得熟悉而又陌生,熟悉的是我們在計算機如此普及的現(xiàn)今社會生活中經(jīng)常會聽到這個詞語,陌生的是我們在使用計算機時,最為常見的是使用一些辦公軟件如Word、Excel和網(wǎng)絡,編寫程序好似都是一些計算機專業(yè)人員進行的枯燥的活動,不少同學在知道我們高中階段要學習《算法與程序設計》時,情不自禁的就會露出驚訝的目光、心里打鼓,因此作為老師,我們首先要打消同學們的畏懼心理及由此產(chǎn)生的疑惑?!端惴ㄅc程序設計》中應用的VB程序設計語言進行程序設計,解決涉及的許多問題都與我們的數(shù)學知識、日常生活有著密切關(guān)系,如:學生們的成績等級問題、數(shù)學中的求和、求積問題、數(shù)的排序問題等,而所謂的“程序”不過是計算機可以執(zhí)行的一行行指令代碼,而這些指令則是我們利用一系列的英文單詞、按照一定的語法格式將我們解決問題的自然語言轉(zhuǎn)化為機器可以識別的語言,從而執(zhí)行相應的操作,如:End僅一個常見的英文單詞就可構(gòu)成一個簡單的程序,作用是結(jié)束、退出。因此同學們大可不必畏懼與疑惑,循序漸進即可領略程序設計的奧妙。
教學實例:在學生們對VB程序語言編程不太了解的前幾節(jié)課中,大量的界面設計、屬性修改及編程語句會使學生們暈頭轉(zhuǎn)向,因此我把這課堂演示的例子改為在窗體上直接利用Print語句打印輸出一句話或一個符號,如:Print “歡迎來到VB世界!這是我的第一個程序”、或Print “*”。讓同學們跟著做,或者自己輸出一句話運行程序檢驗結(jié)果、并討論總結(jié)Print語句的作用。因為程序較為簡單,小組成員可以相互幫助,對于動手能力較強的小組可以繼續(xù)體驗探究End語句的用法與作用,這樣在同一個課堂既能分組學習、探究又有層次劃分,不僅能完成當堂教學任務,還可能調(diào)動學生比著學的積極性超額完成任務。
體會二:編程容易,糾錯難。在通過一定階段的學習之后,學生們逐漸要開始自己設計界面、編寫程序?qū)崿F(xiàn)某一功能,但是在這一階段,經(jīng)常會遇到不能按照預期目的運行程序的問題,其中有方法的錯誤,但是更多的是程序編寫過程中出現(xiàn)了一些小小的失誤,而這些失誤雖然會出現(xiàn)一定的提示,但是大部分同學不知道這些提示是什么意思,提示的錯誤代碼代表什么,這樣,一旦程序不能正常運行,學生們最常做的就是舉手示意讓老師幫忙解決。
解決策略:養(yǎng)成良好的編程習慣、學習習慣。程序是有一定的語法規(guī)則與書寫規(guī)則的,變量使用要先聲明、類型要匹配尤其是一些標點符號必須是半角狀態(tài),有些時候運行期間會出現(xiàn)異常提示,可能是變量沒有聲明、也可能是變量類型不匹配導致溢出、也有可能是語句格式不對,缺少與前面相匹配的固定語句……對于類似的這些錯誤提示,在平常的教學過程中除了必要的給學生們講解,更重要的是教會他們養(yǎng)成良好的編程習慣,在編寫程序的時候遇到有固定搭配的語句,最好把這種語句的首尾句先寫好,然后再在這種語句中間編寫其他語句。另外,如果語句之中有嵌套,要做到層層遞歸,使內(nèi)外層次分明,這樣如果一旦程序出錯,亦可方便查看。
教學實例:在程序設計中有三大結(jié)構(gòu),順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),順序結(jié)構(gòu)比較容易理解,但是選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)都可以層層嵌套,嵌套越多越容易出現(xiàn)失誤,因此良好的編程習慣就顯得尤為重要,例如:編寫程序?qū)崿F(xiàn)九九乘法表,語句如下:Dim i as integer
Dim j as integer
For i = 1 to 9
For j = 1 to i
Print i “*” j “=” i*j;
Next j
Next i
這是程序的部分語句,以此為例,首先要求同學們注意的是編程要謹慎——變量i和j在使用之前要先聲明,其次在這個程序中涉及兩重循環(huán),為了使循環(huán)的層次更加分明同時也便于在報錯的時候分層查錯,第一層循環(huán)與第二層循環(huán)之間要有區(qū)別,即在內(nèi)層循環(huán)要使用縮進,這樣就不容易出錯,而在出錯的時候也方便檢查。
信息技術(shù)課程的特點就是不斷發(fā)展,而《算法與程序設計》是更高層次的學習內(nèi)容,教師除了要培養(yǎng)學生用程序設計的方式進行思考,提高學生的探究、創(chuàng)新能力,幫助學生成為適應信息化時展的人才,更要不斷培養(yǎng)和發(fā)展自己的反思能力,不斷自我修正、調(diào)整和更新,這樣才能適應信息技術(shù)學科的特點,做到與時俱進。
參考文獻:
關(guān)鍵詞:計算機專業(yè);程序設計類課程;教學方法
1引言
大學期間計算機專業(yè)的學生必須掌握的基礎課之一《計算機程序設計》課程,旨在培養(yǎng)大學生基礎的計算機技能,以便于以后計算機課程教學的方便實施和講解,因而計算機基礎程序設計課程是計算機專業(yè)學生所必須掌握的一門理論課。計算機程序設計類課程教學重點在于其實踐性,實踐是檢驗真理的唯一標準,通過實踐,學生可以清楚自己的不足和所不理解的知識點,老師也能了解學生對于程序設計這門課的掌握情況,進而方便老師進行教案設計,為下節(jié)課講解提供依據(jù)[1]。計算機課程所重視的應該是創(chuàng)新,但現(xiàn)在各大高校計算機課程卻都以理論知識驗證為主,形成重驗證輕創(chuàng)新的偏差學習,難以激發(fā)大學生學習熱情,且在程序設計上沒有重大突破,大學生的創(chuàng)新意識和創(chuàng)新潛能并沒有被發(fā)掘。教學新課程改革以來,關(guān)于計算機的課程設計正逐漸轉(zhuǎn)向正常,學生的創(chuàng)新意識正不斷被發(fā)掘和刺激。以培養(yǎng)大學生創(chuàng)新意識和積極主動參與能力為目標,進行計算機程序類設計課程的教學探討[2]。
2當前程序設計類課程的教學情況
2.1計算機軟件開發(fā)系統(tǒng)龐大學生容易失去信心
例如Java技術(shù)中所包括的技術(shù)規(guī)范范圍復雜且龐大,在實際運用中也受到眾多條件限制,大學生必須付出更高的學習成本來進行技術(shù)規(guī)范的理論學習。然而若真正意義上進行程序設計,又感覺理論知識的學習無法與實際貼合,力不從心,失去信心。
2.2嚴重缺乏學習興趣、主動參與性較差
計算機程序設計類課程現(xiàn)階段最主要的教學方式依然是PPT展示,老師仍然處于主導地位,學生依舊是被牽引的一方,加之課程內(nèi)容多,學生逐漸失去興趣,學生缺乏學習興趣、積極主動參與性較差。
2.3計算機課程實踐模式單調(diào),學生普遍缺乏實際經(jīng)驗
現(xiàn)階段程序設計類課程的授課方式仍以理論課為主,上機實際操作課時較少,且上機課也只是進行理論知識驗證,關(guān)于創(chuàng)新意識的培養(yǎng)卻很難實現(xiàn)。
2.4考核方式仍以試卷為主
這種考查方式只能確定學生理論知識掌握的熟悉程度和概念的理解認識,但對于實際操作卻并不能完整體現(xiàn),進而也無法實現(xiàn)創(chuàng)新意識體現(xiàn)的最終目的。
3改革教學方法,加大激勵制度
老師的教學任務重點不是講解,而應該把重點放在教案設計上,只有明確的教案設計,才能針對性進行訓練,才能依據(jù)計算機程序設計知識具體應用確定教學重點。此外,老師必須建立互動課堂,只有與學生有足夠的互動,才能更了解學生,才能更好地進行課堂計算機程序設計類知識講解[3]。特別是在學生遇到無法解決的問題時。老師要依據(jù)學生潛力做合適的引導,從而刺激學生找到最佳解決問題的方式,進而提升學生的思考能力,調(diào)動學生對于計算機程序設計類課程學習的熱情。由于計算機專業(yè)的學生不同于其他專業(yè),在畢業(yè)離校后,大都通過小組活動的形式進行程序項目開發(fā),特別是在小組開發(fā)程序設計的途中,重視團隊彼此的配合默契,通過互相探討、闡述自身觀點以及團隊合作能力的方式來提升小組成員之間對于程序項目開發(fā)的動力。為積極增強團隊合作意識,可以適時增加一些類似討論課題的交流活動方式來進行程序設計,并進一步提升運用[4]。對學生進行啟發(fā)性問題挖掘,例如在對學生進行計算機程序設計課程教學時,提前讓學生完成課本內(nèi)容預習任務,并以此為基礎進行啟發(fā)性引導。比如,計算機課程中所指的對象是什么意思;類和封裝又指的是什么;以現(xiàn)實生活為背景調(diào)查人群對于計算機信息技術(shù)的認識,且要依據(jù)實際情況對信息進行登記和處理,以小組團體的形式整體提高計算機程序設計課程學生之間的互動性,也為今后更深入學習計算機相關(guān)知識奠定基礎。
4重視學生的實驗預習和準備情況
計算機程序設計類課程在進行教學實踐時,由于學生缺乏基礎理論知識以及對計算機的不熟悉,容易出現(xiàn)慌張、不知所措的情況,進而導致計算機課程不能順利進行。形成這種局面的最主要原因就是學生并未按老師要求進行課程預習和前期知識回顧,這些無法順利完成,究其根本原因就是學生沒有深入的感知計算機程序設計類課程的教學重點和教學難點,由于前期準備不充分,導致各種狀況發(fā)生。為解決此類問題,老師必須加強自身知識能力,除此之外就是要正確認識計算機程序設計類課程的實際重點內(nèi)容,老師還要根據(jù)自身特點進行課程設計安排,以吸引更多學生專心聽講,以完整的知識武裝自己。計算機課程的專業(yè)較多,因而實驗課內(nèi)容也十分廣泛。這就需要老師依據(jù)實際情況進行課程設計并調(diào)整課程內(nèi)容講解模式。只有這樣才能解決學生在上課時對于計算機程序設計課程學習中難懂的問題[5]。避免盲目從眾,還可以依據(jù)學生自我興趣進行計算機程序設計的理論思維創(chuàng)新并驗證實驗結(jié)果。所以,老師要依據(jù)計算機程序設計類課程的實驗方式來讓學生確定自己的獨特方式,學生也可以積極主動的選擇可以激發(fā)創(chuàng)新思維的各類課程活動方式,結(jié)合自身特點進行計算機程序設計類課程的項目設計,進而滿足不同層次、不同興趣學生自身的實際需求。
5通過上機試驗提升綜合項目的設計能力
計算機程序設計類課程是一門重視實踐的課程,因而上機實踐是相當重要的環(huán)節(jié)。為提升學生對于課程設計的整體感知和理解,老師有必要在第一次上課時就給學生進行整體理論框架知識簡述。并依據(jù)課程實際進行詳略得當?shù)恼f明,這樣既可以提升學生的學習信心,也可以為該課程理論知識實踐奠定基礎。
6重點培養(yǎng)學生實踐能力
6.1對于實踐中常見問題的分析解決
在計算機程序設計類課程實踐中,學生總會遇到各種各樣自己難以解決的代碼錯誤問題以及操作錯誤問題。這些問題若沒有老師幫助解決,學生很難進行下一步的程序設計。計算機實踐課程通常都是大課,70人左右同時進行,計算機實踐操作中出現(xiàn)的問題多種多樣,若是只由老師單獨進行輔導,實在難以解決所有問題,這也是計算機程序設計類課程的實踐難以提升的根本原因。對此,若采取“老師為主、學生互助”的方式則可以極大提升計算機課程實踐效率[6]。老師在進行計算機程序設計課程實踐時,對于學生提出的問題必須有耐心的解決,充分尊重學生的思想,在指導練習時可以讓周圍的學生一起參與起來。比如:針對實踐課程代碼編程問題,老師要引導學生發(fā)現(xiàn)問題的癥結(jié)所在,并積極鼓勵學生建立討論組,通過溝通交流相互討論的方式,發(fā)現(xiàn)實踐問題所在,讓學生積極發(fā)表自己的看法,從而提高計算機程序設計課程的實踐效果。老師也要從計算機程序設計實踐課中總結(jié)經(jīng)驗,以更完善的輔助學生進行計算機程序設計。
6.2課堂知識向課外知識的縱向延伸
通過一段時間的理論知識學習,老師就可以把課程知識進行縱向延伸。學生依據(jù)課程上學到的理論知識,通過實踐運用在課外知識縱向延伸上。同時學生還可以與老師進行及時的溝通交流,這樣可以極大提升計算機程序設計類課程的實踐教學質(zhì)量,也更有創(chuàng)新性的激發(fā)學生對計算機程序設計的興趣[7]。
7學生要善于進行自我總結(jié)并自我評價實驗結(jié)果
老師應該按照學生的實踐能力制定評判標準,并對學生的實際操作能力和理解進行基礎評估,若學生自主的進行實踐內(nèi)容的準備、實踐課題的總結(jié)和經(jīng)驗積累,則老師可以依據(jù)學生的自主意識和自我認知想法合理的提高分數(shù)。學生在進行計算機程序設計時,老師要強調(diào)學生的自我管理,以自我總結(jié)、自我評價的方式為自己負責,對于解決不了的問題,則可以與同學商量共同解決,這樣才能讓學生有效的進行總結(jié)和知識歸納。
8考核方式優(yōu)化改革
(Nuclearsystemoptimizationreform)現(xiàn)階段的計算機程序設計類課程通常以筆試成績?yōu)橹?,重點在于考察學生的概念理解能力,這對于學生來說要求記憶的東西過多,學生并沒有充足的時間進行內(nèi)容的理解和實際操作設計,這也就容易出現(xiàn)高分低能的情況。學生的理解能力、接受能力、創(chuàng)新能力、實踐能力,在試卷上并不能完整的展現(xiàn)。雖現(xiàn)在強調(diào)平時成績,但其所占的小比例并不能改變期末成績,期末成績?nèi)匀皇亲罱K判斷標準[8]。
8.1增強實踐方面的考核優(yōu)化改革
新課程改革下,要求把實踐課分為幾部分進行考核,并依據(jù)各個階段的平均成績判定實踐總成績。實踐部分的分數(shù)僅占總成績的37%。這也就要求學生必須有自己獨到的見解和設計風格理念,這樣才能保證設計出來的程序具有一定的創(chuàng)新性。
8.2期末考試方式優(yōu)化改革
在日常考試中,通過程序設計的方式給每位學生分發(fā)不同的考試題目,學生要依據(jù)題目要求進行相關(guān)程序設計,從分析題目入手,結(jié)合代碼規(guī)律,獨立且完整的完成實踐考試。期末成績改用答辯的方式進行,重視學生的溝通交流以及靈活轉(zhuǎn)變能力。通過這種方式提升學生的分析水平,從而增強學生運用計算機程序設計解決實際問題的能力。
9結(jié)論
總而言之,計算機程序設計類課程是一門重視實踐的課程。尤其在教學實踐中,必須強調(diào)學生的主體地位,以學生為主,老師只做一個引導人,并通過符合學生認知習慣和規(guī)律的方式科學合理的調(diào)動學生的積極性。以此提升計算機程序設計類課程的教學質(zhì)量。所以,老師在計算機程序設計類課程實踐中要持續(xù)圍繞學生的實驗能力進行更深層次的研究和教學上的優(yōu)化改革,從而提升計算機程序設計實踐的教學質(zhì)量。
作者:劉琴 單位:青海民族大學計算機學院
參考文獻
[1]鄒汪平,蔡勁松.基于能力導向的計算機程序設計類課程教學內(nèi)容相關(guān)性研究[J].梧州學院學報,2016(06):72-75.
[2]張雪松.高職院校非計算機專業(yè)《C語言程序設計》課程改革探索[J].產(chǎn)業(yè)與科技論壇,2016(22):194-195.
[3]耿姝,逯柳,王樹芬.計算機程序設計類課程研究型教學改革與實踐[J].工業(yè)和信息化教育,2016(09):50-53.
[4]鐘文峰,晏志英,胡榮群.計算機科學與技術(shù)專業(yè)程序設計類課程群建設的探索與實踐[J].信息通信,2016(09):277-279.
[5]袁鳳玲.計算機程序設計類課程實踐教學的有效性研究[J].遼寧科技學院學報,2016(03):52-53.
[6]楊日璟,焉德軍,辛慧杰.非計算機專業(yè)程序設計課程教學改革實踐[J].大連民族大學學報,2016(03):271-274.
關(guān)鍵詞:計算機專業(yè)算法;程序設計;層階式培養(yǎng)
在計算計機專業(yè)的教育中,培養(yǎng)學生專業(yè)算法設計的能力,是計算機專業(yè)教學的重點內(nèi)容。而計算機程序設計能力又是學生應該具備的最基礎的專業(yè)能力,怎樣更好地培養(yǎng)學生這兩種專業(yè)能力,也是計算機專業(yè)教學的重要目標。目前,計算機專業(yè)雖然得到了大范圍的普及,但是由于教學理念,教學模式,學生學習能力,教師教學水平等主客觀因素的不同,學生的計算機專業(yè)能力與實踐能力并不高。專業(yè)算法與程序設計能力的層階式培養(yǎng)模式是一種新的教學模式,對于提高學生程序設計能力和算法設計能力就有重要意義,需要根據(jù)教學實際,不斷進行改革與創(chuàng)新,不斷提高計算機教學水平,提升學生的計算機專業(yè)素養(yǎng)。
一、計算機專業(yè)教學的現(xiàn)狀簡析
隨著網(wǎng)絡技術(shù),信息通訊等方面的快速發(fā)展,計算機專業(yè)教學已經(jīng)在高校教育中得到普及,選擇計算機專業(yè)的學生也越來越多,但是真正具備計算機專業(yè)能力與應用能力的人才卻少之又少,這也是計算機專業(yè)教育在人才培養(yǎng)方面的缺陷。從目前的教學現(xiàn)狀來看,大多數(shù)學校更注重計算機專業(yè)理論知識的教學,沒有認識到它是一種實踐性極強的學科,沒有注重培養(yǎng)學生的實踐與應用能力。在實際教學中,教師對算法與程序設計的重視度較弱,因此,學生的程序設計能力和算法設計能力較為薄弱,對于前沿性的學習內(nèi)容,學生往往無法接觸到,長此以往,學生在計算機專業(yè)學習中,指學習到了基本理論知識,創(chuàng)新能力和個性能力不足,不利于學生學習興趣的提升。
二、分層次組織計算機算法設計與程序設計教學
計算機算法與程序設計能力的培養(yǎng),是計算機專業(yè)教學的重點,這也是學生學習與應用能力提升的關(guān)鍵。高校在進行計算機專業(yè)算法與程序設計能力的層階式培養(yǎng)的實際教學中,要根據(jù)計算機專業(yè)教學內(nèi)容,根據(jù)學生的學習特點,接受能力,在算法區(qū)域程序設計上進行分層次教學,把計算機理論基礎知識與專業(yè)技能培養(yǎng)有效結(jié)合起來,切實培養(yǎng)學生的算法與程序設計能力。
(一)鞏固專業(yè)基礎知識教學
在計算機程序設計專業(yè)教學中,C語言是基礎課程,這也是一種通用性極高、應用最為廣泛的計算機編程語言,作為重要專業(yè)基礎知識,不容忽視。在C語言教學中,要使學生不斷對詞法、語法、應用方法等方面的知識進行鞏固,培養(yǎng)學生獨立利用相關(guān)知識解決問題的能力。此外,要對計算機算法基礎理論、程序設計基礎、C語言等基礎課程進行合理設置,在教學中,既要學生能夠掌握基本的理論基礎知識,又要形成獨立的思維邏輯,能夠運用基礎知識獨立解決在計算機程序設計中用遇到的各種問題,培養(yǎng)學生的個性意識,創(chuàng)新思維。促進其綜合能力的提升。
(二)加強專業(yè)課程的教學
在計算機專業(yè)算法與程序設計能力的層階式培養(yǎng)過程中,要合理設置相關(guān)專業(yè)課程。算法設計與分析課程就是重要專業(yè)課程之一,在此專業(yè)課的教學中,重點培養(yǎng)目標就是提高學生的計算機程序設計能力。在教學設計中,重點講授基本的算法設計方法及其性能分析,如:遞歸法、回溯法等等,學生要真正理解每種方法的特點與性質(zhì),能夠靈活運用,在算法設計中,要能夠把自己的想法與專業(yè)課程知識相結(jié)合,形成具有個性的設計。
(三)注重應用課程的教學
在計算機專業(yè)教學中,除了基礎課程和專業(yè)課程以外,應用課程的教學也要合理設置,這是培養(yǎng)學生實際應用能力的重要課程。一般與算法和程序設計相關(guān)的應用課程主要有:Java、Web編程與設計、網(wǎng)絡編程、數(shù)據(jù)庫編程等等,此外還有與社會發(fā)展密切相關(guān)的環(huán)境編程等應用課程。通過這些應用課程的合理安排,有助于增強學生的實際應用能力。
三、計算機專業(yè)算法與程序設計能力的層階式培養(yǎng)方式分析
(一)語言程序設計教學層次的劃分
這也是基本的程序設計能力培養(yǎng),此層次的設置,主要是使學生能夠進行簡單基本的編程設計,獨立解決一些簡單的問題。通過學習與實踐的不斷加深,逐漸提高程序設計的難度,以C語言設計為基礎,形成有層級的培養(yǎng)方式,循序漸進的培養(yǎng)學生的計算機程序設計能力。
(二)數(shù)據(jù)結(jié)構(gòu)與算法教學層次的劃分
掌握數(shù)據(jù)結(jié)構(gòu),是解決算法問題的重要途徑。在這一層次的教學中,要從簡單到復雜,逐層逐級,根據(jù)學生的學習特點與掌握能力,逐漸開設計算方法、人工智能、數(shù)據(jù)程序設計等課程,由易到難,相由簡單到復雜,從大學一年級到四年級,相應進行教學,逐漸培養(yǎng)學生的算法設計與程序設計能力。并且能夠自主思考、主動創(chuàng)新,解決更為復雜的計算機專業(yè)問題。
(三)程序設計教學層次劃分
計算機程序設計能力的培養(yǎng)是基礎也是重點,在實際教學中,通過采用各種有層次的培養(yǎng)方式,提升學生的程序設計能力以及解決復雜性、綜合性問題的能力。
四、結(jié)論
綜上所述,計算機專業(yè)是高校教育中的重要專業(yè)學科,與社會發(fā)展、科技進步具有密切聯(lián)系,其主要教育目標就是,培養(yǎng)具有較高專業(yè)技能與計算機綜合素養(yǎng)的人才。因此,要在實際教學中,有層次設置計算機專業(yè)相關(guān)課程,分層級進行人才培養(yǎng),通過對基礎課程,專業(yè)課程,應用課程的分層次設置,分層次教學,不斷提高學生算法與程序設計能力以及計算機專業(yè)應用能力。
參考文獻:
計算機技術(shù) 計算機安全 計算機維護 計算機理論 計算機軟件 計算機網(wǎng)絡 計算機畢業(yè)論 計算機英語 計算機畢業(yè) 計算機病毒 紀律教育問題 新時代教育價值觀