999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

《C++程序設計教程》(第二版)的寫作動機與特色

2006-03-24 04:00:02
計算機教育 2006年3期
關鍵詞:教學

錢 能

一、 用標準C++教學與編程

計算機科學與應用的迅猛發展,直接推動了《C++程序設計教程》一書的再版。由于C++語言作為有效的開發工具在計算機界起著重要的作用,因而在國內得到了越來越多的應用,許多大型的計算機和軟件開發公司要求程序員必須能夠進行C++編程,這一趨勢導致了越來越多的學校開設C++程序設計課程。1998年ISO/IEEE所制定的C++標準如今已經被各大C++編譯器制造商全盤采用,2002年又修訂了C++新的國際標準,國內的C++教學也逐步意識到用標準C++進行教學的重要意義,這也意味著C++正以一日千里之勢在向前發展。

這些年中,發現用非標準C++進行編程,總是磕磕碰碰,遇到編譯器的嚴重挑戰,而用標準C++進行編程卻能順利進行。這倒不是說非標準C++不能進行實戰。例如,在VC6下書寫的程序,只打算在Windows環境下運行,也沒有什么不妥,因為Windows在我國的使用和開發群體那么大,使得VC6也似乎成了一種Windows的“標準”了。但是,在C++中使用類進行編程,以及使用STL便不那么順暢了,編寫的代碼移植到其他系統變得困難了。由于人為地制造此編譯器和彼編譯器的差別,也就使得代碼彼此之間比較和研究產生了障礙。

所以一開始學習,采用標準C++學習,是一種良好的習慣,它能夠幫助讀者發現最本質的問題。例如,字符串處理,用char*直接描述和用string類描述有本質的區別,當讀者看清兩者的差異后,到了使用Windows資源或者MFC時,就會自然理解CString與char*的區別來。

標準C++有更多的使用群體、更好的移植性和對以后的新標準更好的適應能力,這也促使了第二版從前C++過渡到標準C++。

二、 結構調整,強化體系

采用原先第一版做教材時,發現速成教學很奏效,也就是在實驗室現學現編,而且可以無需任何預備知識。相反,循序漸進地進行課堂教學,因為沒有接觸到計算機,沒有直接進行編程實踐,關于數據類型定義、說明、命名以及語法格式等概念的理解反而有一些障礙。這不得不讓引人思考,是否應該以編程的感性認識讓學生自己去分辨編程中語言要素以及操作順序。幾次下來,確認了首先上機實驗這樣的教學方式很有效。于是在第二版中,將基本編程這一章的內容放到前面第二章,而數據類型和具體的計算表達統統屬于初學編程時的問題來加以解決,放到了第三章和第四章。

同時,因為第二版的實例教學色彩更濃厚,一些概念靠實例的學習可以掌握,所以把原來單獨成章的數組以及指針都拆到第三章中,作為其中的一節內容了。

第一、二部分講述基本編程和過程化編程方法,考慮到一些內容的份量比重,過程化編程中的數組、指針、引用和結構,都不再單獨成章。這實際上是對全書作大幅度的內容結構重組的開始。

由于實例中輸入輸出的數據設計特別重要,所以全書貫穿了文件流的基本操作。

以基本編程語句,數據類型和計算表達的章節順序展開敘述,同時還歸類了過程化編程的諸種方法,是作者多年教學經驗的總結。學了簡單的編程語句,隨之展開過程控制結構的實驗,以感性認識牽動理性認識,在C++學習上更能奏效,也順應了教學規律。

抽象編程是指采用抽象分層的手法,進行各個模塊的具體編程。抽象編程并不是動動腦,動動嘴,比劃比劃的形式,而是更有效地進行的具體編程。要實質性地提高編程能力,必須學習C++的內部實現技術和抽象表達手段,兩者并重。面向對象編程的主要手段體現在抽象編程,書中強化了C++的抽象表達技術,特地將多態和抽象類拎出來單獨成章,而第一版在抽象表達手段上明顯不足。

除此之外,還加強了基于對象編程,完善了面向對象編程,補充了高級編程。

第一版在面向對象和高級編程方面比較薄弱,在教學中,明顯感到一是體系性不強,二是內容相對不足。因而,第二版必須針對這一缺陷,在結構上作一大的調整。結果,對象化編程中的堆與拷貝構造函數、靜態成員和友元、多重繼承、操作符重載和IO流都不再單獨成章,而以面向對象編程的最重要幾個內容來編排:類,對象生滅、繼承、基于對象編程、多態以及抽象類。而且也大大擴充了原先的內容,特別是抽象類,模板和異常這三章內容,增幅比較大。

模板這一章除了介紹基本用法,還介紹了STL的模板技術以及程序組織方法,模板的全局定做和局部定做,用模板實現的多態技術與虛函數的多態技術的區別與相互補充性,最后介紹了泛型編程,這些內容屬于高級編程的基礎,它對于理解開發中的樣本代碼會帶來很大的好處。異常這一章除了介紹基本用法和增強編程的可靠性與容錯性的作用外,還介紹了標準異常、異常申述、異常關鍵實現技術和非錯誤異常的處理方法,它對于讀者理解異常的本質會起到很好的作用。

