彭納新 陳俞強(qiáng)
1 廣東科技學(xué)院計(jì)算機(jī)系 廣東東莞 523808
2 東莞職業(yè)技術(shù)學(xué)院計(jì)算機(jī)工程系 廣東東莞 523808
基于任務(wù)驅(qū)動(dòng)的高職院校C語言程序設(shè)計(jì)課程教學(xué)改革與實(shí)踐*
彭納新1陳俞強(qiáng)2
1 廣東科技學(xué)院計(jì)算機(jī)系 廣東東莞 523808
2 東莞職業(yè)技術(shù)學(xué)院計(jì)算機(jī)工程系 廣東東莞 523808
根據(jù)高職院校學(xué)生和C語言程序設(shè)計(jì)課程的特點(diǎn),采用項(xiàng)目驅(qū)動(dòng)的教學(xué)模式,明確教學(xué)目的,構(gòu)建合理的課程內(nèi)容體系,教學(xué)過程采用任務(wù)驅(qū)動(dòng)的教學(xué)模式,在教學(xué)的任務(wù)過程中滲透C語言的理論知識(shí)和程序設(shè)計(jì)的理論知識(shí),提高學(xué)生學(xué)習(xí)的興趣,進(jìn)而領(lǐng)會(huì)程序設(shè)計(jì)的理念。實(shí)際效果驗(yàn)證了任務(wù)驅(qū)動(dòng)的教學(xué)方法是有效和可行的,更有利于計(jì)算機(jī)專業(yè)的學(xué)生學(xué)習(xí)后續(xù)的計(jì)算機(jī)課程。
C語言程序設(shè)計(jì);任務(wù)驅(qū)動(dòng);程序設(shè)計(jì)理念
隨著信息技術(shù)和計(jì)算機(jī)技術(shù)的不斷發(fā)展,21世紀(jì)成為信息技術(shù)高速發(fā)展的新時(shí)代,越來越多的人從事計(jì)算機(jī)的程序設(shè)計(jì)工作。C語言是一門出色的程序設(shè)計(jì)語言,它以精煉、靈活、可移植性好、應(yīng)用領(lǐng)域廣泛、目標(biāo)程序效率高而著稱。國內(nèi)外許多高校都將C語言程序設(shè)計(jì)作為計(jì)算機(jī)專業(yè)學(xué)生學(xué)習(xí)程序設(shè)計(jì)的入門課程。
C語言在當(dāng)今計(jì)算機(jī)開發(fā)中仍然占有非常重要的地位,它在軟件開發(fā)人員的學(xué)習(xí)中起到承前啟后的作用。據(jù)TIOBE網(wǎng)最近的調(diào)研顯示,C語言在計(jì)算機(jī)語言應(yīng)用中仍然占有重要的份額。TIOBE網(wǎng)站公布的程序設(shè)計(jì)語言受歡迎程度的趨勢如表1所示。由表1可知,10種最受歡迎的程序設(shè)計(jì)語言中,除C語言外,還包括Java、C++、C#、PHP、Perl等多種直接或間接參考C語言的語法特性,從中可以看出程序開發(fā)人員學(xué)習(xí)C語言的重要性。
即便如此,許多人仍然會(huì)問:為什么學(xué)習(xí)C語言?對(duì)這個(gè)問題,不同學(xué)校的教師、不同專業(yè)的學(xué)生、不同行業(yè)的程序員有可能給出不同的答案。因此,許多剛接觸C語言的學(xué)生,尤其是喜歡獨(dú)立思考的學(xué)生,會(huì)對(duì)這些回答產(chǎn)生懷疑,從而導(dǎo)致學(xué)習(xí)C語言的目的不明確,進(jìn)而導(dǎo)致失去學(xué)習(xí)C語言的興趣。教師在教學(xué)過程中沒有說明學(xué)習(xí)C語言的真正目的,許許多多的C語言教學(xué)資料中也沒有真正揭示學(xué)習(xí)C語言的真正理由。程序設(shè)計(jì)是計(jì)算機(jī)專業(yè)的一門重要課程,其重要性并不是簡單地教學(xué)生編制程序,更重要的是讓學(xué)生轉(zhuǎn)換思維,體會(huì)過程化編程的思想,領(lǐng)會(huì)程序設(shè)計(jì)的理念,掌握通過計(jì)算機(jī)解決問題的方法。所以,C語言程序設(shè)計(jì)課程的教學(xué)難度將大大提高。
本文從C語言程序設(shè)計(jì)課程學(xué)習(xí)過程的根源上開始考慮,從教學(xué)目的、編寫教材的理念、課程內(nèi)容的設(shè)計(jì)、教學(xué)模式的設(shè)計(jì)、考核方式等多個(gè)角度,針對(duì)C語言教與學(xué)過程中的問題,綜合考慮各方面的因素,嘗試對(duì)傳統(tǒng)的C語言教學(xué)模式進(jìn)行改革。在教與學(xué)的過程中,開拓學(xué)生的思路,引導(dǎo)學(xué)生探究解決問題的方法,激發(fā)學(xué)生學(xué)習(xí)程序設(shè)計(jì)的興趣。

