我國著名的計算機科學家陳火旺院士把計算機幾十年來的發展成就概括成五個“一”:開闢了一個新時代——信息時代;形成了一個新產業——信息產業;產生了一門新學科——計算機科學與技術;開創了一種新的科研方法——計算方法;孕育了一種新的文化——計算機文化。這一概括精闢地闡明了計算機對社會發展產生的廣泛而深遠的影響。
目前,以電子計算機為代表的信息技術已全面滲透到人類社會的各個領域,深刻地改變了人們的生產方式、生活方式及思維方式。在“互聯網+”風起雲湧的今天,伴隨著創新創業的號角,以雲計算、物聯網、大數據為核心的新一輪信息變革正在中華大地上如火如荼地展開。但是,無論技術如何變化,計算機的基本原理、基本思想都沒有因此發生改變,程序編寫作為檢驗計算機能力的重要標志更沒有因此發生改變,C語言仍然被認為是最基礎、最適用的編程入門語言。通過C語言,可以更快速地建立對程序設計的基本認識,更清晰地掌握結構化與模塊化的程序設計思想,乃至更平穩地過渡到較為復雜的編程思想與編程語言的學習。“萬丈高樓平地起”,通過本書,相信讀者可以對C程序設計的基本思想與基本方法有一個全面、清晰的認識,再配合一定量的代碼實踐,一定能夠樹立編程的信心,逐漸培養起編程的興趣,為今後數據結構、面向對像程序設計、軟件工程等知識的掌握打下堅實的基礎。
當然,編程的學習絕非一日之功,也不是一蹴而就的。在多年教學過程中,有不少人反映C語言入門還是存在一些困難的,相信這是普遍存在的問題,現結合本書,簡單提幾點建議:
首先,在思想上高度重視並認識到實踐的重要性。俗話說“熟讀唐詩三百首,不會作詩也會吟”,隻有一定的代碼積累,纔能實現從量變到質變,逐步培養起編程的感覺。編程最忌“紙上談兵”,即使是最簡單的“Hello world”,都值得初學者去手動輸入運行一次。因此,建議使用本書時,需保證每周6小時以上的課內/外上機實踐,在期末時達到有效代碼量1000行以上的基本要求,之後再完成一個代碼量不少於1000行的課程綜合設計以鞏固與提升學習效果。切記編程能力的高低與上機實踐的有效時間成正比,學習編程最好的途徑就是編程、編程、再編程,並將其貫穿於計算機學習生涯的始終。
其次,注重實踐的漸進性並講究方式方法。編程的相關知識往往盤根錯節地交織在一起,初學者一開始往往會不知所措,建議不必過多拘泥於細節,隻需把握知識的框架和全貌,相信隨著學習的深入,很多問題就會迎刃而解;在任何時候都需要反復實踐,絕不可喪失信心。本書貼心地設置了“注意”“多學一點”“試一試”等欄目,並且每章都提供了大量的案例,這些案例與所在章節的知識點緊密相關,有些案例還設計了改造環節,以幫助讀者由淺入深,逐步理解知識。初學時,讀者需要熟練掌握這些案例所蘊含的原理,做到能上機獨立地重現所有的案例。當然,讀者也可以設計改造的案例,這種“模仿”是必要的,也是初學編程者的必由之路。接著,讀者就可以開始獨立編寫自己的程序,通過從小程序到大程序逐步的增量迭代,到了期末就可以完成一個較為綜合的應用案例,最終達到能力的全面提升。
再次,養成好習慣,培養自己獨立看懂並調試程序的能力。在程序設計學習的初始階段,編譯後出現大量的錯誤是在所難免的,可以借助教材、教師、同學的幫助糾正錯誤,但請務必不斷總結經驗教訓,到了一定階段後,逐步學會獨立看懂報錯信息,通過各種調試方法進行程序的糾錯。本書在第2~8章中設置了“本章常見的編程錯誤”,用於向讀者提醒易錯之處,但這一部分是開放性欄目,每個人的易錯點各不相同,我們隻能總結出最常見的,讀者可根據自身的學習情況加以增補。此外,在學習中要務必重視程序書寫的規範性,在必要時做好相應的代碼注釋,加強文檔能力的訓練,這些習慣的培養對今後開展更為復雜的工程項目是十分有益的。
最後,積極利用各種平臺,進行多層面的學習。建議積極參與各類編程競賽與項目小組活動,以團隊合作的形式,不斷探究、學以致用,找到編程的樂趣,一旦進入計算機學習的良性循環中,就會越學越有樂趣。如今,隨著混合式教學模式的興起,MOOC和SPOC資源越來越豐富,讀者完全可以不拘泥於傳統課堂本身,充分利用網絡在線資源,實施線上/線下全方位的學習。目前,本課程的慕課版——“探秘神奇的程序世界”已納入福建省級精品在線開放課程立項建設項目,並配有相應的學習資源與交流平臺,讀者可登錄平臺(www.xueyinonline.com),搜索“探秘神奇的程序世界”進行學習。本書還包含配套PPT、程序源代碼等資源,讀者可登錄華信教育資源網(www.hxedu.com.cn)注冊後免費下載。
自“高級語言程序設計”課程在福建師範大學福清分校開設近20年來,聚集了一批多年從事該課程教學和實踐的教師,課程建設取得了較為豐碩的成果:福建省精品課程、福建省高校青年教師教學競賽特等獎、全國高校青年教師教學競賽三等獎、福建省五一勞動獎章、校教學成果特等獎、教學名師、教壇新秀等一繫列成績的取得,以及諸多教改課題與科研項目的立項,見證了課程團隊的成長與進步。本書力求秉承“以應用為前提,學生為主體,程序設計為主線,培養學生的實踐動手能力為著力點”的編寫理念,達到科學性與實用性的有機統一,真正實現“變應試為應用”。可以說,本書是我校計算機類專業教師集體智慧的結晶,也是福建省級重大教改項目“基於‘五位一體’的IT類金課群建設的探索與實踐”(FBJG20190125)、省級一般教改項目“《高級語言程序設計》應用型立體化教材建設”(JAS151358),以及福建省高等教育管理研究課題“應用型高校學科建設研究與實踐”(MGJY004)的結項成果之一。本書編寫分工如下:趙少卡副教授負責第1、4、6、7、8章及附錄的編寫,郭永寧教授和林為偉副教授負責第2、3、5章的編寫,李艷老師和林為偉副教授負責第9章的編寫;全書由趙少卡負責統稿;葉芍芬負責繪圖。李立耀、施曉芳、遊瑩、蘇國棟、吳衍、李秀鳳等相關教師,以及超星公司的慕課制作團隊,在成書與課程資源建設過程中提出了不少寶貴的意見和建議,給予了大力支持,在此一並致謝。
由於受知識水平所限,本書錯誤與疏漏在所難免。讀者有任何問題與建議均可發送郵件至zska@whu.edu.cn。感謝各位讀者對我校計算機學科建設與本書一如既往的支持與幫助。
編著者