三、 為新教學模式開道

打破舊式教學的刻板模式,致力于消除計算機專業的學生在大學畢業后卻不會編程的普遍現狀。本書將程序設計課程的教學要求和目標牢牢鎖在編程能力而不是應付機械式考試上,強調程序設計課程應充實更多的編程實踐,讓更多有編程經驗的教師來講解和指導實驗,并要求以實際的編程活動來確認是否掌握了所學內容和方法。

因此第二版無論是代碼實例,還是習題都采用編程實驗形式,而且,事實上,作者已經完成了兩年的課程考試以編程為主的形式的過渡。

第二版的出版,也意味著作者將以編程實時提交作為實驗形式,也以編程實時提交作為考試的形式,以此作為C++程序設計課程的新教學模式。

雖然第一版已經開始脫離應付書面考試的學習形式,但某些地方還留戀著計算機等級考試的內容細節描述,而第二版的寫作已經將一些細節下放到《詳解》1中去了。《教程(第二版)》作為主教材,其手段是編程方法和編程訓練并施,其內容是內部特性與抽象編程并重。當然,學好了C++編程技能,書面考試亦會得心應手。

本書在內容上是跨編程基礎,過程化編程,對象化編程和高級編程的四合一。可以選擇進行其中的第一、二部分,或第三、四部分的教學。第一、二部分和第三、四部分分別可以作為一學期約64個理論實踐課時的教學,其中上機實驗可占到總學時的1/2左右。

四、 引領進一步編程提高

目前市面上,C++的書籍很多,真是眼花繚亂,有很多是國外名家寫的經典之作,但初學者看了很難有大的收獲,而有過一些開發背景的讀者看了會覺得很精彩,感到真是一種享受。到了“享受”這個層次,學習C++就無障礙可言了。本書旨在引導初學者,學會欣賞C++學習的初級精彩;然后根據作者的指引,直接去享受C++經典著作的內在精彩。

書中經常出現對參考文獻的閱讀指引,其中大部分都是指引到國外的C++經典著作中去,從而幫助讀者學習更深刻的C++編程內涵。

書中也經常出現程序設計方法的多樣性探討、語言特征上的優缺點描述及編譯工具評價等,甚至對C++中的一些名詞和術語進行了更確切的中文命名。作者不隱晦自己的觀點,更歡迎專家來信探討。對于計算機教師和高級程序員來說,應是一種有益的參考。

五、 通俗、詼諧和深長意味

本書描述的淺顯易懂來自于不懈的實踐經歷和長期的教學經驗。然而,僅僅淺顯,往往使著述的篇幅顯得臃腫,所以,必須已經對某一領域的科學現象有所透徹的理解,才能真正通俗易懂甚至詼諧幽默得起來。

通俗和詼諧也是作者撰寫本書的一大特點,因為作者已經不相信一本刻板描述高水平體系化的書,能夠為讀者所接受。人來自生活,對于堆積著公理、定理、規定,公式推導,規范的書,看似堂堂正正,而少有對體系作深刻揭示而又實例不足的書,已經證明是不受現代讀者歡迎的。而且C++編程語言作為技能性課程更需要最后以能力來證明自己的學習成就而不是考試成績。

通俗和詼諧不是無原則的,它必須圍繞一個體系,緊扣主題,重點突出。在難點的敘述上,更能見通俗和詼諧的魅力。

例如,作為性能這一章的開場白,有一段對效率的獨特描述,來警示效率在編程中的重要:“程序員談論最多的是效率問題,C++面向對象程序設計方法就是在效率的爭辯中發展起來的。面對所要解決的龐大問題,人們害怕徒勞無功,所以對種種影響效率的方法橫加指責。軟件業的發展,是因為生產的軟件一個個實用起來了。而要實用,效率便是其生命!”

六、 抽象編程與內部特性并重

高級編程都是抽象編程,抽象編程總是接口獨立,層次分明。抽象編程最大的好處是程序的模塊之間職責分明,容易維護和擴展。面向對象編程的一個重要優勢就是能夠在對象化編程中把抽象性的效果淋漓盡致地體現出來,抽象編程是程序員追求的重要目標,把握了抽象編程也就是本質上把握了編程的方法。因此,本書抓住抽象編程,對面向對象等高級編程方法展開重點描述。

C++編程本質上是數據類型和算法的堆積,很多算法的性能是需要程序員通過語句使用的效率推敲來把握的,也就是說,C++的內部特性對其程序的性能起著重要的作用,這種作用不是哪種編程方法可以左右的。此外,STL的性能也涉及到所用語句的內在效率,它必須從實踐中慢慢把握。

