本教材設計包含三個面向:系統、基礎、題解。在系統方面,我們在第一章介紹ACM-ICPC及CPE的發展與規則;第二章介紹CPE線上(on-line)練習與現場(on-site)考試的系統與機制;第三章介紹一個本機端的練習軟體——瘋狂程設,它透過測資腳本與批改腳本讓學生在練習中減少語法、語意與邏輯的錯誤,也透過短碼競賽讓學生能更精簡地撰寫程式。
在基礎方面,第四章介紹C與C++輸入輸出的函式與格式,減少初學學生因為程式輸出輸入問題造成上傳程式錯誤的可能;第五章有系統地講解解題技能,從理解題意到挑選合適的演算法(包括排序、搜尋、貪心(greedy)、動態規劃、圖形走訪、最小生成樹、最短路徑、最大流等常用演算法)不一而足,同時考量程式執行時間與記憶體用量,並交代如何設計測資以在上傳程式前檢驗程式的正確性;最後提醒要善用既有資源,利用函式庫來設計解題所需的功能,以減少撰寫程式的時間。
在題解方面,我們依據難易等級提供三章共84題之題解,另有8題用在前面章節中做為例子。第六章至第八章分別是一顆星至三顆星題目之題解,除了區分難易度,再依據題型分節,其中包含字元與字串、數學計算、大數運算、幾何、排序、圖論、模擬、動態規劃等。讀者可以透過本書進入程式設計之門,並培養精進解題與程式的實力。
作者簡介
林盈達
現職:國立交通大學資訊工程學系教授
學歷:UCLA電腦科學博士
專長領域:網路協定設計、實作、分析與測試;網路安全、無線通訊及嵌入式軟硬體效能
黃世昆
現職:國立交通大學資訊技術服務中心副主任
學歷:交通大學資訊工程博士
專長領域:軟體自動測試研究、軟體安全、自動攻擊產生器(CRAX)
楊昌彪
現職:國立中山大學資訊工程學系教授兼系主任
學歷:清華大學資訊科學博士
專長領域:演算法及其延伸應用;字串、檔案相似度比對相關演算法之設計與分析
葉正聖
現職:銘傳大學資訊傳播工程系助理教授
學歷:臺灣大學資訊工程博士
專長領域:電腦圖學、虛擬實境、電腦視覺及互動技術
謝育平
現職:銘傳大學資訊工程學系助理教授
學歷:臺灣大學資訊工程博士
專長領域:計算組合學、網路路由技術、數位典藏、圖書館自動化、光學文字辨識與課程自動化