表1 10種最受歡迎的程序設(shè)計(jì)語言所占份額
程序設(shè)計(jì)是計(jì)算機(jī)專業(yè)的一門重要課程,重點(diǎn)在于培養(yǎng)學(xué)生的計(jì)算思維能力,讓學(xué)生嘗試以計(jì)算機(jī)為解決問題的工具。因此,針對(duì)計(jì)算機(jī)專業(yè)人才培養(yǎng)的特定,嘗試下面一些探索。
針對(duì)計(jì)算機(jī)行業(yè)從業(yè)人員的專業(yè)技能要求,從職業(yè)領(lǐng)域出發(fā),以實(shí)際問題的求解過程為引導(dǎo),講授基于C語言的程序設(shè)計(jì)的基本方法;以結(jié)構(gòu)化與模塊化程序設(shè)計(jì)理論為核心,將C語言相關(guān)的語法知識(shí)有機(jī)地結(jié)合到程序設(shè)計(jì)中,避免枯燥無趣的語法敘述,把教材編寫的目的從簡單的語法陳述轉(zhuǎn)變?yōu)榻虒?dǎo)學(xué)生如何使用C語言解決計(jì)算問題的方法和途徑。
在教材內(nèi)容中,選擇一些趣味性強(qiáng)、有吸引力的實(shí)例,引導(dǎo)學(xué)生主動(dòng)使用C語言編寫程序,努力提高學(xué)生的實(shí)踐能力。在教材內(nèi)容的組織方面,也將簡單的數(shù)據(jù)結(jié)構(gòu)和軟件工程理論知識(shí)融入其中,讓學(xué)生沿著數(shù)據(jù)結(jié)構(gòu)從簡單到復(fù)雜這條線展開,接觸計(jì)算機(jī)軟件工程相關(guān)的思想和方法學(xué),開拓學(xué)生的思維能力。
許多院校在進(jìn)行C語言的教學(xué)過程中,均以講述C語言的知識(shí)點(diǎn)為主,主要講解C語言的語法,忽略了在教學(xué)中講述程序設(shè)計(jì)理念和計(jì)算思維的重要性。許多學(xué)生畢業(yè)后不一定從事C語言的開發(fā)工作,從而導(dǎo)致許多學(xué)生覺得學(xué)習(xí)C語言沒有任何用處。在傳統(tǒng)的教學(xué)過程中,無法讓學(xué)生思想觀念發(fā)生根本性的轉(zhuǎn)變,對(duì)后續(xù)計(jì)算機(jī)課程的學(xué)習(xí)作用幾乎為零。因此,針對(duì)計(jì)算機(jī)專業(yè)學(xué)生的教學(xué),教師應(yīng)改變觀念,讓學(xué)生改變思維方式,理解程序設(shè)計(jì)理念的重要性,培養(yǎng)學(xué)生的計(jì)算機(jī)思維能力,而不是僅僅學(xué)習(xí)C語言的語法知識(shí)。然而這些內(nèi)容,學(xué)生也無法從簡單的幾句話或者幾次課程就能理解透,需要在不斷的程序設(shè)計(jì)中理解體會(huì)。
結(jié)合高職學(xué)生的特點(diǎn),在設(shè)計(jì)課程內(nèi)容時(shí),采用以實(shí)踐操作為主、理論為輔的方式,依據(jù)程序設(shè)計(jì)語言在實(shí)際軟件開發(fā)過程中的應(yīng)用場景及其要點(diǎn)進(jìn)行規(guī)劃。根據(jù)C語言與程序設(shè)計(jì)的特性,結(jié)合前面所提的C語言課程的教學(xué)目標(biāo),采用項(xiàng)目驅(qū)動(dòng)與情境相結(jié)合的模式,以C語言知識(shí)點(diǎn)在項(xiàng)目中的應(yīng)用為導(dǎo)向,注重實(shí)際動(dòng)手能力和自主學(xué)習(xí)能力的培養(yǎng)。

