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

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

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

篇1

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

中圖分類號:G424 文獻(xiàn)標(biāo)志碼: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 引言

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

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

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

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

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

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

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

2.1 搭腳手架

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

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

2.2 創(chuàng)造情境

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

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

2.3 獨立探索

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

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

2.4 協(xié)作學(xué)習(xí)

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

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

2.5 效果評價

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

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

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

3 反思

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

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

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

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

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

3.3 注重人際互動

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

3.4 廣泛地利用學(xué)習(xí)資源

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

4 結(jié)束語

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

參考文獻(xiàn):

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

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

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

教育,1999.2:40-43

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

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

2002.1:19-23

篇2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

篇3

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

【分類號】TP312.1-4

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

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

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

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

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

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

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

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

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

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

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

五、結(jié)束語

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

參考文獻(xiàn):

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

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

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

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

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

篇4

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

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

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

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

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

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

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

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

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

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

3總結(jié)

篇5

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

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

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

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

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

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

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

3. 加強實例教學(xué),在實例中學(xué)習(xí)語法

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

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

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

向?qū)嶒炚n要效率

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

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

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

5. 結(jié)束語

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

參考文獻(xiàn)

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

篇6

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

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

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

1 計算思維

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

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

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

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

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

2.1 課程學(xué)時少

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

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

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

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

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

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

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

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

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

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

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

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

3.3 以上機(jī)實踐為重點

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

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

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

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

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

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

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

4 結(jié)束語

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

參考文獻(xiàn):

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

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

篇7

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

1?郾引言

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

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

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

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

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

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

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

4.1循序漸進(jìn)法。在C語言的教學(xué)過程中,教師起非常重要的作用,尤其是在教學(xué)中要激發(fā)出學(xué)生的興趣。大多數(shù)學(xué)生都是初次接觸C語言,這是一個全新的內(nèi)容,同時也會有全新的收獲。由于該課程是培養(yǎng)學(xué)生程序設(shè)計的能力,之前學(xué)生幾乎沒有此經(jīng)驗和能力,要通過教師循序漸進(jìn)地引導(dǎo),再加上學(xué)生上機(jī)的體驗和感受,使其逐步積累程序設(shè)計的能力。對于教師給定的題目,教師應(yīng)該遵循由低到高、由簡入難,有趣并盡可能貼近實際的原則。開始時,教師給予學(xué)生的題目都是單項的練習(xí),如簡單的輸入輸出、數(shù)據(jù)類型、數(shù)組編程等。到了C語言學(xué)習(xí)的后期,可以出一些較復(fù)雜并和實際結(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é),讓學(xué)生自己編寫程序,打印如下復(fù)合金字塔圖形

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

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

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

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

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

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

6.結(jié)語

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

參考文獻(xiàn):

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

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

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

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

篇8

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

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

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

2.問題分析

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

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

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

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

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

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

3.解決方法

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

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

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

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

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

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

4.結(jié)語

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

參考文獻(xiàn):

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

篇9

中圖分類號:G642

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

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

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

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

1.2 教學(xué)過程僵化

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

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

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

2 教學(xué)改革措施

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

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

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

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

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

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

由于Java程序需要使用標(biāo)準(zhǔn)輸出流的方法System.out.print()用于輸出程序的運行結(jié)果,學(xué)生就問:Java程序怎么輸入呢?此時,對輸入輸出流進(jìn)行較為完整的講解顯然不合適,在講解使用對象時,我們進(jìn)一步講解如何使用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

//方法讀入一行

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

2.3 引導(dǎo)學(xué)生深入理解程序設(shè)計語言

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

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

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

篇10

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

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

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

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

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

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

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

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

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

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

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

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

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

2.2 加強實驗性課程教學(xué) 

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

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

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

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

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

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

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

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

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

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

2.4 注重對學(xué)生學(xué)習(xí)態(tài)度的引導(dǎo) 

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

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

3 總結(jié) 

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