要提高編程能力,便要以抽象編程觀來進行編程思考,擴大編程的視野,同時必須重視C++內部特性,提高C++性能,讓程序真正實用起來。對C++來說,這是兩種相輔相成的本質,一個強調低層特性,一個強調從頂層縱覽全局。堅持兩者并重,才能使C++體現出超乎其他編程語言的簡捷和高效。體現了C++強大的生命力也就體現了一個人的編程能力。這就是學習C++編程語言的著眼點。

七、 代碼風格

編程重代碼形式,優秀程序員總是具有自己獨特的代碼風格。代碼風格的好壞直接影響其可讀性,影響其與其他程序員的溝通。這也就決定了該代碼的生命力。要想盡可能快地成為一個程序員,應該有意識地訓練自己的代碼書寫風格。這就首先需要見識一些優秀代碼,然后從實踐經歷中慢慢形成自己的代碼風格。

本書正是意識到了代碼風格的重要,從根本上著手來培養程序員,本書特地對第一版所有的源代碼的風格進行了改良,使之更優雅、精簡和可讀。同時還補充了許多高效和精巧的代碼。難怪書的封底點出“風格獨特,極具模仿價值”。

這里要避免強調風格所導致的誤區:性能是程序運行的生命,但有時性能和代碼并不調和。也就是說,實現了高雅的風格,而操作并不一定高效;實現了高效,代碼不一定可讀性好。書中一般會采取一種簡捷的偏向于袒護性能的代碼形式。發生這種情況時,代碼可能會顯得很奇異,甚至有點晦澀難懂。好在這是一部教材,把這些懸念留給親愛的老師,會使課堂教學更精彩,而且也將會有《C++程序設計教程詳解》來細述。

猜你喜歡
教學
微課讓高中數學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
「微寫作」教學實踐的思考
“以讀促寫”在初中寫作教學中的應用
如何讓高中生物教學變得生動有趣
甘肅教育(2020年12期)2020-04-13 06:25:34
談高中音樂欣賞教學中的“聽、看、想、說、動”
“自我診斷表”在高中數學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
對外漢語教學中“想”和“要”的比較
唐山文學(2016年2期)2017-01-15 14:03:59
對識譜教學的認識與思考
《可以預約的雪》教學探索與思考
中學語文(2015年6期)2015-03-01 03:51:42
對高等數學教學的一些思考
主站蜘蛛池模板: 日韩在线播放欧美字幕| 五月婷婷精品| 在线国产你懂的| 国产精品欧美激情| 国产精品内射视频| 亚洲男人的天堂视频| 久久久久九九精品影院 | 一本大道香蕉高清久久| 麻豆精品在线| 国产亚洲视频免费播放| 中文字幕首页系列人妻| 无码网站免费观看| 国产精品视频观看裸模| 国产噜噜噜视频在线观看 | 国内熟女少妇一线天| 91高清在线视频| 免费看美女自慰的网站| 91久久国产综合精品女同我| 在线综合亚洲欧美网站| 亚洲香蕉在线| 日本免费高清一区| 老司机久久99久久精品播放| a网站在线观看| 99re这里只有国产中文精品国产精品| 日韩精品毛片| 中文字幕免费视频| 国产精品综合色区在线观看| 亚洲乱强伦| 中文纯内无码H| a色毛片免费视频| 青青青国产视频| 欧美日韩在线成人| 播五月综合| 国产毛片网站| 婷婷丁香色| 国产欧美日韩精品第二区| 亚洲视频四区| 亚洲午夜久久久精品电影院| 中文字幕亚洲另类天堂| 国产成人三级| 激情五月婷婷综合网| 日本a∨在线观看| 97se亚洲综合不卡| 丁香六月激情综合| www.日韩三级| 天天躁夜夜躁狠狠躁图片| 国产青青操| 91亚洲国产视频| 女人18一级毛片免费观看| 天堂成人在线| 亚洲成人高清无码| 精品少妇人妻无码久久| 国产精品13页| 日韩不卡高清视频| 亚洲精品卡2卡3卡4卡5卡区| 天堂成人av| 国产尤物jk自慰制服喷水| 亚洲无码高清免费视频亚洲| 少妇高潮惨叫久久久久久| 欧美激情二区三区| 欧美午夜在线视频| 亚洲无码高清视频在线观看| 国产精欧美一区二区三区| 欧美日韩91| 国产欧美日韩免费| 福利国产微拍广场一区视频在线| 91精品免费高清在线| 狼友视频国产精品首页| 国产91av在线| 久久综合亚洲鲁鲁九月天| 国产精品私拍在线爆乳| 国产理论最新国产精品视频| 久久久久免费精品国产| 亚洲综合片| 区国产精品搜索视频| 午夜精品区| 日韩中文字幕免费在线观看| 日本精品中文字幕在线不卡| 欧美在线精品怡红院| 欧美成人精品在线| 在线免费看片a| 97精品伊人久久大香线蕉|