趙仕波 魯紅英 何建軍(成都理工大學,四川成都610059)
?
C/C++語言教學體系研究與重建*
趙仕波魯紅英何建軍
(成都理工大學,四川成都610059)
摘要:文章從分析自然語言教學體系出發(fā),分析了當前C/C++語言教學中存在的主要問題,提出了基于自然語言教學體系的C/C++語言教學體系重建,并給出了新的C/C++語言教學體系模型。
關(guān)鍵詞:自然語言;C/C++語言;教學體系;重建
Abstract:starting from the analysis of the natural language teaching system,analyzes the main problems existing in the teaching of the C/C++language,from the inherent rule and habit oflanguage learning,based on natural language teaching system,the C/C++language teaching system was reconstructed,and gives the new C/C++ language curriculum teaching system model.
Keywords:natural language;C/C++language;teaching system;reconstruction
計算機教育在現(xiàn)代大學教育中占據(jù)非常重要的位置,而計算機程序設(shè)計是大學生計算機教育的一門重要課程,適合理工科專業(yè)的C/C++語言程序設(shè)計課程已經(jīng)成為各高校計算機語言及程序設(shè)計的必修課程。
學生對計算機語言課程的掌握對利用計算機解決實際問題具有非常重要的意義,從長期的教學實踐來看,大多數(shù)學生對C/C++語言的掌握非常困難,其主要原因在于C/C++語言本身語法規(guī)則眾多,學生掌握比較困難,同時在傳統(tǒng)的C/C++語言的教學中,學生的思維習慣與傳統(tǒng)教學體系不相吻合是一個重要原因。根據(jù)人的思維習慣,按照語言本身固有的規(guī)律,對C/C++語言課程的教學體系進行重新研究和重建是提高C/ C++語言教學實效的有效途徑。
語言是實現(xiàn)信息交流的重要工具,掌握一門用于交流的語言是實現(xiàn)良好的交流目的最基本的要求。自然語言作為人與人交流的基本工具,特別是母語都有其自身的特點,在自然語言的學習中,往往都需要按照自然語言本身的特點進行學習才有利于對自然語言的掌握和運用。
那么,自然語言具有什么樣的特點和規(guī)律呢?一個人從咿呀學語到能順利交流一般要經(jīng)過一個漫長的學習過程,最開始基本上都是從一個字一個字,一個詞一個詞開始學習,當掌握了一定的字詞后然后學習遣詞造句,一個句子才能表達一個完整的意思達到交流的目的。所以在自然語言的學習中總是按照字、詞、句、篇、章這樣一個過程進行學習,這種學習過程是符合人的認知規(guī)律。正是自然語言的學習有這些特點,因而在學習自然語言時在掌握了基本的字、詞、句以后,還要學會謀篇布局,才能寫出結(jié)構(gòu)完整、意思表達明確文章,達到完整交流的目的。這就是傳統(tǒng)的自然語言教學的基本特點和體系,這種特點和體系符合學習的認真規(guī)律和學習習慣,是容易讓人接受和掌握的。
C/C++語言教學在我國的高等教育中已經(jīng)開展多年,各類教材繁多,但從教學體系來看基本上差不多??偸鞘紫葘/ C++語言程序的基本結(jié)構(gòu)進行介紹,試圖讓學習者首先對程序本身有一個基本的認識,接著講解數(shù)據(jù)的基本類型、表達式的基本形式、程序的基本結(jié)構(gòu)、數(shù)組、函數(shù)、指針與文件、結(jié)構(gòu)體與共用體等。其教學體系結(jié)構(gòu)如圖1。
這些教學體系主要以C/C++語言本身的特點開展教學,以程序=數(shù)據(jù)結(jié)構(gòu)+算法的基本思想為出發(fā)點,首先介紹C/ C++語言程序的基本結(jié)構(gòu),試圖首先讓學習者在頭腦中建立C/C++程序的基本框架,讓學習者盡快掌握程序設(shè)計的能力,然后對數(shù)據(jù)類型、運算符、表達式、等內(nèi)容進行學習。然而,從教學實踐中我們發(fā)現(xiàn),按照這種教學過程,學生很難掌握,特別是對初次接觸程序設(shè)計的學生,對計算機程序是如何工作的,人機如何實現(xiàn)交互,這些概念在學生的頭腦中很難建立起來。學生很難用計算機的思維方式來思考怎樣解決問題。一是對程序的結(jié)構(gòu)、繁多的語法難以掌握,對例程閱讀困難,另一方面難以下手編寫程序。但是對某些在中學學習過計算機語言的同學來說,學習就相對容易得多,這是什么原因呢?其核心的問題是作為計算機語言它是人和計算機進行交流的工具,我們編寫程序就是希望計算機按照我們的計劃和要求去實現(xiàn)我們的工作。但是如何來實現(xiàn)人和計算機的交流,就必須按照語言的學習規(guī)律來加以學習,學習讓計算機能夠識別,學習者也能夠掌握,能達到學習者和計算機之間實現(xiàn)交流的程序設(shè)計語言。
C/C++語言作為一種計算機程序設(shè)計語言,作為人與計算機交流的一種工具,具有自然語言的一切功能和特性。首先,他們的功能是一致。無論自然語言還是機器語言,它們都是交流的工具,自然語言是人與人交流的工具,而機器語言是人和計算機間交流的工具。從本質(zhì)來講并沒有質(zhì)的區(qū)別。其次它們的結(jié)構(gòu)是一致的。語言主要由字符、語義和語法組成,語言需要具有特定語義的符號,然后這些符號需要按照一定的語法組合起來表達特定的意思。自然語言的字符各不相同,比如英語的字符主要是字母,而漢語的字符主要是漢字,字母和漢字都有不同的語義,然后這些具有一定語義的字符按照各自的語法組合起來構(gòu)成了不同的語句來表達不同的意思。C/C++語言其實質(zhì)是人與計算機間的交流工具,和自然語言一樣,由特定的字符,語義和語法組成。
在C/C++語言中規(guī)定的字符比較簡單,主要由字母、數(shù)字以及其他特定符號組成,這些非常簡單,很容易掌握。和自然語言一樣,僅僅有字符不足以表達完整的意思,需要有字、詞、句的概念。在C/C++語言字是由字符按照一定規(guī)則組合起來的,包括關(guān)鍵字,32個,保留字以及用戶自己定義標識名。詞是由字組成的,在C/C++語言中的詞是由字按照一定規(guī)則組織起來具有一定意義的式子,也就是表達式,包括算術(shù)表達式,關(guān)系表達式,邏輯表達式等。字和詞是構(gòu)成句子的基本單位,只有句子才能夠表達完整的意思,在C/C++語言中句子則是按照一定語法規(guī)范由字、表達式組合起來具有特定意義的式子,包括變量定義語句,表達式語句,空語句,控制語句以及輸入輸出語句等。
在自然語言中,在有了字詞句的基本概念以后就可以寫文章了,寫文章是對語言的綜合應用,表達各種觀點,實現(xiàn)深入而復雜的交流,在C/C++語言中寫文章就是怎樣編寫程序,在自然語言中,一篇文章可以包含分成一個段落或多個段落,段落是構(gòu)成一篇文章的最小單位,寫文章時總是一個段落一個段落地寫,每個段落都有其自身的意義,相對獨立,但是如果一篇文章有多個段落,段落與段落見必然有一定聯(lián)系,這些段落都為整篇文章服務,圍繞一個中心。在C/C++語言程序設(shè)計也就是運用C/C++語言的字、詞、句來寫文章,C/C++語言程序的基本單位是函數(shù),函數(shù)向自然語言中的段落一樣,是一個相對獨立的單位,一個程序可以只有一個函數(shù)也可以由多個函數(shù)組成,如果有多個函數(shù),這些函數(shù)與函數(shù)之間必然有一定的聯(lián)系,這些函數(shù)是服務于這個程序所要解決的中心問題。
有了這些基本思想以后,在C/C++語言的教學體系中,我們首先從C/C++語言的字、詞、句開始學習,在掌握了語言的這些基本東西以后,再學習程序的基本結(jié)構(gòu),學習如何編寫程序,學習如何通過編寫程序讓計算機去完成相應的工作。按照這個程序和體系去安排C/C++語言程序設(shè)計的教學,符合語言的基本特點,也符合人的認知規(guī)律,學生在學習中就容易掌握了。
在實際教學中,我們按照自然語言的學習規(guī)律,針對現(xiàn)有的C/C++語言教學體系中存在的問題對C/C++語言教學體系進行了重新構(gòu)建,形成了一套新的C/C++語言教學體系。這個體系由兩部分組成,包括基礎(chǔ)篇和提高篇,基礎(chǔ)篇首先從自然語言的基本特點切入,介紹自然語言和機器語言的共同特點,然后學習C/C++語言的字、詞、句、篇、章,也就是學習C/C++語言的保留字、關(guān)鍵字、自定義標識符,數(shù)據(jù)類型,表達式,語句(輸入輸出語句,變量定義語句,表達式語句),基本函數(shù)(不帶參數(shù)),順序結(jié)構(gòu),通過對這些基礎(chǔ)知識的學習,學習者可以對C/C++語言就有一個全局的概念,了解C/C++程序的基本結(jié)構(gòu),能夠閱讀一些簡單的程序,也能夠編寫一些簡單的程序,學生容易建立對C/C++程序的整體認識,如果需要處理復雜的問題就需要進一步學習,進一步學習安排在提高篇中,在提高篇中主要介紹循環(huán)結(jié)構(gòu),選擇結(jié)構(gòu),數(shù)組,函數(shù)的參數(shù),指針,文件、結(jié)構(gòu)體與共用體以及面向?qū)ο蟮?。具體教學體系如下:
基礎(chǔ)篇
第1章自然與C/C++語言
第2章字——C語言的標識符與基本數(shù)據(jù)類型
第3章詞——C/C++語言運算符與表達式
第4章句——C/C++語言的語句
第5章篇——C/C++語言的函數(shù)
第6章章——C/C++語言程序
提高篇
第7章控制結(jié)構(gòu)
第8章數(shù)組
第9章指針
第10章文件
第11章結(jié)構(gòu)體與共用體
第12章類與對象
第13章繼承與派生
第14章多態(tài)性
經(jīng)過對C/C++語言程序設(shè)計課程教學體系的重新構(gòu)建,以學生對自然語言的學習習慣為切入點開展對C/C++語言程序設(shè)計的教學,在尊重學生的認知規(guī)律的同時,又高度契合C/ C++語言本身的特點,循序漸進地開展學習。在基礎(chǔ)篇的教學中由于學生還沒有對C/C++語言建立較為完整的概念,所以不安排上機實踐,主要以講授為主,避免學生在沒有基礎(chǔ)知識的時候接觸程序產(chǎn)生畏難情緒,降低學習興趣。而在提高篇的教學中,主要安排上機實踐,課程設(shè)計,結(jié)合提高篇的學習,解決實際問題,提高動手能力。這種教學體系的設(shè)計在實際教學中取得了良好的效果。
參考文獻
[1]譚浩強.C語言程序設(shè)計[M].北京:清華大學出版社,2005.
[2]孫淑霞,何建軍,肖陽春.C語言程序設(shè)計[M].北京:電子工業(yè)出版社,2005.
[3]王開鑄.實用C語言程序設(shè)計[M].哈爾濱:哈爾濱工業(yè)大學出版社,2002.
[4]郭俊鳳,朱景福.C程序設(shè)計案例教程[M].北京:清華大學出版社,2009.
[5]杜紅.《C語言程序設(shè)計》教學體系研究[J].西安:長江大學學報(自然科學版),2004.
[6]王付山.C程序設(shè)計教學探討[J].計算機教育,2007,6.
[7]張靜.C語言程序設(shè)計教學改革的探討[J].理論探新,2002,11:344-345.
中圖分類號:G642
文獻標志碼:A
文章編號:2096-000X(2016)12-0062-02
*基金項目:四川省2014-2016年高等教育人才培養(yǎng)質(zhì)量和教學改革項目(編號:11100-15Z006/004)
作者簡介:趙仕波,男,副教授,研究方向為計算機應用。