計算機程序設(shè)計語言范文

時間:2023-04-10 16:17:10

導語:如何才能寫好一篇計算機程序設(shè)計語言,這就需要搜集整理更多的資料和文獻,歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。

篇1

關(guān)鍵詞: 程序設(shè)計語言; 建構(gòu)主義教學模式; 支架式教學; 知識建構(gòu)

中圖分類號:G424 文獻標志碼:A 文章編號:1006-8228(2012)12-56-02

Computer programming language and scaffolding instruction

Pang Erli1, Wang Xin2

(1. College of life science, Beijing Normal University, Beijing 100875, China; 2. Beijing Capital international Airport., Ltd. IT Department)

Abstract: Programming language is an absolutely necessary sector, and a suitable teaching method is a key to grasp it fleetly and exactly. Scaffolding Instruction in the teaching mode of constructivism is a suitable teaching method, which decomposes a complex task and gradually guides students to understand deeply and completes construction of information actively. Constructing scaffolding, creating situations, independent exploring, evaluating effects, and so on are used in the teaching process. The results prove to be good and show good prospects for development.

Key words: programming language; the teaching mode of constructivism; scaffolding instruction; knowledge instruction

0 引言

在大學生計算機教學實踐中,計算機程序設(shè)計語言經(jīng)常被學生看作是一門難以掌握的課程,師生在教學實踐中往往付出很大努力,卻不能達到預期的效果。在從事這門課程的教學實踐中,我們認識到尋求合適的教學方法是取得良好教學效果的關(guān)鍵。例如,建構(gòu)主義模式下的支架式教學符合程序設(shè)計語言的特點與學生的認知規(guī)律,是講授這門課程的恰當方法,我們在教學實踐中應用支架式教學方法,取得了很好的效果。本文將相關(guān)的理論研究與實踐教學相結(jié)合,探討了計算機程序設(shè)計語言課程的教學方法。

1 支架式教學與計算機程序設(shè)計語言

建構(gòu)主義教學模式是指教師利用情境、協(xié)作、會話等手段,以學生為中心,充分調(diào)動學生的主動性與探索性,最終達到學生對所學知識的建構(gòu)。這種教學模式改變了傳統(tǒng)教學模式中學生被動接受的狀態(tài),以學生為中心,教師也由傳統(tǒng)的知識傳授者變?yōu)閷W習的組織者、指導者、幫助者和促進者。

支架式教學是建構(gòu)主義教學模式下比較成熟的一種教學方法,它要求教師改變向?qū)W生籠統(tǒng)灌輸知識的方式,而以引導者的身份,為學生在理解所要掌握的知識之前,設(shè)計一種概念框架,這種概念框架就像建筑中的腳手架,它為學習者進入所學知識提供了一個基本的視角與工作平臺,可以有效地幫助學生進入到對知識的理解,即把復雜的學習任務(wù)加以分解,將其類型化、結(jié)構(gòu)化、規(guī)約化,從而把學習者的理解逐步引向深入。在這種教學方法下,教師的作用是引導、組織開展教學,使學生在所建構(gòu)的支架模式上掌握和內(nèi)化所學的知識技能,進而使學習者進行更高水平的認知活動。

計算機程序設(shè)計語言作為一種面向計算機用戶的語言,同我們的自然語言有其一定的相似性,即具有一定的語法規(guī)則和語意規(guī)定。我們教學的目標主要是使學習者掌握這些基本的語法規(guī)則和語意規(guī)定,從而駕馭紛繁復雜的計算機語言工具,最終獲得能夠獨立編寫程序和解決實際問題的能力。對于這些復雜的語法結(jié)構(gòu),教師在教學中可以效仿自然語言的結(jié)構(gòu),對計算機程序設(shè)計語言加以分解從而建立框架,逐步引導學生完成對知識的自我建構(gòu)。

2 支架式教學方法下的計算機程序設(shè)計語言教學過程

支架式教學強調(diào),知識是在一定的情境下,借助教師等他者所提供的基本支架的幫助,學習者發(fā)揮自己的學習主動性,以基本支架為知識掌握的內(nèi)在脈絡(luò),逐步完成學習任務(wù),達到預期目標。這種教學方法體現(xiàn)在計算機程序設(shè)計語言的教學過程中由以下環(huán)節(jié)組成。

2.1 搭腳手架

搭腳手架是支架式教學展開的基礎(chǔ),合適的腳手架是學生建構(gòu)知識的有效工具。腳手架的設(shè)計必須具有層次性、邏輯性,所謂層次性是指其具有不同等級的結(jié)構(gòu),所謂邏輯性是指不同等級的結(jié)構(gòu)具有內(nèi)在的必然聯(lián)系。

在教學實踐中,我們所搭建的腳手架是以學生的已有知識為依據(jù),即與學生已有的母語——漢語的知識聯(lián)系起來,按照漢語劃分為字、詞、句、章的語法結(jié)構(gòu),把計算機語言也歸結(jié)為字、詞、句、章的結(jié)構(gòu),這樣,“字、詞、句、章”的邏輯結(jié)構(gòu)就成為計算機程序設(shè)計語言教學中的腳手架。這樣一種“字、詞、句、章”式的分解方法是本人多年從事計算機程序設(shè)計語言教學實踐的心得,由于它來自于學生的母語——漢語自身的語法結(jié)構(gòu),因而很容易為學生所接受并運用到對計算機程序設(shè)計語言的學習中去,而良好的實際教學效果也充分地證明了這一點。

2.2 創(chuàng)造情境

情境是支架式教學展開的環(huán)境,是學生對知識建構(gòu)的基礎(chǔ)。但情境的創(chuàng)建是為學生的知識建構(gòu)服務(wù)的,所以,教師創(chuàng)建情境時必須緊緊圍繞主題,根據(jù)腳手架上的不同點,創(chuàng)建不同的情境。

在教學中情境的設(shè)計,我們是根據(jù)腳手架上的每個點展開的,對于“字”這個點可以展開基本數(shù)據(jù)類型的教學,“詞”這個點可以展開復合數(shù)據(jù)類型的教學,對于“句”則可進行基本控制結(jié)構(gòu)的教學,“章”是建立在以上基礎(chǔ)上的綜合應用。在每個點中都有意識地設(shè)計了一些相應的問題、任務(wù),提供相應的資料、數(shù)據(jù)支持,形成有助于學習的特定情境。

2.3 獨立探索

在支架式教學模式中,作為引導者、組織者的教師提供的概念框架是學習的前提,平臺一旦確立,學生在其上展開的獨立探索就成為中心內(nèi)容,調(diào)動、發(fā)揮學生的學習主體性進而完成對知識的建構(gòu),這才是支架式教學模式的根本目的。

在教學中對于腳手架上的每個點,都要給學生一些程序資料,讓學生獨立去閱讀、分析,指明程序的優(yōu)點與不足以及對其優(yōu)化的方法,同時還需布置一些編寫程序的任務(wù),要求學生自己編寫程序,并對自己的程序進行評價。總之,我們通過任務(wù)驅(qū)動的方法促進學生進行獨立探索。

2.4 協(xié)作學習

協(xié)作學習是支架式教學展開的重要方法,是學生知識建構(gòu)的重要保證。由于不同人看到的是事物的不同側(cè)面,進而對事物的理解也不同,學習者以自己的方式建構(gòu)對于事物的認識時,不存在惟一標準的理解,通過學習者的協(xié)作學習可以使其對事物的理解更加全面。

在教學中注重通過布置協(xié)作學習任務(wù),強迫學生進行協(xié)作學習。如其中一個協(xié)作任務(wù)是這樣設(shè)計的:編寫一個學生成績管理管理系統(tǒng),其中需要完成四項目標:①輸入學生的基本信息與各科成績并保存到一個文本文件中;②從文件中提取學生成績,統(tǒng)計平均分;③對所有學生按平均分進行排序;④任務(wù)完成后要求以Word文檔上交。這四項目標分別由不同學生或不同小組學生完成。這個學習任務(wù)中的四項目標是相互銜接的,后續(xù)項目必須以之前項目的結(jié)果為基礎(chǔ),所以,不同學生或不同小組之間的協(xié)作學習就是必須的。正是通過這樣一些協(xié)作學習任務(wù)的布置,做到了以強迫的方式幫助學生建立協(xié)作學習的意識,進而使協(xié)作學習成為自覺的學習方式。

2.5 效果評價

效果評價是支架式教學展開的動力,是對學生知識建構(gòu)程度的評價。對學習效果的評價,包括學生個人的自我評價和學習小組對個人的評價,評價內(nèi)容包括:①自主學習能力;②對小組協(xié)作學習所做出的貢獻;③是否完成對知識的建構(gòu)。

在教學實踐中采用的評分規(guī)則是:個體所得分值=小組得分*(個體在組內(nèi)得分/小組內(nèi)所有個體得分的平均值)。小組得分是任務(wù)評比所得的結(jié)果,是小組間競爭和小組內(nèi)合作的結(jié)果。任務(wù)評比時,每個小組對自己的任務(wù)進行匯報時,其他小組和教師對其打分,其所有分值的算術(shù)平均數(shù)作為該小組最后的得分;成員的組內(nèi)得分則是在組長的組織下,由所有的成員對其打分,取算術(shù)平均數(shù)。

通過上述環(huán)節(jié)在教學過程中的實施,基本實現(xiàn)了教材、學生、教師、媒體教學四要素之間的良性循環(huán),如圖1所示。

3 反思

在教學實踐中使用了支架式教學方法,雖然取得了一定的效果,但也遇到很多問題,其中既涉及到如何完善這種教學方法本身,又涉及到其與教學內(nèi)容、教學大環(huán)境等的關(guān)系,這里提出自己的幾點體會:

3.1 強調(diào)以學生為中心

學生的主動探索性是知識建構(gòu)的關(guān)鍵。在支架式教學方法中,學生是知識的主動建構(gòu)者,而不是被動接受者,教師也不再是傳統(tǒng)的知識傳授者。在整個教學過程中教師起組織者、指導者、幫助者和促進者的作用,教師必須注意這種角色的轉(zhuǎn)變與指導尺度的把握,要因勢利導而不要越俎代庖。

3.2 注重情境設(shè)計的具體性

情境是影響知識建構(gòu)的外在氛圍,形成主題集中、形式活躍的總體情境對于教學任務(wù)的完成是非常重要的,但情境最終是為特定的教學任務(wù)服務(wù),是在支架下教學的總體模式下展開的。因此,教師對情境的設(shè)計必須圍繞學生所要建構(gòu)知識的主題,要和支架式教學模式的具體要求結(jié)合起來。

3.3 注重人際互動

人際互動是影響知識建構(gòu)的社會環(huán)境,通過教師的指導實現(xiàn)師生互動,通過學生的協(xié)作學習實現(xiàn)學生之間的互動。但人際互動的完善僅有具體課程、具體教學模式是難以完成的,它有待于總體社會環(huán)境、教育環(huán)境的完善,也有待于學生自身素質(zhì)的總體提高。

3.4 廣泛地利用學習資源

學習資源是影響知識建構(gòu)的文化環(huán)境。多媒體計算機和Internet網(wǎng)絡(luò)教育是建構(gòu)主義發(fā)展的沃土,是理想的認知工具。在這個環(huán)境下,學習資料非常豐富,我們必須充分利用這些資源,即要充分利用e_learning。但資源豐富的同時,必然會存在良莠不齊,教師必須幫助學生對這些資料加以甄別。

4 結(jié)束語

我們在計算機程序設(shè)計語言教學中應用建構(gòu)主義模式下的支架式教學,已經(jīng)取得了很好的教學效果。我們通過實踐檢驗了這一教學理論,希望我們的經(jīng)驗對同行有參考價值。在未來的教學實踐中,我們將進一步細化這種教學模式,提高計算機程序設(shè)計語言這門課程的教學質(zhì)量。