圖1 任務(wù)驅(qū)動(dòng)的課堂教學(xué)過程
C語言程序設(shè)計(jì)課程以項(xiàng)目實(shí)施過程為導(dǎo)向,將課程分為多個(gè)項(xiàng)目,每個(gè)項(xiàng)目又根據(jù)實(shí)際崗位工作內(nèi)容確定典型工作任務(wù),典型工作任務(wù)又分解為若干個(gè)子任務(wù),并緊緊圍繞工作任務(wù)的完成來選擇和組織課程內(nèi)容,增強(qiáng)課程內(nèi)容與職業(yè)崗位能力要求的相關(guān)性。基于任務(wù)驅(qū)動(dòng)的教學(xué)一般包括圖1所示過程,每一項(xiàng)任務(wù)教學(xué)按如下順序安排:
1)教師進(jìn)行任務(wù)情景展示;
2)教師提出任務(wù)目標(biāo);
3)學(xué)生分組討論;
4)教師講授并演示任務(wù)的處理過程;
5)以學(xué)生為主體開展系統(tǒng)工作并完成任務(wù);
6)教師總結(jié)完成任務(wù)情況及注意事項(xiàng);
7)學(xué)生完成實(shí)驗(yàn)報(bào)告。
在教學(xué)過程中,將程序設(shè)計(jì)的理念嵌入教學(xué)過程中,將學(xué)歷教育和職業(yè)技能獲取結(jié)合起來,學(xué)生畢業(yè)時(shí)可以獲得學(xué)歷證書,為進(jìn)一步獲取職業(yè)資格證書打造一個(gè)更好的基礎(chǔ),有利于提高學(xué)生的就業(yè)競爭力。
課程的教學(xué)是以任務(wù)驅(qū)動(dòng)為主,學(xué)生在完成學(xué)習(xí)任務(wù)的過程中慢慢掌握C語言的使用,體會(huì)程序設(shè)計(jì)的理念。為后續(xù)計(jì)算機(jī)課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。課程內(nèi)容由認(rèn)識(shí)簡單的C程序、C語言的數(shù)據(jù)表示的應(yīng)用、順序結(jié)構(gòu)程序的設(shè)計(jì)、分支結(jié)構(gòu)程序的設(shè)計(jì)、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)的應(yīng)用等共12個(gè)項(xiàng)目組成(如表2所示)。每個(gè)項(xiàng)目始終以背景知識(shí)、項(xiàng)目設(shè)計(jì)及準(zhǔn)備、項(xiàng)目實(shí)施、項(xiàng)目小結(jié)、理論分析和工程實(shí)訓(xùn)為主線,每個(gè)項(xiàng)目根據(jù)所涉及的C語言與程序設(shè)計(jì)的知識(shí)點(diǎn)的多少分解為若干個(gè)任務(wù)。將基于C語言的程序設(shè)計(jì)的知識(shí)點(diǎn)融入相關(guān)的情景中,突出實(shí)用性,提高學(xué)生程序設(shè)計(jì)的能力。
在教學(xué)過程中,明確教學(xué)目標(biāo),學(xué)生通過完成上述項(xiàng)目,并通過相應(yīng)的考核,也就很好地完成了C語言程序設(shè)計(jì)課程的教學(xué)任務(wù)。學(xué)生在學(xué)習(xí)的過程中不僅掌握C語言的使用和程序設(shè)計(jì)理念,在每個(gè)任務(wù)的學(xué)習(xí)過程中也充滿了探索學(xué)習(xí)C語言的樂趣。
傳統(tǒng)的期末考核多以筆試的方式進(jìn)行。對(duì)課程考核方式進(jìn)行改革,不再以知識(shí)點(diǎn)的考核為主。教師在完成每個(gè)項(xiàng)目的教學(xué)后,針對(duì)每個(gè)項(xiàng)目采用即時(shí)考核方式,根據(jù)學(xué)生的學(xué)習(xí)情況安排相應(yīng)的任務(wù),分階段考核學(xué)生的理論與實(shí)踐能力。根據(jù)每個(gè)項(xiàng)目在教學(xué)過程中的比重,對(duì)其進(jìn)行階段性評(píng)分,作為期末成績的一部分。在學(xué)期結(jié)束的考核中,也將安排綜合性的項(xiàng)目,要求學(xué)生完成類似“學(xué)生成績管理系統(tǒng)”或“圖書館管理系統(tǒng)”的綜合項(xiàng)目,讓學(xué)生提高綜合運(yùn)用C語言進(jìn)行程序設(shè)計(jì)的能力。

