泛型編程(Generic Programming)

南京大學 2005 課程備忘錄 (27學時)

侯捷

請注意:此為備忘錄,不是呈現完整教材或學習討論的地方。

能否旁聽這門課

2005/07/04 - 2005/07/20
每周一二三 09:00~11:50
浦口校區軟件學院一樓

2005-07-calendar.jpg (26512 bytes)

一月之跡(日誌)


主旨:Generic Programming (GP) 是Object Oriented Programming (OOP) 之外的另一個目前 IT 業界十分倚重的編程技術。本課程可為學生奠定GP基礎,並帶領學生深度剖析GP的成功範例:C++ STL (Standard Template Library),藉此體會GP的技術和威力。

說明:GP在C++、Java、C# 都獲得了不同程度的支持,其中以C++的發展最為先進(前沿)與蓬勃。本課程以C++ GP為主要內容,並安排適量課時兼談Java在GP方面的發展。

教材(1,10 為教材,其他為輔助資料或參考讀物):
* 1.STL源碼剖析》by 侯捷
   2.《C++ Primer 3e》by Lippman & Lajoie. chap6,10,12,15,16, appendix
   3.  "STL系列文章" by 侯捷,PDFs共五篇,見左視窗目錄大標題(白色)
   4.《泛型程序設計與STL》, "Generic Programming and the STL" by Matthew H. Austern.
   5.《C++ 標準程序庫》, "The C++ Standard Library", by Nicolai M. Josuttis.
   6.《C++ Templates 全覽》, "C++ Tempaltes", by Vandevoorde & Josuttis.
   7.《C++ 設計新思維》, "Modern C++ Design" by Andrei Alexandrescu.
   8.《Effective STL》by Scott Meyers.
   9.《C++ Template MetaProgramming》by Scott Meyers.
*10. 上課投影片。以電子文件發給院方,由學生自行複印。

 

周次 日期 時數 內容 備註
1 07/04 3 課程簡介,上課規則,書籍評介,期末作業題目, 認識 SGI STL 和 GCC. 示範數個 STL applications.

複習 C++ Class Templates & Function Templates

 

基礎複習

1 07/05 3 複習 C++ Operator Overloading
++,--,*,->,(),=,==,!=
基礎複習
1 07/06 3 具體而微的 STL-Lite (1)
STL-Lite是侯捷組織的一個小型 library,有助於同學對整個 STL 架構的大局了解。
 
2 07/11 3 具體而微的 STL-Lite (2)  
2 07/12 3 STL Allocators and memory-pool design.  
2 07/13 3 STL Containers (vector, list, deque, map, set)  
3 07/18 3 STL Containers (深度理解 hashtable)  
3 07/19 3 STL Algorithms, Functors, Adapters(1)  
3 07/20 2 STL Adapters(2)  
3 07/20 1 考試(或提交作業及討論)  
  適時   (1) Generics in Java.
(2) Design Patterns in SGI STL
(iterator, adapter, reference counting in std::string, proxy in std::vector<bool>, command)
適時
適度
補充


■Sent: Monday, May 23, 2005 10:35 PM
侯先生: 您好! 非常冒昧的給您寫這封信,希望簡体中文不影響您的閱讀. 我是一名大陸大學的研究生, 將要從事軟件方面的工作.很高興能夠看到您翻譯的書籍,品質确實不錯!

今天訪問您的主頁發現您將于7月份在南京大學作泛型編程的講座,我非常有興趣到南京聆听您的講座.不過主頁上面對這個講座沒有更多的信息,我在合肥(距离南京大約200公里的城市),也無法得到更多的關于這個講座的信息,因此很冒昧的給您寫信,想知道這個講座是面向什么人的,需要什么條件才可以參加.

此致
祝工作順利,身体健康!

■侯捷回覆:

我在南京大學開的 GP 課程,是學校正式課程,面向南京大學學生。作為老師我歡迎旁聽,但首先需以修課同學的權益(座位、空間...等等)為優先。因此,關於能否旁聽的問題,建議詢問南京大學軟件學院。祝順利。

-- the end