參考文獻:

[1] 何克抗.建構(gòu)主義的教學模式、教學方法與教學設(shè)計[J].北京師范大

學學報(社會科學版),1997.5:74-81

[2] 陳琦.教育心理學的基本問題(二)—關(guān)于建構(gòu)主義理論[J].中國遠程

教育,1999.2:40-43

[3] 袁維新.影響知識建構(gòu)的環(huán)境因素探析[J].教育科學,2003.2:41-44

[4] 張屹,祝智庭.建構(gòu)主義指導下的信息化教育[J].電化教育研究,

2002.1:19-23

篇2

一、運用任務(wù)驅(qū)動教學法于程序設(shè)計語言教學,在“任務(wù)”的設(shè)置上要適當

所謂適當?shù)摹叭蝿?wù)”,是建立在對學生的了解之上的,讓學生通過適當?shù)呐δ茌^好地完成,在完成任務(wù)的過程中,學會學習。在中等職業(yè)教學中,程序語言設(shè)計相對較難,對學生的思維訓練也是多方面的,相對于其他學科也有其獨特之處。如果采用傳統(tǒng)的教學方法,簡單地按照從易到難,從簡單到復雜的順序循序漸進地進行教學,學生處在被動的學習狀態(tài)中,容易感到厭倦。采用任務(wù)驅(qū)動教學法,有利于培養(yǎng)學生自主學習、合作精神和探究能力,有利于培養(yǎng)學生的信息素養(yǎng)和綜合素質(zhì)。

根據(jù)學生的現(xiàn)狀,本人把任務(wù)設(shè)計成幾個有一定聯(lián)系的幾個任務(wù)。按進度分別提出:請你給學生編寫一個加法練習程序;請你給學生編寫一個加法練習程序,正確的顯示“OK”,錯誤的顯示“wrong”;請你給學生編寫一個加法練習程序,每套10道題,每題正確的加10分,錯誤的不給分,并計算總分等。

當?shù)谝粋€任務(wù)提出時,學生都覺得很簡單,但無從下手。本人圍繞這個問題先開辟“有意義接受學習空間”,進行必要的教學,學生的學習也顯得特別認真。

二、運用任務(wù)驅(qū)動教學法于程序設(shè)計語言教學,在教學形式上以學生為主體

采用任務(wù)驅(qū)動教學法,在課堂教學中,首先提出一個需要完成的具體任務(wù),與學生共同分析解決該問題所需的知識,方法和步驟,有時先開辟“有意義接受學習空間”,圍繞具體任務(wù)進行適量的概念教學和舉例講解,或開辟“自主學習空間”以及“協(xié)作學習空間”,學生來完成任務(wù),可以獨立完成,也可以合作完成。目的是的通過完成任務(wù),掌握學習內(nèi)容,學會學習,培養(yǎng)綜合能力。在這個過程中,教師參與探索和指導,引導學生掌握教學內(nèi)容,適時在班級交流,發(fā)現(xiàn)新思路,推廣新思路,鼓勵創(chuàng)新。教師進行比較、評講、歸納,或由計算機執(zhí)行,學生從中得出結(jié)論,引導交流,共同進步。如:

在讀語句和寫語句教學時,在教學前先提出一個任務(wù),即:“請你給學生編寫一個加法練習程序”。圍繞這個任務(wù),討論分析需要解決的問題,程序需要提供的功能,需要通過那些途徑來實現(xiàn):出題顯示要用一個寫語句;出題要一個隨機函數(shù);回答問題要用一個讀語句;答案顯示也要一個寫語句。

然后介紹讀語句和寫語句的格式及其功能、介紹隨機函數(shù)。

學生獨立閱讀課本上的例題;學生獨立或合作完成任務(wù)。

教師或查看學生在電腦上的執(zhí)行情況,或參與一些學生的討論或探討,發(fā)現(xiàn)問題,個別問題的個別回答,帶有普遍性問題的在全班回答或講解。

就在完成本任務(wù)的過程中,有的同學提出了正誤判斷問題,一次練習做多個題目等問題。由學生導引出了后續(xù)問題。“請你給學生編寫一個加法練習程序,正確的顯示‘OK’,錯誤的顯示‘wrong’”。這是條件語句教學時的任務(wù)。循環(huán)語句教學時,任務(wù)是:“請你給學生編寫一個加法練習程序,每套10道題,每題正確的加10分,錯誤的不給分,并計算總分”。數(shù)組教學時,提出對自己及班級的成績進行統(tǒng)計的任務(wù)。

以這種方式進行教學,使得學生感覺到編程是一件實用和有趣的事。

采用任務(wù)驅(qū)動教學法進行教學,教師的教和學生的學都是圍繞如何完成一個具體的任務(wù)進行的。教師教學思路清晰,學生學習目的明確,學習變成了學生的主動行為,在用的需求下學,學以致用,更容易掌握學習內(nèi)容。比如在前面提到的條件語句的教學,按任務(wù)驅(qū)動教學法,不是孤立地介紹有關(guān)概念,而是將同學們所關(guān)心的正誤判別問題加以解決。這樣教學,提高學生的主動參與意識。

三、運用任務(wù)驅(qū)動教學法于程序設(shè)計語言教學,在教學內(nèi)涵上是符合探究式教學模式的

從學習者的角度說,任務(wù)驅(qū)動教學法是一種學習方法,適用于學習技能型知識,尤其適用于學習信息技術(shù)應用方面的知識和技能,也能適合程序設(shè)計語言的學習。

任務(wù)驅(qū)動教學法使學習目標十分明確。在某個學習階段,緊緊圍繞這一既定的目標,學習和運用相關(guān)的知識和方法。一個“任務(wù)”完成了,一個目標達到了,會產(chǎn)生新的任務(wù),新的目標。例如,在上述第一個任務(wù)進行時,就有學生提出了新的問題。隨著一個個任務(wù)的完成,初學者將逐步消除對編程的畏懼,還不斷地體會到成功的喜悅。任務(wù)驅(qū)動教學法,符合計算機系統(tǒng)的層次性和實用性,提供了由表及里、逐層深入、逐步求精的學習途徑,便于學生由淺入深、循序漸進地學好有關(guān)的知識和技能;提供了三個學習空間,也鼓勵了學生的學習主動性。而且,采用這種方法,伴隨著學生的是一個跟著一個的成就感。

從教師的角度說,任務(wù)驅(qū)動教學法是一種建立在建構(gòu)主義教學理論基礎(chǔ)上的教學方法,符合既發(fā)揮教師的主導作用,又體現(xiàn)學生的認知主體作用的“雙主模式”,有利于培養(yǎng)學生的自學能力和相對獨立地分析問題、解決問題的能力,以及探究精神、合作精神和團隊精神。在程序設(shè)計語言教學中可以采用這種教學模式。

運用任務(wù)驅(qū)動教學法,體現(xiàn)了以人的發(fā)展為本的觀念。尊重學生的主體價值,創(chuàng)造適合學生個性發(fā)展的條件,激發(fā)全體學生的積極性,使每個學生都學有所得,享受成功的喜悅。這是尊重學生,愛護學生,將學生視為學習和發(fā)展主體

篇3

【關(guān)鍵詞】:c語言程序設(shè)計教學方式上機實踐

【分類號】TP312.1-4

隨著社會的發(fā)展和技術(shù)的進步,計算機應用已經(jīng)廣泛滲透到了各個行業(yè),計算機發(fā)揮著越來越大的作用,計算機基礎(chǔ)教育成為非計算機專業(yè)大學生的必修課,而C語言程序設(shè)計是各高校普遍開設(shè)的計算機基礎(chǔ)課程之一,是大學生學習程序設(shè)計的入門課程。對非計算機專業(yè)的學生來講, 首次接受計算機高級語言與程序設(shè)計方面的知識,不僅要學習算法的設(shè)計思想,還要掌握C語言本身的語法,學習起來非常困難。為了更好地培養(yǎng)學生運用C語言解決實際問題的能力, 筆者結(jié)合自己的教學研究與實踐,從課堂教學方式和教學手段、上機實驗等方面闡述,就如何提升教學效果進行探索論述。

一、運用典型的例子,培養(yǎng)學生對C語言的學習興趣,充分調(diào)動學習積極性

C語言注重算法設(shè)計、程序書寫、程序進行調(diào)試的過程顯得抽象復雜,導致學生抱怨程序設(shè)計難、不好理解、難掌握。第一堂課的教學就顯得尤為關(guān)鍵,教師應該充分準備, 力求授課內(nèi)容新穎,對C語言的發(fā)展、設(shè)計開發(fā),C語言在現(xiàn)實生產(chǎn)生活中的應用結(jié)合學生所學專業(yè)進行具體的介紹發(fā)展結(jié)合F實環(huán)境和學生所學專業(yè)的關(guān)系,讓學生明確學習本課程的目的,清楚知道課程的用途。給出能解決實際問題的幾個簡單且有輸出結(jié)果的程序源代碼,讓學生編輯并調(diào)試,當程序結(jié)果成功輸出后,學生學習C 語言程序設(shè)計興趣自然就產(chǎn)生了。

二、運用多媒體教學與案例教學相結(jié)合的教學方式

傳統(tǒng)的課堂教學是使用粉筆在黑板上編寫程序,一定時間內(nèi)傳授的知識和信息偏少影響教學效果。多媒體教學可以直觀形象的使學生在有限時間內(nèi)迅速理解、掌握更多知識,還可以培養(yǎng)學生抽象思維和邏輯推理能力。在多媒體教室使用的課件,要根據(jù)自身的課堂特點和知識結(jié)構(gòu),精心設(shè)計引入案例教學,每個知識模塊都配設(shè)各個知識點的綜合性案例,其中綜合案例由若干個模塊組成,每個模塊覆蓋若干知識點。每個模塊作為教師在課堂上引出知識點的引例,進行詳盡的分析講解。學生通過實現(xiàn)綜合案例,能夠?qū)⒅R點融會貫通。在設(shè)計綜合案例時要體現(xiàn)知識的循序漸進性,由易到難,由簡到繁。利用案例教學采用多媒體教學和傳統(tǒng)教學相結(jié)合的方法,通過多媒體生動的動畫來演示知識重點、難點之間的關(guān)系,利用黑板板書給學生分析編程方法和思想,讓學生參與寫出算法的表示及其演變過程。

三、與程序?qū)嵗嘟Y(jié)合培養(yǎng)學生編程能力

非計算機專業(yè)學生學習C語言的目的就是用計算機程序解決專業(yè)上的實際問題。在C語言程序設(shè)計中,程序的核心是算法,學生能否理解算法并掌握算法是教學的關(guān)鍵內(nèi)容。以具體實例為切入點,改變先給出一般的語法格式,然后逐步講解語法要點的方式,以程序?qū)嵗秊橹行?,把相關(guān)知識點的語法和概念融入到具體程序?qū)嵗兄v解,在整個教學過程授課的重點中為解題思路、方法和步驟,培養(yǎng)學生如何分析并解決與專業(yè)相關(guān)的實際問題,逐漸培養(yǎng)學生進行C語言程序設(shè)計的正確思維能力。利用教學中容易出現(xiàn)的問題,自頂向下逐步細化問題,逐層向下分解問題,直到滿足要求為止。通過對問題的分析研究,激發(fā)學生的學習興趣,能夠思考和參與討論問題,培養(yǎng)學生邏輯思維和創(chuàng)新能力。

四、理論聯(lián)系實際培養(yǎng)學生的上機實踐能力