表2 C語言程序設(shè)計(jì)的項(xiàng)目設(shè)計(jì)
本文針對(duì)C語言課程教學(xué)過程中存在的問題進(jìn)行探討,從教學(xué)目的、編寫教材的理念、課程內(nèi)容的設(shè)計(jì)、教學(xué)模式的設(shè)計(jì)、考核方式等多方面入手,進(jìn)行一定程度的改革。教學(xué)實(shí)踐表明,改革取得較好的教學(xué)效果。通過課改,學(xué)生在后續(xù)的C#語言或JAVA語言學(xué)習(xí)中都比沒有學(xué)習(xí)C語言的學(xué)生效果要好得多,同時(shí)開發(fā)能力及語言學(xué)習(xí)自信心也會(huì)大大提高。然而教學(xué)改革探索之路是無止境的,教師與學(xué)生是教學(xué)過程中的兩個(gè)主體,兩者只有堅(jiān)持不懈地學(xué)習(xí)與探索,才能實(shí)現(xiàn)教學(xué)相長,共同促進(jìn)教學(xué)的發(fā)展。
[1]陳俞強(qiáng),齊愛琴,徐暢,等.C語言程序設(shè)計(jì)實(shí)用教程[M].大連:東軟電子出版社,2011.
[2]丁海燕,鄒疆,邱莎,等.C語言實(shí)驗(yàn)教學(xué)體系及改革措施[J].實(shí)驗(yàn)技術(shù)與管理,2010,27(11):179-181.
[3]鄧維斌,周玉敏.提高C語言實(shí)驗(yàn)教學(xué)效果的探索[J].實(shí)驗(yàn)室研究與探索,2006,25(3):359-360,396.
[4]蘇小紅,王宇穎,孫志剛,等.C語言程序設(shè)計(jì)[M].北京:高等教育出版社,2011.
[5]李寅杰.高職《C語言程序設(shè)計(jì)》的信息化教學(xué)設(shè)計(jì)研究[D].遼寧:遼寧師范大學(xué),2005.
[6]梁路.行為導(dǎo)向教學(xué)模式在“Linux操作系統(tǒng)”課程中的探討[J].廣東工業(yè)大學(xué)學(xué)報(bào):社會(huì)科學(xué)版,2010,10(Z1):74-75,78.
[7]宋廣華,李善平,鄭扣根,等.邊學(xué)邊干:操作系統(tǒng)課程教學(xué)改革的探索與實(shí)踐[J].計(jì)算機(jī)教育,2006(7):27-29.
C Language Program Design Course Teaching Reform and Practice based on Task Driven in Higher Vocational Colleges
Peng Naxin, Chen Yuqiang
According to the characteristics of higher vocational college students and C Language Program Design Course, driven by project teaching mode, clear teaching objectives, to build a reasonable course content system, adopt the task driven teaching mode in the teaching process,penetrate theory knowledge of C language and programming theory knowledge in the process of teaching tasks, improve the students’ interest in learning, so that the students grasp the concept of program design. Actual results verified the task driven teaching method is effective and feasible, more conducive for the computer specialized student to learn subsequent computer courses.
Clanguage program design; task driven; program design concept
G712
B
1671-489X(2013)18-0074-02
10.3969/j.issn.1671-489X.2013.18.074
廣東省高等教育學(xué)會(huì)職業(yè)教育研究會(huì)重點(diǎn)項(xiàng)目(No:GDGZ10001);東莞職業(yè)技術(shù)學(xué)院教改基金(No:JGXM2011011和No:JGXM2012202)。
作者:彭納新,碩士,講師,主要研究方向?yàn)橛?jì)算機(jī)高職教育。