C語言一門實踐性很強的課程, 上機實踐是學生加深對基礎(chǔ)知識、算法的理解、編程能力的提高、消化基本語法的重要途徑之一。通過上機實踐調(diào)試解答學生學習中存在的疑點和難點,理解所學C語言程序設(shè)計內(nèi)容,培養(yǎng)學生的閱讀設(shè)計程序、分析解決問題的能力。

教師在上機實踐前,根據(jù)所學內(nèi)容教師可根據(jù)教學大綱,結(jié)合不同專業(yè)要求精心挑選設(shè)置好實驗題,具有一定難度、由淺入深、單一到綜合的原則,以實踐鞏固理論、以理論支持實踐, 使學生實現(xiàn)對所學知識的運用,對所學知識的綜合應用能力進行培養(yǎng)。

在上機實驗前,要求學生以書面形式寫好算法或源程序。針對學生在調(diào)試C語言程序時,出現(xiàn)不同的語法、邏輯、算法和運行等錯誤,老師和學生一起討論分析解決問題,提高C語言程序設(shè)計和調(diào)試程序的能力。

五、結(jié)束語

由于C語言程序設(shè)計課程內(nèi)容繁多,采用的教學方法多種多樣,在本科的教學課程體系中又占有非常重要的地位。要獲得理想的教學效果, 教師需從多個方面過進行綜合考慮,提高學生學習興趣,拓展教學思路, 改進教學方法, 理論與實踐結(jié)合,在動手實踐中提高學生的思維能力,引導學生掌握程序設(shè)計語言的知識、編程技術(shù)和基本算法,能靈活應用C語言程序設(shè)計所學知識去分析和解決本專業(yè)的實際問題。

參考文獻:

[1]譚浩強《C程序設(shè)計》[M].清華大學出版社,2000.

[2]張菁等.C語言程序設(shè)計[M].北京:中國鐵道出版社,2010.

[3]王喚探討C語言教學方法[J]福建電腦2006(11)211-217.

[4]趙阿可,劉世江《C語言程序設(shè)計》教學方法的探討[J]價值工程2011(16) 188-189

[5]喬正洪《C語言程序設(shè)計》教學實踐[J] 電腦知識與技術(shù)2009(25) 7182-7183

篇4

1我國計算機專業(yè)VB語言程序設(shè)計教學現(xiàn)狀

VB語言程序設(shè)計課程是一門面向可視化編程的專業(yè)學科,它在教學中有著很強的實踐性、功能性以及專業(yè)性,因此作為高等院校計算機專業(yè)的必修課程必須要創(chuàng)新教學方法、改革教學思路,由此提高教學質(zhì)量。具體的我國計算機專業(yè)VB語言程序設(shè)計教學現(xiàn)狀如下。

1.1教學目標。VB語言程序設(shè)計是我國計算機專業(yè)教學重點,也是主要的教學內(nèi)容和活動,它在教學中整個工作都是圍繞著程序設(shè)計開展的。我國當前信息技術(shù)課程標準中也明確的指出,VB語言程序設(shè)計的目標與任務(wù)就是通過該課程教學,讓學生主管認識到計算機世界的算法思維、表達方式,并能初步掌握VB這一面向程序設(shè)計的語言,在工作中有效的解決各種編程問題。

1.2教學內(nèi)容。計算機專業(yè)的VB語言程序設(shè)計教學中,其教學內(nèi)容包含了:VB語言程序設(shè)計基本知識、VB語言程序設(shè)計的算法公式以及設(shè)計規(guī)范、培養(yǎng)學生良好的程序設(shè)計思維和習慣。

1.3VB語言程序設(shè)計的教學特點。VB語言程序設(shè)計本身是一門實踐性強、內(nèi)容復雜的教學工作,它在教學中要求學生不能依賴于各種已經(jīng)設(shè)計好的應用軟件,當然除了一些特殊的應用程序之外,也不是對已經(jīng)存在且得出結(jié)果的信息進行加工,而是學生在學習中獨立思考各種新問題,并且利用所學知識合理、科學的解決這些問題。就VB語言程序設(shè)計教學進行分析,它在教學中有著邏輯思維要求強、結(jié)構(gòu)復雜、注重分析、注重過程以及仔細查錯等教學特點。

2計算機專業(yè)VB語言程序設(shè)計教學新方法

計算機專業(yè)的VB語言程序設(shè)計課程本身是一門集技能、知識、實踐及經(jīng)驗為一體的綜合性學科,它在教學中有著很強的實踐與理論要求,因此不僅需要學生在學習中掌握各種理論知識,而且要掌握相關(guān)操作技術(shù)。尤其是在程序設(shè)計部分,對于這些內(nèi)容的掌握程度要求更為嚴格,只有科學掌握種種適用于各種實踐、操作要求的技能,才能讓學生步入社會之后不被社會所淘汰。在教學中,教師要充分的認識和注重教學新技術(shù)、新方法和新理念的引入,通過各種先進教學方法和手段來提高學生自主學習、分析問題、解決問題的能力。目前,在計算機專業(yè)VB語言程序設(shè)計課程教學中,常見的教學方法有以下幾種。

2.1實例教學法。VB語言程序設(shè)計同其他語言類的程序設(shè)計課程一樣,它在教學中都需要學生提前掌握VB語言基礎(chǔ)知識。由于VB語言基礎(chǔ)知識本身是一門復雜的課程,在教學中如果仍然沿用順序教學、滿堂灌教學以及填鴨式教學,那么教材前面的基礎(chǔ)概念講述的枯燥必然給學生學習態(tài)度造成影響。這種枯燥的教學方式不僅影響學生的學習積極性、主動性,甚至給學生造成厭學、棄學的心理,究其原因是因為大多計算機專業(yè)的學生在剛接觸VB語言的時候?qū)υ撜n程的認識低,對各種概念和認識完全不理解,這個時候很容易出現(xiàn)學生思維受限制的現(xiàn)象。面對上述情況,在教學的過程中我們有必要采用實例教學法。在教學的過程中將各種專業(yè)知識設(shè)計成為一個具體的實際案例,在案例中包含當前課程中需要講述的概念、定義以計算法,以案例的形式由淺入深的給學生講解各種知識,讓學生在不知不覺中學習各種知識。但需要注意,在案例教學中案例設(shè)置不能太多,只需要設(shè)置的精準、巧妙便可,讓案例將教學中所接觸的一切概念系統(tǒng)、科學、明了的表現(xiàn)出來,從而達到提高學生學習質(zhì)量的目的。例如在具體的教學中,如果需要編寫一個程序,那么要求輸入兩個實數(shù),且打印出乘積(具體的程序截面圖如圖所示)。這個時候我們可以對程序進行分析、判斷,讓學生從程序分析與判斷中明確教學目標、需要掌握的知識,這種教學方法相信老師講解簡單、學生理解容易,也讓學生樂于接受這方面的知識。

2.2任務(wù)驅(qū)動教學法。VB語言程序設(shè)計課程的教學中,大多教學工作人員為了更好的提高教學質(zhì)量,通常都在案例教學的基礎(chǔ)上,通過對案例進行優(yōu)化而形成了一種新的教學方法,即任務(wù)驅(qū)動教學法。這種教學方法在應用中是以構(gòu)建靈活、科學、合理的教學方案為基礎(chǔ),以學生為教學主體,將各種學生感興趣、有意義的教學內(nèi)容設(shè)置到教學方案中,并經(jīng)過整理之后形成若干個簡單的問題,讓學生在學習中自我解決和研究這些問題。這種教學方法中,學生能夠按照自己的思路去設(shè)計計算方法,完成相關(guān)的程序設(shè)計工作。這種教學方法在應用中,學生能夠通過自我研發(fā)的方式學習,是一種獨立思考、自我鉆研的學習過程,不僅保證了教學質(zhì)量,而且大大提高了學生學習興趣和學習效率,更有效的培養(yǎng)了學生自我鉆研、自我創(chuàng)新的素質(zhì)。

2.3多媒體教學方法。VB語言程序設(shè)計課程在教學中,由于本身專業(yè)知識內(nèi)容多、實驗多的特征,其在教學中必然會出現(xiàn)大量算法以及結(jié)構(gòu)流程,而這些算法以及結(jié)構(gòu)流程通過口頭闡述很難讓學生深入的了解其過程。因此,采用多媒體教學方法與傳統(tǒng)教學模式結(jié)合效果就顯得十分明顯了,在具體的教學工作中采用這種方法則教師可以通過網(wǎng)絡(luò)的形式給學生提前布置任務(wù),讓學生在網(wǎng)上自我鉆研和解答問題,同時教師還可以通過網(wǎng)絡(luò)即時的了解學生的學習情況,根據(jù)學生學習現(xiàn)狀制定出一套科學、系統(tǒng)、有序的教學新方法。經(jīng)過一段時間的教學工作研究,多媒體教學方法是一種節(jié)約板書時間、教學效果好、編程設(shè)計直觀的教學方式,它有效的提高了教學效率和學生學習主動性。具體實施分三個階段:選題分組階段:由教師給出若干個題目供學生選擇,然后每四到五人組成團隊,進行合作開發(fā)。系統(tǒng)實現(xiàn)階段:學生利用課余時間展開系統(tǒng)調(diào)查、系統(tǒng)分析、進行模塊劃分、責任到人。

3總結(jié)

篇5

關(guān)鍵詞:C語言程序設(shè)計,實例教學,語法

  《C語言程序設(shè)計》是程序設(shè)計的基礎(chǔ)課程,在多數(shù)高校中,已經(jīng)把它作為一門必修的課程,同時,C語言程序沒計也是全國計算機等級考試二級語言考試科目。C語言具有非常重要的地位。因此,改善教學方法,提高教學質(zhì)量至關(guān)重要。下面,從幾個方面談?wù)凜語言教學。

1. 明確教學目的,合理安排教學大綱和學時

我校為二類本科學校,為非計算機專業(yè)大一學生開設(shè)C語言課程,旨在讓學生拓寬思維方式,培養(yǎng)學生具有設(shè)計程序的能力。為二級考試和本專業(yè)的后繼課程打下良好的基礎(chǔ)。

我?!禖語言程序設(shè)計》授課學時為32學時,實驗學時為16學時,教學以基礎(chǔ)知識,語句,數(shù)組和函數(shù)四部分為主體進行詳細講解和練習,指針做基礎(chǔ)介紹和了解內(nèi)容,能夠適應學生的特點,達到較好的教學效果。

2. 明確學生學習目的,激發(fā)學生的學習興趣和熱情

通過幾個生動的實例如,學生成績管理系統(tǒng),數(shù)據(jù)進行排序,漢諾塔,八皇后問題等,讓學生明白,學習完C語言,我就可以進行程序設(shè)計了。明確學生學習目的。

3. 加強實例教學,在實例中學習語法

對于非計算機專業(yè)同學而言,大量的語法很容易使一部分甚至是大部分學生產(chǎn)生枯燥無味的感覺,很快對這門課程失去信心。為了保持學生對這門課程的興趣,采用趣味程序的例子進行教學,從而在實例中掌握 C 語言的語法。這種方法的優(yōu)點是可以根據(jù)教學內(nèi)容,選擇合適的例子,以實例為主體,語法為補充,使學生掌握所學內(nèi)容,在應用中強化語法。經(jīng)常選用的實例有,華氏溫度和攝氏溫度的轉(zhuǎn)換,分段函數(shù)的計算,階梯電價,貸款計算,自動售貨機價格查詢,求三角形面積,利用格里高利公式求圓周率,驗證哥德巴赫猜想等。在每個實例的基礎(chǔ)上,對學生多提問,并進行擴展,以復習前面學過的知識,也可以鞏固當前學習的內(nèi)容。通過啟發(fā)式教學,讓學生做更多的練習,加深對語法和程序設(shè)計方法的理解,掌握課程的精髓。再輔以實驗課,教學效果比較顯著。

4. 多媒體教學與傳統(tǒng)教學方法相結(jié)合

隨堂編程能夠起到非常好的教學效果。教師先引導學生思考如何去編寫例題中的程序,然后按學生的思路編程,也可以讓學生上講臺來直接實現(xiàn)編程。當場編譯運行,比如兩個數(shù)交換,學生一般會直接進行a=b,b=a,程序結(jié)果就會令學生大吃一驚。然后再通過舉例如何把一瓶啤酒和一瓶可樂里的液體反裝,再進一步編程,學生又恍然大悟。這種方法能夠拓展學生的想象空間,激發(fā)學生的學習熱情。教師也可以在一些編程講解中,加入一些預先設(shè)計好的學生最容易犯的小錯誤,

向?qū)嶒炚n要效率

上機實驗這一環(huán)節(jié)必不可少。教師應該注重夠提高學生的積極性,使實驗課更有效率。

首先應精心設(shè)計上機實驗內(nèi)容,把實驗內(nèi)容和課堂所講知識有機結(jié)合起來,加強學生對知識的理解和消化。每次兩學時的實驗課,一學時以驗證性實驗為主,理解消化語法,增強學生信心。一學時以編程為主,教師設(shè)計實驗題目,內(nèi)容兼具趣味性和實用性,讓學生先對題目感興趣,再對編程感興趣。把學生從被動學習逐漸轉(zhuǎn)變?yōu)橹鲃訉W習,讓學生從成就中出效率。

其次,要求學生課前寫好預習報告,課后完成實驗報告,實驗課堂隨機提問,保證實驗課質(zhì)量。在學生有問題時,看清問題原因,不直接給出正確答案,給學生一定提示,啟發(fā)學生獨立思考。

5. 結(jié)束語

要教好C語言,關(guān)鍵在于激發(fā)學生的學習興趣,使學生積極主動、愉快地學。除了講授語法,更要講授如何去應用語法。在授課過程中開發(fā)學生的創(chuàng)造性思維,使學生具備自主學習的能力。

參考文獻

何欽銘,顏暉.C語言程序設(shè)計[M].高等教育出版社,2008.

篇6

關(guān)鍵詞:計算思維;VFP程序設(shè)計;計算機基礎(chǔ)教育

中圖分類號:G642 文獻標識碼:A 文章編號:1009-3044(2014)06-1271-02

目前,計算思維是計算機界關(guān)注的一個熱點。自2010年7月,九校聯(lián)盟(C9)西安會議提出計算機基礎(chǔ)教學的核心任務(wù)是計算思維能力的培養(yǎng)以來,國內(nèi)多所高校圍繞計算思維與計算機基礎(chǔ)教學改革進行了深入的研究和實踐,發(fā)表了一些計算思維研究和實踐方面的論文。在新的形勢下,如何在大學計算機基礎(chǔ)教學中,培養(yǎng)學生在各自專業(yè)領(lǐng)域中應用計算機和計算思維解決實際問題的能力,對于提高學生的創(chuàng)新能力和信息素養(yǎng)都具有重要的意義。

1 計算思維

計算思維是美國卡內(nèi)基梅.隆大學計算機系主任周以真(Jeannette M. Wing)教授提出的。周教授認為:計算思維 ( Computational Thinking )是運用計算機科學的基礎(chǔ)概念去求解問題、設(shè)計系統(tǒng)和理解人類的行為,其本質(zhì)是抽象和自動化。

計算思維是數(shù)學思維、邏輯思維和工程思維的綜合,是與閱讀能力、寫作能力和算術(shù)思維并列的第四種能力,能夠提升人類的能力。就像識字、做算術(shù)一樣,是人人都必須具備的思維方式。

2 VFP程序設(shè)計教學現(xiàn)狀分析

Visual FoxPro(簡稱VFP)課程是面向高等學校非計算機專業(yè)學生開設(shè)的計算機基礎(chǔ)教育課程。VFP作為計算機程序設(shè)計的一門基礎(chǔ)課程,應注重學以致用。學習的重點不只是編寫程序,而是學習算法思想與問題求解的思路,增強學生計算思維能力的培養(yǎng)。

但是,從目前VFP程序設(shè)計教學,尤其是非計算機專業(yè)現(xiàn)狀來看,普遍存在以下問題。

2.1 課程學時少

隨著計算機技術(shù)內(nèi)容的不斷更新,以及信息技術(shù)在中小學的普及,在新的形勢背景下,計算機基礎(chǔ)教學面臨著新的挑戰(zhàn)。人們對計算機基礎(chǔ)教學產(chǎn)生了片面的認識。認為“計算機會用即可”、“計算機即編程”,造成學時被壓縮,資源得不到充分的配置和利用。就我校的計算機基礎(chǔ)教學改革來看,“大基”的學時由64變成32,時間壓縮了一半,學生計算機基礎(chǔ)水平有待提高。

VFP的教學課時相對“大基”課時雖然要多些,但對于非計算機專業(yè)的學生來說,計算機語言底子更是薄弱,想在短期內(nèi)掌握一門計算機語言,十分不易。對于授課教師而言,既要完成教學目標,又要學生掌握計算機語言使用方法,并且在教學中形成學生的計算思維能力是非常困難的事情。

2.2 以語言知識為主,偏理論,輕實踐

在實際教學中,很多老師以語言知識為主線,詳細介紹語法規(guī)則等細節(jié)內(nèi)容,上機操作多以驗證為主,偏重考試內(nèi)容而不是編程,這和課程的教學目的是相悖的。導致學生學習積極性不高,感到枯燥,學的不牢,編程能力和分析解決實際問題的能力沒有得到提高,更談不上運用計算機解決專業(yè)問題。

3 以培養(yǎng)計算思維為核心的VFP程序設(shè)計教學方法

3.1 以計算思維為主線,改進教學內(nèi)容和教學方法

計算思維養(yǎng)成以計算能力的培養(yǎng)為基礎(chǔ),對教學內(nèi)容的改革,不是完全改變原有的課程內(nèi)容,而是內(nèi)容的再組織與優(yōu)化,突出核心內(nèi)容和方法。

教師在上第一節(jié)課時可以介紹一個完整的系統(tǒng),比如學生信息管理系統(tǒng)。在演示過程中告知學生,每項功能可由哪些知識實現(xiàn),讓學生對本門課程有一個系統(tǒng)開發(fā)的概念。并了解VFP數(shù)據(jù)庫管理系統(tǒng)在各個領(lǐng)域的應用。學習本門課程的目的,不是為了順利通過考試,而是能夠獨立開發(fā)一個完整的系統(tǒng),并能解決自己的專業(yè)問題。

在實際的教學中,以培養(yǎng)學生計算思維能力為核心任務(wù),采用“任務(wù)驅(qū)動”和“案例教學”的方法,針對不同的專業(yè)和不同層次的學生設(shè)計教學任務(wù)。按照“提出問題—分析問題—尋找解決問題的方法—介紹解決問題的方法和知識—方法和知識推廣—課后作業(yè)和拓展”的教學片段設(shè)計思路,對學生進行計算思維的實踐。

3.2 注重程序設(shè)計思想和算法訓練

計算思維的本質(zhì)是抽象和自動化。在教學過程中,可將相同或相近的知識點整合,設(shè)計相應教學任務(wù),讓學生了解程序設(shè)計思想和程序設(shè)計過程。如求解方程、求階層等任務(wù),可先讓學生用數(shù)學方法來求解,再引導學生用抽象的計算機語言來實現(xiàn)。

啟發(fā)學生利用多種技術(shù)、多種算法解決同一問題,圍繞問題求解和設(shè)計能力培養(yǎng)。例如求解“1+2+3+……+100”,可分別考慮用for循環(huán)、while循環(huán)來實現(xiàn)。采用有趣的案例,比如“猜數(shù)游戲”,“幸運7”,“測試體重”等,用多種思路設(shè)計與多種編程方法實現(xiàn)。

3.3 以上機實踐為重點

VFP是實踐操作性很強的一門課程,學生只有親自動手編寫代碼,調(diào)試程序,才能掌握和理解所學的知識,了解編程的思路和方法,訓練思維能力。對此,教學過程中可以考慮以下方法:

3.3.1 設(shè)計合理的實驗內(nèi)容

由于實踐課時限制,學生練習時間較少,首先要使學生熟練掌握基本的語言知識,具備基本的編程和調(diào)試能力,才能逐步引導深入。實驗內(nèi)容包含主要重點內(nèi)容,難度適中,有一些讓學生發(fā)揮的余地,在書上能找到所有知識點和類似代碼,但又不是完整的照抄,有助培養(yǎng)學生的設(shè)計能力。

3.3.2 實驗任務(wù)具有趣味性和綜合性

通過實驗任務(wù)的趣味性、綜合性等來增強實驗內(nèi)容的難度,從而強化計算思維訓練。如在“幸運7”游戲案例中,把一些枯燥和不易理解的知識,變成有趣的游戲。不僅讓學生理解面向?qū)ο蟪绦蛟O(shè)計的相關(guān)概念,并對應用程序的開發(fā)流程有了一個綜合的認識。通過拓展知識,讓學生實現(xiàn)多位數(shù)的幸運數(shù)字游戲設(shè)計。通過反復訓練,以提升學生計算思維能力。

3.3.3 安排課程設(shè)計實驗

在程序設(shè)計課程的最后環(huán)節(jié),安排課程設(shè)計。或結(jié)合實例,完成一個項目。為學生提供一個全面考查學生水平的機會,對所學知識進行融會貫通。

4 結(jié)束語

計算思維的教育,是一種普適教育,對任何類型的學生都需要培養(yǎng)。什么是計算思維,如何去理解它,每一位教師都應該充分地認識到它的重要性。只有改變了教師的意識,才能把計算思維的培養(yǎng)貫徹到自己的教學中,才能培養(yǎng)學生的研究創(chuàng)新能力,提高學生的信息素養(yǎng)。面向計算思維的計算機基礎(chǔ)教學改革任重而道遠,還需要不斷的探索和改革。

參考文獻:

[1] 何欽銘.計算機基礎(chǔ)教學的核心任務(wù)是計算思維能力的培養(yǎng)[J].中國大學教學,2010(9).

[2] 李麗新.任務(wù)驅(qū)動教學法在Visual FoxPro程序設(shè)計課程教學中的應用[J].吉林建筑工程學院學報,2011(6):75-77.

篇7

關(guān)鍵詞: C語言 教學方法 應用編程能力 自學能力

1?郾引言

《C語言程序設(shè)計》是高職計算機類專業(yè)開設(shè)的首門高級程序設(shè)計語言課程。它使用廣泛,表達能力強,目標代碼運行效率高,可移植性好;既具有高級語言的優(yōu)點,又具有低級語言的許多特點;既可以用來編寫系統(tǒng)軟件,又可以用來編寫應用軟件。目前,在《C語言程序設(shè)計》課程教學中,許多教師和學生都認為C語言概念多、規(guī)則繁雜、使用靈活、書寫方式多變、容易出錯。教師教學和學生學習都感到困難,增加了教學的難度;而學生抱怨課程內(nèi)容枯燥乏味,沒有興趣;在解決實際問題編寫應用軟件時往往無從下手,缺乏編程和調(diào)試的能力。下面我就C語言的教學談?wù)勛约旱囊恍┛捶ê徒ㄗh。

2.精心規(guī)劃教學

有些學生甚至在學完了該課程后仍然無法完整、正確地理解C語言的整體結(jié)構(gòu)和特點。我針對這種情況,在教學課時上,《C語言程序設(shè)計》課安排一學期學完。把該課程劃分為兩個學習階段:第一階段《C語言程序設(shè)計I》,主要將基礎(chǔ)知識融入案例與任務(wù)中進行教學,即基礎(chǔ)階段;第二階段《C語言程序設(shè)計II》,主要進行30個學時為期一周的應用程序設(shè)計與實現(xiàn),即應用階段。

基礎(chǔ)階段《C語言程序設(shè)計I》的考核,主要考慮對學生動手編程能力的培養(yǎng),因此考核分成理論和上機兩部分。理論考試為開卷,占總評成績的20%;上機考試主要題型為編程和改錯,占總評成績的30%;平時成績占總評的20%。應用階段《C語言程序設(shè)計II》的考核,以面試考核為主,占總評成績的30%,考查學生對項目案例教學的理解,項目案例功能的擴展和改進等方面的情況,以及運用C語言解決實際問題的應用能力。

3.教學伊始引導學生養(yǎng)成良好的程序設(shè)計習慣和代碼編寫風格

首先,在C語言教學之初,讓學生閱讀簡單的規(guī)范的C語言程序,在學生心中起到“先入為主”的效果;其次是在上課過程中,充分利用現(xiàn)代的教學方式,課件演示和板書都力求以規(guī)范的格式書寫程序,告訴學生程序就該這樣寫;平時上機練習,要對學生中代碼書寫出現(xiàn)的不好習慣,及時提出并給出改正的方式方法??傊?,要培養(yǎng)學生嚴謹、清晰的代碼編寫風格和良好的程序設(shè)計習慣。

4.采用多種教學方法,培養(yǎng)學生的編程能力

4.1循序漸進法。在C語言的教學過程中,教師起非常重要的作用,尤其是在教學中要激發(fā)出學生的興趣。大多數(shù)學生都是初次接觸C語言,這是一個全新的內(nèi)容,同時也會有全新的收獲。由于該課程是培養(yǎng)學生程序設(shè)計的能力,之前學生幾乎沒有此經(jīng)驗和能力,要通過教師循序漸進地引導,再加上學生上機的體驗和感受,使其逐步積累程序設(shè)計的能力。對于教師給定的題目,教師應該遵循由低到高、由簡入難,有趣并盡可能貼近實際的原則。開始時,教師給予學生的題目都是單項的練習,如簡單的輸入輸出、數(shù)據(jù)類型、數(shù)組編程等。到了C語言學習的后期,可以出一些較復雜并和實際結(jié)合的題目。如:在講解二重循環(huán)知識點的時候,教師可設(shè)計以下由淺入深、由易到難的實例。

(1)打印如下由易到難的圖形

通過上述三個由淺入深的實例,自然就可以總結(jié)出打印圖形的規(guī)律:把每行前輸出的空格數(shù)與行的關(guān)系、每行打印“*”的個數(shù)與行的關(guān)系填入內(nèi)層循環(huán)的終止即可。另外,由于外層循環(huán)包含了多條語句,因此必須用把包含在外層循環(huán)中的語句用{}括起來。推廣到一般,打印符號的大致代碼形式如下:

for(i=l;i

{for(j=1;j

for(k=1;k

printf ("\n") ;

}

(2)通過上述的總結(jié),讓學生自己編寫程序,打印如下復合金字塔圖形

上述程序雖然相對比較簡單,但對于初次接觸雙重循環(huán)程序的學生來說還是不易掌握。在教學活動中,教師要通過實例將語法講解透徹,實例的難度要循序漸進,從易而難,使學生在每次的學習過程中都能產(chǎn)生成就感,從而進一步刺激學生的求知欲望,通過教師的主導性來發(fā)揮學生學習的積極性、創(chuàng)造性。

4.2案例教學法。在教學的過程中,首先教師拿出一個任務(wù)案例展示給學生看。這個案例里面涉及到的C語言知識點。對于已經(jīng)學過的知識點,教師通過案例來展示,可以使學生鞏固知識點并加深印象;對于沒有學過的地方,就是在其后的課程中講解的重點,并告訴學生,只有認真聽講才能完全理解案例的精彩之處。由于任務(wù)案例的引入,使得分散的知識點立刻變成實踐應用,因此學生在課堂上也更容易被教師吸引,能更緊地跟上教師的思路。對于學生來說,他們在案例學習中,不一定能把所學的知識一一總結(jié)出來,但是他們見識了C語言是如何處理實際問題的,這對他們提高認識,增加興趣,提高解決實際問題的能力都是很有幫助的。

4.3分組教學法。分組教學體現(xiàn)了學生的主體地位,可以激發(fā)學習興趣。根據(jù)班級人數(shù)和機房布置情況5人―6人分為一組,組長位置坐在中間,水平較好的學生挨著水平較差的學生。分組教學可以實現(xiàn)提優(yōu)補差。水平較差的學生在遇到問題時可以及時得到幫助,能跟上全班進度,也增強了繼續(xù)學習的信心。分組教學可以培養(yǎng)學生自主探究、合作學習的能力?!禖語言程序設(shè)計》課程是用程序項目的方式把實驗內(nèi)容布置下去,許多綜合性程序項目要求以小組為單位完成。

4.4任務(wù)驅(qū)動教學法。為了培養(yǎng)學生的創(chuàng)造思維、獨立分析問題和解決問題的能力,以及實際編程的能力,我們設(shè)計短期任務(wù)與長期任務(wù)結(jié)合的上機內(nèi)容。以一個項目作為長期任務(wù),再按不同功能模塊分解開來,形成一個短期任務(wù)。每一章學過之后要求完成一項或幾項編程作業(yè),各章的編程作業(yè)不是孤立的,而是相互聯(lián)系的,實際上它們都是一個較大型較復雜程序的組成部分。這樣就可以使學生的任務(wù)形成一種連貫性,在整個學科的學習過程中始終都有一個總?cè)蝿?wù)的驅(qū)動,而學生又在一個又一個短期任務(wù)的驅(qū)動下,體驗著一次又一次邁向成功的喜悅。例如,以“學生成績管理系統(tǒng)”為課程設(shè)計的長期任務(wù),從常用輸入/輸出語句printf和scanf開始,讓學生編寫主函數(shù)調(diào)用若干個空函數(shù)形成一個文本型菜單的雛形:學習常用數(shù)據(jù)類型后,再編寫一個驗證密碼輸入的函數(shù);學完選擇結(jié)構(gòu)后,要求編寫一個菜單選取函數(shù);學完循環(huán)控制和數(shù)組后,要求建立班級課程的成績輸入輸出函數(shù);學完結(jié)構(gòu)體類型后,要求使用結(jié)構(gòu)體數(shù)組來存儲和處理學生的信息;學習鏈表后,要求利用單鏈表動態(tài)管理學生的成績;最后在“文件”這一章,要求利用文件操作完成學生成績管理。當學完整個課程,完成了平時要求的各項編程作業(yè)之后,學生就會發(fā)現(xiàn),自己完成的遠不是一個一個零碎的程序段,而是一塊塊制作程序的各個部件,只要通過簡單的程序拼裝,就可以構(gòu)成一個比較復雜的程序。這也在潛移默化中培養(yǎng)了學生采用各個擊破的方法解決實際問題的意識。最后,學生從整的角度來審視整個程序的設(shè)計,并通過上機進行綜合調(diào)試,達到提高編程能力的目的。

5.培養(yǎng)學生的自學能力

計算機技術(shù)知識更新太快,對于計算機專業(yè)的學生來說,在C語言教學中,培養(yǎng)學生的自學能力尤為重要。教師不僅要傳授現(xiàn)有的知識,而且要傳授獲取知識的方法。對于學習能力較強的學生,教師應該鼓勵他們自學,并給予方向性指導,讓他們超前學習,甚至自學C語言前沿應用技術(shù)。在實際教學過程中從問題入手,引導學生在尋求問題的解決方案的同時,學會了運用網(wǎng)絡(luò)、圖書館等獲取信息的方法,對獲得的信息進行篩選和修改,并進一步理解,最后把其應用到自己要解決的問題中。這一過程,為今后的終身學習打下了基礎(chǔ)。

6.結(jié)語

總之,在C語言程序設(shè)計的教學過程中,教師應遵循理實一體化教學原則,培養(yǎng)學生的編程能力和利用C語言解決實際問題的應用能力,培養(yǎng)學生的自學能力。在今后教學中我們?nèi)詫⒉粩鄬嵺`與探索,進一步改進教學方法,充分調(diào)動學生的主觀能動性,以取得更好的教學效果。

參考文獻:

[1]譚浩強.C語言程序設(shè)計[M].北京:清華大學出版社,2007.

[2]崔婭萍.高職C語言教學探討與研究[J].中國科教創(chuàng)新導刊,2010,(28).

[3]喬瑞琴.語言教學的實踐和探索[J].山西煤炭管理干部學院學報,2010,(03).

[4]王創(chuàng)偉,湯克明,蔡長安.《C語言程序設(shè)計》教學改革方案與實踐[J].現(xiàn)代計算機(專業(yè)版),2010,(11).

篇8

關(guān)鍵詞: 高校非計算機專業(yè) 《C語言程序設(shè)計》 問題 解決方法

1.課程教學現(xiàn)狀

由于《C語言程序設(shè)計》這門課進入我國高校非計算機專業(yè)課堂的時間并不很長,而且在學校里往往又是年輕教師授課,教學經(jīng)驗不夠豐富,《C語言程序設(shè)計》本身涉及的知識面又較廣,因此在實際教學過程中往往教學效果不是很理想。我也在教學過程和課后調(diào)查中發(fā)現(xiàn)許多學生存在這樣一種情況:理論課能聽懂,到了實踐課卻不能理解程序含義;當時學習當時有效果,過后很快遺忘;課程學習完成后,依然只會輸入課本例程調(diào)試運行,設(shè)計性、創(chuàng)造性能力不足等現(xiàn)象。我對以上幾個問題加以分析,并提出自己的幾點看法。

2.問題分析

2.1關(guān)于理論清楚、實踐茫然的問題。

由于學習《C語言程序設(shè)計》課程的學生都是剛學習完《大學計算機基礎(chǔ)》的大一學生,經(jīng)過一個學期的學習,他們的計算機能力只是剛剛進入了解計算機的最基礎(chǔ)層次,一般學生還不能形成一個完整計算機系統(tǒng)的邏輯模型,對于學習《C語言程序設(shè)計》課程的許多概念,例如:內(nèi)存地址、I/O接口、數(shù)據(jù)的存儲和編碼等還沒有足夠的認識。然而《C語言程序設(shè)計》又是一門既包含了高級程序設(shè)計語言特點,又包含了低級程序設(shè)計語言特點的課程,也就是說《C語言程序設(shè)計》課程的理論知識滲透到計算機學科知識體系的多個層次和方面,像計算機體系結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu),等等。但是學生恰恰缺乏這方面的知識,這就要求教師必須從不同層次、不同角度來講授《C語言程序設(shè)計》這門課程,并且在每個知識點都找到合適的切入點。正是由于《C語言程序設(shè)計》這門課程涉及的知識面廣,因此對于學生來說,要想學好《C語言程序設(shè)計》這門課程,就需要有經(jīng)驗豐富的教師的正確引導,否則就只能是在課堂上什么程序都能看懂,一到編譯環(huán)境中,就手足無措。再加上學生計算機英語水平有限,不能很好地看懂編譯錯誤提示信息,缺乏修改錯誤的經(jīng)驗和技巧,這就造成了理論與實踐的脫節(jié),嚴重影響了教學效果。

2.2關(guān)于教學效果不持久的問題。

C語言作為一種計算機語言,具有運算符豐富、數(shù)據(jù)結(jié)構(gòu)豐富、語法限制不太嚴格、程序設(shè)計自由度大等優(yōu)點。正是這些優(yōu)點使得C語言語言簡潔、緊湊,使用方便、靈活。但又是由于這些優(yōu)點,造成C語言需要記憶的內(nèi)容較多,學習起來不容易上手。學生在開始學習C語言的過程中,也不能一下子體會到C語言的這些優(yōu)點,反而很容易會認為C語言很復雜,很難學,一旦學生先入為主地有了這個看法,就會產(chǎn)生畏懼心理,造成學生學習C語言不認真,前學后忘的情況。所以教師在教授《C語言程序設(shè)計》這門課程的時候,要注意如何去激發(fā)學生的學習興趣。大一的學生求知欲是很強的,雖然在初學《C語言程序設(shè)計》這門課程的時候不一定就對此門課程感興趣,但這只是直接興趣。在教師的引導下,學生能感覺到這門課程的重要性,可能對自己今后的學習或者工作產(chǎn)生幫助,他也會產(chǎn)生強烈的學習興趣,不過這時候的興趣已經(jīng)成為了一種對學習結(jié)果看重的間接興趣。不管是直接興趣還是間接興趣,都可以激發(fā)學生對C語言的求知欲,使得學習起來事半功倍。

2.3學生創(chuàng)新能力不足的問題。

我在實際教學中發(fā)現(xiàn),很多學生在學習了一段時間的C語言后,拿起書本,也能正確地輸入程序,調(diào)試運行。但是如果讓他脫離課本,隨便出一個課本以外的題目,他就感覺到無從下手,好像什么都不會了。這就說明我們在課堂教授的知識是死的,學生學習之后只是知其然,而不知其所以然,一遇到新問題,或者現(xiàn)實問題,往往缺乏描述問題、分析問題、解決問題的能力。盡管經(jīng)過很長時間的學習,學生還是沒有把課本上的知識變成自己的知識,還不能活學活用。教師也往往不能注意到這一點,雖然很用心地準備,很用心地講授,學生也很用心地學習,但就是不能取得良好的教學效果。這里所說的創(chuàng)新能力并不是說讓學生學習完這門課程之后,什么C程序都能編寫,而是要注重培養(yǎng)學生的分析問題、解決問題的能力。這是因為《C語言程序設(shè)計》這門課程的目標定位就是讓學生通過學習這門課程之后能懂得結(jié)構(gòu)化程序的設(shè)計思想;能讓學生掌握計算機軟硬件的基本知識;能培養(yǎng)學生使用計算機分析問題、解決問題的方法和意識,為學生將來從事相關(guān)專業(yè)領(lǐng)域的計算機應用和開發(fā)設(shè)計打下一個堅實的基礎(chǔ)。這幾點一定要在我們的教學過程中體現(xiàn)出來,也要讓學生明白學完這門課程就想編寫出高水品的程序是不現(xiàn)實的,但是通過學習《C語言程序設(shè)計》應該掌握一種規(guī)范的解決問題的方法,在遇到新問題時,就要有意識地運用學到的知識去分析解決。

3.解決方法

3.1找準教學切入點,加強實踐環(huán)節(jié)。

教師在課堂上講授課程的時候為了取得良好教學效果,往往總是不厭其煩地反復講解程序,期望學生能夠聽懂、學會。實際上這個時候?qū)W生往往真正聽明白的只是教師用自己的語言翻譯過的程序。例如整型變量與字符型變量通用的問題,學生知道是可以通用的,卻往往不知道為什么,到了實踐環(huán)節(jié)使用時,不是忘記了,就是出錯。所以教師在講授這個問題的時候就必須從根本出發(fā),復習、補充像存儲單位、ASCII碼、整數(shù)的編碼等基礎(chǔ)知識,要讓學生站在計算機的角度上看待整型變量和字符型變量。這其實就是一個教學切入點的問題。另外教師在學生的實踐環(huán)節(jié)中,也要注意幫助學生自己解決調(diào)試程序中出現(xiàn)的問題,而不是學生程序有了問題,簡單地一改正,只要運行正確就行,而是應該仔細地向?qū)W生說明為什么會出錯,出錯的情況下,編譯環(huán)境會怎么反映,以及怎么根據(jù)錯誤提示來解決這個問題。對于具有普遍性的問題,教師還應集中講解,這樣才能達到比較良好的教學效果。

3.2注意教學方式,激發(fā)學生學習興趣。

學生學習任何課程時都存在一個學習興趣的問題,如果是對一門課程的學習過程本身感興趣,這是一種直接興趣;如果是對學習的結(jié)果感興趣,對這門課程的重要性而感興趣就是間接興趣。對于《C語言程序設(shè)計》這樣一門普遍讓學生感到枯燥、難懂的課程,想讓學生對之感興趣,是有一定困難的。但是針對學生求知欲強這一客觀特點,教師可以采用一些方法來調(diào)動學生的學習積極性。教師在上課的時候,應該強調(diào)這門課程的重要性,要舉例說明C語言在實際工程中的應用,還應該給學生演示一些C語言編寫的圖形應用程序,像用C語言解決五子棋、漢諾塔等趣味問題。特別是要根據(jù)學習進度,給出一些超前一點的程序題目讓學生課后完成。這樣讓學生感到學有所用,開始是被動地學習,是為了完成學習任務(wù)的學習,最后在不斷的練習、應用中轉(zhuǎn)變成自發(fā)地、主動地學習,讓對C語言不感興趣的學生漸漸地產(chǎn)生興趣,讓間接興趣變?yōu)橹苯优d趣。

3.3注意引導學生,培養(yǎng)學生主動分析問題、解決問題能力。

現(xiàn)在的高中還是以應試教育為主,學生畢業(yè)時基本沒有程序語言設(shè)計基礎(chǔ),加之這種應試教育使得許多學生習慣于那種死記硬背的學習方法,對于程序語言設(shè)計這種特別需要獨立分析問題、解決問題的能力的課程極不適應 。這就要求教師在授課的過程中循序漸進,慢慢培養(yǎng)學生的這種能力,注意在課堂上多問為什么,讓學生跟隨教師的引導,主動去思考,漸漸地培養(yǎng)出學生拿到一個問題就能獨立分析,獨立解決的能力。例如在for語句的學習中,學生對兩層循環(huán)及多層循環(huán)特別難以弄清,主要因為在兩層循環(huán)及多層循環(huán)中,變量的變化過程比較復雜,學生缺乏一定的邏輯思維能力去推算整個變量變化的過程。這個時候我們就要在黑板上一步一步地推出變量是怎么變化的,外層變量是怎么控制內(nèi)層變量的。雖然這樣可能花費的時間稍多,但是為了培養(yǎng)學生分析問題的能力,絕對值得。

4.結(jié)語

學好C語言是需要一個較漫長的過程的,僅憑上課的時間遠遠不夠。只要我們在教學過程中找好切入點,深入淺出,抓住學生的學習興趣,培養(yǎng)出學生的自學能力,讓學生感覺到學習C語言的樂趣,感覺到C語言的實用性,學生就能利用課余時間,自發(fā)地、有目的地學習。這樣,通過教師的講授與學生的自學相結(jié)合,就能達到C語言課的教學目標,取得一個良好的教學效果。

參考文獻:

[1]譚浩強.C語言程序設(shè)計(第三版)[M].北京:清華大學出版社,2005.

篇9

中圖分類號:G642

1 程序設(shè)計語言類課程的教學現(xiàn)狀及問題

計算機學科知識結(jié)構(gòu)更新快,其中,程序設(shè)計語言在短短的幾十年間經(jīng)歷了較大變化。語言類課程是計算機學科的專業(yè)基礎(chǔ)課程,其學習效果直接影響其他后續(xù)課程。當前語言類課程教學主要面臨以下問題。

1.1 課程體系設(shè)置單一

國內(nèi)高校計算機專業(yè)的程序設(shè)計語言類課程大多是過程式或者面向?qū)ο蟮拿钍骄幊陶Z言,課程體系設(shè)置單一。不可否認,這類語言無論是從學科性還是有用性上講,都是合適的。然而,程序設(shè)計語言不僅僅是這類命令式語言,它還包括如ML、Haskell這樣經(jīng)典的函數(shù)式編程語言,或者如兼顧面向?qū)ο蠛秃瘮?shù)式的Scala語言等。從某種意義上講,函數(shù)式編程能夠更大程度地鍛煉計算思維[1]。在多核并行程序設(shè)計已經(jīng)被推到前沿的今天,命令式編程語言天生的缺陷使得構(gòu)造并行編程模型變得非常復雜,而函數(shù)式編程在經(jīng)歷數(shù)十年的發(fā)展之后,終于不再局限于實驗室的理論研究。事實上,如果不懂得函數(shù)式編程,Google不可能創(chuàng)造出MapReduce。

1.2 教學過程僵化

程序設(shè)計語言類課程的傳統(tǒng)講授是按照編程語言類教材的典型撰寫次序,先講常量、變量、數(shù)據(jù)類型等,再講表達式、語句等,再比較復雜的語言特點,這些花費了較多時間,最后可能不再有多余的時間剖析該語言的內(nèi)建庫函數(shù)或者類,更少涉及該門課程與后續(xù)課程的銜接關(guān)系。這種傳統(tǒng)的講授方式針對第一門程序設(shè)計語言課程的教學,特別對那些沒有接觸過編程語言的學生來講,可能是一種較好的方式[2]。然而,對于第二門程序設(shè)計語言的授課,按照這種按部就班的教學過程推進教學進度時,由于在較長一段教學活動中所講授的都是孤立的語法點,學生看不到一個較為完整的應用實例,也不了解這門課程與其他課程之間的貫通,容易產(chǎn)生厭學的心理,也很難體會程序語言的設(shè)計藝術(shù)。

1.3 重編程技能,輕計算思維

針對程序設(shè)計語言類課程實踐性特別強的特點,許多教改措施都是針對如何提高學生的工程應用實踐技能的[2-3],如采用案例化、任務(wù)驅(qū)動、項目驅(qū)動等方式。編程技術(shù)固然重要,然而計算思維比單純技術(shù)更加重要。培養(yǎng)學生以計算機的方式進行思考和解決問題,讓他們認識到程序是思想的表現(xiàn)形式,最終能夠通過語言來表達思考與設(shè)計,并能理解這門語言設(shè)計和實現(xiàn)的長處、不足、限制等。為了達到這個目標,需要引導學生深入理解編程語言本身。

2 教學改革措施

2.1 增設(shè)函數(shù)式編程語言課程

函數(shù)式編程模型早在面向?qū)ο蟾拍畛霈F(xiàn)之前就已經(jīng)存在了,它的核心是lambda演算。由于其語法不如命令式語言的語法直觀易懂,許多初次接觸函數(shù)式編程的人常常不知所措,會覺得難以理解。然而,這種難以理解性與熟悉程度相關(guān)。近20年的課程改革中,因為種種原因,程序設(shè)計語言類課程體系幾乎完全拋棄了函數(shù)式程序設(shè)計語言。如今,多核時代的興起,函數(shù)式程序代碼的簡潔性使得它在并發(fā)應用領(lǐng)域綻放光彩。雖然實用性是我們應當考慮的一個方面,但是從培養(yǎng)學生計算思維以及從編程語言本身的研究方面,增設(shè)函數(shù)式編程語言課程是很有必要的。

常用的函數(shù)式編程語言或者具備函數(shù)式編程語言特點的編程語言包括Haskell、ML、OCaml 、Scala等。依據(jù)需要可以選擇不同的函數(shù)式編程語言:如果傾向于編程語言本身的理解,可以選擇純函數(shù)式的ML、Haskell,或者OCaml;如果傾向于并行分布式程序的開發(fā),可以選擇結(jié)合了面向?qū)ο蠛秃瘮?shù)式特點的Scala語言,它兼容Java。此外,Java 8的lambda表達式也是一個不錯的學習函數(shù)式編程的選擇。

2.2 適當調(diào)整講授內(nèi)容的次序

以Java程序設(shè)計語言的教學為例,按照常規(guī)教材的編寫次序,Java的教學內(nèi)容通常是先講變量、類型、表達式和語句,然后是數(shù)組,接著是類和對象、繼承等。在實踐中我們對講授內(nèi)容的次序進行了調(diào)整:在對Java語言作了初步介紹之后,緊接著講解對象的創(chuàng)建和使用,見表1。表1第2行的內(nèi)容不再放在講解了類的定義之后。這個調(diào)整出于兩方面的考慮:一方面,讓學生盡快建立對象的概念,知道怎么使用對象;另一方面,數(shù)組在Java程序設(shè)計語言中視為對象,因此,講解了如何使用對象之后有利于數(shù)組的講解。而類的定義涉及較多語法知識,在講解了如何使用對象、變量、類型、表達式和語句之后,引導學生考慮這個問題――我們能不能按照自己的設(shè)計來創(chuàng)建對象呢,于是開始講解類的定義,見表1第5行。

為了講解如何使用對象,首先選擇兩個常用的Java內(nèi)建類――字符串String和System,針對已經(jīng)學習了C語言程序設(shè)計的學生,從教學效果上看,盡管學生還沒有接觸到Java的各種語法規(guī)則,但是他們?nèi)匀唤邮芰恕皩ο蟆边@個知識點的講授。更重要的是,他們建立了對象的初步印象,了解了Java與C的不同,并在一定程度上激發(fā)了學生的學習興趣。

由于Java程序需要使用標準輸出流的方法System.out.print()用于輸出程序的運行結(jié)果,學生就問:Java程序怎么輸入呢?此時,對輸入輸出流進行較為完整的講解顯然不合適,在講解使用對象時,我們進一步講解如何使用Java的字符緩沖輸入流類BufferedReader,直接給出如下板書:

BufferedReader br = new BufferedReader(

//BufferedReader需要一個Reader類型的參數(shù)

//InputStreamReader就是一個Reader

new InputStreamReader(

//InputStreamReader需要一個InputStream類型的參//數(shù),System.in就是一個InputStream

System.in));// System.in用于接受鍵盤的輸入

br.readLine(); //BufferedReader的readLine

//方法讀入一行

以上這段代碼稍顯復雜,學生在課余可以仔細研究并進行試驗。實踐表明,這些Java常用內(nèi)建類的使用在教學初期給出時,不但沒有造成學生的困惑和畏懼,反而提升了學生的學習熱情。

2.3 引導學生深入理解程序設(shè)計語言

程序?O計語言類課程對于培養(yǎng)學生的計算思維非常重要,需要學生深入理解程序設(shè)計語言本身的設(shè)計與實現(xiàn),而不僅僅是學習單純的語法。

通常學生因其視野的局限性和課時的限制,無法深入學習一門程序設(shè)計語言。教師在授課時應該找機會引導學生去深入理解。通常,語言設(shè)計和實現(xiàn)者提供了API文檔和源碼,這些是深入理解一門編程語言最直接也是非常好的參考資料。如果學生能夠養(yǎng)成查看API的習慣,無疑能夠促進對語言的認識和理解。以引用類型變量的講解為例,假設(shè)變量p引用的是一個Person類型的對象,變量s引用的是一個String字符串對象。System.out.print(p)輸出結(jié)果是代表對象地址的哈希碼,而System.out.print(s)輸出了一個字符串。這是為什么呢?同時,有學生就會提出疑問:System.out.print(p)是否可以直接輸出p所引用的Person對象的成員值,如姓名和年齡等,而System.out.print(s)是否可以輸出這個字符串對象的地址哈希值?在這個過程中,可以引導學生逐步查找對應的API,如圖1所示。最后可以進一步查看Object類和String類對應方法的實現(xiàn)源碼。知道了這個思路后,學生豁然開朗,開始著手解決問題。

在教學實踐中,我們常常鼓勵學生按照這種方法去找解決思路,而不是直接給出答案。得益于Java的開源,在Java程序設(shè)計語言的教學活動中,我們也鼓勵學生查看javac編譯器或者JVM的即時編譯器的實現(xiàn)源碼。學生通過這種學習方式,在長期使用一門程序設(shè)計語言后,最終能夠駕馭語言,表達類似計算機方式的思考與設(shè)計。

篇10

計算機科學與技術(shù)本科生的基本學科能力可以歸納為計算思維能力、算法設(shè)計與分析能力、程序設(shè)計論文與實現(xiàn)能力、系統(tǒng)能力[1]。其中計算思維能力是指模型化、抽象思維能力、邏輯思維能力。系統(tǒng)能力是指計算機系統(tǒng)的認知、分析、開發(fā)與應用能力,也就是要站在系統(tǒng)的觀點上去分析和解決問題,追求問題的系統(tǒng)求解,而不是被局部的實現(xiàn)所困擾。算法設(shè)計與分析能力、程序設(shè)計能力是計算機類專業(yè)學生應該具備的基本能力之一,是從抽象思維到具體應用方法的轉(zhuǎn)換,涉及到閱讀判斷、思考分析、抽象綜合、表達創(chuàng)造等多項能力,對計算機專業(yè)高素質(zhì)人才的培養(yǎng)不可或缺。 

從目前社會對計算機專業(yè)人才的需求來看,高校在培養(yǎng)學生的程序設(shè)計、算法設(shè)計與分析能力上所作出的努力還遠遠不夠。本文探討了計算機專業(yè)學生在程序設(shè)計、算法設(shè)計與分析方面存在的主要問題,給出了在課程與實踐中提高學生的程序設(shè)計、算法設(shè)計與分析能力的具體措施。 

1 現(xiàn)狀與問題分析 

近年來,企事業(yè)用人單位較普遍的反映是計算機類畢業(yè)生的實際應用知識、動手能力和程序設(shè)計開發(fā)經(jīng)驗嚴重不足,尤其是程序設(shè)計能力、算法設(shè)計與分析能力無法達到用人單位的要求。這不僅影響學生就業(yè),更阻礙了其進一步發(fā)展與自我提升。 

我們歸納了問題的主要原因。一是學生對于有關(guān)程序設(shè)計及算法的知識僅僅停留在了解的程度上,未能融匯貫通,進而應用這些知識解決實際問題。二是教師在講解程序設(shè)計、算法設(shè)計與分析的相關(guān)知識時,并沒有將理論與實際有機的結(jié)合。三是實際教學過程中并未對學生進行真正的軟件項目開發(fā)訓練。四是對第一門程序設(shè)計課程的教學不夠重視。五是學生的數(shù)學基礎(chǔ)差、邏輯思維能力弱,阻礙了學生進一步設(shè)計算法和分析算法。 

2 程序設(shè)計、算法設(shè)計與分析能力培養(yǎng)的具體措施 

教育教學工作應該以學生為主體,同時充分發(fā)揮教師的引領(lǐng)、指導作用,二者有機結(jié)合,才能充分調(diào)動學生的學習積極性和主動性,從而達到最佳的教學效果。因此本文以“學生為主體,教師為主導”這一思想為指導,結(jié)合本校的實際情況,以及教師在教育教學工作過程中遇到的問題和廣大學生的反饋,從以下四個方面探討教育教學改革的措施。 

2.1 調(diào)整課程設(shè)置和教學目標 

用計算機求解一個實際問題,首先要從這個實際問題中抽象出一個數(shù)學模型,然后設(shè)計一個解此數(shù)學模型的算法,最后根據(jù)算法編寫程序,以便調(diào)試、編譯、連接和運行,從而形成該問題的解。從實際問題中抽象出一個數(shù)學模型的實質(zhì),其實就是要用數(shù)學方法抽取其主要的、本質(zhì)的內(nèi)容,最終實現(xiàn)對該問題的正確認識。設(shè)計出解決問題的算法后,要清楚地知道算法的優(yōu)劣處,如果是好的算法則不必對其懷疑而再浪費時間進行研究;如果不是好算法則應再進行改進。而如何知道算法的優(yōu)劣,則需要學會分析算法。算法分析是對一個算法需要多少計算時間和存儲空間作定量的分析。編程就是設(shè)計程序,用計算機來解決問題。 

與數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計相關(guān)的課程較多,其中三分之二以上的專業(yè)課都需要學習編程,主要是提高學生編程能力和算法分析能力。對于本科生來說,這些課程的重要性是不言而喻的。如果掌握不好則會阻礙他們對編程能力乃至對計算機系統(tǒng)的認識和理解。因此,應該從課程的意義出發(fā),以提高學生的編程能力和算法設(shè)計與分析能力為目標,結(jié)合計算機專業(yè)的特點與教學實際情況,將“C語言程序設(shè)計”、“面向?qū)ο蟪绦蛟O(shè)計”、“離散數(shù)學”、“數(shù)據(jù)結(jié)構(gòu)”、“算法設(shè)計與分析”、“網(wǎng)絡(luò)編程”、“Windows編程技術(shù)”、“操作系統(tǒng)”、“計算機網(wǎng)絡(luò)”、“編譯原理”和“數(shù)據(jù)庫技術(shù)”等幾門課程有機地結(jié)合起來,并充分利用它們內(nèi)在的聯(lián)系優(yōu)化授課的順序與內(nèi)容,為學生提供一套以編程能力和算法設(shè)計與分析能力為中心的教學體系,為學好相應的課程打下堅實基礎(chǔ)[2]。

“C語言程序設(shè)計”和“離散數(shù)學”作為計算機專業(yè)學生較早接觸的兩門課程,應該為后續(xù)專業(yè)課的學習打好基礎(chǔ)。C語言是學生在大學接觸的第一門編程語言,教學中應該重點介紹程序設(shè)計思想,并培養(yǎng)學生的邏輯思維能力、抽象能力、編程習慣,而不是一味地強調(diào)C語言的語法特性。同時,“C語言程序設(shè)計”這門課也為后續(xù)的數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計與分析課程做好實踐上的鋪墊。“離散數(shù)學”的概念、理論及方法應用于計算機科學與技術(shù)的諸多領(lǐng)域,并大量出現(xiàn)在“數(shù)據(jù)結(jié)構(gòu)”、“數(shù)據(jù)庫系統(tǒng)”、“編譯原理”、“算法設(shè)計與分析”、“計算機網(wǎng)絡(luò)”等專業(yè)課程中。此外,離散數(shù)學所提供的訓練十分有益于學生的邏輯推理、抽象概括及歸納構(gòu)造能力的提高,十分有益于培養(yǎng)學生嚴謹、完善、規(guī)范的科學態(tài)度。 

通過“數(shù)據(jù)結(jié)構(gòu)”課程,使學生了解數(shù)據(jù)對象的特性,學會數(shù)據(jù)組織的方法,以及各種類型數(shù)據(jù)的處理方法,同時培養(yǎng)學生良好的程序設(shè)計技能。“算法設(shè)計與分析”課程重點講授分治法、貪心法、動態(tài)規(guī)劃、回溯法、分支限界法,培養(yǎng)學生分析問題和解決問題的能力,使學生掌握算法設(shè)計的基本方法,熟悉算法分析的基本技術(shù),并能熟練運用一些常用算法。“操作系統(tǒng)”、“計算機網(wǎng)絡(luò)”、“編譯原理”和“數(shù)據(jù)庫技術(shù)”都是對前面學習到的一些基本的數(shù)據(jù)結(jié)構(gòu)和算法的具體應用,再加上一些相關(guān)領(lǐng)域的專業(yè)知識。 

在“操作系統(tǒng)”教學中,讓學生了解操作系統(tǒng)的一些基本概念,如:進程和線程、虛擬內(nèi)存、死鎖等,并按操作系統(tǒng)的五大功能分模塊進行介紹。通過相應實驗幫助學生理解重要概念,如通過實現(xiàn)“銀行家算法”讓學生明白進程間的通信過程、模擬LRU算法了解頁面如何置換,通過實驗使學生更加深刻地理解有關(guān)概念[3]。對于“編譯原理”這門課,由于其理論性較強,在教學過程中應該盡量多與實驗相結(jié)合,在課堂上比較難理解的內(nèi)容,例如詞法分析中的有限自動機內(nèi)容或語法分析中LL(1)文法的理解等等,都可以通過與實驗結(jié)合來促進對課堂內(nèi)容的理解,可通過完成詞法分析器的實驗了解編譯器如何把輸入的源程序轉(zhuǎn)化為單詞符號串。 

2.2 加強實驗性課程教學 

計算機專業(yè)相關(guān)的課程總體來說理論性比較強[4-5],開設(shè)實驗性課程有利于學生通過自己的實際操作加深對課堂知識的理解,同時強化編程能力、算法設(shè)計能力和創(chuàng)新能力。許多課程都有上機編程實驗內(nèi)容,如“C語言程序設(shè)計”、“面向?qū)ο蟪绦蛟O(shè)計”、“數(shù)據(jù)結(jié)構(gòu)”、“算法設(shè)計與分析”、“Java程序設(shè)計”、“操作系統(tǒng)”等課程,都要求學生完成一定數(shù)量的設(shè)計性,完成驗證性實驗。我們設(shè)立了工程與學術(shù)實踐、計算機軟件課程設(shè)計、獨立實驗課程以及畢業(yè)設(shè)計等實訓科目,堅持編程實踐四年不間斷。 

實驗貫穿于理論、抽象和設(shè)計過程;實驗對軟件的設(shè)計和實現(xiàn)、測試原理和方法起示范作用;實驗不僅是對理論的驗證,也是技術(shù)訓練和能力培養(yǎng),包括動手能力、分析問題解決問題能力、表達能力、寫作能力等。教學活動是教師和學生不斷交流的過程,實驗是實現(xiàn)這個過程的橋梁,可以彌補課堂教學的不足,加深對理論過程的理解,啟發(fā)學生深入思考,敢于創(chuàng)新,理論聯(lián)系實際。 

例如“編譯原理”課程是計算機類專業(yè)的一門重要專業(yè)課。設(shè)置該課程是讓學生學習編譯系統(tǒng)的結(jié)構(gòu)、工作流程及編譯程序各組成部分的設(shè)計原理和實現(xiàn)技術(shù),使學生通過學習既掌握編譯理論和方法基本知識,也具有設(shè)計、實現(xiàn)、分析和維護編譯程序等方面的初步能力。編譯原理是一門理論性和實踐性都比較強的課程。實驗的目的是加深學生對課堂知識的理解,掌握幾個主要編譯階段的處理方法,增強實踐能力,能完成初步設(shè)計、編制和調(diào)試編譯系統(tǒng)。 

實驗一詞法分析器構(gòu)造,通過對給定源語言詞法分析程序的設(shè)計,加深對詞法分析原理的理解,掌握源語言的接受、存貯、預處理和掃描分析,生成正確的單詞符號串二元式序列。實驗二語法分析器構(gòu)造,借助于詞法分析程序提供的分析結(jié)果,編寫一個算符優(yōu)先語法分析程序,程序能進行語法結(jié)構(gòu)分析和錯誤檢查并產(chǎn)生相應的歸約信息。同時給出出錯信息和錯誤類型,從而加深對語法分析的理解。進一步設(shè)計實現(xiàn)球類描述語言詞法分析、語法分析實驗(擴展實驗),根據(jù)球類比賽技戰(zhàn)術(shù)分析的需求,設(shè)計的解釋器由詞法器、語法器和語義分析模塊三部分組成,詞法分析器負責詞法分析的預處理和輸入單詞的解釋;語法分析負責輸入碼的語法結(jié)構(gòu)檢查和解釋;在詞法和語法分析器基礎(chǔ)上,語義分析模塊負責比賽技戰(zhàn)術(shù)的分類與統(tǒng)計工作。 

本校開設(shè)了“程序設(shè)計專題訓練”、“計算機網(wǎng)絡(luò)專題訓練”、“操作系統(tǒng)專題訓練”、“數(shù)據(jù)庫專題訓練”、“軟件測試技術(shù)”、“嵌入式技術(shù)”等實踐課程。如“程序設(shè)計專題訓練”課程是C程序設(shè)計課程后續(xù)的訓練課程,針對程序設(shè)計中常見問題,以專題形式進行訓練。通過該課程的學習,使學生能深入理解C語言特性,掌握基本程序設(shè)計方法,學會常見問題的處理技巧,提高程序設(shè)計能力,為后續(xù)專業(yè)課程的學習打下良好基礎(chǔ)。又如“操作系統(tǒng)專題訓練”課程重點提高學生對操作系統(tǒng)的實際操作能力,使學生了解和掌握在Windows、Linux操作系統(tǒng)上運行的應用服務(wù),對操作系統(tǒng)與外部接口(shell)有更深入的了解和認識。 

為了能切實提高學生的編程水平和算法設(shè)計與分析能力,我們開設(shè)了“項目管理實踐”、“軟件課程設(shè)計”、“企業(yè)實訓”、“學術(shù)與工程實踐”等實踐課程,如“項目管理實踐”課程培養(yǎng)學生參與大型軟件項目開發(fā)的基本能力,使學生能夠熟練掌握軟件開發(fā)環(huán)境使用和軟件開發(fā)的基本方法,為畢業(yè)設(shè)計和就業(yè)提供了必要的技能訓練。按照5-8人的規(guī)模成立軟件開發(fā)項目組,以開發(fā)一個軟件項目作為實訓的主線;項目經(jīng)理由學生擔任,項目成員的角色由項目經(jīng)理根據(jù)各成員的技能來確定;由實訓方提供項目的用戶需求,并且確定要開展的軟件工程活動和管理活動及項目里程碑;根據(jù)開展的軟件工程和管理活動,提取出一些關(guān)鍵知識點,以案例的方式進行項目培訓,并將其用于項目開發(fā)的實踐中,其中案例來自實際開發(fā)的軟件和系統(tǒng)集成項目。 

2.3 緊跟時代變化,實現(xiàn)多模態(tài)教學

首先重視教學內(nèi)容的時效性,教師在教學過程中,不僅僅著眼于所選用的教材,還應融入前沿思想、技術(shù)和一些交叉學科的內(nèi)容。例如在“編譯原理”課程的教學中,不局限于一種語言,而應該選擇多種不同體系結(jié)構(gòu)的編程語言進行介紹;又例如可以選擇C語言、Ruby、Python,甚至是蘋果最新推出的Swift語言,通過比較這些語言的不同特征,給出其在編譯過程中的各自特點,從而使學生對編譯程序所做的工作有更加清晰透徹的了解。在“數(shù)據(jù)結(jié)構(gòu)”、“面向?qū)ο蟪绦蛟O(shè)計”這類課程的教學中,可以多介紹一些國內(nèi)外的文獻、最新應用等,從多種不同角度引導學生程序閱讀及編程的興趣。這就要求教師關(guān)注計算機及電子信息產(chǎn)業(yè)發(fā)展研究的最新內(nèi)容,并及時將這些新內(nèi)容融入到教學工作中。 

其次,重視教學方式的時效性,培養(yǎng)學生程序閱讀能力、編程能力,其手段要緊跟時代步伐。充分利用互聯(lián)網(wǎng)時代的MOOC,如北京大學的MOOC、浙江大學的MOOC、本校的MOOC等,將原先只能在電腦上或書本中的程序放在手機上,使學生可以隨時隨地從手機端進行學習。學生課外可以利用北京航空航天大學實驗類MOOC的計算機網(wǎng)絡(luò)實驗課程、移動計算兩門課程,通過計算機網(wǎng)絡(luò)實驗課程,了解網(wǎng)絡(luò)基本原理,遠程配路由器、交換機,組一個小的網(wǎng)絡(luò),掌握基本的網(wǎng)絡(luò)故障排查方法。通過移動計算即Android編程,MOOC已經(jīng)搭好大的框架,教學生編寫小的app程序,并將編寫好的代碼嵌入到框架中。 

通過促進在計算機系本科教學工作中多模態(tài)教學模式的實現(xiàn),可以將原先計算機專業(yè)教學以課堂教學為主、課下上機實驗為輔,其余全靠學生自覺學習的格局,轉(zhuǎn)化為課堂教學為主導,智能端隨時學習為輔,課下上機實驗為監(jiān)督檢測的新格局。這樣的格局摒棄了過去教學只能在課堂進行的成見,給予學生更多的學習自由,可以有效提高學生的程序設(shè)計、算法設(shè)計與分析能力,同時節(jié)約課堂時間,教師在課堂中能夠有更多時間講解一些更加實用的難以從書本中直接獲得的知識。 

2.4 注重對學生學習態(tài)度的引導 

在對計算機系學生的調(diào)查中發(fā)現(xiàn),后進生大多有“畏難”情緒。他們往往還未開始編程,就對自己的能力進行主觀否定,這種特征在調(diào)劑生身上表現(xiàn)得較為突出。對于這種情況,教師在課堂上如果只單方面強調(diào)知識的重要性,甚至直接點出考試及格的重要性并不會對這類學生思維模式的轉(zhuǎn)變有好處。教師在教學過程中,常常會不自覺地將自己體驗過的應試競爭態(tài)度帶入教學工作中,具體表現(xiàn)為:過于強調(diào)考試分數(shù),為了提起學生的聽課興趣甚至以考試題型作為誘餌,經(jīng)常強調(diào)獎學金和保研問題,整個教學工作圍繞著考試等。這其實都是不正當?shù)母偁幹敢绞剑粫鰪妼W生的厭學心理。 

因此,計算機專業(yè)講師在教學過程中,應格外注重對學生學習態(tài)度的指引,特別是在代碼類課程的教學過程中,教師不應根據(jù)自己多年的代碼編寫經(jīng)驗來對代碼進行講解,而是應該想象自己是這種代碼的一名新學生,對這類代碼一無所知的情況下,可能會從哪里入手進行理解。與其說“這門課掛科了,你畢業(yè)就有危險”,不如說“學會寫代碼,你就可以自由駕馭整臺計算機”;與其說“這種數(shù)據(jù)類型期末考試一定會考”,不如說“你玩的泡泡龍中,屏幕上的泡泡就可以用這種數(shù)據(jù)類型來寫”。在教學中注重引導學生的學習興趣,激發(fā)學生的學習熱情和探索精神,真正做到以學生為本,從學生的角度理解教學,才能在教學工作中正確指引學生的學習態(tài)度,達到最佳教學效果。 

3 總結(jié) 

計算機科學是一門具有創(chuàng)造性意識活動的學科,計算機本質(zhì)上是一個程序的機器,只有那些真正懂得程序的人才能懂得計算機。因此程序設(shè)計能力、算法設(shè)計與分析能力是一名合格計算機類專業(yè)的畢業(yè)生必須具備的兩大基礎(chǔ)能力。本文給出的具體措施,有效提高了學生的編程能力、算法設(shè)計與分析能力,以及分析和解決實際問題的能力,有利于培養(yǎng)經(jīng)濟社會發(fā)展急需的信息產(chǎn)業(yè)人才。